Commit 14b6848b authored by Russell King's avatar Russell King Committed by Russell King

Merge branch 'omap-clks3' into devel

Conflicts:

	arch/arm/mach-omap2/clock.c
parents 05d9881b 4da37821
This diff is collapsed.
This diff is collapsed.
...@@ -28,9 +28,9 @@ ...@@ -28,9 +28,9 @@
#define DPS_RSTCT2_PER_EN (1 << 0) #define DPS_RSTCT2_PER_EN (1 << 0)
#define DSP_RSTCT2_WD_PER_EN (1 << 1) #define DSP_RSTCT2_WD_PER_EN (1 << 1)
#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) static int dsp_use;
const char *clk_names[] = { "dsp_ck", "api_ck", "dspxor_ck" }; static struct clk *api_clk;
#endif static struct clk *dsp_clk;
static void omap1_mcbsp_request(unsigned int id) static void omap1_mcbsp_request(unsigned int id)
{ {
...@@ -39,6 +39,13 @@ static void omap1_mcbsp_request(unsigned int id) ...@@ -39,6 +39,13 @@ static void omap1_mcbsp_request(unsigned int id)
* are DSP public peripherals. * are DSP public peripherals.
*/ */
if (id == OMAP_MCBSP1 || id == OMAP_MCBSP3) { if (id == OMAP_MCBSP1 || id == OMAP_MCBSP3) {
if (dsp_use++ == 0) {
api_clk = clk_get(NULL, "api_clk");
dsp_clk = clk_get(NULL, "dsp_clk");
if (!IS_ERR(api_clk) && !IS_ERR(dsp_clk)) {
clk_enable(api_clk);
clk_enable(dsp_clk);
omap_dsp_request_mem(); omap_dsp_request_mem();
/* /*
* DSP external peripheral reset * DSP external peripheral reset
...@@ -47,12 +54,25 @@ static void omap1_mcbsp_request(unsigned int id) ...@@ -47,12 +54,25 @@ static void omap1_mcbsp_request(unsigned int id)
__raw_writew(__raw_readw(DSP_RSTCT2) | DPS_RSTCT2_PER_EN | __raw_writew(__raw_readw(DSP_RSTCT2) | DPS_RSTCT2_PER_EN |
DSP_RSTCT2_WD_PER_EN, DSP_RSTCT2); DSP_RSTCT2_WD_PER_EN, DSP_RSTCT2);
} }
}
}
} }
static void omap1_mcbsp_free(unsigned int id) static void omap1_mcbsp_free(unsigned int id)
{ {
if (id == OMAP_MCBSP1 || id == OMAP_MCBSP3) if (id == OMAP_MCBSP1 || id == OMAP_MCBSP3) {
if (--dsp_use == 0) {
omap_dsp_release_mem(); omap_dsp_release_mem();
if (!IS_ERR(api_clk)) {
clk_disable(api_clk);
clk_put(api_clk);
}
if (!IS_ERR(dsp_clk)) {
clk_disable(dsp_clk);
clk_put(dsp_clk);
}
}
}
} }
static struct omap_mcbsp_ops omap1_mcbsp_ops = { static struct omap_mcbsp_ops omap1_mcbsp_ops = {
...@@ -94,8 +114,6 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = { ...@@ -94,8 +114,6 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
.rx_irq = INT_McBSP1RX, .rx_irq = INT_McBSP1RX,
.tx_irq = INT_McBSP1TX, .tx_irq = INT_McBSP1TX,
.ops = &omap1_mcbsp_ops, .ops = &omap1_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 3,
}, },
{ {
.phys_base = OMAP1510_MCBSP2_BASE, .phys_base = OMAP1510_MCBSP2_BASE,
...@@ -112,8 +130,6 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = { ...@@ -112,8 +130,6 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
.rx_irq = INT_McBSP3RX, .rx_irq = INT_McBSP3RX,
.tx_irq = INT_McBSP3TX, .tx_irq = INT_McBSP3TX,
.ops = &omap1_mcbsp_ops, .ops = &omap1_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 3,
}, },
}; };
#define OMAP15XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap15xx_mcbsp_pdata) #define OMAP15XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap15xx_mcbsp_pdata)
...@@ -131,8 +147,6 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = { ...@@ -131,8 +147,6 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
.rx_irq = INT_McBSP1RX, .rx_irq = INT_McBSP1RX,
.tx_irq = INT_McBSP1TX, .tx_irq = INT_McBSP1TX,
.ops = &omap1_mcbsp_ops, .ops = &omap1_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 3,
}, },
{ {
.phys_base = OMAP1610_MCBSP2_BASE, .phys_base = OMAP1610_MCBSP2_BASE,
...@@ -149,8 +163,6 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = { ...@@ -149,8 +163,6 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
.rx_irq = INT_McBSP3RX, .rx_irq = INT_McBSP3RX,
.tx_irq = INT_McBSP3TX, .tx_irq = INT_McBSP3TX,
.ops = &omap1_mcbsp_ops, .ops = &omap1_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 3,
}, },
}; };
#define OMAP16XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap16xx_mcbsp_pdata) #define OMAP16XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap16xx_mcbsp_pdata)
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# #
# Common support # Common support
obj-y := irq.o id.o io.o memory.o control.o prcm.o clock.o mux.o \ obj-y := irq.o id.o io.o sdrc.o control.o prcm.o clock.o mux.o \
devices.o serial.o gpmc.o timer-gp.o powerdomain.o \ devices.o serial.o gpmc.o timer-gp.o powerdomain.o \
clockdomain.o clockdomain.o
...@@ -14,6 +14,10 @@ obj-$(CONFIG_ARCH_OMAP2420) += sram242x.o ...@@ -14,6 +14,10 @@ obj-$(CONFIG_ARCH_OMAP2420) += sram242x.o
obj-$(CONFIG_ARCH_OMAP2430) += sram243x.o obj-$(CONFIG_ARCH_OMAP2430) += sram243x.o
obj-$(CONFIG_ARCH_OMAP3) += sram34xx.o obj-$(CONFIG_ARCH_OMAP3) += sram34xx.o
# SMS/SDRC
obj-$(CONFIG_ARCH_OMAP2) += sdrc2xxx.o
# obj-$(CONFIG_ARCH_OMAP3) += sdrc3xxx.o
# Power Management # Power Management
ifeq ($(CONFIG_PM),y) ifeq ($(CONFIG_PM),y)
obj-y += pm.o obj-y += pm.o
......
...@@ -185,7 +185,7 @@ static inline void __init sdp2430_init_smc91x(void) ...@@ -185,7 +185,7 @@ static inline void __init sdp2430_init_smc91x(void)
static void __init omap_2430sdp_init_irq(void) static void __init omap_2430sdp_init_irq(void)
{ {
omap2_init_common_hw(); omap2_init_common_hw(NULL);
omap_init_irq(); omap_init_irq();
omap_gpio_init(); omap_gpio_init();
sdp2430_init_smc91x(); sdp2430_init_smc91x();
......
...@@ -249,7 +249,7 @@ static inline void __init apollon_init_smc91x(void) ...@@ -249,7 +249,7 @@ static inline void __init apollon_init_smc91x(void)
static void __init omap_apollon_init_irq(void) static void __init omap_apollon_init_irq(void)
{ {
omap2_init_common_hw(); omap2_init_common_hw(NULL);
omap_init_irq(); omap_init_irq();
omap_gpio_init(); omap_gpio_init();
apollon_init_smc91x(); apollon_init_smc91x();
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
static void __init omap_generic_init_irq(void) static void __init omap_generic_init_irq(void)
{ {
omap2_init_common_hw(); omap2_init_common_hw(NULL);
omap_init_irq(); omap_init_irq();
} }
......
...@@ -363,7 +363,7 @@ static void __init h4_init_flash(void) ...@@ -363,7 +363,7 @@ static void __init h4_init_flash(void)
static void __init omap_h4_init_irq(void) static void __init omap_h4_init_irq(void)
{ {
omap2_init_common_hw(); omap2_init_common_hw(NULL);
omap_init_irq(); omap_init_irq();
omap_gpio_init(); omap_gpio_init();
h4_init_flash(); h4_init_flash();
......
...@@ -98,7 +98,7 @@ static inline void __init ldp_init_smc911x(void) ...@@ -98,7 +98,7 @@ static inline void __init ldp_init_smc911x(void)
static void __init omap_ldp_init_irq(void) static void __init omap_ldp_init_irq(void)
{ {
omap2_init_common_hw(); omap2_init_common_hw(NULL);
omap_init_irq(); omap_init_irq();
omap_gpio_init(); omap_gpio_init();
ldp_init_smc911x(); ldp_init_smc911x();
......
...@@ -184,7 +184,7 @@ static int __init omap3_beagle_i2c_init(void) ...@@ -184,7 +184,7 @@ static int __init omap3_beagle_i2c_init(void)
static void __init omap3_beagle_init_irq(void) static void __init omap3_beagle_init_irq(void)
{ {
omap2_init_common_hw(); omap2_init_common_hw(NULL);
omap_init_irq(); omap_init_irq();
omap_gpio_init(); omap_gpio_init();
} }
......
This diff is collapsed.
...@@ -21,13 +21,28 @@ ...@@ -21,13 +21,28 @@
/* The maximum error between a target DPLL rate and the rounded rate in Hz */ /* The maximum error between a target DPLL rate and the rounded rate in Hz */
#define DEFAULT_DPLL_RATE_TOLERANCE 50000 #define DEFAULT_DPLL_RATE_TOLERANCE 50000
/* CM_CLKSEL2_PLL.CORE_CLK_SRC bits (2XXX) */
#define CORE_CLK_SRC_32K 0x0
#define CORE_CLK_SRC_DPLL 0x1
#define CORE_CLK_SRC_DPLL_X2 0x2
/* OMAP2xxx CM_CLKEN_PLL.EN_DPLL bits - for omap2_get_dpll_rate() */
#define OMAP2XXX_EN_DPLL_LPBYPASS 0x1
#define OMAP2XXX_EN_DPLL_FRBYPASS 0x2
#define OMAP2XXX_EN_DPLL_LOCKED 0x3
/* OMAP3xxx CM_CLKEN_PLL*.EN_*_DPLL bits - for omap2_get_dpll_rate() */
#define OMAP3XXX_EN_DPLL_LPBYPASS 0x5
#define OMAP3XXX_EN_DPLL_FRBYPASS 0x6
#define OMAP3XXX_EN_DPLL_LOCKED 0x7
int omap2_clk_init(void); int omap2_clk_init(void);
int omap2_clk_enable(struct clk *clk); int omap2_clk_enable(struct clk *clk);
void omap2_clk_disable(struct clk *clk); void omap2_clk_disable(struct clk *clk);
long omap2_clk_round_rate(struct clk *clk, unsigned long rate); long omap2_clk_round_rate(struct clk *clk, unsigned long rate);
int omap2_clk_set_rate(struct clk *clk, unsigned long rate); int omap2_clk_set_rate(struct clk *clk, unsigned long rate);
int omap2_clk_set_parent(struct clk *clk, struct clk *new_parent); int omap2_clk_set_parent(struct clk *clk, struct clk *new_parent);
int omap2_dpll_rate_tolerance_set(struct clk *clk, unsigned int tolerance); int omap2_dpll_set_rate_tolerance(struct clk *clk, unsigned int tolerance);
long omap2_dpll_round_rate(struct clk *clk, unsigned long target_rate); long omap2_dpll_round_rate(struct clk *clk, unsigned long target_rate);
#ifdef CONFIG_OMAP_RESET_CLOCKS #ifdef CONFIG_OMAP_RESET_CLOCKS
...@@ -36,7 +51,7 @@ void omap2_clk_disable_unused(struct clk *clk); ...@@ -36,7 +51,7 @@ void omap2_clk_disable_unused(struct clk *clk);
#define omap2_clk_disable_unused NULL #define omap2_clk_disable_unused NULL
#endif #endif
void omap2_clksel_recalc(struct clk *clk); unsigned long omap2_clksel_recalc(struct clk *clk);
void omap2_init_clk_clkdm(struct clk *clk); void omap2_init_clk_clkdm(struct clk *clk);
void omap2_init_clksel_parent(struct clk *clk); void omap2_init_clksel_parent(struct clk *clk);
u32 omap2_clksel_get_divisor(struct clk *clk); u32 omap2_clksel_get_divisor(struct clk *clk);
...@@ -44,13 +59,16 @@ u32 omap2_clksel_round_rate_div(struct clk *clk, unsigned long target_rate, ...@@ -44,13 +59,16 @@ u32 omap2_clksel_round_rate_div(struct clk *clk, unsigned long target_rate,
u32 *new_div); u32 *new_div);
u32 omap2_clksel_to_divisor(struct clk *clk, u32 field_val); u32 omap2_clksel_to_divisor(struct clk *clk, u32 field_val);
u32 omap2_divisor_to_clksel(struct clk *clk, u32 div); u32 omap2_divisor_to_clksel(struct clk *clk, u32 div);
void omap2_fixed_divisor_recalc(struct clk *clk); unsigned long omap2_fixed_divisor_recalc(struct clk *clk);
long omap2_clksel_round_rate(struct clk *clk, unsigned long target_rate); long omap2_clksel_round_rate(struct clk *clk, unsigned long target_rate);
int omap2_clksel_set_rate(struct clk *clk, unsigned long rate); int omap2_clksel_set_rate(struct clk *clk, unsigned long rate);
u32 omap2_get_dpll_rate(struct clk *clk); u32 omap2_get_dpll_rate(struct clk *clk);
int omap2_wait_clock_ready(void __iomem *reg, u32 cval, const char *name); int omap2_wait_clock_ready(void __iomem *reg, u32 cval, const char *name);
void omap2_clk_prepare_for_reboot(void); void omap2_clk_prepare_for_reboot(void);
extern const struct clkops clkops_omap2_dflt_wait;
extern const struct clkops clkops_omap2_dflt;
extern u8 cpu_mask; extern u8 cpu_mask;
/* clksel_rate data common to 24xx/343x */ /* clksel_rate data common to 24xx/343x */
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/limits.h> #include <linux/limits.h>
#include <linux/err.h>
#include <linux/io.h> #include <linux/io.h>
...@@ -71,16 +72,13 @@ static void _autodep_lookup(struct clkdm_pwrdm_autodep *autodep) ...@@ -71,16 +72,13 @@ static void _autodep_lookup(struct clkdm_pwrdm_autodep *autodep)
if (!omap_chip_is(autodep->omap_chip)) if (!omap_chip_is(autodep->omap_chip))
return; return;
pwrdm = pwrdm_lookup(autodep->pwrdm_name); pwrdm = pwrdm_lookup(autodep->pwrdm.name);
if (!pwrdm) { if (!pwrdm) {
pr_debug("clockdomain: _autodep_lookup: powerdomain %s " pr_err("clockdomain: autodeps: powerdomain %s does not exist\n",
"does not exist\n", autodep->pwrdm_name); autodep->pwrdm.name);
WARN_ON(1); pwrdm = ERR_PTR(-ENOENT);
return;
} }
autodep->pwrdm = pwrdm; autodep->pwrdm.ptr = pwrdm;
return;
} }
/* /*
...@@ -95,16 +93,19 @@ static void _clkdm_add_autodeps(struct clockdomain *clkdm) ...@@ -95,16 +93,19 @@ static void _clkdm_add_autodeps(struct clockdomain *clkdm)
{ {
struct clkdm_pwrdm_autodep *autodep; struct clkdm_pwrdm_autodep *autodep;
for (autodep = autodeps; autodep->pwrdm_name; autodep++) { for (autodep = autodeps; autodep->pwrdm.ptr; autodep++) {
if (!autodep->pwrdm) if (IS_ERR(autodep->pwrdm.ptr))
continue;
if (!omap_chip_is(autodep->omap_chip))
continue; continue;
pr_debug("clockdomain: adding %s sleepdep/wkdep for " pr_debug("clockdomain: adding %s sleepdep/wkdep for "
"pwrdm %s\n", autodep->pwrdm_name, "pwrdm %s\n", autodep->pwrdm.ptr->name,
clkdm->pwrdm->name); clkdm->pwrdm.ptr->name);
pwrdm_add_sleepdep(clkdm->pwrdm, autodep->pwrdm); pwrdm_add_sleepdep(clkdm->pwrdm.ptr, autodep->pwrdm.ptr);
pwrdm_add_wkdep(clkdm->pwrdm, autodep->pwrdm); pwrdm_add_wkdep(clkdm->pwrdm.ptr, autodep->pwrdm.ptr);
} }
} }
...@@ -120,16 +121,19 @@ static void _clkdm_del_autodeps(struct clockdomain *clkdm) ...@@ -120,16 +121,19 @@ static void _clkdm_del_autodeps(struct clockdomain *clkdm)
{ {
struct clkdm_pwrdm_autodep *autodep; struct clkdm_pwrdm_autodep *autodep;
for (autodep = autodeps; autodep->pwrdm_name; autodep++) { for (autodep = autodeps; autodep->pwrdm.ptr; autodep++) {
if (!autodep->pwrdm) if (IS_ERR(autodep->pwrdm.ptr))
continue;
if (!omap_chip_is(autodep->omap_chip))
continue; continue;
pr_debug("clockdomain: removing %s sleepdep/wkdep for " pr_debug("clockdomain: removing %s sleepdep/wkdep for "
"pwrdm %s\n", autodep->pwrdm_name, "pwrdm %s\n", autodep->pwrdm.ptr->name,
clkdm->pwrdm->name); clkdm->pwrdm.ptr->name);
pwrdm_del_sleepdep(clkdm->pwrdm, autodep->pwrdm); pwrdm_del_sleepdep(clkdm->pwrdm.ptr, autodep->pwrdm.ptr);
pwrdm_del_wkdep(clkdm->pwrdm, autodep->pwrdm); pwrdm_del_wkdep(clkdm->pwrdm.ptr, autodep->pwrdm.ptr);
} }
} }
...@@ -179,7 +183,7 @@ void clkdm_init(struct clockdomain **clkdms, ...@@ -179,7 +183,7 @@ void clkdm_init(struct clockdomain **clkdms,
autodeps = init_autodeps; autodeps = init_autodeps;
if (autodeps) if (autodeps)
for (autodep = autodeps; autodep->pwrdm_name; autodep++) for (autodep = autodeps; autodep->pwrdm.ptr; autodep++)
_autodep_lookup(autodep); _autodep_lookup(autodep);
} }
...@@ -202,20 +206,20 @@ int clkdm_register(struct clockdomain *clkdm) ...@@ -202,20 +206,20 @@ int clkdm_register(struct clockdomain *clkdm)
if (!omap_chip_is(clkdm->omap_chip)) if (!omap_chip_is(clkdm->omap_chip))
return -EINVAL; return -EINVAL;
pwrdm = pwrdm_lookup(clkdm->pwrdm_name); pwrdm = pwrdm_lookup(clkdm->pwrdm.name);
if (!pwrdm) { if (!pwrdm) {
pr_debug("clockdomain: clkdm_register %s: powerdomain %s " pr_err("clockdomain: %s: powerdomain %s does not exist\n",
"does not exist\n", clkdm->name, clkdm->pwrdm_name); clkdm->name, clkdm->pwrdm.name);
return -EINVAL; return -EINVAL;
} }
clkdm->pwrdm = pwrdm; clkdm->pwrdm.ptr = pwrdm;
mutex_lock(&clkdm_mutex); mutex_lock(&clkdm_mutex);
/* Verify that the clockdomain is not already registered */ /* Verify that the clockdomain is not already registered */
if (_clkdm_lookup(clkdm->name)) { if (_clkdm_lookup(clkdm->name)) {
ret = -EEXIST; ret = -EEXIST;
goto cr_unlock; goto cr_unlock;
}; }
list_add(&clkdm->node, &clkdm_list); list_add(&clkdm->node, &clkdm_list);
...@@ -242,7 +246,7 @@ int clkdm_unregister(struct clockdomain *clkdm) ...@@ -242,7 +246,7 @@ int clkdm_unregister(struct clockdomain *clkdm)
if (!clkdm) if (!clkdm)
return -EINVAL; return -EINVAL;
pwrdm_del_clkdm(clkdm->pwrdm, clkdm); pwrdm_del_clkdm(clkdm->pwrdm.ptr, clkdm);
mutex_lock(&clkdm_mutex); mutex_lock(&clkdm_mutex);
list_del(&clkdm->node); list_del(&clkdm->node);
...@@ -327,7 +331,7 @@ struct powerdomain *clkdm_get_pwrdm(struct clockdomain *clkdm) ...@@ -327,7 +331,7 @@ struct powerdomain *clkdm_get_pwrdm(struct clockdomain *clkdm)
if (!clkdm) if (!clkdm)
return NULL; return NULL;
return clkdm->pwrdm; return clkdm->pwrdm.ptr;
} }
...@@ -348,7 +352,7 @@ static int omap2_clkdm_clktrctrl_read(struct clockdomain *clkdm) ...@@ -348,7 +352,7 @@ static int omap2_clkdm_clktrctrl_read(struct clockdomain *clkdm)
if (!clkdm) if (!clkdm)
return -EINVAL; return -EINVAL;
v = cm_read_mod_reg(clkdm->pwrdm->prcm_offs, CM_CLKSTCTRL); v = cm_read_mod_reg(clkdm->pwrdm.ptr->prcm_offs, CM_CLKSTCTRL);
v &= clkdm->clktrctrl_mask; v &= clkdm->clktrctrl_mask;
v >>= __ffs(clkdm->clktrctrl_mask); v >>= __ffs(clkdm->clktrctrl_mask);
...@@ -380,7 +384,7 @@ int omap2_clkdm_sleep(struct clockdomain *clkdm) ...@@ -380,7 +384,7 @@ int omap2_clkdm_sleep(struct clockdomain *clkdm)
if (cpu_is_omap24xx()) { if (cpu_is_omap24xx()) {
cm_set_mod_reg_bits(OMAP24XX_FORCESTATE, cm_set_mod_reg_bits(OMAP24XX_FORCESTATE,
clkdm->pwrdm->prcm_offs, PM_PWSTCTRL); clkdm->pwrdm.ptr->prcm_offs, PM_PWSTCTRL);
} else if (cpu_is_omap34xx()) { } else if (cpu_is_omap34xx()) {
...@@ -388,7 +392,7 @@ int omap2_clkdm_sleep(struct clockdomain *clkdm) ...@@ -388,7 +392,7 @@ int omap2_clkdm_sleep(struct clockdomain *clkdm)
__ffs(clkdm->clktrctrl_mask)); __ffs(clkdm->clktrctrl_mask));
cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask, v, cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask, v,
clkdm->pwrdm->prcm_offs, CM_CLKSTCTRL); clkdm->pwrdm.ptr->prcm_offs, CM_CLKSTCTRL);
} else { } else {
BUG(); BUG();
...@@ -422,7 +426,7 @@ int omap2_clkdm_wakeup(struct clockdomain *clkdm) ...@@ -422,7 +426,7 @@ int omap2_clkdm_wakeup(struct clockdomain *clkdm)
if (cpu_is_omap24xx()) { if (cpu_is_omap24xx()) {
cm_clear_mod_reg_bits(OMAP24XX_FORCESTATE, cm_clear_mod_reg_bits(OMAP24XX_FORCESTATE,
clkdm->pwrdm->prcm_offs, PM_PWSTCTRL); clkdm->pwrdm.ptr->prcm_offs, PM_PWSTCTRL);
} else if (cpu_is_omap34xx()) { } else if (cpu_is_omap34xx()) {
...@@ -430,7 +434,7 @@ int omap2_clkdm_wakeup(struct clockdomain *clkdm) ...@@ -430,7 +434,7 @@ int omap2_clkdm_wakeup(struct clockdomain *clkdm)
__ffs(clkdm->clktrctrl_mask)); __ffs(clkdm->clktrctrl_mask));
cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask, v, cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask, v,
clkdm->pwrdm->prcm_offs, CM_CLKSTCTRL); clkdm->pwrdm.ptr->prcm_offs, CM_CLKSTCTRL);
} else { } else {
BUG(); BUG();
...@@ -478,7 +482,7 @@ void omap2_clkdm_allow_idle(struct clockdomain *clkdm) ...@@ -478,7 +482,7 @@ void omap2_clkdm_allow_idle(struct clockdomain *clkdm)
cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask, cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask,
v << __ffs(clkdm->clktrctrl_mask), v << __ffs(clkdm->clktrctrl_mask),
clkdm->pwrdm->prcm_offs, clkdm->pwrdm.ptr->prcm_offs,
CM_CLKSTCTRL); CM_CLKSTCTRL);
} }
...@@ -516,7 +520,7 @@ void omap2_clkdm_deny_idle(struct clockdomain *clkdm) ...@@ -516,7 +520,7 @@ void omap2_clkdm_deny_idle(struct clockdomain *clkdm)
cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask, cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask,
v << __ffs(clkdm->clktrctrl_mask), v << __ffs(clkdm->clktrctrl_mask),
clkdm->pwrdm->prcm_offs, CM_CLKSTCTRL); clkdm->pwrdm.ptr->prcm_offs, CM_CLKSTCTRL);
if (atomic_read(&clkdm->usecount) > 0) if (atomic_read(&clkdm->usecount) > 0)
_clkdm_del_autodeps(clkdm); _clkdm_del_autodeps(clkdm);
...@@ -567,6 +571,8 @@ int omap2_clkdm_clk_enable(struct clockdomain *clkdm, struct clk *clk) ...@@ -567,6 +571,8 @@ int omap2_clkdm_clk_enable(struct clockdomain *clkdm, struct clk *clk)
else else
omap2_clkdm_wakeup(clkdm); omap2_clkdm_wakeup(clkdm);
pwrdm_wait_transition(clkdm->pwrdm.ptr);
return 0; return 0;
} }
......
This diff is collapsed.
...@@ -110,35 +110,56 @@ ...@@ -110,35 +110,56 @@
#define OMAP24XX_EN_DES (1 << 0) #define OMAP24XX_EN_DES (1 << 0)
/* CM_IDLEST1_CORE specific bits */ /* CM_IDLEST1_CORE specific bits */
#define OMAP24XX_ST_MAILBOXES (1 << 30) #define OMAP24XX_ST_MAILBOXES_SHIFT 30
#define OMAP24XX_ST_WDT4 (1 << 29) #define OMAP24XX_ST_MAILBOXES_MASK (1 << 30)
#define OMAP2420_ST_WDT3 (1 << 28) #define OMAP24XX_ST_WDT4_SHIFT 29
#define OMAP24XX_ST_MSPRO (1 << 27) #define OMAP24XX_ST_WDT4_MASK (1 << 29)
#define OMAP24XX_ST_FAC (1 << 25) #define OMAP2420_ST_WDT3_SHIFT 28
#define OMAP2420_ST_EAC (1 << 24) #define OMAP2420_ST_WDT3_MASK (1 << 28)
#define OMAP24XX_ST_HDQ (1 << 23) #define OMAP24XX_ST_MSPRO_SHIFT 27
#define OMAP24XX_ST_I2C2 (1 << 20) #define OMAP24XX_ST_MSPRO_MASK (1 << 27)
#define OMAP24XX_ST_I2C1 (1 << 19) #define OMAP24XX_ST_FAC_SHIFT 25
#define OMAP24XX_ST_MCBSP2 (1 << 16) #define OMAP24XX_ST_FAC_MASK (1 << 25)
#define OMAP24XX_ST_MCBSP1 (1 << 15) #define OMAP2420_ST_EAC_SHIFT 24
#define OMAP24XX_ST_DSS (1 << 0) #define OMAP2420_ST_EAC_MASK (1 << 24)
#define OMAP24XX_ST_HDQ_SHIFT 23
#define OMAP24XX_ST_HDQ_MASK (1 << 23)
#define OMAP2420_ST_I2C2_SHIFT 20
#define OMAP2420_ST_I2C2_MASK (1 << 20)
#define OMAP2420_ST_I2C1_SHIFT 19
#define OMAP2420_ST_I2C1_MASK (1 << 19)
#define OMAP24XX_ST_MCBSP2_SHIFT 16
#define OMAP24XX_ST_MCBSP2_MASK (1 << 16)
#define OMAP24XX_ST_MCBSP1_SHIFT 15
#define OMAP24XX_ST_MCBSP1_MASK (1 << 15)
#define OMAP24XX_ST_DSS_SHIFT 0
#define OMAP24XX_ST_DSS_MASK (1 << 0)
/* CM_IDLEST2_CORE */ /* CM_IDLEST2_CORE */
#define OMAP2430_ST_MCBSP5 (1 << 5) #define OMAP2430_ST_MCBSP5_SHIFT 5
#define OMAP2430_ST_MCBSP4 (1 << 4) #define OMAP2430_ST_MCBSP5_MASK (1 << 5)
#define OMAP2430_ST_MCBSP3 (1 << 3) #define OMAP2430_ST_MCBSP4_SHIFT 4
#define OMAP24XX_ST_SSI (1 << 1) #define OMAP2430_ST_MCBSP4_MASK (1 << 4)
#define OMAP2430_ST_MCBSP3_SHIFT 3
#define OMAP2430_ST_MCBSP3_MASK (1 << 3)
#define OMAP24XX_ST_SSI_SHIFT 1
#define OMAP24XX_ST_SSI_MASK (1 << 1)
/* CM_IDLEST3_CORE */ /* CM_IDLEST3_CORE */
/* 2430 only */ /* 2430 only */
#define OMAP2430_ST_SDRC (1 << 2) #define OMAP2430_ST_SDRC_MASK (1 << 2)
/* CM_IDLEST4_CORE */ /* CM_IDLEST4_CORE */
#define OMAP24XX_ST_PKA (1 << 4) #define OMAP24XX_ST_PKA_SHIFT 4
#define OMAP24XX_ST_AES (1 << 3) #define OMAP24XX_ST_PKA_MASK (1 << 4)
#define OMAP24XX_ST_RNG (1 << 2) #define OMAP24XX_ST_AES_SHIFT 3
#define OMAP24XX_ST_SHA (1 << 1) #define OMAP24XX_ST_AES_MASK (1 << 3)
#define OMAP24XX_ST_DES (1 << 0) #define OMAP24XX_ST_RNG_SHIFT 2
#define OMAP24XX_ST_RNG_MASK (1 << 2)
#define OMAP24XX_ST_SHA_SHIFT 1
#define OMAP24XX_ST_SHA_MASK (1 << 1)
#define OMAP24XX_ST_DES_SHIFT 0
#define OMAP24XX_ST_DES_MASK (1 << 0)
/* CM_AUTOIDLE1_CORE */ /* CM_AUTOIDLE1_CORE */
#define OMAP24XX_AUTO_CAM (1 << 31) #define OMAP24XX_AUTO_CAM (1 << 31)
...@@ -275,11 +296,16 @@ ...@@ -275,11 +296,16 @@
#define OMAP24XX_EN_32KSYNC (1 << 1) #define OMAP24XX_EN_32KSYNC (1 << 1)
/* CM_IDLEST_WKUP specific bits */ /* CM_IDLEST_WKUP specific bits */
#define OMAP2430_ST_ICR (1 << 6) #define OMAP2430_ST_ICR_SHIFT 6
#define OMAP24XX_ST_OMAPCTRL (1 << 5) #define OMAP2430_ST_ICR_MASK (1 << 6)
#define OMAP24XX_ST_WDT1 (1 << 4) #define OMAP24XX_ST_OMAPCTRL_SHIFT 5
#define OMAP24XX_ST_MPU_WDT (1 << 3) #define OMAP24XX_ST_OMAPCTRL_MASK (1 << 5)
#define OMAP24XX_ST_32KSYNC (1 << 1) #define OMAP24XX_ST_WDT1_SHIFT 4
#define OMAP24XX_ST_WDT1_MASK (1 << 4)
#define OMAP24XX_ST_MPU_WDT_SHIFT 3
#define OMAP24XX_ST_MPU_WDT_MASK (1 << 3)
#define OMAP24XX_ST_32KSYNC_SHIFT 1
#define OMAP24XX_ST_32KSYNC_MASK (1 << 1)
/* CM_AUTOIDLE_WKUP */ /* CM_AUTOIDLE_WKUP */
#define OMAP24XX_AUTO_OMAPCTRL (1 << 5) #define OMAP24XX_AUTO_OMAPCTRL (1 << 5)
......
This diff is collapsed.
...@@ -348,11 +348,12 @@ static void __init omap_hsmmc_reset(void) ...@@ -348,11 +348,12 @@ static void __init omap_hsmmc_reset(void)
} }
dummy_pdev.id = i; dummy_pdev.id = i;
iclk = clk_get(dev, "mmchs_ick"); dev_set_name(&dummy_pdev.dev, "mmci-omap-hs.%d", i);
iclk = clk_get(dev, "ick");
if (iclk && clk_enable(iclk)) if (iclk && clk_enable(iclk))
iclk = NULL; iclk = NULL;
fclk = clk_get(dev, "mmchs_fck"); fclk = clk_get(dev, "fck");
if (fclk && clk_enable(fclk)) if (fclk && clk_enable(fclk))
fclk = NULL; fclk = NULL;
......
...@@ -217,8 +217,13 @@ void __init omap2_check_revision(void) ...@@ -217,8 +217,13 @@ void __init omap2_check_revision(void)
omap_chip.oc = CHIP_IS_OMAP3430; omap_chip.oc = CHIP_IS_OMAP3430;
if (omap_rev() == OMAP3430_REV_ES1_0) if (omap_rev() == OMAP3430_REV_ES1_0)
omap_chip.oc |= CHIP_IS_OMAP3430ES1; omap_chip.oc |= CHIP_IS_OMAP3430ES1;
else if (omap_rev() > OMAP3430_REV_ES1_0) else if (omap_rev() >= OMAP3430_REV_ES2_0 &&
omap_rev() <= OMAP3430_REV_ES2_1)
omap_chip.oc |= CHIP_IS_OMAP3430ES2; omap_chip.oc |= CHIP_IS_OMAP3430ES2;
else if (omap_rev() == OMAP3430_REV_ES3_0)
omap_chip.oc |= CHIP_IS_OMAP3430ES3_0;
else if (omap_rev() == OMAP3430_REV_ES3_1)
omap_chip.oc |= CHIP_IS_OMAP3430ES3_1;
} else { } else {
pr_err("Uninitialized omap_chip, please fix!\n"); pr_err("Uninitialized omap_chip, please fix!\n");
} }
......
...@@ -27,8 +27,8 @@ ...@@ -27,8 +27,8 @@
#include <mach/mux.h> #include <mach/mux.h>
#include <mach/omapfb.h> #include <mach/omapfb.h>
#include <mach/sram.h> #include <mach/sram.h>
#include <mach/sdrc.h>
#include "memory.h" #include <mach/gpmc.h>
#include "clock.h" #include "clock.h"
...@@ -195,12 +195,12 @@ void __init omap2_map_common_io(void) ...@@ -195,12 +195,12 @@ void __init omap2_map_common_io(void)
omapfb_reserve_sdram(); omapfb_reserve_sdram();
} }
void __init omap2_init_common_hw(void) void __init omap2_init_common_hw(struct omap_sdrc_params *sp)
{ {
omap2_mux_init(); omap2_mux_init();
pwrdm_init(powerdomains_omap); pwrdm_init(powerdomains_omap);
clkdm_init(clockdomains_omap, clkdm_pwrdm_autodeps); clkdm_init(clockdomains_omap, clkdm_pwrdm_autodeps);
omap2_clk_init(); omap2_clk_init();
omap2_init_memory(); omap2_sdrc_init(sp);
gpmc_init(); gpmc_init();
} }
...@@ -24,8 +24,6 @@ ...@@ -24,8 +24,6 @@
#include <mach/cpu.h> #include <mach/cpu.h>
#include <mach/mcbsp.h> #include <mach/mcbsp.h>
const char *clk_names[] = { "mcbsp_ick", "mcbsp_fck" };
static void omap2_mcbsp2_mux_setup(void) static void omap2_mcbsp2_mux_setup(void)
{ {
omap_cfg_reg(Y15_24XX_MCBSP2_CLKX); omap_cfg_reg(Y15_24XX_MCBSP2_CLKX);
...@@ -57,8 +55,6 @@ static struct omap_mcbsp_platform_data omap2420_mcbsp_pdata[] = { ...@@ -57,8 +55,6 @@ static struct omap_mcbsp_platform_data omap2420_mcbsp_pdata[] = {
.rx_irq = INT_24XX_MCBSP1_IRQ_RX, .rx_irq = INT_24XX_MCBSP1_IRQ_RX,
.tx_irq = INT_24XX_MCBSP1_IRQ_TX, .tx_irq = INT_24XX_MCBSP1_IRQ_TX,
.ops = &omap2_mcbsp_ops, .ops = &omap2_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 2,
}, },
{ {
.phys_base = OMAP24XX_MCBSP2_BASE, .phys_base = OMAP24XX_MCBSP2_BASE,
...@@ -67,8 +63,6 @@ static struct omap_mcbsp_platform_data omap2420_mcbsp_pdata[] = { ...@@ -67,8 +63,6 @@ static struct omap_mcbsp_platform_data omap2420_mcbsp_pdata[] = {
.rx_irq = INT_24XX_MCBSP2_IRQ_RX, .rx_irq = INT_24XX_MCBSP2_IRQ_RX,
.tx_irq = INT_24XX_MCBSP2_IRQ_TX, .tx_irq = INT_24XX_MCBSP2_IRQ_TX,
.ops = &omap2_mcbsp_ops, .ops = &omap2_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 2,
}, },
}; };
#define OMAP2420_MCBSP_PDATA_SZ ARRAY_SIZE(omap2420_mcbsp_pdata) #define OMAP2420_MCBSP_PDATA_SZ ARRAY_SIZE(omap2420_mcbsp_pdata)
...@@ -86,8 +80,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = { ...@@ -86,8 +80,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
.rx_irq = INT_24XX_MCBSP1_IRQ_RX, .rx_irq = INT_24XX_MCBSP1_IRQ_RX,
.tx_irq = INT_24XX_MCBSP1_IRQ_TX, .tx_irq = INT_24XX_MCBSP1_IRQ_TX,
.ops = &omap2_mcbsp_ops, .ops = &omap2_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 2,
}, },
{ {
.phys_base = OMAP24XX_MCBSP2_BASE, .phys_base = OMAP24XX_MCBSP2_BASE,
...@@ -96,8 +88,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = { ...@@ -96,8 +88,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
.rx_irq = INT_24XX_MCBSP2_IRQ_RX, .rx_irq = INT_24XX_MCBSP2_IRQ_RX,
.tx_irq = INT_24XX_MCBSP2_IRQ_TX, .tx_irq = INT_24XX_MCBSP2_IRQ_TX,
.ops = &omap2_mcbsp_ops, .ops = &omap2_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 2,
}, },
{ {
.phys_base = OMAP2430_MCBSP3_BASE, .phys_base = OMAP2430_MCBSP3_BASE,
...@@ -106,8 +96,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = { ...@@ -106,8 +96,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
.rx_irq = INT_24XX_MCBSP3_IRQ_RX, .rx_irq = INT_24XX_MCBSP3_IRQ_RX,
.tx_irq = INT_24XX_MCBSP3_IRQ_TX, .tx_irq = INT_24XX_MCBSP3_IRQ_TX,
.ops = &omap2_mcbsp_ops, .ops = &omap2_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 2,
}, },
{ {
.phys_base = OMAP2430_MCBSP4_BASE, .phys_base = OMAP2430_MCBSP4_BASE,
...@@ -116,8 +104,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = { ...@@ -116,8 +104,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
.rx_irq = INT_24XX_MCBSP4_IRQ_RX, .rx_irq = INT_24XX_MCBSP4_IRQ_RX,
.tx_irq = INT_24XX_MCBSP4_IRQ_TX, .tx_irq = INT_24XX_MCBSP4_IRQ_TX,
.ops = &omap2_mcbsp_ops, .ops = &omap2_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 2,
}, },
{ {
.phys_base = OMAP2430_MCBSP5_BASE, .phys_base = OMAP2430_MCBSP5_BASE,
...@@ -126,8 +112,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = { ...@@ -126,8 +112,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
.rx_irq = INT_24XX_MCBSP5_IRQ_RX, .rx_irq = INT_24XX_MCBSP5_IRQ_RX,
.tx_irq = INT_24XX_MCBSP5_IRQ_TX, .tx_irq = INT_24XX_MCBSP5_IRQ_TX,
.ops = &omap2_mcbsp_ops, .ops = &omap2_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 2,
}, },
}; };
#define OMAP2430_MCBSP_PDATA_SZ ARRAY_SIZE(omap2430_mcbsp_pdata) #define OMAP2430_MCBSP_PDATA_SZ ARRAY_SIZE(omap2430_mcbsp_pdata)
...@@ -145,8 +129,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = { ...@@ -145,8 +129,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
.rx_irq = INT_24XX_MCBSP1_IRQ_RX, .rx_irq = INT_24XX_MCBSP1_IRQ_RX,
.tx_irq = INT_24XX_MCBSP1_IRQ_TX, .tx_irq = INT_24XX_MCBSP1_IRQ_TX,
.ops = &omap2_mcbsp_ops, .ops = &omap2_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 2,
}, },
{ {
.phys_base = OMAP34XX_MCBSP2_BASE, .phys_base = OMAP34XX_MCBSP2_BASE,
...@@ -155,8 +137,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = { ...@@ -155,8 +137,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
.rx_irq = INT_24XX_MCBSP2_IRQ_RX, .rx_irq = INT_24XX_MCBSP2_IRQ_RX,
.tx_irq = INT_24XX_MCBSP2_IRQ_TX, .tx_irq = INT_24XX_MCBSP2_IRQ_TX,
.ops = &omap2_mcbsp_ops, .ops = &omap2_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 2,
}, },
{ {
.phys_base = OMAP34XX_MCBSP3_BASE, .phys_base = OMAP34XX_MCBSP3_BASE,
...@@ -165,8 +145,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = { ...@@ -165,8 +145,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
.rx_irq = INT_24XX_MCBSP3_IRQ_RX, .rx_irq = INT_24XX_MCBSP3_IRQ_RX,
.tx_irq = INT_24XX_MCBSP3_IRQ_TX, .tx_irq = INT_24XX_MCBSP3_IRQ_TX,
.ops = &omap2_mcbsp_ops, .ops = &omap2_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 2,
}, },
{ {
.phys_base = OMAP34XX_MCBSP4_BASE, .phys_base = OMAP34XX_MCBSP4_BASE,
...@@ -175,8 +153,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = { ...@@ -175,8 +153,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
.rx_irq = INT_24XX_MCBSP4_IRQ_RX, .rx_irq = INT_24XX_MCBSP4_IRQ_RX,
.tx_irq = INT_24XX_MCBSP4_IRQ_TX, .tx_irq = INT_24XX_MCBSP4_IRQ_TX,
.ops = &omap2_mcbsp_ops, .ops = &omap2_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 2,
}, },
{ {
.phys_base = OMAP34XX_MCBSP5_BASE, .phys_base = OMAP34XX_MCBSP5_BASE,
...@@ -185,8 +161,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = { ...@@ -185,8 +161,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
.rx_irq = INT_24XX_MCBSP5_IRQ_RX, .rx_irq = INT_24XX_MCBSP5_IRQ_RX,
.tx_irq = INT_24XX_MCBSP5_IRQ_TX, .tx_irq = INT_24XX_MCBSP5_IRQ_TX,
.ops = &omap2_mcbsp_ops, .ops = &omap2_mcbsp_ops,
.clk_names = clk_names,
.num_clks = 2,
}, },
}; };
#define OMAP34XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap34xx_mcbsp_pdata) #define OMAP34XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap34xx_mcbsp_pdata)
......
This diff is collapsed.
...@@ -103,7 +103,7 @@ static struct platform_suspend_ops omap_pm_ops = { ...@@ -103,7 +103,7 @@ static struct platform_suspend_ops omap_pm_ops = {
.valid = suspend_valid_only_mem, .valid = suspend_valid_only_mem,
}; };
int __init omap2_pm_init(void) static int __init omap2_pm_init(void)
{ {
return 0; return 0;
} }
......
...@@ -171,13 +171,19 @@ static struct powerdomain *powerdomains_omap[] __initdata = { ...@@ -171,13 +171,19 @@ static struct powerdomain *powerdomains_omap[] __initdata = {
&iva2_pwrdm, &iva2_pwrdm,
&mpu_34xx_pwrdm, &mpu_34xx_pwrdm,
&neon_pwrdm, &neon_pwrdm,
&core_34xx_pwrdm, &core_34xx_pre_es3_1_pwrdm,
&core_34xx_es3_1_pwrdm,
&cam_pwrdm, &cam_pwrdm,
&dss_pwrdm, &dss_pwrdm,
&per_pwrdm, &per_pwrdm,
&emu_pwrdm, &emu_pwrdm,
&sgx_pwrdm, &sgx_pwrdm,
&usbhost_pwrdm, &usbhost_pwrdm,
&dpll1_pwrdm,
&dpll2_pwrdm,
&dpll3_pwrdm,
&dpll4_pwrdm,
&dpll5_pwrdm,
#endif #endif
NULL NULL
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment