aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/clock34xx_data.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/clock34xx_data.c')
-rw-r--r--arch/arm/mach-omap2/clock34xx_data.c118
1 files changed, 118 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/clock34xx_data.c b/arch/arm/mach-omap2/clock34xx_data.c
index 8728f1fbc5b1..221e831a7151 100644
--- a/arch/arm/mach-omap2/clock34xx_data.c
+++ b/arch/arm/mach-omap2/clock34xx_data.c
@@ -2983,6 +2983,113 @@ static struct clk wdt1_fck = {
2983 .recalc = &followparent_recalc, 2983 .recalc = &followparent_recalc,
2984}; 2984};
2985 2985
2986/* Clocks for AM35XX */
2987static struct clk ipss_ick = {
2988 .name = "ipss_ick",
2989 .ops = &clkops_am35xx_ipss_wait,
2990 .parent = &core_l3_ick,
2991 .clkdm_name = "core_l3_clkdm",
2992 .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1),
2993 .enable_bit = AM35XX_EN_IPSS_SHIFT,
2994 .recalc = &followparent_recalc,
2995};
2996
2997static struct clk emac_ick = {
2998 .name = "emac_ick",
2999 .ops = &clkops_am35xx_ipss_module_wait,
3000 .parent = &ipss_ick,
3001 .clkdm_name = "core_l3_clkdm",
3002 .enable_reg = OMAP343X_CTRL_REGADDR(AM35XX_CONTROL_IPSS_CLK_CTRL),
3003 .enable_bit = AM35XX_CPGMAC_VBUSP_CLK_SHIFT,
3004 .recalc = &followparent_recalc,
3005};
3006
3007static struct clk rmii_ck = {
3008 .name = "rmii_ck",
3009 .ops = &clkops_null,
3010 .flags = RATE_FIXED,
3011 .rate = 50000000,
3012};
3013
3014static struct clk emac_fck = {
3015 .name = "emac_fck",
3016 .ops = &clkops_omap2_dflt,
3017 .parent = &rmii_ck,
3018 .enable_reg = OMAP343X_CTRL_REGADDR(AM35XX_CONTROL_IPSS_CLK_CTRL),
3019 .enable_bit = AM35XX_CPGMAC_FCLK_SHIFT,
3020 .recalc = &followparent_recalc,
3021};
3022
3023static struct clk hsotgusb_ick_am35xx = {
3024 .name = "hsotgusb_ick",
3025 .ops = &clkops_am35xx_ipss_module_wait,
3026 .parent = &ipss_ick,
3027 .clkdm_name = "core_l3_clkdm",
3028 .enable_reg = OMAP343X_CTRL_REGADDR(AM35XX_CONTROL_IPSS_CLK_CTRL),
3029 .enable_bit = AM35XX_USBOTG_VBUSP_CLK_SHIFT,
3030 .recalc = &followparent_recalc,
3031};
3032
3033static struct clk hsotgusb_fck_am35xx = {
3034 .name = "hsotgusb_fck",
3035 .ops = &clkops_omap2_dflt,
3036 .parent = &sys_ck,
3037 .clkdm_name = "core_l3_clkdm",
3038 .enable_reg = OMAP343X_CTRL_REGADDR(AM35XX_CONTROL_IPSS_CLK_CTRL),
3039 .enable_bit = AM35XX_USBOTG_FCLK_SHIFT,
3040 .recalc = &followparent_recalc,
3041};
3042
3043static struct clk hecc_ck = {
3044 .name = "hecc_ck",
3045 .ops = &clkops_am35xx_ipss_module_wait,
3046 .parent = &sys_ck,
3047 .clkdm_name = "core_l3_clkdm",
3048 .enable_reg = OMAP343X_CTRL_REGADDR(AM35XX_CONTROL_IPSS_CLK_CTRL),
3049 .enable_bit = AM35XX_HECC_VBUSP_CLK_SHIFT,
3050 .recalc = &followparent_recalc,
3051};
3052
3053static struct clk vpfe_ick = {
3054 .name = "vpfe_ick",
3055 .ops = &clkops_am35xx_ipss_module_wait,
3056 .parent = &ipss_ick,
3057 .clkdm_name = "core_l3_clkdm",
3058 .enable_reg = OMAP343X_CTRL_REGADDR(AM35XX_CONTROL_IPSS_CLK_CTRL),
3059 .enable_bit = AM35XX_VPFE_VBUSP_CLK_SHIFT,
3060 .recalc = &followparent_recalc,
3061};
3062
3063static struct clk pclk_ck = {
3064 .name = "pclk_ck",
3065 .ops = &clkops_null,
3066 .flags = RATE_FIXED,
3067 .rate = 27000000,
3068};
3069
3070static struct clk vpfe_fck = {
3071 .name = "vpfe_fck",
3072 .ops = &clkops_omap2_dflt,
3073 .parent = &pclk_ck,
3074 .enable_reg = OMAP343X_CTRL_REGADDR(AM35XX_CONTROL_IPSS_CLK_CTRL),
3075 .enable_bit = AM35XX_VPFE_FCLK_SHIFT,
3076 .recalc = &followparent_recalc,
3077};
3078
3079/*
3080 * The UART1/2 functional clock acts as the functional
3081 * clock for UART4. No separate fclk control available.
3082 */
3083static struct clk uart4_ick_am35xx = {
3084 .name = "uart4_ick",
3085 .ops = &clkops_omap2_dflt_wait,
3086 .parent = &core_l4_ick,
3087 .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1),
3088 .enable_bit = AM35XX_EN_UART4_SHIFT,
3089 .clkdm_name = "core_l4_clkdm",
3090 .recalc = &followparent_recalc,
3091};
3092
2986 3093
2987/* 3094/*
2988 * clkdev 3095 * clkdev
@@ -3209,6 +3316,17 @@ static struct omap_clk omap3xxx_clks[] = {
3209 CLK(NULL, "secure_32k_fck", &secure_32k_fck, CK_3XXX), 3316 CLK(NULL, "secure_32k_fck", &secure_32k_fck, CK_3XXX),
3210 CLK(NULL, "gpt12_fck", &gpt12_fck, CK_3XXX), 3317 CLK(NULL, "gpt12_fck", &gpt12_fck, CK_3XXX),
3211 CLK(NULL, "wdt1_fck", &wdt1_fck, CK_3XXX), 3318 CLK(NULL, "wdt1_fck", &wdt1_fck, CK_3XXX),
3319 CLK(NULL, "ipss_ick", &ipss_ick, CK_AM35XX),
3320 CLK(NULL, "rmii_ck", &rmii_ck, CK_AM35XX),
3321 CLK(NULL, "pclk_ck", &pclk_ck, CK_AM35XX),
3322 CLK("davinci_emac", "ick", &emac_ick, CK_AM35XX),
3323 CLK("davinci_emac", "fck", &emac_fck, CK_AM35XX),
3324 CLK("vpfe-capture", "master", &vpfe_ick, CK_AM35XX),
3325 CLK("vpfe-capture", "slave", &vpfe_fck, CK_AM35XX),
3326 CLK("musb_hdrc", "ick", &hsotgusb_ick_am35xx, CK_AM35XX),
3327 CLK("musb_hdrc", "fck", &hsotgusb_fck_am35xx, CK_AM35XX),
3328 CLK(NULL, "hecc_ck", &hecc_ck, CK_AM35XX),
3329 CLK(NULL, "uart4_ick", &uart4_ick_am35xx, CK_AM35XX),
3212}; 3330};
3213 3331
3214 3332