@@ -15,6 +15,35 @@ Required Properties:
- #clock-cells: should be 1.
+- samsung,armclk-divider-table: when the frequency of the APLL is changed
+ the divider clocks in CMU_CPU clock domain also need to be updated. These
+ divider clocks have SoC specific divider clock output requirements for a
+ specific APLL clock speeds. When APLL clock rate is changed, these divider
+ clocks are reprogrammed with pre-determined values in order to maintain the
+ SoC specific divider clock outputs. This property lists the divider values
+ for divider clocks in the CMU_CPU block for supported APLL clock speeds.
+ The format of each entry included in the arm-frequency-table should be
+ as defined below
+
+ - for Exynos4210 and Exynos4212 based platforms:
+ cell #1: arm clock parent frequency
+ cell #2 ~ cell 9#: value of clock divider in the following order
+ corem0_ratio, corem1_ratio, periph_ratio, atb_ratio,
+ pclk_dbg_ratio, apll_ratio, copy_ratio, hpm_ratio.
+
+ - for Exynos4412 based platforms:
+ cell #1: expected arm clock parent frequency
+ cell #2 ~ cell #10: value of clock divider in the following order
+ corem0_ratio, corem1_ratio, periph_ratio, atb_ratio,
+ pclk_dbg_ratio, apll_ratio, copy_ratio, hpm_ratio, cores_ratio
+
+- samsung,armclk-cells: defines the number of cells in
+ samsung,armclk-divider-table property. The value of this property depends on
+ the SoC type.
+
+ - for Exynos4210 and Exynos4212: the value should be 9.
+ - for Exynos4412: the value should be 10.
+
The following is the list of clocks generated by the controller. Each clock is
assigned an identifier and client nodes use this identifier to specify the
clock which they consume. Some of the clocks are available only on a particular
@@ -275,6 +304,14 @@ Example 1: An example of a clock controller node is listed below.
compatible = "samsung,exynos4210-clock";
reg = <0x10030000 0x20000>;
#clock-cells = <1>;
+
+ samsung,armclk-cells = <9>;
+ samsung,armclk-divider-table = <1200000 3 7 3 4 1 7 5 0>,
+ <1000000 3 7 3 4 1 7 4 0>,
+ < 800000 3 7 3 3 1 7 3 0>,
+ < 500000 3 7 3 3 1 7 3 0>,
+ < 400000 3 7 3 3 1 7 3 0>,
+ < 200000 1 3 1 1 1 0 3 0>;
};
Example 2: UART controller node that consumes the clock generated by the clock
@@ -13,6 +13,25 @@ Required Properties:
- #clock-cells: should be 1.
+- samsung,armclk-divider-table: when the frequency of the APLL is changed
+ the divider clocks in CMU_CPU clock domain also need to be updated. These
+ divider clocks have SoC specific divider clock output requirements for a
+ specific APLL clock speeds. When APLL clock rate is changed, these divider
+ clocks are reprogrammed with pre-determined values in order to maintain the
+ SoC specific divider clock outputs. This property lists the divider values
+ for divider clocks in the CMU_CPU block for supported APLL clock speeds.
+ The format of each entry included in the arm-frequency-table should be
+ as defined below
+
+ cell #1: expected arm clock parent frequency
+ cell #2 ~ cell #9: value of clock divider in the following order
+ cpud_ratio, acp_ratio, periph_ratio, atb_ratio,
+ pclk_dbg_ratio, apll_ratio, copy_ratio, hpm_ratio
+
+- samsung,armclk-cells: defines the number of cells in
+ samsung,armclk-divider-table property. The value of this property should be 9.
+
+
The following is the list of clocks generated by the controller. Each clock is
assigned an identifier and client nodes use this identifier to specify the
clock which they consume.
@@ -177,6 +196,25 @@ Example 1: An example of a clock controller node is listed below.
compatible = "samsung,exynos5250-clock";
reg = <0x10010000 0x30000>;
#clock-cells = <1>;
+
+ samsung,armclk-cells = <9>;
+ samsung,armclk-divider-table = <1700000 3 7 7 7 3 5 0 2>,
+ <1600000 3 7 7 7 1 4 0 2>,
+ <1500000 2 7 7 7 1 4 0 2>,
+ <1400000 2 7 7 6 1 4 0 2>,
+ <1300000 2 7 7 6 1 3 0 2>,
+ <1200000 2 7 7 5 1 3 0 2>,
+ <1100000 3 7 7 5 1 3 0 2>,
+ <1000000 1 7 7 4 1 2 0 2>,
+ < 900000 1 7 7 4 1 2 0 2>,
+ < 800000 1 7 7 4 1 2 0 2>,
+ < 700000 1 7 7 3 1 1 0 2>,
+ < 600000 1 7 7 3 1 1 0 2>,
+ < 500000 1 7 7 2 1 1 0 2>,
+ < 400000 1 7 7 2 1 1 0 2>,
+ < 300000 1 7 7 1 1 1 0 2>,
+ < 200000 1 7 7 1 1 1 0 2>;
+
};
Example 2: UART controller node that consumes the clock generated by the clock