Commit 45cb61b4 authored by Heiko Stuebner's avatar Heiko Stuebner

arm64: dts: rockchip: document explicit px30 cru dependencies

The px30 contains 2 separate clock controllers the regular cru creating
most clocks as well as the pmucru managing the GPLL and some other clocks.

The gpll of course also is needed by the cru, so while we normally do rely
on clock names to associate clocks getting probed later on (for example
xin32k coming from an i2c device in most cases) it is safer to declare the
explicit dependency between the two crus. This makes sure that for example
the clock-framework probes them in the correct order from the start.

The assigned-clocks properties were simply working by chance in the past
so split them accordingly to the 2 crus to honor the loading direction.
Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20190917082659.25549-9-heiko@sntech.de
parent 689c7dc7
...@@ -10,6 +10,11 @@ Required Properties: ...@@ -10,6 +10,11 @@ Required Properties:
- compatible: CRU should be "rockchip,px30-cru" - compatible: CRU should be "rockchip,px30-cru"
- reg: physical base address of the controller and length of memory mapped - reg: physical base address of the controller and length of memory mapped
region. region.
- clocks: A list of phandle + clock-specifier pairs for the clocks listed
in clock-names
- clock-names: Should contain the following:
- "xin24m" for both PMUCRU and CRU
- "gpll" for CRU (sourced from PMUCRU)
- #clock-cells: should be 1. - #clock-cells: should be 1.
- #reset-cells: should be 1. - #reset-cells: should be 1.
......
...@@ -667,33 +667,38 @@ saradc: saradc@ff288000 { ...@@ -667,33 +667,38 @@ saradc: saradc@ff288000 {
cru: clock-controller@ff2b0000 { cru: clock-controller@ff2b0000 {
compatible = "rockchip,px30-cru"; compatible = "rockchip,px30-cru";
reg = <0x0 0xff2b0000 0x0 0x1000>; reg = <0x0 0xff2b0000 0x0 0x1000>;
clocks = <&xin24m>, <&pmucru PLL_GPLL>;
clock-names = "xin24m", "gpll";
rockchip,grf = <&grf>; rockchip,grf = <&grf>;
#clock-cells = <1>; #clock-cells = <1>;
#reset-cells = <1>; #reset-cells = <1>;
assigned-clocks = <&cru PLL_NPLL>; assigned-clocks = <&cru PLL_NPLL>,
assigned-clock-rates = <1188000000>; <&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
<&cru HCLK_BUS_PRE>, <&cru HCLK_PERI_PRE>,
<&cru PCLK_BUS_PRE>, <&cru SCLK_GPU>;
assigned-clock-rates = <1188000000>,
<200000000>, <200000000>,
<150000000>, <150000000>,
<100000000>, <200000000>;
}; };
pmucru: clock-controller@ff2bc000 { pmucru: clock-controller@ff2bc000 {
compatible = "rockchip,px30-pmucru"; compatible = "rockchip,px30-pmucru";
reg = <0x0 0xff2bc000 0x0 0x1000>; reg = <0x0 0xff2bc000 0x0 0x1000>;
clocks = <&xin24m>;
clock-names = "xin24m";
rockchip,grf = <&grf>; rockchip,grf = <&grf>;
#clock-cells = <1>; #clock-cells = <1>;
#reset-cells = <1>; #reset-cells = <1>;
assigned-clocks = assigned-clocks =
<&pmucru PLL_GPLL>, <&pmucru PCLK_PMU_PRE>, <&pmucru PLL_GPLL>, <&pmucru PCLK_PMU_PRE>,
<&pmucru SCLK_WIFI_PMU>, <&cru ARMCLK>, <&pmucru SCLK_WIFI_PMU>;
<&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
<&cru HCLK_BUS_PRE>, <&cru HCLK_PERI_PRE>,
<&cru PCLK_BUS_PRE>, <&cru SCLK_GPU>;
assigned-clock-rates = assigned-clock-rates =
<1200000000>, <100000000>, <1200000000>, <100000000>,
<26000000>, <600000000>, <26000000>;
<200000000>, <200000000>,
<150000000>, <150000000>,
<100000000>, <200000000>;
}; };
usb20_otg: usb@ff300000 { usb20_otg: usb@ff300000 {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment