bcm27xx: import latest patches from the RPi foundation
[openwrt/openwrt.git] / target / linux / bcm27xx / patches-5.4 / 950-0710-overlays-Move-fixed-clock-nodes-to-the-root.patch
1 From 805e008c18ec09c4115e4cec413642028cd9a8e2 Mon Sep 17 00:00:00 2001
2 From: Phil Elwell <phil@raspberrypi.com>
3 Date: Mon, 11 May 2020 15:12:21 +0100
4 Subject: [PATCH] overlays: Move "fixed-clock" nodes to the root
5
6 Apart from some special cases, device objects are only created for
7 nodes if they are children of a bus or the root node. "fixed-clock"
8 is one of the exceptions that will be instantiated wherever it is
9 found, but only during kernel initialisation - ruling out loading the
10 overlay at runtime.
11
12 Move most of the affected clocks to be children of the root, only
13 leaving those in overlays that could be multiply instantiated, to avoid
14 a potential name clash.
15
16 See: https://github.com/raspberrypi/linux/issues/3602
17
18 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
19 ---
20 .../dts/overlays/audiosense-pi-overlay.dts | 14 ++++++-------
21 arch/arm/boot/dts/overlays/draws-overlay.dts | 12 +++++------
22 .../boot/dts/overlays/fe-pi-audio-overlay.dts | 2 +-
23 arch/arm/boot/dts/overlays/imx219-overlay.dts | 12 +++++------
24 .../arm/boot/dts/overlays/irs1125-overlay.dts | 17 +++++++++------
25 .../dts/overlays/mcp2515-can0-overlay.dts | 2 +-
26 .../dts/overlays/mcp2515-can1-overlay.dts | 2 +-
27 .../boot/dts/overlays/midi-uart0-overlay.dts | 2 +-
28 arch/arm/boot/dts/overlays/ov5647-overlay.dts | 17 +++++++++------
29 .../boot/dts/overlays/rpivid-v4l2-overlay.dts | 17 +++++++++------
30 .../dts/overlays/sc16is752-spi1-overlay.dts | 21 ++++++++++++-------
31 .../boot/dts/overlays/tc358743-overlay.dts | 17 +++++++++------
32 12 files changed, 80 insertions(+), 55 deletions(-)
33
34 --- a/arch/arm/boot/dts/overlays/audiosense-pi-overlay.dts
35 +++ b/arch/arm/boot/dts/overlays/audiosense-pi-overlay.dts
36 @@ -24,6 +24,13 @@
37 regulator-max-microvolt = <1800000>;
38 regulator-always-on;
39 };
40 +
41 + /* audio external oscillator */
42 + codec_osc: codec_osc {
43 + compatible = "fixed-clock";
44 + #clock-cells = <0>;
45 + clock-frequency = <12000000>; /* 12 MHz */
46 + };
47 };
48 };
49
50 @@ -44,13 +51,6 @@
51 #size-cells = <0>;
52 status = "okay";
53
54 - /* audio external oscillator */
55 - codec_osc: codec_osc {
56 - compatible = "fixed-clock";
57 - #clock-cells = <0>;
58 - clock-frequency = <12000000>; /* 12 MHz */
59 - };
60 -
61 codec: tlv320aic32x4@18 {
62 #sound-dai-cells = <0>;
63 compatible = "ti,tlv320aic32x4";
64 --- a/arch/arm/boot/dts/overlays/draws-overlay.dts
65 +++ b/arch/arm/boot/dts/overlays/draws-overlay.dts
66 @@ -30,6 +30,12 @@
67 regulator-max-microvolt = <3300000>;
68 regulator-always-on;
69 };
70 +
71 + sc16is752_clk: sc16is752_draws_clk {
72 + compatible = "fixed-clock";
73 + #clock-cells = <0>;
74 + clock-frequency = <1843200>;
75 + };
76 };
77
78 pps: pps {
79 @@ -78,12 +84,6 @@
80
81 pinctrl-names = "default";
82 pinctrl-0 = <&sc16is752_irq>;
83 -
84 - sc16is752_clk: sc16is752_clk {
85 - compatible = "fixed-clock";
86 - #clock-cells = <0>;
87 - clock-frequency = <1843200>;
88 - };
89 };
90
91 tla2024: tla2024@48 {
92 --- a/arch/arm/boot/dts/overlays/fe-pi-audio-overlay.dts
93 +++ b/arch/arm/boot/dts/overlays/fe-pi-audio-overlay.dts
94 @@ -6,7 +6,7 @@
95 compatible = "brcm,bcm2835";
96
97 fragment@0 {
98 - target = <&clocks>;
99 + target-path = "/";
100 __overlay__ {
101 sgtl5000_mclk: sgtl5000_mclk {
102 compatible = "fixed-clock";
103 --- a/arch/arm/boot/dts/overlays/imx219-overlay.dts
104 +++ b/arch/arm/boot/dts/overlays/imx219-overlay.dts
105 @@ -27,12 +27,6 @@
106 VDIG-supply = <&imx219_vdig>; /* 1.8v */
107 VDDL-supply = <&imx219_vddl>; /* 1.2v */
108
109 - imx219_clk: camera-clk {
110 - compatible = "fixed-clock";
111 - #clock-cells = <0>;
112 - clock-frequency = <24000000>;
113 - };
114 -
115 port {
116 imx219_0: endpoint {
117 remote-endpoint = <&csi1_ep>;
118 @@ -90,6 +84,12 @@
119 regulator-min-microvolt = <1200000>;
120 regulator-max-microvolt = <1200000>;
121 };
122 +
123 + imx219_clk: camera-clk {
124 + compatible = "fixed-clock";
125 + #clock-cells = <0>;
126 + clock-frequency = <24000000>;
127 + };
128 };
129 };
130
131 --- a/arch/arm/boot/dts/overlays/irs1125-overlay.dts
132 +++ b/arch/arm/boot/dts/overlays/irs1125-overlay.dts
133 @@ -21,12 +21,6 @@
134 pwdn-gpios = <&gpio 5 0>;
135 clocks = <&irs1125_clk>;
136
137 - irs1125_clk: camera-clk {
138 - compatible = "fixed-clock";
139 - #clock-cells = <0>;
140 - clock-frequency = <26000000>;
141 - };
142 -
143 port {
144 irs1125_0: endpoint {
145 remote-endpoint = <&csi1_ep>;
146 @@ -75,4 +69,15 @@
147 cam0-pwdn = <&irs1125>,"pwdn-gpios:4";
148 };
149 };
150 +
151 + fragment@5 {
152 + target-path = "/";
153 + __overlay__ {
154 + irs1125_clk: camera-clk {
155 + compatible = "fixed-clock";
156 + #clock-cells = <0>;
157 + clock-frequency = <26000000>;
158 + };
159 + };
160 + };
161 };
162 --- a/arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts
163 +++ b/arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts
164 @@ -35,7 +35,7 @@
165
166 /* the clock/oscillator of the can-controller */
167 fragment@3 {
168 - target-path = "/clocks";
169 + target-path = "/";
170 __overlay__ {
171 /* external oscillator of mcp2515 on SPI0.0 */
172 can0_osc: can0_osc {
173 --- a/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts
174 +++ b/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts
175 @@ -35,7 +35,7 @@
176
177 /* the clock/oscillator of the can-controller */
178 fragment@3 {
179 - target-path = "/clocks";
180 + target-path = "/";
181 __overlay__ {
182 /* external oscillator of mcp2515 on spi0.1 */
183 can1_osc: can1_osc {
184 --- a/arch/arm/boot/dts/overlays/midi-uart0-overlay.dts
185 +++ b/arch/arm/boot/dts/overlays/midi-uart0-overlay.dts
186 @@ -15,7 +15,7 @@
187 compatible = "brcm,bcm2835";
188
189 fragment@0 {
190 - target-path = "/clocks";
191 + target-path = "/";
192 __overlay__ {
193 midi_clk: midi_clk {
194 compatible = "fixed-clock";
195 --- a/arch/arm/boot/dts/overlays/ov5647-overlay.dts
196 +++ b/arch/arm/boot/dts/overlays/ov5647-overlay.dts
197 @@ -21,12 +21,6 @@
198 pwdn-gpios = <&gpio 41 1>, <&gpio 32 1>;
199 clocks = <&ov5647_clk>;
200
201 - ov5647_clk: camera-clk {
202 - compatible = "fixed-clock";
203 - #clock-cells = <0>;
204 - clock-frequency = <25000000>;
205 - };
206 -
207 port {
208 ov5647_0: endpoint {
209 remote-endpoint = <&csi1_ep>;
210 @@ -77,4 +71,15 @@
211 cam0-led = <&ov5647>,"pwdn-gpios:16";
212 };
213 };
214 +
215 + fragment@5 {
216 + target-path = "/";
217 + __overlay__ {
218 + ov5647_clk: camera-clk {
219 + compatible = "fixed-clock";
220 + #clock-cells = <0>;
221 + clock-frequency = <25000000>;
222 + };
223 + };
224 + };
225 };
226 --- a/arch/arm/boot/dts/overlays/rpivid-v4l2-overlay.dts
227 +++ b/arch/arm/boot/dts/overlays/rpivid-v4l2-overlay.dts
228 @@ -26,12 +26,6 @@
229
230 clocks = <&hevc_clk>;
231 clock-names = "hevc";
232 -
233 - hevc_clk: hevc_clk {
234 - compatible = "fixed-clock";
235 - #clock-cells = <0>;
236 - clock-frequency = <500000000>;
237 - };
238 };
239 };
240 };
241 @@ -53,4 +47,15 @@
242 };
243 };
244 };
245 +
246 + fragment@2 {
247 + target-path = "/";
248 + __overlay__ {
249 + hevc_clk: hevc_clk {
250 + compatible = "fixed-clock";
251 + #clock-cells = <0>;
252 + clock-frequency = <500000000>;
253 + };
254 + };
255 + };
256 };
257 --- a/arch/arm/boot/dts/overlays/sc16is752-spi1-overlay.dts
258 +++ b/arch/arm/boot/dts/overlays/sc16is752-spi1-overlay.dts
259 @@ -38,12 +38,6 @@
260 #gpio-controller;
261 #gpio-cells = <2>;
262 spi-max-frequency = <4000000>;
263 -
264 - sc16is752_clk: sc16is752_clk {
265 - compatible = "fixed-clock";
266 - #clock-cells = <0>;
267 - clock-frequency = <14745600>;
268 - };
269 };
270 };
271 };
272 @@ -55,8 +49,19 @@
273 };
274 };
275
276 - __overrides__ {
277 + fragment@3 {
278 + target-path = "/";
279 + __overlay__ {
280 + sc16is752_clk: sc16is752_spi1_clk {
281 + compatible = "fixed-clock";
282 + #clock-cells = <0>;
283 + clock-frequency = <14745600>;
284 + };
285 + };
286 + };
287 +
288 + __overrides__ {
289 int_pin = <&sc16is752>,"interrupts:0";
290 xtal = <&sc16is752_clk>,"clock-frequency:0";
291 - };
292 + };
293 };
294 --- a/arch/arm/boot/dts/overlays/tc358743-overlay.dts
295 +++ b/arch/arm/boot/dts/overlays/tc358743-overlay.dts
296 @@ -21,12 +21,6 @@
297 clocks = <&tc358743_clk>;
298 clock-names = "refclk";
299
300 - tc358743_clk: bridge-clk {
301 - compatible = "fixed-clock";
302 - #clock-cells = <0>;
303 - clock-frequency = <27000000>;
304 - };
305 -
306 port {
307 tc358743: endpoint {
308 remote-endpoint = <&csi1_ep>;
309 @@ -81,6 +75,17 @@
310 };
311 };
312
313 + fragment@6 {
314 + target-path = "/";
315 + __overlay__ {
316 + tc358743_clk: bridge-clk {
317 + compatible = "fixed-clock";
318 + #clock-cells = <0>;
319 + clock-frequency = <27000000>;
320 + };
321 + };
322 + };
323 +
324 __overrides__ {
325 4lane = <0>, "-2+3";
326 link-frequency = <&tc358743>,"link-frequencies#0";