2008-03-18 17:24:28 +08:00
|
|
|
/*
|
2009-12-09 07:18:47 +08:00
|
|
|
* OMAP3 clock function prototypes and macros
|
2008-03-18 17:24:28 +08:00
|
|
|
*
|
2009-12-09 07:18:47 +08:00
|
|
|
* Copyright (C) 2007-2009 Texas Instruments, Inc.
|
|
|
|
* Copyright (C) 2007-2009 Nokia Corporation
|
2008-03-18 17:24:28 +08:00
|
|
|
*/
|
|
|
|
|
2009-12-09 07:18:47 +08:00
|
|
|
#ifndef __ARCH_ARM_MACH_OMAP2_CLOCK_34XX_H
|
|
|
|
#define __ARCH_ARM_MACH_OMAP2_CLOCK_34XX_H
|
2008-03-18 17:24:28 +08:00
|
|
|
|
2010-01-27 11:13:12 +08:00
|
|
|
int omap3xxx_clk_init(void);
|
2009-12-09 07:18:47 +08:00
|
|
|
int omap3_dpll4_set_rate(struct clk *clk, unsigned long rate);
|
|
|
|
int omap3_core_dpll_m2_set_rate(struct clk *clk, unsigned long rate);
|
|
|
|
void omap3_clk_lock_dpll5(void);
|
[ARM] omap: add support for bypassing DPLLs
This roughly corresponds with OMAP commits: 7d06c48, 3241b19,
88b5d9b, 18a5500, 9c909ac, 5c6497b, 8b1f0bd, 2ac1da8.
For both OMAP2 and OMAP3, we note the reference and bypass clocks in
the DPLL data structure. Whenever we modify the DPLL rate, we first
ensure that both the reference and bypass clocks are enabled. Then,
we decide whether to use the reference and DPLL, or the bypass clock
if the desired rate is identical to the bypass rate, and program the
DPLL appropriately. Finally, we update the clock's parent, and then
disable the unused clocks.
This keeps the parents correctly balanced, and more importantly ensures
that the bypass clock is running whenever we reprogram the DPLL. This
is especially important because the procedure for reprogramming the DPLL
involves switching to the bypass clock.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-02-19 21:29:22 +08:00
|
|
|
|
2009-12-09 07:18:47 +08:00
|
|
|
extern struct clk *sdrc_ick_p;
|
|
|
|
extern struct clk *arm_fck_p;
|
2008-03-18 17:24:28 +08:00
|
|
|
|
2009-12-09 07:18:47 +08:00
|
|
|
/* OMAP34xx-specific clkops */
|
|
|
|
extern const struct clkops clkops_omap3430es2_ssi_wait;
|
|
|
|
extern const struct clkops clkops_omap3430es2_hsotgusb_wait;
|
|
|
|
extern const struct clkops clkops_omap3430es2_dss_usbhost_wait;
|
2010-02-16 01:27:25 +08:00
|
|
|
extern const struct clkops omap3_clkops_noncore_dpll_ops;
|
2008-03-18 17:24:28 +08:00
|
|
|
|
2010-02-25 03:05:55 +08:00
|
|
|
/* AM35xx-specific clkops */
|
|
|
|
extern const struct clkops clkops_am35xx_ipss_module_wait;
|
|
|
|
extern const struct clkops clkops_am35xx_ipss_wait;
|
|
|
|
|
2010-02-25 03:06:00 +08:00
|
|
|
/* OMAP36xx-specific clkops */
|
|
|
|
extern const struct clkops clkops_omap36xx_pwrdn_with_hsdiv_wait_restore;
|
|
|
|
|
2008-03-18 17:24:28 +08:00
|
|
|
#endif
|