diff options
author | Tero Kristo <t-kristo@ti.com> | 2016-03-16 15:54:56 -0400 |
---|---|---|
committer | Stephen Boyd <sboyd@codeaurora.org> | 2016-04-15 20:26:51 -0400 |
commit | 3db5ca27c80c15d20d0f1152dc34a5bcfa432ae6 (patch) | |
tree | 493e1efb87c4302d9aca7bd68c77f6b3f5b0a8a6 | |
parent | c5cc2a0bc930f1ae00b198aeb752acc3bdd4d5a7 (diff) |
clk: ti: amx3xx: limit the maximum frequency of DPLLs based on spec
AM33xx/AM43xx devices use the same DPLL IP blocks, which only support
maximum rate of 1GHz [1] for the default and 2GHz for the low-jitter type
DPLLs [2]. Reflect this limitation in the DPLL init code by adding the
max-rate parameter based on the DPLL types.
[1] Functional, integration & test specification for GS70 ADPLLS, Rev 1.0-01
[2] Functional, integration & test specification for GS70 ADPLLLJ, Rev 0.8-02
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Cc: Nishanth Menon <nm@ti.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
-rw-r--r-- | drivers/clk/ti/dpll.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/clk/ti/dpll.c b/drivers/clk/ti/dpll.c index 3bc9959f71c3..9fc8754a6e61 100644 --- a/drivers/clk/ti/dpll.c +++ b/drivers/clk/ti/dpll.c | |||
@@ -655,6 +655,7 @@ static void __init of_ti_am3_no_gate_dpll_setup(struct device_node *node) | |||
655 | .max_multiplier = 2047, | 655 | .max_multiplier = 2047, |
656 | .max_divider = 128, | 656 | .max_divider = 128, |
657 | .min_divider = 1, | 657 | .min_divider = 1, |
658 | .max_rate = 1000000000, | ||
658 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 659 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
659 | }; | 660 | }; |
660 | 661 | ||
@@ -674,6 +675,7 @@ static void __init of_ti_am3_jtype_dpll_setup(struct device_node *node) | |||
674 | .max_divider = 256, | 675 | .max_divider = 256, |
675 | .min_divider = 2, | 676 | .min_divider = 2, |
676 | .flags = DPLL_J_TYPE, | 677 | .flags = DPLL_J_TYPE, |
678 | .max_rate = 2000000000, | ||
677 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 679 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
678 | }; | 680 | }; |
679 | 681 | ||
@@ -692,6 +694,7 @@ static void __init of_ti_am3_no_gate_jtype_dpll_setup(struct device_node *node) | |||
692 | .max_multiplier = 2047, | 694 | .max_multiplier = 2047, |
693 | .max_divider = 128, | 695 | .max_divider = 128, |
694 | .min_divider = 1, | 696 | .min_divider = 1, |
697 | .max_rate = 2000000000, | ||
695 | .flags = DPLL_J_TYPE, | 698 | .flags = DPLL_J_TYPE, |
696 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 699 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
697 | }; | 700 | }; |
@@ -712,6 +715,7 @@ static void __init of_ti_am3_dpll_setup(struct device_node *node) | |||
712 | .max_multiplier = 2047, | 715 | .max_multiplier = 2047, |
713 | .max_divider = 128, | 716 | .max_divider = 128, |
714 | .min_divider = 1, | 717 | .min_divider = 1, |
718 | .max_rate = 1000000000, | ||
715 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 719 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
716 | }; | 720 | }; |
717 | 721 | ||
@@ -729,6 +733,7 @@ static void __init of_ti_am3_core_dpll_setup(struct device_node *node) | |||
729 | .max_multiplier = 2047, | 733 | .max_multiplier = 2047, |
730 | .max_divider = 128, | 734 | .max_divider = 128, |
731 | .min_divider = 1, | 735 | .min_divider = 1, |
736 | .max_rate = 1000000000, | ||
732 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 737 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
733 | }; | 738 | }; |
734 | 739 | ||