diff options
| -rw-r--r-- | arch/arm/mach-omap2/clock34xx.c | 118 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/clock34xx.h | 85 |
2 files changed, 185 insertions, 18 deletions
diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c index 1c6480d3ad62..cd7819cc0c9e 100644 --- a/arch/arm/mach-omap2/clock34xx.c +++ b/arch/arm/mach-omap2/clock34xx.c | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | * OMAP3-specific clock framework functions | 2 | * OMAP3-specific clock framework functions |
| 3 | * | 3 | * |
| 4 | * Copyright (C) 2007-2008 Texas Instruments, Inc. | 4 | * Copyright (C) 2007-2008 Texas Instruments, Inc. |
| 5 | * Copyright (C) 2007-2008 Nokia Corporation | 5 | * Copyright (C) 2007-2009 Nokia Corporation |
| 6 | * | 6 | * |
| 7 | * Written by Paul Walmsley | 7 | * Written by Paul Walmsley |
| 8 | * Testing and integration fixes by Jouni Högander | 8 | * Testing and integration fixes by Jouni Högander |
| @@ -41,6 +41,37 @@ | |||
| 41 | 41 | ||
| 42 | static const struct clkops clkops_noncore_dpll_ops; | 42 | static const struct clkops clkops_noncore_dpll_ops; |
| 43 | 43 | ||
| 44 | static void omap3430es2_clk_ssi_find_idlest(struct clk *clk, | ||
| 45 | void __iomem **idlest_reg, | ||
| 46 | u8 *idlest_bit); | ||
| 47 | static void omap3430es2_clk_hsotgusb_find_idlest(struct clk *clk, | ||
| 48 | void __iomem **idlest_reg, | ||
| 49 | u8 *idlest_bit); | ||
| 50 | static void omap3430es2_clk_dss_usbhost_find_idlest(struct clk *clk, | ||
| 51 | void __iomem **idlest_reg, | ||
| 52 | u8 *idlest_bit); | ||
| 53 | |||
| 54 | static const struct clkops clkops_omap3430es2_ssi_wait = { | ||
| 55 | .enable = omap2_dflt_clk_enable, | ||
| 56 | .disable = omap2_dflt_clk_disable, | ||
| 57 | .find_idlest = omap3430es2_clk_ssi_find_idlest, | ||
| 58 | .find_companion = omap2_clk_dflt_find_companion, | ||
| 59 | }; | ||
| 60 | |||
| 61 | static const struct clkops clkops_omap3430es2_hsotgusb_wait = { | ||
| 62 | .enable = omap2_dflt_clk_enable, | ||
| 63 | .disable = omap2_dflt_clk_disable, | ||
| 64 | .find_idlest = omap3430es2_clk_hsotgusb_find_idlest, | ||
| 65 | .find_companion = omap2_clk_dflt_find_companion, | ||
| 66 | }; | ||
| 67 | |||
| 68 | static const struct clkops clkops_omap3430es2_dss_usbhost_wait = { | ||
| 69 | .enable = omap2_dflt_clk_enable, | ||
| 70 | .disable = omap2_dflt_clk_disable, | ||
| 71 | .find_idlest = omap3430es2_clk_dss_usbhost_find_idlest, | ||
| 72 | .find_companion = omap2_clk_dflt_find_companion, | ||
| 73 | }; | ||
| 74 | |||
| 44 | #include "clock34xx.h" | 75 | #include "clock34xx.h" |
| 45 | 76 | ||
| 46 | struct omap_clk { | 77 | struct omap_clk { |
| @@ -157,10 +188,13 @@ static struct omap_clk omap34xx_clks[] = { | |||
| 157 | CLK(NULL, "fshostusb_fck", &fshostusb_fck, CK_3430ES1), | 188 | CLK(NULL, "fshostusb_fck", &fshostusb_fck, CK_3430ES1), |
| 158 | CLK(NULL, "core_12m_fck", &core_12m_fck, CK_343X), | 189 | CLK(NULL, "core_12m_fck", &core_12m_fck, CK_343X), |
| 159 | CLK("omap_hdq.0", "fck", &hdq_fck, CK_343X), | 190 | CLK("omap_hdq.0", "fck", &hdq_fck, CK_343X), |
| 160 | CLK(NULL, "ssi_ssr_fck", &ssi_ssr_fck, CK_343X), | 191 | CLK(NULL, "ssi_ssr_fck", &ssi_ssr_fck_3430es1, CK_3430ES1), |
| 161 | CLK(NULL, "ssi_sst_fck", &ssi_sst_fck, CK_343X), | 192 | CLK(NULL, "ssi_ssr_fck", &ssi_ssr_fck_3430es2, CK_3430ES2), |
| 193 | CLK(NULL, "ssi_sst_fck", &ssi_sst_fck_3430es1, CK_3430ES1), | ||
| 194 | CLK(NULL, "ssi_sst_fck", &ssi_sst_fck_3430es2, CK_3430ES2), | ||
| 162 | CLK(NULL, "core_l3_ick", &core_l3_ick, CK_343X), | 195 | CLK(NULL, "core_l3_ick", &core_l3_ick, CK_343X), |
| 163 | CLK("musb_hdrc", "ick", &hsotgusb_ick, CK_343X), | 196 | CLK("musb_hdrc", "ick", &hsotgusb_ick_3430es1, CK_3430ES1), |
| 197 | CLK("musb_hdrc", "ick", &hsotgusb_ick_3430es2, CK_3430ES2), | ||
| 164 | CLK(NULL, "sdrc_ick", &sdrc_ick, CK_343X), | 198 | CLK(NULL, "sdrc_ick", &sdrc_ick, CK_343X), |
| 165 | CLK(NULL, "gpmc_fck", &gpmc_fck, CK_343X), | 199 | CLK(NULL, "gpmc_fck", &gpmc_fck, CK_343X), |
| 166 | CLK(NULL, "security_l3_ick", &security_l3_ick, CK_343X), | 200 | CLK(NULL, "security_l3_ick", &security_l3_ick, CK_343X), |
| @@ -193,18 +227,21 @@ static struct omap_clk omap34xx_clks[] = { | |||
| 193 | CLK(NULL, "mailboxes_ick", &mailboxes_ick, CK_343X), | 227 | CLK(NULL, "mailboxes_ick", &mailboxes_ick, CK_343X), |
| 194 | CLK(NULL, "omapctrl_ick", &omapctrl_ick, CK_343X), | 228 | CLK(NULL, "omapctrl_ick", &omapctrl_ick, CK_343X), |
| 195 | CLK(NULL, "ssi_l4_ick", &ssi_l4_ick, CK_343X), | 229 | CLK(NULL, "ssi_l4_ick", &ssi_l4_ick, CK_343X), |
| 196 | CLK(NULL, "ssi_ick", &ssi_ick, CK_343X), | 230 | CLK(NULL, "ssi_ick", &ssi_ick_3430es1, CK_3430ES1), |
| 231 | CLK(NULL, "ssi_ick", &ssi_ick_3430es2, CK_3430ES2), | ||
| 197 | CLK(NULL, "usb_l4_ick", &usb_l4_ick, CK_3430ES1), | 232 | CLK(NULL, "usb_l4_ick", &usb_l4_ick, CK_3430ES1), |
| 198 | CLK(NULL, "security_l4_ick2", &security_l4_ick2, CK_343X), | 233 | CLK(NULL, "security_l4_ick2", &security_l4_ick2, CK_343X), |
| 199 | CLK(NULL, "aes1_ick", &aes1_ick, CK_343X), | 234 | CLK(NULL, "aes1_ick", &aes1_ick, CK_343X), |
| 200 | CLK("omap_rng", "ick", &rng_ick, CK_343X), | 235 | CLK("omap_rng", "ick", &rng_ick, CK_343X), |
| 201 | CLK(NULL, "sha11_ick", &sha11_ick, CK_343X), | 236 | CLK(NULL, "sha11_ick", &sha11_ick, CK_343X), |
| 202 | CLK(NULL, "des1_ick", &des1_ick, CK_343X), | 237 | CLK(NULL, "des1_ick", &des1_ick, CK_343X), |
| 203 | CLK("omapfb", "dss1_fck", &dss1_alwon_fck, CK_343X), | 238 | CLK("omapfb", "dss1_fck", &dss1_alwon_fck_3430es1, CK_3430ES1), |
| 239 | CLK("omapfb", "dss1_fck", &dss1_alwon_fck_3430es2, CK_3430ES2), | ||
| 204 | CLK("omapfb", "tv_fck", &dss_tv_fck, CK_343X), | 240 | CLK("omapfb", "tv_fck", &dss_tv_fck, CK_343X), |
| 205 | CLK("omapfb", "video_fck", &dss_96m_fck, CK_343X), | 241 | CLK("omapfb", "video_fck", &dss_96m_fck, CK_343X), |
| 206 | CLK("omapfb", "dss2_fck", &dss2_alwon_fck, CK_343X), | 242 | CLK("omapfb", "dss2_fck", &dss2_alwon_fck, CK_343X), |
| 207 | CLK("omapfb", "ick", &dss_ick, CK_343X), | 243 | CLK("omapfb", "ick", &dss_ick_3430es1, CK_3430ES1), |
| 244 | CLK("omapfb", "ick", &dss_ick_3430es2, CK_3430ES2), | ||
| 208 | CLK(NULL, "cam_mclk", &cam_mclk, CK_343X), | 245 | CLK(NULL, "cam_mclk", &cam_mclk, CK_343X), |
| 209 | CLK(NULL, "cam_ick", &cam_ick, CK_343X), | 246 | CLK(NULL, "cam_ick", &cam_ick, CK_343X), |
| 210 | CLK(NULL, "csi2_96m_fck", &csi2_96m_fck, CK_343X), | 247 | CLK(NULL, "csi2_96m_fck", &csi2_96m_fck, CK_343X), |
| @@ -301,6 +338,73 @@ static struct omap_clk omap34xx_clks[] = { | |||
| 301 | #define SDRC_MPURATE_LOOPS 96 | 338 | #define SDRC_MPURATE_LOOPS 96 |
| 302 | 339 | ||
| 303 | /** | 340 | /** |
| 341 | * omap3430es2_clk_ssi_find_idlest - return CM_IDLEST info for SSI | ||
| 342 | * @clk: struct clk * being enabled | ||
| 343 | * @idlest_reg: void __iomem ** to store CM_IDLEST reg address into | ||
| 344 | * @idlest_bit: pointer to a u8 to store the CM_IDLEST bit shift into | ||
| 345 | * | ||
| 346 | * The OMAP3430ES2 SSI target CM_IDLEST bit is at a different shift | ||
| 347 | * from the CM_{I,F}CLKEN bit. Pass back the correct info via | ||
| 348 | * @idlest_reg and @idlest_bit. No return value. | ||
| 349 | */ | ||
| 350 | static void omap3430es2_clk_ssi_find_idlest(struct clk *clk, | ||
| 351 | void __iomem **idlest_reg, | ||
| 352 | u8 *idlest_bit) | ||
| 353 | { | ||
| 354 | u32 r; | ||
| 355 | |||
| 356 | r = (((__force u32)clk->enable_reg & ~0xf0) | 0x20); | ||
| 357 | *idlest_reg = (__force void __iomem *)r; | ||
| 358 | *idlest_bit = OMAP3430ES2_ST_SSI_IDLE_SHIFT; | ||
| 359 | } | ||
| 360 | |||
| 361 | /** | ||
| 362 | * omap3430es2_clk_dss_usbhost_find_idlest - CM_IDLEST info for DSS, USBHOST | ||
| 363 | * @clk: struct clk * being enabled | ||
| 364 | * @idlest_reg: void __iomem ** to store CM_IDLEST reg address into | ||
| 365 | * @idlest_bit: pointer to a u8 to store the CM_IDLEST bit shift into | ||
| 366 | * | ||
| 367 | * Some OMAP modules on OMAP3 ES2+ chips have both initiator and | ||
| 368 | * target IDLEST bits. For our purposes, we are concerned with the | ||
| 369 | * target IDLEST bits, which exist at a different bit position than | ||
| 370 | * the *CLKEN bit position for these modules (DSS and USBHOST) (The | ||
| 371 | * default find_idlest code assumes that they are at the same | ||
| 372 | * position.) No return value. | ||
| 373 | */ | ||
| 374 | static void omap3430es2_clk_dss_usbhost_find_idlest(struct clk *clk, | ||
| 375 | void __iomem **idlest_reg, | ||
| 376 | u8 *idlest_bit) | ||
| 377 | { | ||
| 378 | u32 r; | ||
| 379 | |||
| 380 | r = (((__force u32)clk->enable_reg & ~0xf0) | 0x20); | ||
| 381 | *idlest_reg = (__force void __iomem *)r; | ||
| 382 | /* USBHOST_IDLE has same shift */ | ||
| 383 | *idlest_bit = OMAP3430ES2_ST_DSS_IDLE_SHIFT; | ||
| 384 | } | ||
| 385 | |||
| 386 | /** | ||
| 387 | * omap3430es2_clk_hsotgusb_find_idlest - return CM_IDLEST info for HSOTGUSB | ||
| 388 | * @clk: struct clk * being enabled | ||
| 389 | * @idlest_reg: void __iomem ** to store CM_IDLEST reg address into | ||
| 390 | * @idlest_bit: pointer to a u8 to store the CM_IDLEST bit shift into | ||
| 391 | * | ||
| 392 | * The OMAP3430ES2 HSOTGUSB target CM_IDLEST bit is at a different | ||
| 393 | * shift from the CM_{I,F}CLKEN bit. Pass back the correct info via | ||
| 394 | * @idlest_reg and @idlest_bit. No return value. | ||
| 395 | */ | ||
| 396 | static void omap3430es2_clk_hsotgusb_find_idlest(struct clk *clk, | ||
| 397 | void __iomem **idlest_reg, | ||
| 398 | u8 *idlest_bit) | ||
| 399 | { | ||
| 400 | u32 r; | ||
| 401 | |||
| 402 | r = (((__force u32)clk->enable_reg & ~0xf0) | 0x20); | ||
| 403 | *idlest_reg = (__force void __iomem *)r; | ||
| 404 | *idlest_bit = OMAP3430ES2_ST_HSOTGUSB_IDLE_SHIFT; | ||
| 405 | } | ||
| 406 | |||
| 407 | /** | ||
| 304 | * omap3_dpll_recalc - recalculate DPLL rate | 408 | * omap3_dpll_recalc - recalculate DPLL rate |
| 305 | * @clk: DPLL struct clk | 409 | * @clk: DPLL struct clk |
| 306 | * | 410 | * |
diff --git a/arch/arm/mach-omap2/clock34xx.h b/arch/arm/mach-omap2/clock34xx.h index e433aec4efdd..57cc2725b923 100644 --- a/arch/arm/mach-omap2/clock34xx.h +++ b/arch/arm/mach-omap2/clock34xx.h | |||
| @@ -1568,7 +1568,7 @@ static const struct clksel ssi_ssr_clksel[] = { | |||
| 1568 | { .parent = NULL } | 1568 | { .parent = NULL } |
| 1569 | }; | 1569 | }; |
| 1570 | 1570 | ||
| 1571 | static struct clk ssi_ssr_fck = { | 1571 | static struct clk ssi_ssr_fck_3430es1 = { |
| 1572 | .name = "ssi_ssr_fck", | 1572 | .name = "ssi_ssr_fck", |
| 1573 | .ops = &clkops_omap2_dflt, | 1573 | .ops = &clkops_omap2_dflt, |
| 1574 | .init = &omap2_init_clksel_parent, | 1574 | .init = &omap2_init_clksel_parent, |
| @@ -1581,10 +1581,31 @@ static struct clk ssi_ssr_fck = { | |||
| 1581 | .recalc = &omap2_clksel_recalc, | 1581 | .recalc = &omap2_clksel_recalc, |
| 1582 | }; | 1582 | }; |
| 1583 | 1583 | ||
| 1584 | static struct clk ssi_sst_fck = { | 1584 | static struct clk ssi_ssr_fck_3430es2 = { |
| 1585 | .name = "ssi_ssr_fck", | ||
| 1586 | .ops = &clkops_omap3430es2_ssi_wait, | ||
| 1587 | .init = &omap2_init_clksel_parent, | ||
| 1588 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1), | ||
| 1589 | .enable_bit = OMAP3430_EN_SSI_SHIFT, | ||
| 1590 | .clksel_reg = OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL), | ||
| 1591 | .clksel_mask = OMAP3430_CLKSEL_SSI_MASK, | ||
| 1592 | .clksel = ssi_ssr_clksel, | ||
| 1593 | .clkdm_name = "core_l4_clkdm", | ||
| 1594 | .recalc = &omap2_clksel_recalc, | ||
| 1595 | }; | ||
| 1596 | |||
| 1597 | static struct clk ssi_sst_fck_3430es1 = { | ||
| 1585 | .name = "ssi_sst_fck", | 1598 | .name = "ssi_sst_fck", |
| 1586 | .ops = &clkops_null, | 1599 | .ops = &clkops_null, |
| 1587 | .parent = &ssi_ssr_fck, | 1600 | .parent = &ssi_ssr_fck_3430es1, |
| 1601 | .fixed_div = 2, | ||
| 1602 | .recalc = &omap2_fixed_divisor_recalc, | ||
| 1603 | }; | ||
| 1604 | |||
| 1605 | static struct clk ssi_sst_fck_3430es2 = { | ||
| 1606 | .name = "ssi_sst_fck", | ||
| 1607 | .ops = &clkops_null, | ||
| 1608 | .parent = &ssi_ssr_fck_3430es2, | ||
| 1588 | .fixed_div = 2, | 1609 | .fixed_div = 2, |
| 1589 | .recalc = &omap2_fixed_divisor_recalc, | 1610 | .recalc = &omap2_fixed_divisor_recalc, |
| 1590 | }; | 1611 | }; |
| @@ -1606,9 +1627,19 @@ static struct clk core_l3_ick = { | |||
| 1606 | .recalc = &followparent_recalc, | 1627 | .recalc = &followparent_recalc, |
| 1607 | }; | 1628 | }; |
| 1608 | 1629 | ||
| 1609 | static struct clk hsotgusb_ick = { | 1630 | static struct clk hsotgusb_ick_3430es1 = { |
| 1610 | .name = "hsotgusb_ick", | 1631 | .name = "hsotgusb_ick", |
| 1611 | .ops = &clkops_omap2_dflt_wait, | 1632 | .ops = &clkops_omap2_dflt, |
| 1633 | .parent = &core_l3_ick, | ||
| 1634 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | ||
| 1635 | .enable_bit = OMAP3430_EN_HSOTGUSB_SHIFT, | ||
| 1636 | .clkdm_name = "core_l3_clkdm", | ||
| 1637 | .recalc = &followparent_recalc, | ||
| 1638 | }; | ||
| 1639 | |||
| 1640 | static struct clk hsotgusb_ick_3430es2 = { | ||
| 1641 | .name = "hsotgusb_ick", | ||
| 1642 | .ops = &clkops_omap3430es2_hsotgusb_wait, | ||
| 1612 | .parent = &core_l3_ick, | 1643 | .parent = &core_l3_ick, |
| 1613 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1644 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
| 1614 | .enable_bit = OMAP3430_EN_HSOTGUSB_SHIFT, | 1645 | .enable_bit = OMAP3430_EN_HSOTGUSB_SHIFT, |
| @@ -1947,7 +1978,7 @@ static struct clk ssi_l4_ick = { | |||
| 1947 | .recalc = &followparent_recalc, | 1978 | .recalc = &followparent_recalc, |
| 1948 | }; | 1979 | }; |
| 1949 | 1980 | ||
| 1950 | static struct clk ssi_ick = { | 1981 | static struct clk ssi_ick_3430es1 = { |
| 1951 | .name = "ssi_ick", | 1982 | .name = "ssi_ick", |
| 1952 | .ops = &clkops_omap2_dflt, | 1983 | .ops = &clkops_omap2_dflt, |
| 1953 | .parent = &ssi_l4_ick, | 1984 | .parent = &ssi_l4_ick, |
| @@ -1957,6 +1988,16 @@ static struct clk ssi_ick = { | |||
| 1957 | .recalc = &followparent_recalc, | 1988 | .recalc = &followparent_recalc, |
| 1958 | }; | 1989 | }; |
| 1959 | 1990 | ||
| 1991 | static struct clk ssi_ick_3430es2 = { | ||
| 1992 | .name = "ssi_ick", | ||
| 1993 | .ops = &clkops_omap3430es2_ssi_wait, | ||
| 1994 | .parent = &ssi_l4_ick, | ||
| 1995 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | ||
| 1996 | .enable_bit = OMAP3430_EN_SSI_SHIFT, | ||
| 1997 | .clkdm_name = "core_l4_clkdm", | ||
| 1998 | .recalc = &followparent_recalc, | ||
| 1999 | }; | ||
| 2000 | |||
| 1960 | /* REVISIT: Technically the TRM claims that this is CORE_CLK based, | 2001 | /* REVISIT: Technically the TRM claims that this is CORE_CLK based, |
| 1961 | * but l4_ick makes more sense to me */ | 2002 | * but l4_ick makes more sense to me */ |
| 1962 | 2003 | ||
| @@ -2024,7 +2065,7 @@ static struct clk des1_ick = { | |||
| 2024 | }; | 2065 | }; |
| 2025 | 2066 | ||
| 2026 | /* DSS */ | 2067 | /* DSS */ |
| 2027 | static struct clk dss1_alwon_fck = { | 2068 | static struct clk dss1_alwon_fck_3430es1 = { |
| 2028 | .name = "dss1_alwon_fck", | 2069 | .name = "dss1_alwon_fck", |
| 2029 | .ops = &clkops_omap2_dflt, | 2070 | .ops = &clkops_omap2_dflt, |
| 2030 | .parent = &dpll4_m4x2_ck, | 2071 | .parent = &dpll4_m4x2_ck, |
| @@ -2034,6 +2075,16 @@ static struct clk dss1_alwon_fck = { | |||
| 2034 | .recalc = &followparent_recalc, | 2075 | .recalc = &followparent_recalc, |
| 2035 | }; | 2076 | }; |
| 2036 | 2077 | ||
| 2078 | static struct clk dss1_alwon_fck_3430es2 = { | ||
| 2079 | .name = "dss1_alwon_fck", | ||
| 2080 | .ops = &clkops_omap3430es2_dss_usbhost_wait, | ||
| 2081 | .parent = &dpll4_m4x2_ck, | ||
| 2082 | .enable_reg = OMAP_CM_REGADDR(OMAP3430_DSS_MOD, CM_FCLKEN), | ||
| 2083 | .enable_bit = OMAP3430_EN_DSS1_SHIFT, | ||
| 2084 | .clkdm_name = "dss_clkdm", | ||
| 2085 | .recalc = &followparent_recalc, | ||
| 2086 | }; | ||
| 2087 | |||
| 2037 | static struct clk dss_tv_fck = { | 2088 | static struct clk dss_tv_fck = { |
| 2038 | .name = "dss_tv_fck", | 2089 | .name = "dss_tv_fck", |
| 2039 | .ops = &clkops_omap2_dflt, | 2090 | .ops = &clkops_omap2_dflt, |
| @@ -2067,7 +2118,7 @@ static struct clk dss2_alwon_fck = { | |||
| 2067 | .recalc = &followparent_recalc, | 2118 | .recalc = &followparent_recalc, |
| 2068 | }; | 2119 | }; |
| 2069 | 2120 | ||
| 2070 | static struct clk dss_ick = { | 2121 | static struct clk dss_ick_3430es1 = { |
| 2071 | /* Handles both L3 and L4 clocks */ | 2122 | /* Handles both L3 and L4 clocks */ |
| 2072 | .name = "dss_ick", | 2123 | .name = "dss_ick", |
| 2073 | .ops = &clkops_omap2_dflt, | 2124 | .ops = &clkops_omap2_dflt, |
| @@ -2079,6 +2130,18 @@ static struct clk dss_ick = { | |||
| 2079 | .recalc = &followparent_recalc, | 2130 | .recalc = &followparent_recalc, |
| 2080 | }; | 2131 | }; |
| 2081 | 2132 | ||
| 2133 | static struct clk dss_ick_3430es2 = { | ||
| 2134 | /* Handles both L3 and L4 clocks */ | ||
| 2135 | .name = "dss_ick", | ||
| 2136 | .ops = &clkops_omap3430es2_dss_usbhost_wait, | ||
| 2137 | .parent = &l4_ick, | ||
| 2138 | .init = &omap2_init_clk_clkdm, | ||
| 2139 | .enable_reg = OMAP_CM_REGADDR(OMAP3430_DSS_MOD, CM_ICLKEN), | ||
| 2140 | .enable_bit = OMAP3430_CM_ICLKEN_DSS_EN_DSS_SHIFT, | ||
| 2141 | .clkdm_name = "dss_clkdm", | ||
| 2142 | .recalc = &followparent_recalc, | ||
| 2143 | }; | ||
| 2144 | |||
| 2082 | /* CAM */ | 2145 | /* CAM */ |
| 2083 | 2146 | ||
| 2084 | static struct clk cam_mclk = { | 2147 | static struct clk cam_mclk = { |
| @@ -2118,7 +2181,7 @@ static struct clk csi2_96m_fck = { | |||
| 2118 | 2181 | ||
| 2119 | static struct clk usbhost_120m_fck = { | 2182 | static struct clk usbhost_120m_fck = { |
| 2120 | .name = "usbhost_120m_fck", | 2183 | .name = "usbhost_120m_fck", |
| 2121 | .ops = &clkops_omap2_dflt_wait, | 2184 | .ops = &clkops_omap2_dflt, |
| 2122 | .parent = &dpll5_m2_ck, | 2185 | .parent = &dpll5_m2_ck, |
| 2123 | .init = &omap2_init_clk_clkdm, | 2186 | .init = &omap2_init_clk_clkdm, |
| 2124 | .enable_reg = OMAP_CM_REGADDR(OMAP3430ES2_USBHOST_MOD, CM_FCLKEN), | 2187 | .enable_reg = OMAP_CM_REGADDR(OMAP3430ES2_USBHOST_MOD, CM_FCLKEN), |
| @@ -2129,7 +2192,7 @@ static struct clk usbhost_120m_fck = { | |||
| 2129 | 2192 | ||
| 2130 | static struct clk usbhost_48m_fck = { | 2193 | static struct clk usbhost_48m_fck = { |
| 2131 | .name = "usbhost_48m_fck", | 2194 | .name = "usbhost_48m_fck", |
| 2132 | .ops = &clkops_omap2_dflt_wait, | 2195 | .ops = &clkops_omap3430es2_dss_usbhost_wait, |
| 2133 | .parent = &omap_48m_fck, | 2196 | .parent = &omap_48m_fck, |
| 2134 | .init = &omap2_init_clk_clkdm, | 2197 | .init = &omap2_init_clk_clkdm, |
| 2135 | .enable_reg = OMAP_CM_REGADDR(OMAP3430ES2_USBHOST_MOD, CM_FCLKEN), | 2198 | .enable_reg = OMAP_CM_REGADDR(OMAP3430ES2_USBHOST_MOD, CM_FCLKEN), |
| @@ -2141,7 +2204,7 @@ static struct clk usbhost_48m_fck = { | |||
| 2141 | static struct clk usbhost_ick = { | 2204 | static struct clk usbhost_ick = { |
| 2142 | /* Handles both L3 and L4 clocks */ | 2205 | /* Handles both L3 and L4 clocks */ |
| 2143 | .name = "usbhost_ick", | 2206 | .name = "usbhost_ick", |
| 2144 | .ops = &clkops_omap2_dflt_wait, | 2207 | .ops = &clkops_omap3430es2_dss_usbhost_wait, |
| 2145 | .parent = &l4_ick, | 2208 | .parent = &l4_ick, |
| 2146 | .init = &omap2_init_clk_clkdm, | 2209 | .init = &omap2_init_clk_clkdm, |
| 2147 | .enable_reg = OMAP_CM_REGADDR(OMAP3430ES2_USBHOST_MOD, CM_ICLKEN), | 2210 | .enable_reg = OMAP_CM_REGADDR(OMAP3430ES2_USBHOST_MOD, CM_ICLKEN), |
