kernel: bump 5.4 to 5.4.143
[openwrt/staging/wigyori.git] / target / linux / bcm27xx / patches-5.4 / 950-0777-clk-rpi-Adjust-DT-binding-to-match-upstream.patch
1 From d8daf6289869513ed548bcb0da410d7de3e5d57a Mon Sep 17 00:00:00 2001
2 From: Maxime Ripard <maxime@cerno.tech>
3 Date: Wed, 10 Jun 2020 16:28:56 +0200
4 Subject: [PATCH] clk: rpi: Adjust DT binding to match upstream
5
6 Signed-off-by: Maxime Ripard <maxime@cerno.tech>
7 ---
8 arch/arm/boot/dts/bcm270x.dtsi | 6 ------
9 arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts | 5 +++++
10 arch/arm/boot/dts/bcm2710-rpi-3-b.dts | 5 +++++
11 arch/arm/boot/dts/bcm2710-rpi-cm3.dts | 5 +++++
12 arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 5 +++++
13 arch/arm/boot/dts/bcm2711.dtsi | 6 ------
14 arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts | 5 +++++
15 arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 5 +++++
16 arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 5 +++++
17 arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi | 5 +++++
18 drivers/clk/bcm/clk-raspberrypi.c | 12 +++++++++++-
19 11 files changed, 51 insertions(+), 13 deletions(-)
20
21 --- a/arch/arm/boot/dts/bcm270x.dtsi
22 +++ b/arch/arm/boot/dts/bcm270x.dtsi
23 @@ -7,12 +7,6 @@
24 /delete-property/ stdout-path;
25 };
26
27 - firmware_clocks: firmware-clocks {
28 - compatible = "raspberrypi,firmware-clocks";
29 - raspberrypi,firmware = <&firmware>;
30 - #clock-cells = <1>;
31 - };
32 -
33 soc: soc {
34
35 watchdog: watchdog@7e100000 {
36 --- a/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
37 +++ b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
38 @@ -85,6 +85,11 @@
39 };
40
41 &firmware {
42 + firmware_clocks: clocks {
43 + compatible = "raspberrypi,firmware-clocks";
44 + #clock-cells = <1>;
45 + };
46 +
47 expgpio: expgpio {
48 compatible = "raspberrypi,firmware-gpio";
49 gpio-controller;
50 --- a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
51 +++ b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
52 @@ -96,6 +96,11 @@
53 };
54
55 &firmware {
56 + firmware_clocks: clocks {
57 + compatible = "raspberrypi,firmware-clocks";
58 + #clock-cells = <1>;
59 + };
60 +
61 expgpio: expgpio {
62 compatible = "raspberrypi,firmware-gpio";
63 gpio-controller;
64 --- a/arch/arm/boot/dts/bcm2710-rpi-cm3.dts
65 +++ b/arch/arm/boot/dts/bcm2710-rpi-cm3.dts
66 @@ -58,6 +58,11 @@
67 };
68
69 &firmware {
70 + firmware_clocks: clocks {
71 + compatible = "raspberrypi,firmware-clocks";
72 + #clock-cells = <1>;
73 + };
74 +
75 expgpio: expgpio {
76 compatible = "raspberrypi,firmware-gpio";
77 gpio-controller;
78 --- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
79 +++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
80 @@ -54,6 +54,11 @@
81 };
82
83 &firmware {
84 + firmware_clocks: clocks {
85 + compatible = "raspberrypi,firmware-clocks";
86 + #clock-cells = <1>;
87 + };
88 +
89 expgpio: gpio {
90 compatible = "raspberrypi,firmware-gpio";
91 gpio-controller;
92 --- a/arch/arm/boot/dts/bcm2711.dtsi
93 +++ b/arch/arm/boot/dts/bcm2711.dtsi
94 @@ -24,12 +24,6 @@
95 clock-output-names = "108MHz-clock";
96 };
97
98 - firmware_clocks: firmware-clocks {
99 - compatible = "raspberrypi,firmware-clocks";
100 - raspberrypi,firmware = <&firmware>;
101 - #clock-cells = <1>;
102 - };
103 -
104 soc {
105 /*
106 * Defined ranges:
107 --- a/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
108 +++ b/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
109 @@ -31,6 +31,11 @@
110 };
111
112 &firmware {
113 + firmware_clocks: clocks {
114 + compatible = "raspberrypi,firmware-clocks";
115 + #clock-cells = <1>;
116 + };
117 +
118 expgpio: gpio {
119 compatible = "raspberrypi,firmware-gpio";
120 gpio-controller;
121 --- a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
122 +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
123 @@ -37,6 +37,11 @@
124 };
125
126 &firmware {
127 + firmware_clocks: clocks {
128 + compatible = "raspberrypi,firmware-clocks";
129 + #clock-cells = <1>;
130 + };
131 +
132 expgpio: gpio {
133 compatible = "raspberrypi,firmware-gpio";
134 gpio-controller;
135 --- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
136 +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
137 @@ -32,6 +32,11 @@
138 };
139
140 &firmware {
141 + firmware_clocks: clocks {
142 + compatible = "raspberrypi,firmware-clocks";
143 + #clock-cells = <1>;
144 + };
145 +
146 expgpio: gpio {
147 compatible = "raspberrypi,firmware-gpio";
148 gpio-controller;
149 --- a/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
150 +++ b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
151 @@ -35,6 +35,11 @@
152 };
153
154 &firmware {
155 + firmware_clocks: clocks {
156 + compatible = "raspberrypi,firmware-clocks";
157 + #clock-cells = <1>;
158 + };
159 +
160 expgpio: gpio {
161 compatible = "raspberrypi,firmware-gpio";
162 gpio-controller;
163 --- a/drivers/clk/bcm/clk-raspberrypi.c
164 +++ b/drivers/clk/bcm/clk-raspberrypi.c
165 @@ -383,13 +383,23 @@ static int raspberrypi_clk_probe(struct
166 struct raspberrypi_clk *rpi;
167 int ret;
168
169 - firmware_node = of_parse_phandle(dev->of_node, "raspberrypi,firmware", 0);
170 + /*
171 + * We can be probed either through the an old-fashioned
172 + * platform device registration or through a DT node that is a
173 + * child of the firmware node. Handle both cases.
174 + */
175 + if (dev->of_node)
176 + firmware_node = of_get_parent(dev->of_node);
177 + else
178 + firmware_node = of_find_compatible_node(NULL, NULL,
179 + "raspberrypi,bcm2835-firmware");
180 if (!firmware_node) {
181 dev_err(dev, "Missing firmware node\n");
182 return -ENOENT;
183 }
184
185 firmware = rpi_firmware_get(firmware_node);
186 + of_node_put(firmware_node);
187 if (!firmware)
188 return -EPROBE_DEFER;
189