OMAP2 clock: drop DELAYED_APP clock flag
All of the clocks that are marked with DELAYED_APP are changed as part of the virt_prcm_set OPP virtual clock. On 24xx, these clocks all need to be changed as part of a group to keep the clock tree functional - hence the need for the VALID_CONFIG bit, which is not present on later OMAPs. These clocks should not be rate-changed independently. So prevent these clocks from being changed independently by dropping their .round_rate and .set_rate function pointers. It then turns out that the DELAYED_APP clock flag is no longer useful, so drop it and the associated code and renumber the clock flags. Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Richard Woodruff <r-woodruff2@ti.com>
This commit is contained in:
Родитель
5173804fbb
Коммит
8c34974ab0
|
@ -377,8 +377,6 @@ int omap2_clksel_set_rate(struct clk *clk, unsigned long rate)
|
||||||
|
|
||||||
clk->rate = clk->parent->rate / new_div;
|
clk->rate = clk->parent->rate / new_div;
|
||||||
|
|
||||||
omap2xxx_clk_commit(clk);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -400,8 +398,6 @@ int omap2_clksel_set_parent(struct clk *clk, struct clk *new_parent)
|
||||||
__raw_writel(v, clk->clksel_reg);
|
__raw_writel(v, clk->clksel_reg);
|
||||||
v = __raw_readl(clk->clksel_reg); /* OCP barrier */
|
v = __raw_readl(clk->clksel_reg); /* OCP barrier */
|
||||||
|
|
||||||
omap2xxx_clk_commit(clk);
|
|
||||||
|
|
||||||
clk_reparent(clk, new_parent);
|
clk_reparent(clk, new_parent);
|
||||||
|
|
||||||
/* CLKSEL clocks follow their parents' rates, divided by a divisor */
|
/* CLKSEL clocks follow their parents' rates, divided by a divisor */
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* linux/arch/arm/mach-omap2/clock.c
|
* linux/arch/arm/mach-omap2/clock.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2005-2008 Texas Instruments, Inc.
|
* Copyright (C) 2005-2008 Texas Instruments, Inc.
|
||||||
* Copyright (C) 2004-2008 Nokia Corporation
|
* Copyright (C) 2004-2010 Nokia Corporation
|
||||||
*
|
*
|
||||||
* Contacts:
|
* Contacts:
|
||||||
* Richard Woodruff <r-woodruff2@ti.com>
|
* Richard Woodruff <r-woodruff2@ti.com>
|
||||||
|
@ -14,12 +14,9 @@
|
||||||
*/
|
*/
|
||||||
#undef DEBUG
|
#undef DEBUG
|
||||||
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/device.h>
|
|
||||||
#include <linux/list.h>
|
#include <linux/list.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <linux/delay.h>
|
|
||||||
#include <linux/clk.h>
|
#include <linux/clk.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
|
@ -88,28 +85,6 @@ static void _omap2_clk_disable(struct clk *clk)
|
||||||
|
|
||||||
/* Public functions */
|
/* Public functions */
|
||||||
|
|
||||||
/**
|
|
||||||
* omap2xxx_clk_commit - commit clock parent/rate changes in hardware
|
|
||||||
* @clk: struct clk *
|
|
||||||
*
|
|
||||||
* If @clk has the DELAYED_APP flag set, meaning that parent/rate changes
|
|
||||||
* don't take effect until the VALID_CONFIG bit is written, write the
|
|
||||||
* VALID_CONFIG bit and wait for the write to complete. No return value.
|
|
||||||
*/
|
|
||||||
void omap2xxx_clk_commit(struct clk *clk)
|
|
||||||
{
|
|
||||||
if (!cpu_is_omap24xx())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!(clk->flags & DELAYED_APP))
|
|
||||||
return;
|
|
||||||
|
|
||||||
prm_write_mod_reg(OMAP24XX_VALID_CONFIG, OMAP24XX_GR_MOD,
|
|
||||||
OMAP2_PRCM_CLKCFG_CTRL_OFFSET);
|
|
||||||
/* OCP barrier */
|
|
||||||
prm_read_mod_reg(OMAP24XX_GR_MOD, OMAP2_PRCM_CLKCFG_CTRL_OFFSET);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* omap2_init_clk_clkdm - look up a clockdomain name, store pointer in clk
|
* omap2_init_clk_clkdm - look up a clockdomain name, store pointer in clk
|
||||||
* @clk: OMAP clock struct ptr to use
|
* @clk: OMAP clock struct ptr to use
|
||||||
|
|
|
@ -119,7 +119,6 @@ void omap2_clk_dflt_find_companion(struct clk *clk, void __iomem **other_reg,
|
||||||
u8 *other_bit);
|
u8 *other_bit);
|
||||||
void omap2_clk_dflt_find_idlest(struct clk *clk, void __iomem **idlest_reg,
|
void omap2_clk_dflt_find_idlest(struct clk *clk, void __iomem **idlest_reg,
|
||||||
u8 *idlest_bit, u8 *idlest_val);
|
u8 *idlest_bit, u8 *idlest_val);
|
||||||
void omap2xxx_clk_commit(struct clk *clk);
|
|
||||||
|
|
||||||
extern u8 cpu_mask;
|
extern u8 cpu_mask;
|
||||||
|
|
||||||
|
|
|
@ -404,7 +404,6 @@ static struct clk mpu_ck = { /* Control cpu */
|
||||||
.name = "mpu_ck",
|
.name = "mpu_ck",
|
||||||
.ops = &clkops_null,
|
.ops = &clkops_null,
|
||||||
.parent = &core_ck,
|
.parent = &core_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "mpu_clkdm",
|
.clkdm_name = "mpu_clkdm",
|
||||||
.init = &omap2_init_clksel_parent,
|
.init = &omap2_init_clksel_parent,
|
||||||
.clksel_reg = OMAP_CM_REGADDR(MPU_MOD, CM_CLKSEL),
|
.clksel_reg = OMAP_CM_REGADDR(MPU_MOD, CM_CLKSEL),
|
||||||
|
@ -443,7 +442,6 @@ static struct clk dsp_fck = {
|
||||||
.name = "dsp_fck",
|
.name = "dsp_fck",
|
||||||
.ops = &clkops_omap2_dflt_wait,
|
.ops = &clkops_omap2_dflt_wait,
|
||||||
.parent = &core_ck,
|
.parent = &core_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "dsp_clkdm",
|
.clkdm_name = "dsp_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_FCLKEN),
|
.enable_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_FCLKEN),
|
||||||
.enable_bit = OMAP24XX_CM_FCLKEN_DSP_EN_DSP_SHIFT,
|
.enable_bit = OMAP24XX_CM_FCLKEN_DSP_EN_DSP_SHIFT,
|
||||||
|
@ -470,7 +468,6 @@ static struct clk dsp_irate_ick = {
|
||||||
.name = "dsp_irate_ick",
|
.name = "dsp_irate_ick",
|
||||||
.ops = &clkops_null,
|
.ops = &clkops_null,
|
||||||
.parent = &dsp_fck,
|
.parent = &dsp_fck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clksel_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_CLKSEL),
|
.clksel_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_CLKSEL),
|
||||||
.clksel_mask = OMAP24XX_CLKSEL_DSP_IF_MASK,
|
.clksel_mask = OMAP24XX_CLKSEL_DSP_IF_MASK,
|
||||||
.clksel = dsp_irate_ick_clksel,
|
.clksel = dsp_irate_ick_clksel,
|
||||||
|
@ -495,7 +492,6 @@ static struct clk iva1_ifck = {
|
||||||
.name = "iva1_ifck",
|
.name = "iva1_ifck",
|
||||||
.ops = &clkops_omap2_dflt_wait,
|
.ops = &clkops_omap2_dflt_wait,
|
||||||
.parent = &core_ck,
|
.parent = &core_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "iva1_clkdm",
|
.clkdm_name = "iva1_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_FCLKEN),
|
.enable_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_FCLKEN),
|
||||||
.enable_bit = OMAP2420_EN_IVA_COP_SHIFT,
|
.enable_bit = OMAP2420_EN_IVA_COP_SHIFT,
|
||||||
|
@ -556,7 +552,6 @@ static struct clk core_l3_ck = { /* Used for ick and fck, interconnect */
|
||||||
.name = "core_l3_ck",
|
.name = "core_l3_ck",
|
||||||
.ops = &clkops_null,
|
.ops = &clkops_null,
|
||||||
.parent = &core_ck,
|
.parent = &core_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "core_l3_clkdm",
|
.clkdm_name = "core_l3_clkdm",
|
||||||
.clksel_reg = OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1),
|
.clksel_reg = OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1),
|
||||||
.clksel_mask = OMAP24XX_CLKSEL_L3_MASK,
|
.clksel_mask = OMAP24XX_CLKSEL_L3_MASK,
|
||||||
|
@ -582,7 +577,6 @@ static struct clk usb_l4_ick = { /* FS-USB interface clock */
|
||||||
.name = "usb_l4_ick",
|
.name = "usb_l4_ick",
|
||||||
.ops = &clkops_omap2_dflt_wait,
|
.ops = &clkops_omap2_dflt_wait,
|
||||||
.parent = &core_l3_ck,
|
.parent = &core_l3_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "core_l4_clkdm",
|
.clkdm_name = "core_l4_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2),
|
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2),
|
||||||
.enable_bit = OMAP24XX_EN_USB_SHIFT,
|
.enable_bit = OMAP24XX_EN_USB_SHIFT,
|
||||||
|
@ -614,14 +608,11 @@ static struct clk l4_ck = { /* used both as an ick and fck */
|
||||||
.name = "l4_ck",
|
.name = "l4_ck",
|
||||||
.ops = &clkops_null,
|
.ops = &clkops_null,
|
||||||
.parent = &core_l3_ck,
|
.parent = &core_l3_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "core_l4_clkdm",
|
.clkdm_name = "core_l4_clkdm",
|
||||||
.clksel_reg = OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1),
|
.clksel_reg = OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1),
|
||||||
.clksel_mask = OMAP24XX_CLKSEL_L4_MASK,
|
.clksel_mask = OMAP24XX_CLKSEL_L4_MASK,
|
||||||
.clksel = l4_clksel,
|
.clksel = l4_clksel,
|
||||||
.recalc = &omap2_clksel_recalc,
|
.recalc = &omap2_clksel_recalc,
|
||||||
.round_rate = &omap2_clksel_round_rate,
|
|
||||||
.set_rate = &omap2_clksel_set_rate
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -651,7 +642,6 @@ static struct clk ssi_ssr_sst_fck = {
|
||||||
.name = "ssi_fck",
|
.name = "ssi_fck",
|
||||||
.ops = &clkops_omap2_dflt_wait,
|
.ops = &clkops_omap2_dflt_wait,
|
||||||
.parent = &core_ck,
|
.parent = &core_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "core_l3_clkdm",
|
.clkdm_name = "core_l3_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2),
|
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2),
|
||||||
.enable_bit = OMAP24XX_EN_SSI_SHIFT,
|
.enable_bit = OMAP24XX_EN_SSI_SHIFT,
|
||||||
|
@ -659,8 +649,6 @@ static struct clk ssi_ssr_sst_fck = {
|
||||||
.clksel_mask = OMAP24XX_CLKSEL_SSI_MASK,
|
.clksel_mask = OMAP24XX_CLKSEL_SSI_MASK,
|
||||||
.clksel = ssi_ssr_sst_fck_clksel,
|
.clksel = ssi_ssr_sst_fck_clksel,
|
||||||
.recalc = &omap2_clksel_recalc,
|
.recalc = &omap2_clksel_recalc,
|
||||||
.round_rate = &omap2_clksel_round_rate,
|
|
||||||
.set_rate = &omap2_clksel_set_rate
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -715,7 +703,6 @@ static struct clk gfx_2d_fck = {
|
||||||
.name = "gfx_2d_fck",
|
.name = "gfx_2d_fck",
|
||||||
.ops = &clkops_omap2_dflt_wait,
|
.ops = &clkops_omap2_dflt_wait,
|
||||||
.parent = &core_l3_ck,
|
.parent = &core_l3_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "gfx_clkdm",
|
.clkdm_name = "gfx_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(GFX_MOD, CM_FCLKEN),
|
.enable_reg = OMAP_CM_REGADDR(GFX_MOD, CM_FCLKEN),
|
||||||
.enable_bit = OMAP24XX_EN_2D_SHIFT,
|
.enable_bit = OMAP24XX_EN_2D_SHIFT,
|
||||||
|
@ -784,7 +771,6 @@ static struct clk dss1_fck = {
|
||||||
.name = "dss1_fck",
|
.name = "dss1_fck",
|
||||||
.ops = &clkops_omap2_dflt,
|
.ops = &clkops_omap2_dflt,
|
||||||
.parent = &core_ck, /* Core or sys */
|
.parent = &core_ck, /* Core or sys */
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "dss_clkdm",
|
.clkdm_name = "dss_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
||||||
.enable_bit = OMAP24XX_EN_DSS1_SHIFT,
|
.enable_bit = OMAP24XX_EN_DSS1_SHIFT,
|
||||||
|
@ -793,8 +779,6 @@ static struct clk dss1_fck = {
|
||||||
.clksel_mask = OMAP24XX_CLKSEL_DSS1_MASK,
|
.clksel_mask = OMAP24XX_CLKSEL_DSS1_MASK,
|
||||||
.clksel = dss1_fck_clksel,
|
.clksel = dss1_fck_clksel,
|
||||||
.recalc = &omap2_clksel_recalc,
|
.recalc = &omap2_clksel_recalc,
|
||||||
.round_rate = &omap2_clksel_round_rate,
|
|
||||||
.set_rate = &omap2_clksel_set_rate
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct clksel_rate dss2_fck_sys_rates[] = {
|
static const struct clksel_rate dss2_fck_sys_rates[] = {
|
||||||
|
@ -817,7 +801,6 @@ static struct clk dss2_fck = { /* Alt clk used in power management */
|
||||||
.name = "dss2_fck",
|
.name = "dss2_fck",
|
||||||
.ops = &clkops_omap2_dflt,
|
.ops = &clkops_omap2_dflt,
|
||||||
.parent = &sys_ck, /* fixed at sys_ck or 48MHz */
|
.parent = &sys_ck, /* fixed at sys_ck or 48MHz */
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "dss_clkdm",
|
.clkdm_name = "dss_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
||||||
.enable_bit = OMAP24XX_EN_DSS2_SHIFT,
|
.enable_bit = OMAP24XX_EN_DSS2_SHIFT,
|
||||||
|
@ -1636,7 +1619,6 @@ static struct clk vlynq_fck = {
|
||||||
.name = "vlynq_fck",
|
.name = "vlynq_fck",
|
||||||
.ops = &clkops_omap2_dflt_wait,
|
.ops = &clkops_omap2_dflt_wait,
|
||||||
.parent = &func_96m_ck,
|
.parent = &func_96m_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "core_l3_clkdm",
|
.clkdm_name = "core_l3_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
||||||
.enable_bit = OMAP2420_EN_VLYNQ_SHIFT,
|
.enable_bit = OMAP2420_EN_VLYNQ_SHIFT,
|
||||||
|
@ -1645,8 +1627,6 @@ static struct clk vlynq_fck = {
|
||||||
.clksel_mask = OMAP2420_CLKSEL_VLYNQ_MASK,
|
.clksel_mask = OMAP2420_CLKSEL_VLYNQ_MASK,
|
||||||
.clksel = vlynq_fck_clksel,
|
.clksel = vlynq_fck_clksel,
|
||||||
.recalc = &omap2_clksel_recalc,
|
.recalc = &omap2_clksel_recalc,
|
||||||
.round_rate = &omap2_clksel_round_rate,
|
|
||||||
.set_rate = &omap2_clksel_set_rate
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct clk des_ick = {
|
static struct clk des_ick = {
|
||||||
|
|
|
@ -386,7 +386,6 @@ static struct clk mpu_ck = { /* Control cpu */
|
||||||
.name = "mpu_ck",
|
.name = "mpu_ck",
|
||||||
.ops = &clkops_null,
|
.ops = &clkops_null,
|
||||||
.parent = &core_ck,
|
.parent = &core_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "mpu_clkdm",
|
.clkdm_name = "mpu_clkdm",
|
||||||
.init = &omap2_init_clksel_parent,
|
.init = &omap2_init_clksel_parent,
|
||||||
.clksel_reg = OMAP_CM_REGADDR(MPU_MOD, CM_CLKSEL),
|
.clksel_reg = OMAP_CM_REGADDR(MPU_MOD, CM_CLKSEL),
|
||||||
|
@ -422,7 +421,6 @@ static struct clk dsp_fck = {
|
||||||
.name = "dsp_fck",
|
.name = "dsp_fck",
|
||||||
.ops = &clkops_omap2_dflt_wait,
|
.ops = &clkops_omap2_dflt_wait,
|
||||||
.parent = &core_ck,
|
.parent = &core_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "dsp_clkdm",
|
.clkdm_name = "dsp_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_FCLKEN),
|
.enable_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_FCLKEN),
|
||||||
.enable_bit = OMAP24XX_CM_FCLKEN_DSP_EN_DSP_SHIFT,
|
.enable_bit = OMAP24XX_CM_FCLKEN_DSP_EN_DSP_SHIFT,
|
||||||
|
@ -450,7 +448,6 @@ static struct clk dsp_irate_ick = {
|
||||||
.name = "dsp_irate_ick",
|
.name = "dsp_irate_ick",
|
||||||
.ops = &clkops_null,
|
.ops = &clkops_null,
|
||||||
.parent = &dsp_fck,
|
.parent = &dsp_fck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clksel_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_CLKSEL),
|
.clksel_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_CLKSEL),
|
||||||
.clksel_mask = OMAP24XX_CLKSEL_DSP_IF_MASK,
|
.clksel_mask = OMAP24XX_CLKSEL_DSP_IF_MASK,
|
||||||
.clksel = dsp_irate_ick_clksel,
|
.clksel = dsp_irate_ick_clksel,
|
||||||
|
@ -501,7 +498,6 @@ static struct clk core_l3_ck = { /* Used for ick and fck, interconnect */
|
||||||
.name = "core_l3_ck",
|
.name = "core_l3_ck",
|
||||||
.ops = &clkops_null,
|
.ops = &clkops_null,
|
||||||
.parent = &core_ck,
|
.parent = &core_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "core_l3_clkdm",
|
.clkdm_name = "core_l3_clkdm",
|
||||||
.clksel_reg = OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1),
|
.clksel_reg = OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1),
|
||||||
.clksel_mask = OMAP24XX_CLKSEL_L3_MASK,
|
.clksel_mask = OMAP24XX_CLKSEL_L3_MASK,
|
||||||
|
@ -527,7 +523,6 @@ static struct clk usb_l4_ick = { /* FS-USB interface clock */
|
||||||
.name = "usb_l4_ick",
|
.name = "usb_l4_ick",
|
||||||
.ops = &clkops_omap2_dflt_wait,
|
.ops = &clkops_omap2_dflt_wait,
|
||||||
.parent = &core_l3_ck,
|
.parent = &core_l3_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "core_l4_clkdm",
|
.clkdm_name = "core_l4_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2),
|
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2),
|
||||||
.enable_bit = OMAP24XX_EN_USB_SHIFT,
|
.enable_bit = OMAP24XX_EN_USB_SHIFT,
|
||||||
|
@ -559,14 +554,11 @@ static struct clk l4_ck = { /* used both as an ick and fck */
|
||||||
.name = "l4_ck",
|
.name = "l4_ck",
|
||||||
.ops = &clkops_null,
|
.ops = &clkops_null,
|
||||||
.parent = &core_l3_ck,
|
.parent = &core_l3_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "core_l4_clkdm",
|
.clkdm_name = "core_l4_clkdm",
|
||||||
.clksel_reg = OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1),
|
.clksel_reg = OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1),
|
||||||
.clksel_mask = OMAP24XX_CLKSEL_L4_MASK,
|
.clksel_mask = OMAP24XX_CLKSEL_L4_MASK,
|
||||||
.clksel = l4_clksel,
|
.clksel = l4_clksel,
|
||||||
.recalc = &omap2_clksel_recalc,
|
.recalc = &omap2_clksel_recalc,
|
||||||
.round_rate = &omap2_clksel_round_rate,
|
|
||||||
.set_rate = &omap2_clksel_set_rate
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -595,7 +587,6 @@ static struct clk ssi_ssr_sst_fck = {
|
||||||
.name = "ssi_fck",
|
.name = "ssi_fck",
|
||||||
.ops = &clkops_omap2_dflt_wait,
|
.ops = &clkops_omap2_dflt_wait,
|
||||||
.parent = &core_ck,
|
.parent = &core_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "core_l3_clkdm",
|
.clkdm_name = "core_l3_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2),
|
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2),
|
||||||
.enable_bit = OMAP24XX_EN_SSI_SHIFT,
|
.enable_bit = OMAP24XX_EN_SSI_SHIFT,
|
||||||
|
@ -603,8 +594,6 @@ static struct clk ssi_ssr_sst_fck = {
|
||||||
.clksel_mask = OMAP24XX_CLKSEL_SSI_MASK,
|
.clksel_mask = OMAP24XX_CLKSEL_SSI_MASK,
|
||||||
.clksel = ssi_ssr_sst_fck_clksel,
|
.clksel = ssi_ssr_sst_fck_clksel,
|
||||||
.recalc = &omap2_clksel_recalc,
|
.recalc = &omap2_clksel_recalc,
|
||||||
.round_rate = &omap2_clksel_round_rate,
|
|
||||||
.set_rate = &omap2_clksel_set_rate
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -659,7 +648,6 @@ static struct clk gfx_2d_fck = {
|
||||||
.name = "gfx_2d_fck",
|
.name = "gfx_2d_fck",
|
||||||
.ops = &clkops_omap2_dflt_wait,
|
.ops = &clkops_omap2_dflt_wait,
|
||||||
.parent = &core_l3_ck,
|
.parent = &core_l3_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "gfx_clkdm",
|
.clkdm_name = "gfx_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(GFX_MOD, CM_FCLKEN),
|
.enable_reg = OMAP_CM_REGADDR(GFX_MOD, CM_FCLKEN),
|
||||||
.enable_bit = OMAP24XX_EN_2D_SHIFT,
|
.enable_bit = OMAP24XX_EN_2D_SHIFT,
|
||||||
|
@ -703,7 +691,6 @@ static struct clk mdm_ick = { /* used both as a ick and fck */
|
||||||
.name = "mdm_ick",
|
.name = "mdm_ick",
|
||||||
.ops = &clkops_omap2_dflt_wait,
|
.ops = &clkops_omap2_dflt_wait,
|
||||||
.parent = &core_ck,
|
.parent = &core_ck,
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "mdm_clkdm",
|
.clkdm_name = "mdm_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(OMAP2430_MDM_MOD, CM_ICLKEN),
|
.enable_reg = OMAP_CM_REGADDR(OMAP2430_MDM_MOD, CM_ICLKEN),
|
||||||
.enable_bit = OMAP2430_CM_ICLKEN_MDM_EN_MDM_SHIFT,
|
.enable_bit = OMAP2430_CM_ICLKEN_MDM_EN_MDM_SHIFT,
|
||||||
|
@ -772,7 +759,6 @@ static struct clk dss1_fck = {
|
||||||
.name = "dss1_fck",
|
.name = "dss1_fck",
|
||||||
.ops = &clkops_omap2_dflt,
|
.ops = &clkops_omap2_dflt,
|
||||||
.parent = &core_ck, /* Core or sys */
|
.parent = &core_ck, /* Core or sys */
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "dss_clkdm",
|
.clkdm_name = "dss_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
||||||
.enable_bit = OMAP24XX_EN_DSS1_SHIFT,
|
.enable_bit = OMAP24XX_EN_DSS1_SHIFT,
|
||||||
|
@ -781,8 +767,6 @@ static struct clk dss1_fck = {
|
||||||
.clksel_mask = OMAP24XX_CLKSEL_DSS1_MASK,
|
.clksel_mask = OMAP24XX_CLKSEL_DSS1_MASK,
|
||||||
.clksel = dss1_fck_clksel,
|
.clksel = dss1_fck_clksel,
|
||||||
.recalc = &omap2_clksel_recalc,
|
.recalc = &omap2_clksel_recalc,
|
||||||
.round_rate = &omap2_clksel_round_rate,
|
|
||||||
.set_rate = &omap2_clksel_set_rate
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct clksel_rate dss2_fck_sys_rates[] = {
|
static const struct clksel_rate dss2_fck_sys_rates[] = {
|
||||||
|
@ -805,7 +789,6 @@ static struct clk dss2_fck = { /* Alt clk used in power management */
|
||||||
.name = "dss2_fck",
|
.name = "dss2_fck",
|
||||||
.ops = &clkops_omap2_dflt,
|
.ops = &clkops_omap2_dflt,
|
||||||
.parent = &sys_ck, /* fixed at sys_ck or 48MHz */
|
.parent = &sys_ck, /* fixed at sys_ck or 48MHz */
|
||||||
.flags = DELAYED_APP,
|
|
||||||
.clkdm_name = "dss_clkdm",
|
.clkdm_name = "dss_clkdm",
|
||||||
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
||||||
.enable_bit = OMAP24XX_EN_DSS2_SHIFT,
|
.enable_bit = OMAP24XX_EN_DSS2_SHIFT,
|
||||||
|
|
|
@ -190,10 +190,9 @@ extern const struct clkops clkops_null;
|
||||||
#define ENABLE_REG_32BIT (1 << 1) /* Use 32-bit access */
|
#define ENABLE_REG_32BIT (1 << 1) /* Use 32-bit access */
|
||||||
#define CLOCK_IDLE_CONTROL (1 << 2)
|
#define CLOCK_IDLE_CONTROL (1 << 2)
|
||||||
#define CLOCK_NO_IDLE_PARENT (1 << 3)
|
#define CLOCK_NO_IDLE_PARENT (1 << 3)
|
||||||
#define DELAYED_APP (1 << 4) /* Delay application of clock */
|
#define ENABLE_ON_INIT (1 << 4) /* Enable upon framework init */
|
||||||
#define ENABLE_ON_INIT (1 << 5) /* Enable upon framework init */
|
#define INVERT_ENABLE (1 << 5) /* 0 enables, 1 disables */
|
||||||
#define INVERT_ENABLE (1 << 6) /* 0 enables, 1 disables */
|
#define ALWAYS_ENABLED (1 << 6)
|
||||||
#define ALWAYS_ENABLED (1 << 7)
|
|
||||||
|
|
||||||
/* Clksel_rate flags */
|
/* Clksel_rate flags */
|
||||||
#define DEFAULT_RATE (1 << 0)
|
#define DEFAULT_RATE (1 << 0)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче