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: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20190917082659.25549-9-heiko@sntech.de
This commit is contained in:
Heiko Stuebner 2019-09-17 10:26:55 +02:00
Родитель 689c7dc73c
Коммит 45cb61b4f3
2 изменённых файлов: 20 добавлений и 10 удалений

Просмотреть файл

@ -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 @@
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 {