aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTero Kristo <t-kristo@ti.com>2016-03-16 15:54:56 -0400
committerStephen Boyd <sboyd@codeaurora.org>2016-04-15 20:26:51 -0400
commit3db5ca27c80c15d20d0f1152dc34a5bcfa432ae6 (patch)
tree493e1efb87c4302d9aca7bd68c77f6b3f5b0a8a6
parentc5cc2a0bc930f1ae00b198aeb752acc3bdd4d5a7 (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.c5
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