mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 10:04:04 +02:00
This pull request contains Broadcom ARM64-based SoCs Device Tree updates
for 6.18, please pull the following: - Krzysztof fixes a DTC warning for the ARM GIC in bcm2712.dtsi - Ivan adds the pin controller node(s), an additional GPIO controller, the second SDHCI controller node for SDIO Wi-Fi, and the UARTA for Bluetooth to the BCM2712 DTS (Raspberry Pi 5) - Stanimir adds the Ethernet DT node and enables it for the RP1 sister chip - Andrea deletes a number of redundant PCIe DT node enablement, updates a comment to describe the relationship between bcm2712 and RP1 and finally enables the USB controllers with RP1 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAmjBsLIACgkQh9CWnEQH BwTFFBAAzwb6T/eAb1eu2ut8Jn42SzqowKd1YLBkonVCQ55onTAIXaH9IyIsQ/gs tCOc6aTJaVZCjvTl4Qp1dCB/XLEtK2WtCed3Avu5JZLTWRZjjsYFW5dHTbScl4m/ AOoXGj1p9IDHB8LRzdd/5DSh0dIj1Y5npCEti1J9mFoL8zPEIHfEvSa+wXV49i2a 25xZKA8TwQOmfwtxYrLIKO0aEaOLPFGcbqc+9lDCwGzJj3Af5VpB2P6lGTjpLFdG AE3sUvtL6Hfs47XgHn/oRoQFvljuTClEU9tUWq+k6BUz9p6t13833jVwz8I6lZPl 9XoYRvuP3g2hELWRbX63PogePTNZp5Iqn5KG1YLlLigsxrHHN7TQnu2AP6l/R6Ti gm108ZmidXOFbc10ONkOUQv0MX/U8Mi9XW4xXTvDG85UkiftEMXaXcfozlNoWnrB rSwLotqsMVyfR5yu/kuxWODGsRdLteRFTv1T4Bzf2r4p/EbVRp4hcPQyQGAazGXZ gUKqn11FBAdKAEkgH8VpSfBh7Freet3Cgs/ttaTpmG7I0NDPJ4PBegdxMlB6TY9K ThhUv4qEWMXuggZxbgLp1v1tPtbheHN4REX62nYLxYrdaAXREukGFhcjrNZl4CVk E77Vl5sNjOgBJqrgaw2b3Nbs7VMymEdSoTnGrY+RCYlE/SEZ/L8= =1ROS -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjIEWMACgkQmmx57+YA GNmhzA/8CjEyy71uETe/H5rPJwL34OR8SH3XNNHle14Ce5qlYS7n9sADz/n8Q4Vi JvDPZcZsH+2Bc7adaw9pvWRzTtnj0bkxPXe1Wp400UX8JLNIDfbRm5BWpIh2Gk2U ET/FqynAr7ppcxu1Py3qnCfFuZrIYrQFYk0nPvOuaYysjtXAIOJbjVdI1JjpqkM1 5LhAsV//0CT7OTfbww4P+Sga+weM0aB+3sZ/7dg8Uf6AXP3nfzwtf9vch5GBvnok rYB6SCKdD9ZVF/SpbF1ruvaCekzemNqVXITrEicCjnzjzUKP/fbxR0IddntQ1cYk ZuUDQ24H39qeXoirDDw8gQ3BFBOH6mOYB2hMCzL/hLMXc5ljevZtfThbPv9v6xmb 9qHVWfeu2yD0JA/dIva1OVTwQMzDSy+v4BfWnOzXxLZemwoL4Ly1o15tdzAsGXb7 BIYVMTe8h+PAvUoYC+yEbMJrf8ZW8knFvMLPBZTL/GVWaAIVLBYiXVkRVFHtSMVN MOGDLroW6iIKVnp/KSeTyeSy4V0gYRDLF8qWXUX2QKLwfJipCAo+dACWzbmA59Ex JjhgQ48lwybJB8P9TePzR1CyTyj2Jf03AvhV6rkULEFz6pQiXbwktgGgfsw9RgI2 g2AhRKLgoUghc2odjfbDFy9z5/WRn5m3Uv7raAUEnOT22TKg9NQ= =4ja6 -----END PGP SIGNATURE----- Merge tag 'arm-soc/for-6.18/devicetree-arm64' of https://github.com/Broadcom/stblinux into soc/dt This pull request contains Broadcom ARM64-based SoCs Device Tree updates for 6.18, please pull the following: - Krzysztof fixes a DTC warning for the ARM GIC in bcm2712.dtsi - Ivan adds the pin controller node(s), an additional GPIO controller, the second SDHCI controller node for SDIO Wi-Fi, and the UARTA for Bluetooth to the BCM2712 DTS (Raspberry Pi 5) - Stanimir adds the Ethernet DT node and enables it for the RP1 sister chip - Andrea deletes a number of redundant PCIe DT node enablement, updates a comment to describe the relationship between bcm2712 and RP1 and finally enables the USB controllers with RP1 * tag 'arm-soc/for-6.18/devicetree-arm64' of https://github.com/Broadcom/stblinux: arm64: dts: broadcom: Enable USB devicetree entries for Rpi5 arm64: dts: broadcom: rp1: Add USB nodes arm64: dts: broadcom: amend the comment about the role of BCM2712 board DTS arm64: dts: broadcom: delete redundant pcie enablement nodes arm64: dts: broadcom: Enable RP1 ethernet for Raspberry Pi 5 arm64: dts: rp1: Add ethernet DT node dt-bindings: mmc: Add support for capabilities to Broadcom SDHCI controller arm64: dts: broadcom: bcm2712: Add UARTA controller node arm64: dts: broadcom: bcm2712: Add second SDHCI controller node arm64: dts: broadcom: bcm2712: Add one more GPIO node arm64: dts: broadcom: bcm2712: Add pin controller nodes arm64: dts: broadcom: bcm2712: Add default GIC address cells Link: https://lore.kernel.org/r/20250910171910.666401-3-florian.fainelli@broadcom.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
41d773149b
|
|
@ -61,7 +61,7 @@ properties:
|
|||
description: Specifies that controller should use auto CMD12
|
||||
|
||||
allOf:
|
||||
- $ref: mmc-controller.yaml#
|
||||
- $ref: sdhci-common.yaml#
|
||||
- if:
|
||||
properties:
|
||||
clock-names:
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include "bcm2712.dtsi"
|
||||
|
||||
/ {
|
||||
|
|
@ -29,6 +30,20 @@ memory@0 {
|
|||
reg = <0 0 0 0x28000000>;
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwr_button_default>;
|
||||
status = "okay";
|
||||
|
||||
power_button: power-button {
|
||||
label = "pwr_button";
|
||||
linux,code = <KEY_POWER>;
|
||||
gpios = <&gio 20 GPIO_ACTIVE_LOW>;
|
||||
debounce-interval = <50>;
|
||||
};
|
||||
};
|
||||
|
||||
sd_io_1v8_reg: sd-io-1v8-reg {
|
||||
compatible = "regulator-gpio";
|
||||
regulator-name = "vdd-sd-io";
|
||||
|
|
@ -51,6 +66,90 @@ sd_vcc_reg: sd-vcc-reg {
|
|||
enable-active-high;
|
||||
gpios = <&gio_aon 4 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
wl_on_reg: wl-on-reg {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "wl-on-regulator";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
pinctrl-0 = <&wl_on_default>;
|
||||
pinctrl-names = "default";
|
||||
gpio = <&gio 28 GPIO_ACTIVE_HIGH>;
|
||||
startup-delay-us = <150000>;
|
||||
enable-active-high;
|
||||
};
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
bt_shutdown_default: bt-shutdown-default-state {
|
||||
function = "gpio";
|
||||
pins = "gpio29";
|
||||
};
|
||||
|
||||
emmc_sd_default: emmc-sd-default-state {
|
||||
pins = "emmc_cmd", "emmc_dat0", "emmc_dat1", "emmc_dat2", "emmc_dat3";
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
pwr_button_default: pwr-button-default-state {
|
||||
function = "gpio";
|
||||
pins = "gpio20";
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
sdio2_30_default: sdio2-30-default-state {
|
||||
clk-pins {
|
||||
function = "sd2";
|
||||
pins = "gpio30";
|
||||
bias-disable;
|
||||
};
|
||||
cmd-pins {
|
||||
function = "sd2";
|
||||
pins = "gpio31";
|
||||
bias-pull-up;
|
||||
};
|
||||
dat-pins {
|
||||
function = "sd2";
|
||||
pins = "gpio32", "gpio33", "gpio34", "gpio35";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
uarta_24_default: uarta-24-default-state {
|
||||
rts-pins {
|
||||
function = "uart0";
|
||||
pins = "gpio24";
|
||||
bias-disable;
|
||||
};
|
||||
cts-pins {
|
||||
function = "uart0";
|
||||
pins = "gpio25";
|
||||
bias-pull-up;
|
||||
};
|
||||
txd-pins {
|
||||
function = "uart0";
|
||||
pins = "gpio26";
|
||||
bias-disable;
|
||||
};
|
||||
rxd-pins {
|
||||
function = "uart0";
|
||||
pins = "gpio27";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
wl_on_default: wl-on-default-state {
|
||||
function = "gpio";
|
||||
pins = "gpio28";
|
||||
};
|
||||
};
|
||||
|
||||
&pinctrl_aon {
|
||||
emmc_aon_cd_default: emmc-aon-cd-default-state {
|
||||
function = "sd_card_g";
|
||||
pins = "aon_gpio5";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
/* The Debug UART, on Rpi5 it's on JST-SH 1.0mm 3-pin connector
|
||||
|
|
@ -62,12 +161,32 @@ &uart10 {
|
|||
|
||||
/* SDIO1 is used to drive the SD card */
|
||||
&sdio1 {
|
||||
pinctrl-0 = <&emmc_sd_default>, <&emmc_aon_cd_default>;
|
||||
pinctrl-names = "default";
|
||||
vqmmc-supply = <&sd_io_1v8_reg>;
|
||||
vmmc-supply = <&sd_vcc_reg>;
|
||||
bus-width = <4>;
|
||||
sd-uhs-sdr50;
|
||||
sd-uhs-ddr50;
|
||||
sd-uhs-sdr104;
|
||||
cd-gpios = <&gio_aon 5 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&sdio2 {
|
||||
pinctrl-0 = <&sdio2_30_default>;
|
||||
pinctrl-names = "default";
|
||||
bus-width = <4>;
|
||||
vmmc-supply = <&wl_on_reg>;
|
||||
sd-uhs-ddr50;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
wifi: wifi@1 {
|
||||
reg = <1>;
|
||||
compatible = "brcm,bcm4329-fmac";
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
|
|
@ -97,6 +216,20 @@ power: power {
|
|||
};
|
||||
};
|
||||
|
||||
/* uarta communicates with the BT module */
|
||||
&uarta {
|
||||
uart-has-rtscts;
|
||||
pinctrl-0 = <&uarta_24_default &bt_shutdown_default>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
|
||||
bluetooth: bluetooth {
|
||||
compatible = "brcm,bcm43438-bt";
|
||||
max-speed = <3000000>;
|
||||
shutdown-gpios = <&gio 29 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
&hvs {
|
||||
clocks = <&firmware_clocks 4>, <&firmware_clocks 16>;
|
||||
clock-names = "core", "disp";
|
||||
|
|
|
|||
|
|
@ -4,8 +4,14 @@
|
|||
* the RP1 driver to load the RP1 dtb overlay at runtime, while
|
||||
* bcm2712-rpi-5-b.dts (this file) is the fully defined one (i.e. it
|
||||
* already contains RP1 node, so no overlay is loaded nor needed).
|
||||
* This file is not intended to be modified, nodes should be added
|
||||
* to the included bcm2712-rpi-5-b-ovl-rp1.dts.
|
||||
* This file is intended to host the override nodes for the RP1 peripherals,
|
||||
* e.g. to declare the phy of the ethernet interface or the custom pin setup
|
||||
* for several RP1 peripherals.
|
||||
* This in turn is due to the fact that there's no current generic
|
||||
* infrastructure to reference nodes (i.e. the nodes in rp1-common.dtsi) that
|
||||
* are not yet defined in the DT since they are loaded at runtime via overlay.
|
||||
* All other nodes that do not have anything to do with RP1 should be added
|
||||
* to the included bcm2712-rpi-5-b-ovl-rp1.dts instead.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
|
@ -16,10 +22,37 @@ &pcie2 {
|
|||
#include "rp1-nexus.dtsi"
|
||||
};
|
||||
|
||||
&pcie1 {
|
||||
&rp1_eth {
|
||||
status = "okay";
|
||||
phy-mode = "rgmii-id";
|
||||
phy-handle = <&phy1>;
|
||||
|
||||
mdio {
|
||||
reg = <0x1>;
|
||||
reset-gpios = <&rp1_gpio 32 GPIO_ACTIVE_LOW>;
|
||||
reset-delay-us = <5000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
phy1: ethernet-phy@1 {
|
||||
reg = <0x1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&rp1_gpio {
|
||||
usb_vbus_default_state: usb-vbus-default-state {
|
||||
function = "vbus1";
|
||||
groups = "vbus1";
|
||||
};
|
||||
};
|
||||
|
||||
&rp1_usb0 {
|
||||
pinctrl-0 = <&usb_vbus_default_state>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie2 {
|
||||
&rp1_usb1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -38,6 +38,13 @@ clk_emmc2: clk-emmc2 {
|
|||
clock-frequency = <200000000>;
|
||||
clock-output-names = "emmc2-clock";
|
||||
};
|
||||
|
||||
clk_sw_baud: clk-sw-baud {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <96000000>;
|
||||
clock-output-names = "sw-baud";
|
||||
};
|
||||
};
|
||||
|
||||
cpus: cpus {
|
||||
|
|
@ -243,6 +250,39 @@ uart10: serial@7d001000 {
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
pinctrl: pinctrl@7d504100 {
|
||||
compatible = "brcm,bcm2712c0-pinctrl";
|
||||
reg = <0x7d504100 0x30>;
|
||||
};
|
||||
|
||||
gio: gpio@7d508500 {
|
||||
compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
|
||||
reg = <0x7d508500 0x40>;
|
||||
interrupt-parent = <&main_irq>;
|
||||
interrupts = <0>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
brcm,gpio-bank-widths = <32 22>;
|
||||
};
|
||||
|
||||
uarta: serial@7d50c000 {
|
||||
compatible = "brcm,bcm7271-uart";
|
||||
reg = <0x7d50c000 0x20>;
|
||||
reg-names = "uart";
|
||||
clocks = <&clk_sw_baud>;
|
||||
clock-names = "sw_baud";
|
||||
interrupts = <GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "uart";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pinctrl_aon: pinctrl@7d510700 {
|
||||
compatible = "brcm,bcm2712c0-aon-pinctrl";
|
||||
reg = <0x7d510700 0x20>;
|
||||
};
|
||||
|
||||
interrupt-controller@7d517000 {
|
||||
compatible = "brcm,bcm7271-l2-intc";
|
||||
reg = <0x7d517000 0x10>;
|
||||
|
|
@ -263,6 +303,21 @@ gio_aon: gpio@7d517c00 {
|
|||
*/
|
||||
};
|
||||
|
||||
sdio2: mmc@1100000 {
|
||||
compatible = "brcm,bcm2712-sdhci",
|
||||
"brcm,sdhci-brcmstb";
|
||||
reg = <0x01100000 0x260>,
|
||||
<0x01100400 0x200>;
|
||||
reg-names = "host", "cfg";
|
||||
interrupts = <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk_emmc2>;
|
||||
clock-names = "sw_sdio";
|
||||
sdhci-caps-mask = <0x0000C000 0x0>;
|
||||
sdhci-caps = <0x0 0x0>;
|
||||
mmc-ddr-3_3v;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gicv2: interrupt-controller@7fff9000 {
|
||||
compatible = "arm,gic-400";
|
||||
reg = <0x7fff9000 0x1000>,
|
||||
|
|
@ -270,6 +325,7 @@ gicv2: interrupt-controller@7fff9000 {
|
|||
<0x7fffc000 0x2000>,
|
||||
<0x7fffe000 0x2000>;
|
||||
interrupt-controller;
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <3>;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -39,4 +39,48 @@ rp1_gpio: pinctrl@400d0000 {
|
|||
<1 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<2 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
rp1_eth: ethernet@40100000 {
|
||||
compatible = "raspberrypi,rp1-gem";
|
||||
reg = <0x00 0x40100000 0x0 0x4000>;
|
||||
interrupts = <6 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&rp1_clocks RP1_CLK_SYS>,
|
||||
<&rp1_clocks RP1_CLK_SYS>,
|
||||
<&rp1_clocks RP1_CLK_ETH>,
|
||||
<&rp1_clocks RP1_CLK_ETH_TSU>;
|
||||
clock-names = "pclk", "hclk", "tx_clk", "tsu_clk";
|
||||
local-mac-address = [00 00 00 00 00 00];
|
||||
status = "disabled";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
rp1_usb0: usb@40200000 {
|
||||
compatible = "snps,dwc3";
|
||||
reg = <0x00 0x40200000 0x0 0x100000>;
|
||||
interrupts = <31 IRQ_TYPE_EDGE_RISING>;
|
||||
dr_mode = "host";
|
||||
usb3-lpm-capable;
|
||||
snps,dis_rxdet_inp3_quirk;
|
||||
snps,parkmode-disable-hs-quirk;
|
||||
snps,parkmode-disable-ss-quirk;
|
||||
snps,tx-max-burst = /bits/ 8 <8>;
|
||||
snps,tx-thr-num-pkt = /bits/ 8 <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
rp1_usb1: usb@40300000 {
|
||||
compatible = "snps,dwc3";
|
||||
reg = <0x00 0x40300000 0x0 0x100000>;
|
||||
interrupts = <36 IRQ_TYPE_EDGE_RISING>;
|
||||
dr_mode = "host";
|
||||
usb3-lpm-capable;
|
||||
snps,dis_rxdet_inp3_quirk;
|
||||
snps,parkmode-disable-hs-quirk;
|
||||
snps,parkmode-disable-ss-quirk;
|
||||
snps,tx-max-burst = /bits/ 8 <8>;
|
||||
snps,tx-thr-num-pkt = /bits/ 8 <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user