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
6 Signed-off-by: Maxime Ripard <maxime@cerno.tech>
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(-)
21 --- a/arch/arm/boot/dts/bcm270x.dtsi
22 +++ b/arch/arm/boot/dts/bcm270x.dtsi
24 /delete-property/ stdout-path;
27 - firmware_clocks: firmware-clocks {
28 - compatible = "raspberrypi,firmware-clocks";
29 - raspberrypi,firmware = <&firmware>;
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
42 + firmware_clocks: clocks {
43 + compatible = "raspberrypi,firmware-clocks";
48 compatible = "raspberrypi,firmware-gpio";
50 --- a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
51 +++ b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
56 + firmware_clocks: clocks {
57 + compatible = "raspberrypi,firmware-clocks";
62 compatible = "raspberrypi,firmware-gpio";
64 --- a/arch/arm/boot/dts/bcm2710-rpi-cm3.dts
65 +++ b/arch/arm/boot/dts/bcm2710-rpi-cm3.dts
70 + firmware_clocks: clocks {
71 + compatible = "raspberrypi,firmware-clocks";
76 compatible = "raspberrypi,firmware-gpio";
78 --- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
79 +++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
84 + firmware_clocks: clocks {
85 + compatible = "raspberrypi,firmware-clocks";
90 compatible = "raspberrypi,firmware-gpio";
92 --- a/arch/arm/boot/dts/bcm2711.dtsi
93 +++ b/arch/arm/boot/dts/bcm2711.dtsi
95 clock-output-names = "108MHz-clock";
98 - firmware_clocks: firmware-clocks {
99 - compatible = "raspberrypi,firmware-clocks";
100 - raspberrypi,firmware = <&firmware>;
101 - #clock-cells = <1>;
107 --- a/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
108 +++ b/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
113 + firmware_clocks: clocks {
114 + compatible = "raspberrypi,firmware-clocks";
115 + #clock-cells = <1>;
119 compatible = "raspberrypi,firmware-gpio";
121 --- a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
122 +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
127 + firmware_clocks: clocks {
128 + compatible = "raspberrypi,firmware-clocks";
129 + #clock-cells = <1>;
133 compatible = "raspberrypi,firmware-gpio";
135 --- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
136 +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
141 + firmware_clocks: clocks {
142 + compatible = "raspberrypi,firmware-clocks";
143 + #clock-cells = <1>;
147 compatible = "raspberrypi,firmware-gpio";
149 --- a/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
150 +++ b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
155 + firmware_clocks: clocks {
156 + compatible = "raspberrypi,firmware-clocks";
157 + #clock-cells = <1>;
161 compatible = "raspberrypi,firmware-gpio";
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;
169 - firmware_node = of_parse_phandle(dev->of_node, "raspberrypi,firmware", 0);
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.
176 + firmware_node = of_get_parent(dev->of_node);
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");
185 firmware = rpi_firmware_get(firmware_node);
186 + of_node_put(firmware_node);
188 return -EPROBE_DEFER;