Skip to content

Commit

Permalink
Merge tag 'arm-soc/for-6.10/devicetree' of https://github.com/Broadco…
Browse files Browse the repository at this point in the history
…m/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/[email protected]
Signed-off-by: Arnd Bergmann <[email protected]>
  • Loading branch information
arndb committed Apr 30, 2024
2 parents cc5dc7e + a3592fa commit 07b8c4b
Show file tree
Hide file tree
Showing 18 changed files with 603 additions and 144 deletions.
2 changes: 2 additions & 0 deletions Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ properties:
- description: BCM4709 based boards
items:
- enum:
- asus,rt-ac3200
- asus,rt-ac87u
- buffalo,wxr-1900dhp
- linksys,ea9200
Expand All @@ -67,6 +68,7 @@ properties:
items:
- enum:
- asus,rt-ac3100
- asus,rt-ac5300
- asus,rt-ac88u
- dlink,dir-885l
- dlink,dir-890l
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,30 @@ properties:
- compatible
- "#clock-cells"

gpio:
type: object
additionalProperties: false

properties:
compatible:
const: raspberrypi,firmware-gpio

gpio-controller: true

"#gpio-cells":
const: 2
description:
The first cell is the pin number, and the second cell is used to
specify the gpio polarity (GPIO_ACTIVE_HIGH or GPIO_ACTIVE_LOW).

gpio-line-names:
minItems: 8

required:
- compatible
- gpio-controller
- "#gpio-cells"

reset:
type: object
additionalProperties: false
Expand Down Expand Up @@ -96,6 +120,12 @@ examples:
#clock-cells = <1>;
};
expgpio: gpio {
compatible = "raspberrypi,firmware-gpio";
gpio-controller;
#gpio-cells = <2>;
};
reset: reset {
compatible = "raspberrypi,firmware-reset";
#reset-cells = <1>;
Expand Down

This file was deleted.

2 changes: 2 additions & 0 deletions arch/arm/boot/dts/broadcom/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,15 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm47081-luxul-xap-1410.dtb \
bcm47081-luxul-xwr-1200.dtb \
bcm47081-tplink-archer-c5-v2.dtb \
bcm4709-asus-rt-ac3200.dtb \
bcm4709-asus-rt-ac87u.dtb \
bcm4709-buffalo-wxr-1900dhp.dtb \
bcm4709-linksys-ea9200.dtb \
bcm4709-netgear-r7000.dtb \
bcm4709-netgear-r8000.dtb \
bcm4709-tplink-archer-c9-v1.dtb \
bcm47094-asus-rt-ac3100.dtb \
bcm47094-asus-rt-ac5300.dtb \
bcm47094-asus-rt-ac88u.dtb \
bcm47094-dlink-dir-885l.dtb \
bcm47094-dlink-dir-890l.dtb \
Expand Down
29 changes: 29 additions & 0 deletions arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include "bcm283x-rpi-led-deprecated.dtsi"
#include "bcm283x-rpi-usb-peripheral.dtsi"
#include "bcm283x-rpi-wifi-bt.dtsi"
#include <dt-bindings/leds/common.h>

/ {
compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
Expand All @@ -15,6 +16,13 @@
stdout-path = "serial1:115200n8";
};

cam1_reg: regulator-cam1 {
compatible = "regulator-fixed";
regulator-name = "cam1-reg";
enable-active-high;
gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
};

sd_io_1v8_reg: regulator-sd-io-1v8 {
compatible = "regulator-gpio";
regulator-name = "vdd-sd-io";
Expand Down Expand Up @@ -197,6 +205,27 @@
phy1: ethernet-phy@1 {
/* No PHY interrupt */
reg = <0x1>;

leds {
#address-cells = <1>;
#size-cells = <0>;

/* LED1 */
led@0 {
reg = <0>;
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_LAN;
default-state = "keep";
};

/* LED2 */
led@1 {
reg = <1>;
color = <LED_COLOR_ID_AMBER>;
function = LED_FUNCTION_LAN;
default-state = "keep";
};
};
};
};

Expand Down
1 change: 1 addition & 0 deletions arch/arm/boot/dts/broadcom/bcm2711-rpi-400.dts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@

&genet_mdio {
clock-frequency = <1950000>;
/delete-node/ leds;
};

&led_pwr {
Expand Down
33 changes: 33 additions & 0 deletions arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4-io.dts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/leds/common.h>
#include "bcm2711-rpi-cm4.dtsi"
#include "bcm283x-rpi-led-deprecated.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
Expand Down Expand Up @@ -101,6 +102,38 @@
status = "okay";
};

&i2c0_1 {
rtc@51 {
/* Attention: An alarm resets the machine */
compatible = "nxp,pcf85063a";
reg = <0x51>;
quartz-load-femtofarads = <7000>;
};
};

&phy1 {
leds {
#address-cells = <1>;
#size-cells = <0>;

/* LED2 */
led@1 {
reg = <1>;
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_LAN;
default-state = "keep";
};

/* LED3 */
led@2 {
reg = <2>;
color = <LED_COLOR_ID_AMBER>;
function = LED_FUNCTION_LAN;
default-state = "keep";
};
};
};

&led_act {
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
};
Expand Down
34 changes: 29 additions & 5 deletions arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,33 @@
pcie0 = &pcie0;
blconfig = &blconfig;
};
};

&firmware {
firmware_clocks: clocks {
compatible = "raspberrypi,firmware-clocks";
#clock-cells = <1>;
i2c0mux: i2c-mux0 {
compatible = "i2c-mux-pinctrl";
#address-cells = <1>;
#size-cells = <0>;

i2c-parent = <&i2c0>;

pinctrl-names = "i2c0", "i2c0-vc";
pinctrl-0 = <&i2c0_gpio0>;
pinctrl-1 = <&i2c0_gpio44>;

i2c0_0: i2c@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
};

i2c0_1: i2c@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
};
};
};

&firmware {
expgpio: gpio {
compatible = "raspberrypi,firmware-gpio";
gpio-controller;
Expand Down Expand Up @@ -54,6 +73,11 @@
clocks = <&firmware_clocks 4>;
};

&i2c0 {
/delete-property/ pinctrl-names;
/delete-property/ pinctrl-0;
};

&rmem {
/*
* RPi4's co-processor will copy the board's bootloader configuration
Expand Down
8 changes: 8 additions & 0 deletions arch/arm/boot/dts/broadcom/bcm2711.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -1114,6 +1114,14 @@
#address-cells = <2>;
};

&csi0 {
interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
};

&csi1 {
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
};

&cma {
/*
* arm64 reserves the CMA by default somewhere in ZONE_DMA32,
Expand Down
7 changes: 0 additions & 7 deletions arch/arm/boot/dts/broadcom/bcm2835-rpi-common.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,6 @@

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

&firmware {
firmware_clocks: clocks {
compatible = "raspberrypi,firmware-clocks";
#clock-cells = <1>;
};
};

&hdmi {
clocks = <&firmware_clocks 9>,
<&firmware_clocks 13>;
Expand Down
23 changes: 19 additions & 4 deletions arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
soc {
firmware: firmware {
compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
#address-cells = <1>;
#size-cells = <1>;

mboxes = <&mailbox>;
dma-ranges;

firmware_clocks: clocks {
compatible = "raspberrypi,firmware-clocks";
#clock-cells = <1>;
};
};

power: power {
Expand All @@ -25,6 +26,20 @@
};
};

&csi0 {
clocks = <&clocks BCM2835_CLOCK_CAM0>,
<&firmware_clocks 4>;
clock-names = "lp", "vpu";
power-domains = <&power RPI_POWER_DOMAIN_UNICAM0>;
};

&csi1 {
clocks = <&clocks BCM2835_CLOCK_CAM1>,
<&firmware_clocks 4>;
clock-names = "lp", "vpu";
power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>;
};

&gpio {
gpioout: gpioout {
brcm,pins = <6>;
Expand Down
24 changes: 24 additions & 0 deletions arch/arm/boot/dts/broadcom/bcm283x.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,30 @@
status = "disabled";
};

csi0: csi@7e800000 {
compatible = "brcm,bcm2835-unicam";
reg = <0x7e800000 0x800>,
<0x7e802000 0x4>;
reg-names = "unicam", "cmi";
interrupts = <2 6>;
brcm,num-data-lanes = <2>;
status = "disabled";
port {
};
};

csi1: csi@7e801000 {
compatible = "brcm,bcm2835-unicam";
reg = <0x7e801000 0x800>,
<0x7e802004 0x4>;
reg-names = "unicam", "cmi";
interrupts = <2 7>;
brcm,num-data-lanes = <4>;
status = "disabled";
port {
};
};

i2c1: i2c@7e804000 {
compatible = "brcm,bcm2835-i2c";
reg = <0x7e804000 0x1000>;
Expand Down
Loading

0 comments on commit 07b8c4b

Please sign in to comment.