Commit c79306d5 authored by Olof Johansson's avatar Olof Johansson

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

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

- Clement adds ethernet aliases to the Cygnus DTS include file such that
  a DT aware bootloader such as u-boot can properly insert MAC addresses

- Mohamed adds a Device Tree node for the HWRNG found on Cygnus SoCs

- Vivek migrates all the BCM5301x (Northstar) Device Tree sources to use
  the proper USB 3.0 PHY representation using its parent MDIO bus.
  Vivek also completes the Linksys EA9500 Device Tree by adding support
  for LEDs, internal and external switches.

- Rafal adds the ARM architected timer to the BCM53573 Device Tree
  include file.

- Eric adds the Performance Monitoring Unit to the BCM2837 DTS include
  file since it was absent before

- Boris adds the BCM283x transposer block to the Device Tree

- Stefan adds the Raspberry Pi Compute Module (CM1) Device Tree include
  and sources.

* tag 'arm-soc/for-4.19/devicetree' of https://github.com/Broadcom/stblinux:
  ARM: dts: BCM5301X: Add support for Linksys EA9500
  ARM: dts: BCM53573: Add architected timer
  ARM: dts: BCM5301X: Make USB 3.0 PHY use MDIO PHY driver
  ARM: dts: cygnus: enable iproc-hwrng
  ARM: dts: cygnus: add ethernet0 alias
  ARM: dts: bcm283x: Add Transposer block
  ARM: dts: bcm283x: Add the PMU to the devicetree.
  ARM: dts: add Raspberry Pi Compute Module and IO board
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 5665ab3a 3be77fe8
......@@ -73,6 +73,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
bcm2835-rpi-b-rev2.dtb \
bcm2835-rpi-b-plus.dtb \
bcm2835-rpi-a-plus.dtb \
bcm2835-rpi-cm1-io1.dtb \
bcm2836-rpi-2-b.dtb \
bcm2837-rpi-3-b.dtb \
bcm2837-rpi-3-b-plus.dtb \
......
......@@ -41,6 +41,10 @@ / {
model = "Broadcom Cygnus SoC";
interrupt-parent = <&gic>;
aliases {
ethernet0 = &eth0;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
......@@ -417,6 +421,11 @@ spi2: spi@1802a000 {
status = "disabled";
};
rng: rng@18032000 {
compatible = "brcm,iproc-rng200";
reg = <0x18032000 0x28>;
};
sdhci0: sdhci@18041000 {
compatible = "brcm,sdhci-iproc-cygnus";
reg = <0x18041000 0x100>;
......
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2835-rpi-cm1.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
/ {
compatible = "raspberrypi,compute-module", "brcm,bcm2835";
model = "Raspberry Pi Compute Module IO board rev1";
};
&gpio {
/*
* This is based on the official GPU firmware DT blob.
*
* Legend:
* "NC" = not connected (no rail from the SoC)
* "FOO" = GPIO line named "FOO" on the schematic
* "FOO_N" = GPIO line named "FOO" on schematic, active low
*/
gpio-line-names = "GPIO0",
"GPIO1",
"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",
"GPIO28",
"GPIO29",
"GPIO30",
"GPIO31",
"GPIO32",
"GPIO33",
"GPIO34",
"GPIO35",
"GPIO36",
"GPIO37",
"GPIO38",
"GPIO39",
"GPIO40",
"GPIO41",
"GPIO42",
"GPIO43",
"GPIO44",
"GPIO45",
"HDMI_HPD_N",
/* Also used as ACT LED */
"EMMC_EN_N",
/* Used by eMMC */
"SD_CLK_R",
"SD_CMD_R",
"SD_DATA0_R",
"SD_DATA1_R",
"SD_DATA2_R",
"SD_DATA3_R";
pinctrl-0 = <&gpioout &alt0>;
};
&hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
status = "okay";
};
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
/ {
leds {
act {
gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
};
};
reg_3v3: fixed-regulator {
compatible = "regulator-fixed";
regulator-name = "3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
reg_1v8: fixed-regulator {
compatible = "regulator-fixed";
regulator-name = "1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
};
&sdhost {
non-removable;
vmmc-supply = <&reg_3v3>;
vqmmc-supply = <&reg_1v8>;
};
......@@ -17,6 +17,12 @@ local_intc: local_intc@40000000 {
};
};
arm-pmu {
compatible = "arm,cortex-a53-pmu";
interrupt-parent = <&local_intc>;
interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
};
timer {
compatible = "arm,armv7-timer";
interrupt-parent = <&local_intc>;
......
......@@ -66,6 +66,12 @@ timer@7e003000 {
clock-frequency = <1000000>;
};
txp@7e004000 {
compatible = "brcm,bcm2835-txp";
reg = <0x7e004000 0x20>;
interrupts = <1 11>;
};
dma: dma@7e007000 {
compatible = "brcm,bcm2835-dma";
reg = <0x7e007000 0xf00>;
......
......@@ -90,3 +90,7 @@ wps {
};
};
};
&usb3_phy {
status = "okay";
};
......@@ -80,3 +80,7 @@ rfkill {
};
};
};
&usb3_phy {
status = "okay";
};
......@@ -146,3 +146,7 @@ &usb3 {
&spi_nor {
status = "okay";
};
&usb3_phy {
status = "okay";
};
......@@ -38,3 +38,7 @@ restart {
};
};
};
&usb3_phy {
status = "okay";
};
......@@ -57,3 +57,7 @@ restart {
&spi_nor {
status = "okay";
};
&usb3_phy {
status = "okay";
};
......@@ -64,3 +64,7 @@ restart {
&spi_nor {
status = "okay";
};
&usb3_phy {
status = "okay";
};
......@@ -91,3 +91,7 @@ &usb3 {
&spi_nor {
status = "okay";
};
&usb3_phy {
status = "okay";
};
......@@ -83,3 +83,7 @@ restart {
&spi_nor {
status = "okay";
};
&usb3_phy {
status = "okay";
};
......@@ -158,3 +158,7 @@ port@5 {
};
};
};
&usb3_phy {
status = "okay";
};
......@@ -74,3 +74,7 @@ wps {
};
};
};
&usb3_phy {
status = "okay";
};
......@@ -118,3 +118,7 @@ eject {
};
};
};
&usb3_phy {
status = "okay";
};
......@@ -104,3 +104,7 @@ restart {
};
};
};
&usb3_phy {
status = "okay";
};
......@@ -57,3 +57,7 @@ restart {
&spi_nor {
status = "okay";
};
&usb3_phy {
status = "okay";
};
......@@ -105,3 +105,7 @@ &usb2 {
&spi_nor {
status = "okay";
};
&usb3_phy {
status = "okay";
};
......@@ -99,3 +99,7 @@ &spi_nor {
&usb2 {
vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
};
&usb3_phy {
status = "okay";
};
......@@ -62,3 +62,7 @@ restart {
};
};
};
&usb3_phy {
status = "okay";
};
......@@ -127,3 +127,7 @@ &usb2 {
&spi_nor {
status = "okay";
};
&usb3_phy {
status = "okay";
};
......@@ -39,3 +39,7 @@ restart {
};
};
};
&usb3_phy {
status = "okay";
};
......@@ -101,3 +101,7 @@ &usb2 {
&usb3 {
vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
};
&usb3_phy {
status = "okay";
};
......@@ -182,3 +182,7 @@ &usb2 {
&usb3 {
vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
};
&usb3_phy {
status = "okay";
};
......@@ -104,3 +104,7 @@ &usb3 {
&spi_nor {
status = "okay";
};
&usb3_phy {
status = "okay";
};
......@@ -115,3 +115,7 @@ &usb3 {
&spi_nor {
status = "okay";
};
&usb3_phy {
status = "okay";
};
......@@ -31,5 +31,238 @@ wps {
linux,code = <KEY_WPS_BUTTON>;
gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
};
rfkill {
label = "WiFi";
linux,code = <KEY_RFKILL>;
gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
};
reset {
label = "Reset";
linux,code = <KEY_RESTART>;
gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
};
};
leds {
compatible = "gpio-leds";
wps {
label = "bcm53xx:white:wps";
gpios = <&chipcommon 22 GPIO_ACTIVE_LOW>;
};
usb2 {
label = "bcm53xx:green:usb2";
gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
trigger-sources = <&ohci_port2>, <&ehci_port2>;
linux,default-trigger = "usbport";
};
usb3 {
label = "bcm53xx:green:usb3";
gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
trigger-sources = <&ohci_port1>, <&ehci_port1>,
<&xhci_port1>;
linux,default-trigger = "usbport";
};
power {
label = "bcm53xx:white:power";
gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
};
wifi-disabled {
label = "bcm53xx:amber:wifi-disabled";
gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
};
wifi-enabled {
label = "bcm53xx:white:wifi-enabled";
gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
};
bluebar1 {
label = "bcm53xx:white:bluebar1";
gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
};
bluebar2 {
label = "bcm53xx:white:bluebar2";
gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
};
bluebar3 {
label = "bcm53xx:white:bluebar3";
gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
};
bluebar4 {
label = "bcm53xx:white:bluebar4";
gpios = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
};
bluebar5 {
label = "bcm53xx:white:bluebar5";
gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>;
};
bluebar6 {
label = "bcm53xx:white:bluebar6";
gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>;
};
bluebar7 {
label = "bcm53xx:white:bluebar7";
gpios = <&chipcommon 21 GPIO_ACTIVE_HIGH>;
};
bluebar8 {
label = "bcm53xx:white:bluebar8";
gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
};
};
mdio-bus-mux {
/* BIT(9) = 1 => external mdio */
mdio_ext: mdio@200 {
reg = <0x200>;
#address-cells = <1>;
#size-cells = <0>;
};
};
mdio-mii-mux {
compatible = "mdio-mux-mmioreg";
mdio-parent-bus = <&mdio_ext>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0x1800c1c0 0x4>;
/* BIT(6) = mdc, BIT(7) = mdio */
mux-mask = <0xc0>;
mdio-mii@0 {
/* Enable MII function */
reg = <0x0>;
#address-cells = <1>;
#size-cells = <0>;
switch@0 {
compatible = "brcm,bcm53125";
#address-cells = <1>;
#size-cells = <0>;
reset-gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
reset-names = "robo_reset";
reg = <0>;
dsa,member = <1 0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
label = "lan1";
};
port@1 {
reg = <1>;
label = "lan5";
};
port@2 {
reg = <2>;
label = "lan2";
};
port@3 {
reg = <3>;
label = "lan6";
};
port@4 {
reg = <4>;
label = "lan3";
};
sw1_p8: port@8 {
reg = <8>;
ethernet = <&sw0_p0>;
label = "cpu";
fixed-link {
speed = <1000>;
full-duplex;
};
};
};
};
};
};
};
&usb2 {
vcc-gpio = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
};
&usb3 {
vcc-gpio = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
};
&srab {
compatible = "brcm,bcm53012-srab", "brcm,bcm5301x-srab";
status = "okay";
dsa,member = <0 0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@1 {
reg = <1>;
label = "lan7";
};
port@2 {
reg = <2>;
label = "lan4";
};
port@3 {
reg = <3>;
label = "lan8";
};
port@4 {
reg = <4>;
label = "wan";
};
port@8 {
reg = <8>;
ethernet = <&gmac2>;
label = "cpu";
fixed-link {
speed = <1000>;
full-duplex;
};
};
sw0_p0: port@0 {
reg = <0>;
label = "extsw";
fixed-link {
speed = <1000>;
full-duplex;
};
};
};
};
&usb3_phy {
status = "okay";
};
......@@ -60,3 +60,7 @@ &usb3 {
&spi_nor {
status = "okay";
};
&usb3_phy {
status = "okay";
};
......@@ -60,3 +60,7 @@ &usb3 {
&spi_nor {
status = "okay";
};
&usb3_phy {
status = "okay";
};
......@@ -100,3 +100,7 @@ &usb3 {
&spi_nor {
status = "okay";
};
&usb3_phy {
status = "okay";
};
......@@ -91,3 +91,7 @@ rfkill {
};
};
};
&usb3_phy {
status = "okay";
};
......@@ -7,9 +7,10 @@
#include "bcm4708.dtsi"
/ {
usb3_phy: usb3-phy {
};
&usb3_phy {
compatible = "brcm,ns-bx-usb3-phy";
};
};
&uart0 {
......
......@@ -154,13 +154,6 @@ usb2_phy: usb2-phy {
clock-names = "phy-ref-clk";
};
usb3_phy: usb3-phy {
compatible = "brcm,ns-ax-usb3-phy";
reg = <0x18105000 0x1000>, <0x18003000 0x1000>;
reg-names = "dmp", "ccb-mii";
#phy-cells = <0>;
};
axi@18000000 {
compatible = "brcm,bus-axi";
reg = <0x18000000 0x1000>;
......@@ -359,8 +352,34 @@ mdio: mdio@18003000 {
reg = <0x18003000 0x8>;
#size-cells = <1>;
#address-cells = <0>;
};
mdio-bus-mux {
compatible = "mdio-mux-mmioreg";
mdio-parent-bus = <&mdio>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0x18003000 0x4>;
mux-mask = <0x200>;
mdio@0 {
reg = <0x0>;
#address-cells = <1>;
#size-cells = <0>;
usb3_phy: usb3-phy@10 {
compatible = "brcm,ns-ax-usb3-phy";
reg = <0x10>;
usb3-dmp-syscon = <&usb3_dmp>;
#phy-cells = <0>;
status = "disabled";
};
};
};
usb3_dmp: syscon@18105000 {
reg = <0x18105000 0x1000>;
};
i2c0: i2c@18009000 {
compatible = "brcm,iproc-i2c";
......
......@@ -48,6 +48,14 @@ gic: interrupt-controller@1000 {
};
};
timer {
compatible = "arm,armv7-timer";
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
<GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
<GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
<GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
};
clocks {
#address-cells = <1>;
#size-cells = <1>;
......
......@@ -42,3 +42,7 @@ memory {
reg = <0x00000000 0x08000000>;
};
};
&usb3_phy {
status = "okay";
};
......@@ -42,3 +42,7 @@ memory {
reg = <0x00000000 0x08000000>;
};
};
&usb3_phy {
status = "okay";
};
......@@ -90,3 +90,7 @@ port@5 {
};
};
};
&usb3_phy {
status = "okay";
};
......@@ -95,3 +95,7 @@ partition@700000 {
reg = <0x00700000 0x00900000>;
};
};
&usb3_phy {
status = "okay";
};
......@@ -113,3 +113,7 @@ &uart0 {
&uart1 {
status = "okay";
};
&usb3_phy {
status = "okay";
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment