Merge tag 'arm-soc/for-6.16/devicetree' of https://github.com/Broadcom/stblinux into soc/dt

This pull request contains Broadcom ARM-based SoC Device Tree changes
for 6.16, please pull the following:

- Arthur adds a pinctrl node for BCM21664 and updates BCM23550 to use
  it, he also drops the DTS file for the BCM59056 PMU chip and leaving
  that board level DTS files

- Stefan documents and adds support for the Raspberry Pi 2 2nd revision.

* tag 'arm-soc/for-6.16/devicetree' of https://github.com/Broadcom/stblinux:
  arm64: dts: bcm: Add reference to RPi 2 (2nd rev)
  ARM: dts: bcm: Add support for Raspberry Pi 2 (2nd rev)
  dt-bindings: arm: bcm2835: Add Raspberry Pi 2 (2nd rev)
  ARM: dts: Drop DTS for BCM59056 PMU
  ARM: dts: bcm2166x: Add bcm2166x-pinctrl DTSI
  ARM: dts: bcm2166x-common: Add pinctrl node

Link: https://lore.kernel.org/r/20250505165810.1948927-1-florian.fainelli@broadcom.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann
2025-05-09 22:42:53 +02:00
9 changed files with 472 additions and 127 deletions

View File

@@ -52,6 +52,7 @@ properties:
- description: BCM2837 based Boards
items:
- enum:
- raspberrypi,2-model-b-rev2
- raspberrypi,3-model-a-plus
- raspberrypi,3-model-b
- raspberrypi,3-model-b-plus

View File

@@ -7,6 +7,7 @@ DTC_FLAGS_bcm2835-rpi-b-plus := -@
DTC_FLAGS_bcm2835-rpi-a-plus := -@
DTC_FLAGS_bcm2835-rpi-cm1-io1 := -@
DTC_FLAGS_bcm2836-rpi-2-b := -@
DTC_FLAGS_bcm2837-rpi-2-b := -@
DTC_FLAGS_bcm2837-rpi-3-a-plus := -@
DTC_FLAGS_bcm2837-rpi-3-b := -@
DTC_FLAGS_bcm2837-rpi-3-b-plus := -@
@@ -25,6 +26,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
bcm2835-rpi-a-plus.dtb \
bcm2835-rpi-cm1-io1.dtb \
bcm2836-rpi-2-b.dtb \
bcm2837-rpi-2-b.dtb \
bcm2837-rpi-3-a-plus.dtb \
bcm2837-rpi-3-b.dtb \
bcm2837-rpi-3-b-plus.dtb \

View File

@@ -46,6 +46,11 @@ gpio: gpio@1003000 {
interrupt-controller;
};
pinctrl: pinctrl@1004800 {
compatible = "brcm,bcm21664-pinctrl";
reg = <0x01004800 0x7f4>;
};
timer@1006000 {
compatible = "brcm,kona-timer";
reg = <0x01006000 0x1c>;
@@ -332,3 +337,5 @@ master_ccu: master_ccu@3f001000 {
};
};
};
#include "bcm2166x-pinctrl.dtsi"

View File

@@ -0,0 +1,297 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Common pinmux configrations for BCM2166x (BCM21664/BCM23550).
*
* Copyright (C) 2025 Artur Weber <aweber.kernel@gmail.com>
*/
&pinctrl {
/* BSC1 */
bsc1_pins: bsc1-pins {
bsc1clk-grp0 {
pins = "bsc1clk";
function = "alt1"; /* BSC1CLK */
};
bsc1dat-grp0 {
pins = "bsc1dat";
function = "alt1"; /* BSC1DAT */
};
};
/* BSC2 */
bsc2_pins: bsc2-pins {
bsc2clk-grp0 {
pins = "gpio16";
function = "alt2"; /* BSC2CLK */
};
bsc2dat-grp0 {
pins = "gpio17";
function = "alt2"; /* BSC2DAT */
};
};
/* BSC3 */
bsc3_pins: bsc3-pins {
bsc3clk-grp0 {
pins = "lcdscl";
function = "alt1"; /* BSC3_CLK */
};
bsc3dat-grp0 {
pins = "lcdsda";
function = "alt1"; /* BSC3_SDA */
};
};
/* BSC4 */
bsc4_pins: bsc4-pins {
bsc4clk-grp0 {
pins = "lcdres";
function = "alt1"; /* BSC4_CLK */
};
bsc4dat-grp0 {
pins = "lcdte";
function = "alt1"; /* BSC4_SDA */
};
};
/* PMBSC */
pmbsc_pins: pmbsc-pins {
pmbscclk-grp0 {
pins = "pmbscclk";
function = "alt1"; /* PMBSCCLK */
};
pmbscdat-grp0 {
pins = "pmbscdat";
function = "alt1"; /* PMBSCDAT */
};
};
/* SD */
sd_width1_pins: sd-width1-pins {
sdck-grp0 {
pins = "sdck";
function = "alt1"; /* SDCK */
bias-disable;
};
sdcmd-grp0 {
pins = "sdcmd";
function = "alt1"; /* SDCMD */
bias-pull-up;
};
sddat-grp0 {
pins = "sddat0";
function = "alt1"; /* SDDATx */
bias-pull-up;
};
};
sd_width4_pins: sd-width4-pins {
sdck-grp0 {
pins = "sdck";
function = "alt1"; /* SDCK */
bias-disable;
};
sdcmd-grp0 {
pins = "sdcmd";
function = "alt1"; /* SDCMD */
bias-pull-up;
};
sddat-grp0 {
pins = "sddat0", "sddat1", "sddat2", "sddat3";
function = "alt1"; /* SDDATx */
bias-pull-up;
};
};
/* SD1 */
sd1_width1_pins: sd1-width1-pins {
sd1ck-grp0 {
pins = "mmc1dat7";
function = "alt6"; /* SD1CK */
bias-disable;
};
sd1cmd-grp0 {
pins = "spi0txd";
function = "alt2"; /* SD1CMD */
bias-pull-up;
};
sd1dat0-grp0 {
pins = "mmc1dat5";
function = "alt6"; /* SD1DAT0 */
bias-pull-up;
};
};
sd1_width4_pins: sd1-width4-pins {
sd1ck-grp0 {
pins = "mmc1dat7";
function = "alt6"; /* SD1CK */
bias-disable;
};
sd1cmd-grp0 {
pins = "spi0txd";
function = "alt2"; /* SD1CMD */
bias-pull-up;
};
sd1dat0-grp0 {
pins = "mmc1dat5";
function = "alt6"; /* SD1DAT0 */
bias-pull-up;
};
sd1dat1-grp0 {
pins = "gpio93";
function = "alt1"; /* SD1DAT1 */
bias-pull-up;
};
sd1dat2-grp0 {
pins = "gpio94";
function = "alt1"; /* SD1DAT2 */
bias-pull-up;
};
sd1dat3-grp0 {
pins = "mmc1dat3";
function = "alt6"; /* SD1DAT3 */
bias-pull-up;
};
};
/* MMC0 */
mmc0_width1_pins: mmc0-width1-pins {
mmc0ck-grp0 {
pins = "mmc0ck";
function = "alt1"; /* MMC0CK */
bias-disable;
};
mmc0cmd-grp0 {
pins = "mmc0cmd";
function = "alt1"; /* MMC0CMD */
bias-pull-up;
};
mmc0dat-grp0 {
pins = "mmc0dat0";
function = "alt1"; /* MMC0DATx */
bias-pull-up;
};
};
mmc0_width4_pins: mmc0-width4-pins {
mmc0ck-grp0 {
pins = "mmc0ck";
function = "alt1"; /* MMC0CK */
bias-disable;
};
mmc0cmd-grp0 {
pins = "mmc0cmd";
function = "alt1"; /* MMC0CMD */
bias-pull-up;
};
mmc0dat-grp0 {
pins = "mmc0dat0", "mmc0dat1", "mmc0dat2", "mmc0dat3";
function = "alt1"; /* MMC0DATx */
bias-pull-up;
};
};
mmc0_width8_pins: mmc0-width8-pins {
mmc0ck-grp0 {
pins = "mmc0ck";
function = "alt1"; /* MMC0CK */
bias-disable;
};
mmc0cmd-grp0 {
pins = "mmc0cmd";
function = "alt1"; /* MMC0CMD */
bias-pull-up;
};
mmc0dat-grp0 {
pins = "mmc0dat0", "mmc0dat1", "mmc0dat2", "mmc0dat3",
"mmc0dat4", "mmc0dat5", "mmc0dat6", "mmc0dat7";
function = "alt1"; /* MMC0DATx */
bias-pull-up;
};
};
/* MMC1 */
mmc1_width1_pins: mmc1-width1-pins {
mmc1ck-grp0 {
pins = "mmc1ck";
function = "alt1"; /* MMC1CK */
bias-disable;
};
mmc1cmd-grp0 {
pins = "mmc1cmd";
function = "alt1"; /* MMC1CMD */
bias-pull-up;
};
mmc1dat-grp0 {
pins = "mmc1dat0";
function = "alt1"; /* MMC1DATx */
bias-pull-up;
};
};
mmc1_width4_pins: mmc1-width4-pins {
mmc1ck-grp0 {
pins = "mmc1ck";
function = "alt1"; /* MMC1CK */
bias-disable;
};
mmc1cmd-grp0 {
pins = "mmc1cmd";
function = "alt1"; /* MMC1CMD */
bias-pull-up;
};
mmc1dat-grp0 {
pins = "mmc1dat0", "mmc1dat1", "mmc1dat2", "mmc1dat3";
function = "alt1"; /* MMC1DATx */
bias-pull-up;
};
};
mmc1_width8_pins: mmc1-width8-pins {
mmc1ck-grp0 {
pins = "mmc1ck";
function = "alt1"; /* MMC1CK */
bias-disable;
};
mmc1cmd-grp0 {
pins = "mmc1cmd";
function = "alt1"; /* MMC1CMD */
bias-pull-up;
};
mmc1dat-grp0 {
pins = "mmc1dat0", "mmc1dat1", "mmc1dat2", "mmc1dat3",
"mmc1dat4", "mmc1dat5", "mmc1dat6", "mmc1dat7";
function = "alt1"; /* MMC1DATx */
bias-pull-up;
};
};
};

View File

@@ -37,7 +37,39 @@ &pmu_bsc {
status = "okay";
pmu: pmu@8 {
compatible = "brcm,bcm59056";
interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
reg = <0x08>;
regulators {
camldo1_reg: camldo1 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
sdldo_reg: sdldo {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
sdxldo_reg: sdxldo {
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3300000>;
};
usbldo_reg: usbldo {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
iosr1_reg: iosr1 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
};
};
};
@@ -74,39 +106,3 @@ &usbotg {
&usbphy {
status = "okay";
};
#include "bcm59056.dtsi"
&pmu {
compatible = "brcm,bcm59056";
interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
regulators {
camldo1_reg: camldo1 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
sdldo_reg: sdldo {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
sdxldo_reg: sdxldo {
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3300000>;
};
usbldo_reg: usbldo {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
iosr1_reg: iosr1 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
};
};

View File

@@ -0,0 +1,130 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2837.dtsi"
#include "bcm2836-rpi.dtsi"
#include "bcm283x-rpi-led-deprecated.dtsi"
#include "bcm283x-rpi-smsc9514.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
/ {
compatible = "raspberrypi,2-model-b-rev2", "brcm,bcm2837";
model = "Raspberry Pi 2 Model B rev 1.2";
memory@0 {
device_type = "memory";
reg = <0 0x40000000>;
};
};
&gpio {
/*
* Taken from rpi_SCH_2b_1p2_reduced.pdf and
* the official GPU firmware DT blob.
*
* Legend:
* "FOO" = GPIO line named "FOO" on the schematic
* "FOO_N" = GPIO line named "FOO" on schematic, active low
*/
gpio-line-names = "ID_SDA",
"ID_SCL",
"GPIO2",
"GPIO3",
"GPIO4",
"GPIO5",
"GPIO6",
"GPIO7",
"GPIO8",
"GPIO9",
"GPIO10",
"GPIO11",
"GPIO12",
"GPIO13",
"GPIO14",
"GPIO15",
"GPIO16",
"GPIO17",
"GPIO18",
"GPIO19",
"GPIO20",
"GPIO21",
"GPIO22",
"GPIO23",
"GPIO24",
"GPIO25",
"GPIO26",
"GPIO27",
"SDA0",
"SCL0",
"", /* GPIO30 */
"LAN_RUN",
"CAM_GPIO1",
"", /* GPIO33 */
"", /* GPIO34 */
"PWR_LOW_N",
"", /* GPIO36 */
"", /* GPIO37 */
"USB_LIMIT",
"", /* GPIO39 */
"PWM0_OUT",
"CAM_GPIO0",
"SMPS_SCL",
"SMPS_SDA",
"ETH_CLK",
"PWM1_OUT",
"HDMI_HPD_N",
"STATUS_LED",
/* Used by SD Card */
"SD_CLK_R",
"SD_CMD_R",
"SD_DATA0_R",
"SD_DATA1_R",
"SD_DATA2_R",
"SD_DATA3_R";
pinctrl-names = "default";
pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
/* I2S interface */
i2s_alt0: i2s_alt0 {
brcm,pins = <18 19 20 21>;
brcm,function = <BCM2835_FSEL_ALT0>;
};
};
&hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
status = "okay";
};
&led_act {
gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
};
&leds {
led-pwr {
label = "PWR";
gpios = <&gpio 35 GPIO_ACTIVE_HIGH>;
default-state = "keep";
linux,default-trigger = "default-on";
};
};
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
status = "okay";
};
&sdhost {
pinctrl-names = "default";
pinctrl-0 = <&sdhost_gpio48>;
bus-width = <4>;
status = "okay";
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
status = "okay";
};

View File

@@ -1,91 +0,0 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright 2014 Linaro Limited
* Author: Matt Porter <mporter@linaro.org>
*/
&pmu {
compatible = "brcm,bcm59056";
regulators {
rfldo_reg: rfldo {
};
camldo1_reg: camldo1 {
};
camldo2_reg: camldo2 {
};
simldo1_reg: simldo1 {
};
simldo2_reg: simldo2 {
};
sdldo_reg: sdldo {
};
sdxldo_reg: sdxldo {
};
mmcldo1_reg: mmcldo1 {
};
mmcldo2_reg: mmcldo2 {
};
audldo_reg: audldo {
};
micldo_reg: micldo {
};
usbldo_reg: usbldo {
};
vibldo_reg: vibldo {
};
csr_reg: csr {
};
iosr1_reg: iosr1 {
};
iosr2_reg: iosr2 {
};
msr_reg: msr {
};
sdsr1_reg: sdsr1 {
};
sdsr2_reg: sdsr2 {
};
vsr_reg: vsr {
};
gpldo1_reg: gpldo1 {
};
gpldo2_reg: gpldo2 {
};
gpldo3_reg: gpldo3 {
};
gpldo4_reg: gpldo4 {
};
gpldo5_reg: gpldo5 {
};
gpldo6_reg: gpldo6 {
};
vbus_reg: vbus {
};
};
};

View File

@@ -8,6 +8,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb \
bcm2711-rpi-cm4-io.dtb \
bcm2712-rpi-5-b.dtb \
bcm2712-d-rpi-5-b.dtb \
bcm2837-rpi-2-b.dtb \
bcm2837-rpi-3-a-plus.dtb \
bcm2837-rpi-3-b.dtb \
bcm2837-rpi-3-b-plus.dtb \

View File

@@ -0,0 +1,2 @@
// SPDX-License-Identifier: GPL-2.0
#include "arm/broadcom/bcm2837-rpi-2-b.dts"