diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2012-11-10 06:04:15 -0500 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2013-01-22 18:44:03 -0500 |
commit | 7b2e1277598e4187c9be3e61fd9b0f0423f97986 (patch) | |
tree | 21b01842717967168c5f4c1d549c74bf9ff7b991 /arch/arm/mach-omap2 | |
parent | 7d1f9aeff1ee4a20b1aeb377dd0f579fe9647619 (diff) |
ARM: OMAP3: clock: Back-propagate rate change from cam_mclk to dpll4_m5
The cam_mclk clock is generated through the following clocks chain:
dpll4 -> dpll4_m5 -> dpll4_m5x2 -> cam_mclk
As dpll4_m5 and dpll4_m5x2 do not driver any clock other than cam_mclk,
back-propagate the cam_clk rate changes up to dpll4_m5.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Mike Turquette <mturquette@linaro.org>
Acked-by: Sakari Ailus <sakari.ailus@iki.fi>
Tested-by: Sakari Ailus <sakari.ailus@iki.fi>
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r-- | arch/arm/mach-omap2/cclock3xxx_data.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/cclock3xxx_data.c b/arch/arm/mach-omap2/cclock3xxx_data.c index 6ef87580c33f..4579c3c5338f 100644 --- a/arch/arm/mach-omap2/cclock3xxx_data.c +++ b/arch/arm/mach-omap2/cclock3xxx_data.c | |||
@@ -426,6 +426,7 @@ static struct clk dpll4_m5x2_ck_3630 = { | |||
426 | .parent_names = dpll4_m5x2_ck_parent_names, | 426 | .parent_names = dpll4_m5x2_ck_parent_names, |
427 | .num_parents = ARRAY_SIZE(dpll4_m5x2_ck_parent_names), | 427 | .num_parents = ARRAY_SIZE(dpll4_m5x2_ck_parent_names), |
428 | .ops = &dpll4_m5x2_ck_3630_ops, | 428 | .ops = &dpll4_m5x2_ck_3630_ops, |
429 | .flags = CLK_SET_RATE_PARENT, | ||
429 | }; | 430 | }; |
430 | 431 | ||
431 | static struct clk cam_mclk; | 432 | static struct clk cam_mclk; |
@@ -443,7 +444,14 @@ static struct clk_hw_omap cam_mclk_hw = { | |||
443 | .clkdm_name = "cam_clkdm", | 444 | .clkdm_name = "cam_clkdm", |
444 | }; | 445 | }; |
445 | 446 | ||
446 | DEFINE_STRUCT_CLK(cam_mclk, cam_mclk_parent_names, aes2_ick_ops); | 447 | static struct clk cam_mclk = { |
448 | .name = "cam_mclk", | ||
449 | .hw = &cam_mclk_hw.hw, | ||
450 | .parent_names = cam_mclk_parent_names, | ||
451 | .num_parents = ARRAY_SIZE(cam_mclk_parent_names), | ||
452 | .ops = &aes2_ick_ops, | ||
453 | .flags = CLK_SET_RATE_PARENT, | ||
454 | }; | ||
447 | 455 | ||
448 | static const struct clksel_rate clkout2_src_core_rates[] = { | 456 | static const struct clksel_rate clkout2_src_core_rates[] = { |
449 | { .div = 1, .val = 0, .flags = RATE_IN_3XXX }, | 457 | { .div = 1, .val = 0, .flags = RATE_IN_3XXX }, |