Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

arm64: dts: sprd: sc9860: Simplify clock nodes

The various "syscon" nodes in SC9860 are only referenced by clock
provider nodes in a 1:1 relationship, and nothing else references the
"syscon" nodes. There's no apparent reason for this split. The 2 nodes
can simply be merged into 1 node. The clock driver has supported using
either "reg" or "sprd,syscon" to access registers from the start, so
there shouldn't be any compatibility issues.

With this, DT schema warnings for missing a specific compatible with
"syscon" and non-MMIO devices on "simple-bus" are fixed.

Reviewed-by: Chunyan Zhang <zhang.lyra@gmail.com>
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20251124210031.767382-2-robh@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

authored by

Rob Herring (Arm) and committed by
Arnd Bergmann
d86a4e64 a6099745

+36 -80
-62
arch/arm64/boot/dts/sprd/sc9860.dtsi
··· 184 184 | IRQ_TYPE_LEVEL_HIGH)>; 185 185 }; 186 186 187 - pmu_gate: pmu-gate { 188 - compatible = "sprd,sc9860-pmu-gate"; 189 - sprd,syscon = <&pmu_regs>; /* 0x402b0000 */ 190 - clocks = <&ext_26m>; 191 - #clock-cells = <1>; 192 - }; 193 - 194 - pll: pll { 195 - compatible = "sprd,sc9860-pll"; 196 - sprd,syscon = <&ana_regs>; /* 0x40400000 */ 197 - clocks = <&pmu_gate 0>; 198 - #clock-cells = <1>; 199 - }; 200 - 201 187 ap_clk: clock-controller@20000000 { 202 188 compatible = "sprd,sc9860-ap-clk"; 203 189 reg = <0 0x20000000 0 0x400>; ··· 200 214 #clock-cells = <1>; 201 215 }; 202 216 203 - apahb_gate: apahb-gate { 204 - compatible = "sprd,sc9860-apahb-gate"; 205 - sprd,syscon = <&ap_ahb_regs>; /* 0x20210000 */ 206 - clocks = <&aon_prediv 0>; 207 - #clock-cells = <1>; 208 - }; 209 - 210 - aon_gate: aon-gate { 211 - compatible = "sprd,sc9860-aon-gate"; 212 - sprd,syscon = <&aon_regs>; /* 0x402e0000 */ 213 - clocks = <&aon_prediv 0>; 214 - #clock-cells = <1>; 215 - }; 216 217 217 218 aonsecure_clk: clock-controller@40880000 { 218 219 compatible = "sprd,sc9860-aonsecure-clk"; 219 220 reg = <0 0x40880000 0 0x400>; 220 221 clocks = <&ext_26m>, <&pll 0>; 221 - #clock-cells = <1>; 222 - }; 223 - 224 - agcp_gate: agcp-gate { 225 - compatible = "sprd,sc9860-agcp-gate"; 226 - sprd,syscon = <&agcp_regs>; /* 0x415e0000 */ 227 - clocks = <&aon_prediv 0>; 228 222 #clock-cells = <1>; 229 223 }; 230 224 ··· 222 256 #clock-cells = <1>; 223 257 }; 224 258 225 - vsp_gate: vsp-gate { 226 - compatible = "sprd,sc9860-vsp-gate"; 227 - sprd,syscon = <&vsp_regs>; /* 0x61100000 */ 228 - clocks = <&vsp_clk 0>; 229 - #clock-cells = <1>; 230 - }; 231 - 232 259 cam_clk: clock-controller@62000000 { 233 260 compatible = "sprd,sc9860-cam-clk"; 234 261 reg = <0 0x62000000 0 0x4000>; ··· 229 270 #clock-cells = <1>; 230 271 }; 231 272 232 - cam_gate: cam-gate { 233 - compatible = "sprd,sc9860-cam-gate"; 234 - sprd,syscon = <&cam_regs>; /* 0x62100000 */ 235 - clocks = <&cam_clk 0>; 236 - #clock-cells = <1>; 237 - }; 238 - 239 273 disp_clk: clock-controller@63000000 { 240 274 compatible = "sprd,sc9860-disp-clk"; 241 275 reg = <0 0x63000000 0 0x400>; 242 276 clocks = <&ext_26m>, <&pll 0>; 243 - #clock-cells = <1>; 244 - }; 245 - 246 - disp_gate: disp-gate { 247 - compatible = "sprd,sc9860-disp-gate"; 248 - sprd,syscon = <&disp_regs>; /* 0x63100000 */ 249 - clocks = <&disp_clk 0>; 250 - #clock-cells = <1>; 251 - }; 252 - 253 - apapb_gate: apapb-gate { 254 - compatible = "sprd,sc9860-apapb-gate"; 255 - sprd,syscon = <&ap_apb_regs>; /* 0x70b00000 */ 256 - clocks = <&ap_clk 0>; 257 277 #clock-cells = <1>; 258 278 }; 259 279
+36 -18
arch/arm64/boot/dts/sprd/whale2.dtsi
··· 18 18 #size-cells = <2>; 19 19 ranges; 20 20 21 - ap_ahb_regs: syscon@20210000 { 22 - compatible = "syscon"; 21 + apahb_gate: clock-controller@20210000 { 23 22 reg = <0 0x20210000 0 0x10000>; 23 + compatible = "sprd,sc9860-apahb-gate"; 24 + clocks = <&aon_prediv 0>; 25 + #clock-cells = <1>; 24 26 }; 25 27 26 - pmu_regs: syscon@402b0000 { 27 - compatible = "syscon"; 28 + pmu_gate: clock-controller@402b0000 { 28 29 reg = <0 0x402b0000 0 0x10000>; 30 + compatible = "sprd,sc9860-pmu-gate"; 31 + clocks = <&ext_26m>; 32 + #clock-cells = <1>; 29 33 }; 30 34 31 - aon_regs: syscon@402e0000 { 32 - compatible = "syscon"; 35 + aon_gate: clock-controller@402e0000 { 33 36 reg = <0 0x402e0000 0 0x10000>; 37 + compatible = "sprd,sc9860-aon-gate"; 38 + clocks = <&aon_prediv 0>; 39 + #clock-cells = <1>; 34 40 }; 35 41 36 - ana_regs: syscon@40400000 { 37 - compatible = "syscon"; 42 + pll: clock-controller@40400000 { 38 43 reg = <0 0x40400000 0 0x10000>; 44 + compatible = "sprd,sc9860-pll"; 45 + clocks = <&pmu_gate 0>; 46 + #clock-cells = <1>; 39 47 }; 40 48 41 - agcp_regs: syscon@415e0000 { 42 - compatible = "syscon"; 49 + agcp_gate: clock-controller@415e0000 { 43 50 reg = <0 0x415e0000 0 0x1000000>; 51 + compatible = "sprd,sc9860-agcp-gate"; 52 + clocks = <&aon_prediv 0>; 53 + #clock-cells = <1>; 44 54 }; 45 55 46 - vsp_regs: syscon@61100000 { 47 - compatible = "syscon"; 56 + vsp_gate: clock-controller@61100000 { 48 57 reg = <0 0x61100000 0 0x10000>; 58 + compatible = "sprd,sc9860-vsp-gate"; 59 + clocks = <&vsp_clk 0>; 60 + #clock-cells = <1>; 49 61 }; 50 62 51 - cam_regs: syscon@62100000 { 52 - compatible = "syscon"; 63 + cam_gate: clock-controller@62100000 { 53 64 reg = <0 0x62100000 0 0x10000>; 65 + compatible = "sprd,sc9860-cam-gate"; 66 + clocks = <&cam_clk 0>; 67 + #clock-cells = <1>; 54 68 }; 55 69 56 - disp_regs: syscon@63100000 { 57 - compatible = "syscon"; 70 + disp_gate: clock-controller@63100000 { 58 71 reg = <0 0x63100000 0 0x10000>; 72 + compatible = "sprd,sc9860-disp-gate"; 73 + clocks = <&disp_clk 0>; 74 + #clock-cells = <1>; 59 75 }; 60 76 61 - ap_apb_regs: syscon@70b00000 { 62 - compatible = "syscon"; 77 + apapb_gate: clock-controller@70b00000 { 63 78 reg = <0 0x70b00000 0 0x40000>; 79 + compatible = "sprd,sc9860-apapb-gate"; 80 + clocks = <&ap_clk 0>; 81 + #clock-cells = <1>; 64 82 }; 65 83 66 84 ap-apb@70000000 {