Skip to content

Commit 07b8c4b

Browse files
committed
Merge tag 'arm-soc/for-6.10/devicetree' of https://github.com/Broadcom/stblinux into soc/dt
This pull request contains Broadcom ARM-based SoCs Device Tree changes for 6.10, please pull the following: - Laurent converts the Raspberry Pi firmware DT binding to YAML, updates the firmware driver to use the proper 'struct device' reference for DMA mappings and drops unneeded properties from the DT node and finishes by removing the duplicate firmware-clocks property to bcm2835-rpi.dtsi. He also added support for the CAM1 camera interface regulator. - Uwe adds a pinctrl-based multiplexing description to allow the use of I2C0 pins to allow usage between the 40-pin Raspberry Pi header and the CSI and DSI connectors. He then describes the PCF85063 RTC device available on the CM4 I/O board making use of that pinctrl-based muxing. - Arinc updates the Asus RT-AC3100 and RT-AC88U DTs to have proper LED colors and function properties, NVMEM MAC addresses and removes duplicates and unnecessary properties and does a few Device Tree cleanups.. He then adds support for the Asus RT-AC3200 (BCM4709-based) and RT-AC3500 routers. - Jean-Michel adds DT nodes for the CSI Unicam camera interfaces on the Raspberry Pi 4 / BCM2711 SoCs - Florian adds support for the Ethernet LEDs on Raspberry Pi 4 B and Raspberry Pi 4 CM boards. * tag 'arm-soc/for-6.10/devicetree' of https://github.com/Broadcom/stblinux: arm: dts: bcm2711: Describe Ethernet LEDs ARM: dts: BCM5301X: Conform to DTS Coding Style on ASUS RT-AC3100 & AC88U ARM: dts: BCM5301X: Add DT for ASUS RT-AC5300 ARM: dts: BCM5301X: Add DT for ASUS RT-AC3200 dt-bindings: arm: bcm: add bindings for ASUS RT-AC5300 dt-bindings: arm: bcm: add bindings for ASUS RT-AC3200 ARM: dts: bcm2835: Add Unicam CSI nodes ARM: dts: BCM5301X: remove earlycon on ASUS RT-AC3100 and ASUS RT-AC88U ARM: dts: BCM5301X: remove duplicate compatible on ASUS RT-AC3100 & AC88U ARM: dts: BCM5301X: provide address for SoC MACs on ASUS RT-AC3100 & AC88U ARM: dts: BCM5301X: use color and function on ASUS RT-AC3100 and RT-AC88U ARM: dts: bcm2711-rpi-4-b: Add CAM1 regulator ARM: dts: bcm2711-rpi-cm4-io: Add RTC on I2C0 ARM: dts: bcm2711-rpi: Add pinctrl-based multiplexing for I2C0 ARM: dts: bcm2835-rpi: Move duplicate firmware-clocks to bcm2835-rpi.dtsi ARM: dts: bcm283x: Drop unneeded properties in the bcm2835-firmware node firmware: raspberrypi: Use correct device for DMA mappings dt-bindings: arm: bcm: raspberrypi,bcm2835-firmware: Add gpio child node Link: https://lore.kernel.org/r/20240429213703.2327834-2-florian.fainelli@broadcom.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2 parents cc5dc7e + a3592fa commit 07b8c4b

18 files changed

+603
-144
lines changed

Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ properties:
5353
- description: BCM4709 based boards
5454
items:
5555
- enum:
56+
- asus,rt-ac3200
5657
- asus,rt-ac87u
5758
- buffalo,wxr-1900dhp
5859
- linksys,ea9200
@@ -67,6 +68,7 @@ properties:
6768
items:
6869
- enum:
6970
- asus,rt-ac3100
71+
- asus,rt-ac5300
7072
- asus,rt-ac88u
7173
- dlink,dir-885l
7274
- dlink,dir-890l

Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml

+30
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,30 @@ properties:
4646
- compatible
4747
- "#clock-cells"
4848

49+
gpio:
50+
type: object
51+
additionalProperties: false
52+
53+
properties:
54+
compatible:
55+
const: raspberrypi,firmware-gpio
56+
57+
gpio-controller: true
58+
59+
"#gpio-cells":
60+
const: 2
61+
description:
62+
The first cell is the pin number, and the second cell is used to
63+
specify the gpio polarity (GPIO_ACTIVE_HIGH or GPIO_ACTIVE_LOW).
64+
65+
gpio-line-names:
66+
minItems: 8
67+
68+
required:
69+
- compatible
70+
- gpio-controller
71+
- "#gpio-cells"
72+
4973
reset:
5074
type: object
5175
additionalProperties: false
@@ -96,6 +120,12 @@ examples:
96120
#clock-cells = <1>;
97121
};
98122
123+
expgpio: gpio {
124+
compatible = "raspberrypi,firmware-gpio";
125+
gpio-controller;
126+
#gpio-cells = <2>;
127+
};
128+
99129
reset: reset {
100130
compatible = "raspberrypi,firmware-reset";
101131
#reset-cells = <1>;

Documentation/devicetree/bindings/gpio/raspberrypi,firmware-gpio.txt

-30
This file was deleted.

arch/arm/boot/dts/broadcom/Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,15 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
6464
bcm47081-luxul-xap-1410.dtb \
6565
bcm47081-luxul-xwr-1200.dtb \
6666
bcm47081-tplink-archer-c5-v2.dtb \
67+
bcm4709-asus-rt-ac3200.dtb \
6768
bcm4709-asus-rt-ac87u.dtb \
6869
bcm4709-buffalo-wxr-1900dhp.dtb \
6970
bcm4709-linksys-ea9200.dtb \
7071
bcm4709-netgear-r7000.dtb \
7172
bcm4709-netgear-r8000.dtb \
7273
bcm4709-tplink-archer-c9-v1.dtb \
7374
bcm47094-asus-rt-ac3100.dtb \
75+
bcm47094-asus-rt-ac5300.dtb \
7476
bcm47094-asus-rt-ac88u.dtb \
7577
bcm47094-dlink-dir-885l.dtb \
7678
bcm47094-dlink-dir-890l.dtb \

arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts

+29
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "bcm283x-rpi-led-deprecated.dtsi"
66
#include "bcm283x-rpi-usb-peripheral.dtsi"
77
#include "bcm283x-rpi-wifi-bt.dtsi"
8+
#include <dt-bindings/leds/common.h>
89

910
/ {
1011
compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
@@ -15,6 +16,13 @@
1516
stdout-path = "serial1:115200n8";
1617
};
1718

19+
cam1_reg: regulator-cam1 {
20+
compatible = "regulator-fixed";
21+
regulator-name = "cam1-reg";
22+
enable-active-high;
23+
gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
24+
};
25+
1826
sd_io_1v8_reg: regulator-sd-io-1v8 {
1927
compatible = "regulator-gpio";
2028
regulator-name = "vdd-sd-io";
@@ -197,6 +205,27 @@
197205
phy1: ethernet-phy@1 {
198206
/* No PHY interrupt */
199207
reg = <0x1>;
208+
209+
leds {
210+
#address-cells = <1>;
211+
#size-cells = <0>;
212+
213+
/* LED1 */
214+
led@0 {
215+
reg = <0>;
216+
color = <LED_COLOR_ID_GREEN>;
217+
function = LED_FUNCTION_LAN;
218+
default-state = "keep";
219+
};
220+
221+
/* LED2 */
222+
led@1 {
223+
reg = <1>;
224+
color = <LED_COLOR_ID_AMBER>;
225+
function = LED_FUNCTION_LAN;
226+
default-state = "keep";
227+
};
228+
};
200229
};
201230
};
202231

arch/arm/boot/dts/broadcom/bcm2711-rpi-400.dts

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
&genet_mdio {
3232
clock-frequency = <1950000>;
33+
/delete-node/ leds;
3334
};
3435

3536
&led_pwr {

arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4-io.dts

+33
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// SPDX-License-Identifier: GPL-2.0
22
/dts-v1/;
3+
#include <dt-bindings/leds/common.h>
34
#include "bcm2711-rpi-cm4.dtsi"
45
#include "bcm283x-rpi-led-deprecated.dtsi"
56
#include "bcm283x-rpi-usb-host.dtsi"
@@ -101,6 +102,38 @@
101102
status = "okay";
102103
};
103104

105+
&i2c0_1 {
106+
rtc@51 {
107+
/* Attention: An alarm resets the machine */
108+
compatible = "nxp,pcf85063a";
109+
reg = <0x51>;
110+
quartz-load-femtofarads = <7000>;
111+
};
112+
};
113+
114+
&phy1 {
115+
leds {
116+
#address-cells = <1>;
117+
#size-cells = <0>;
118+
119+
/* LED2 */
120+
led@1 {
121+
reg = <1>;
122+
color = <LED_COLOR_ID_GREEN>;
123+
function = LED_FUNCTION_LAN;
124+
default-state = "keep";
125+
};
126+
127+
/* LED3 */
128+
led@2 {
129+
reg = <2>;
130+
color = <LED_COLOR_ID_AMBER>;
131+
function = LED_FUNCTION_LAN;
132+
default-state = "keep";
133+
};
134+
};
135+
};
136+
104137
&led_act {
105138
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
106139
};

arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi

+29-5
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,33 @@
1717
pcie0 = &pcie0;
1818
blconfig = &blconfig;
1919
};
20-
};
2120

22-
&firmware {
23-
firmware_clocks: clocks {
24-
compatible = "raspberrypi,firmware-clocks";
25-
#clock-cells = <1>;
21+
i2c0mux: i2c-mux0 {
22+
compatible = "i2c-mux-pinctrl";
23+
#address-cells = <1>;
24+
#size-cells = <0>;
25+
26+
i2c-parent = <&i2c0>;
27+
28+
pinctrl-names = "i2c0", "i2c0-vc";
29+
pinctrl-0 = <&i2c0_gpio0>;
30+
pinctrl-1 = <&i2c0_gpio44>;
31+
32+
i2c0_0: i2c@0 {
33+
reg = <0>;
34+
#address-cells = <1>;
35+
#size-cells = <0>;
36+
};
37+
38+
i2c0_1: i2c@1 {
39+
reg = <1>;
40+
#address-cells = <1>;
41+
#size-cells = <0>;
42+
};
2643
};
44+
};
2745

46+
&firmware {
2847
expgpio: gpio {
2948
compatible = "raspberrypi,firmware-gpio";
3049
gpio-controller;
@@ -54,6 +73,11 @@
5473
clocks = <&firmware_clocks 4>;
5574
};
5675

76+
&i2c0 {
77+
/delete-property/ pinctrl-names;
78+
/delete-property/ pinctrl-0;
79+
};
80+
5781
&rmem {
5882
/*
5983
* RPi4's co-processor will copy the board's bootloader configuration

arch/arm/boot/dts/broadcom/bcm2711.dtsi

+8
Original file line numberDiff line numberDiff line change
@@ -1114,6 +1114,14 @@
11141114
#address-cells = <2>;
11151115
};
11161116

1117+
&csi0 {
1118+
interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
1119+
};
1120+
1121+
&csi1 {
1122+
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
1123+
};
1124+
11171125
&cma {
11181126
/*
11191127
* arm64 reserves the CMA by default somewhere in ZONE_DMA32,

arch/arm/boot/dts/broadcom/bcm2835-rpi-common.dtsi

-7
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,6 @@
77

88
#include <dt-bindings/power/raspberrypi-power.h>
99

10-
&firmware {
11-
firmware_clocks: clocks {
12-
compatible = "raspberrypi,firmware-clocks";
13-
#clock-cells = <1>;
14-
};
15-
};
16-
1710
&hdmi {
1811
clocks = <&firmware_clocks 9>,
1912
<&firmware_clocks 13>;

arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi

+19-4
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
soc {
55
firmware: firmware {
66
compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
7-
#address-cells = <1>;
8-
#size-cells = <1>;
9-
107
mboxes = <&mailbox>;
11-
dma-ranges;
8+
9+
firmware_clocks: clocks {
10+
compatible = "raspberrypi,firmware-clocks";
11+
#clock-cells = <1>;
12+
};
1213
};
1314

1415
power: power {
@@ -25,6 +26,20 @@
2526
};
2627
};
2728

29+
&csi0 {
30+
clocks = <&clocks BCM2835_CLOCK_CAM0>,
31+
<&firmware_clocks 4>;
32+
clock-names = "lp", "vpu";
33+
power-domains = <&power RPI_POWER_DOMAIN_UNICAM0>;
34+
};
35+
36+
&csi1 {
37+
clocks = <&clocks BCM2835_CLOCK_CAM1>,
38+
<&firmware_clocks 4>;
39+
clock-names = "lp", "vpu";
40+
power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>;
41+
};
42+
2843
&gpio {
2944
gpioout: gpioout {
3045
brcm,pins = <6>;

arch/arm/boot/dts/broadcom/bcm283x.dtsi

+24
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,30 @@
454454
status = "disabled";
455455
};
456456

457+
csi0: csi@7e800000 {
458+
compatible = "brcm,bcm2835-unicam";
459+
reg = <0x7e800000 0x800>,
460+
<0x7e802000 0x4>;
461+
reg-names = "unicam", "cmi";
462+
interrupts = <2 6>;
463+
brcm,num-data-lanes = <2>;
464+
status = "disabled";
465+
port {
466+
};
467+
};
468+
469+
csi1: csi@7e801000 {
470+
compatible = "brcm,bcm2835-unicam";
471+
reg = <0x7e801000 0x800>,
472+
<0x7e802004 0x4>;
473+
reg-names = "unicam", "cmi";
474+
interrupts = <2 7>;
475+
brcm,num-data-lanes = <4>;
476+
status = "disabled";
477+
port {
478+
};
479+
};
480+
457481
i2c1: i2c@7e804000 {
458482
compatible = "brcm,bcm2835-i2c";
459483
reg = <0x7e804000 0x1000>;

0 commit comments

Comments
 (0)