bcm27xx: update patches from RPi foundation
[oweals/openwrt.git] / target / linux / bcm27xx / patches-5.4 / 950-0720-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";