Commit 522a6efe authored by Arnd Bergmann's avatar Arnd Bergmann

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

Pull "Broadcom devicetree changes for 4.14" from Florian Fainelli:

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

- Eric moves the bcm2837 DT file from arm64 to arm because it created a maintenance
  problem and would have required either duplication or cross merges

- Stefan changes how the pinmuxing is defined and pushes it at the board level
  to support Raspberry Pi Zero Wireless. He then adds supports for the actual
  Raspberry Pi Zero Wireless board along with binding documentation. Stefan
  also defines a proper SMP enable-method property and binding for BCM2836
  (Raspbery Pi 2)

- Rafal describes the BCM5301X USB ports correctly in Device Tree such that
  it becomes possible to assign them to specific LED triggers (e.g: USB activity).
  He does the same thing for BCM53573 and defines default LED triggers for USB.

- Jon provides a fix for Northstar Plus which consists in correctly defining
  the "dma-coherent" property for peripherals which are DMA coherent. He also
  does a bit of re-arrangement of the USB DT nodes and finally adds USB 3 PHY
  and host controller support for NorthStar Plus

- Florian adds support for Broadcom's BCM947189ACDBMR reference board which is
  based on BCM47182/53573 and which supports external MoCA (BCM6802)

- Ray fixes the wrong UART2 base address for Cygnus

- Scott moves the v3d node in the proper unit address order and defines the correct
  UART alias for the BCM91130_entphn reference board to be UART3

- Jason adds the DT node for the Cygnus Cortex-A9 Performance Monitoring Unit

- Jonathan adds a bunch of additional peripherals to the Cygnus DTS include file:
  SDHCI, Keypad, SPI, DMA and pinmux configurations

- Raveendra adds the Cygnus OHCI and EHCI Device Tree nodes

* tag 'arm-soc/for-4.14/devicetree' of http://github.com/Broadcom/stblinux:
  ARM: BCM53573: Specify ports for USB LED for Tenda AC9
  ARM: dts: cygnus: Add generic-ehci/ohci nodes
  ARM: dts: cygnus: add serial0 alias for uart3 on bcm91130_entphn
  ARM: dts: cygnus: Add additional peripherals to dtsi
  ARM: dts: cygnus: Enable Performance Monitoring Unit
  ARM: dts: cygnus: place v3d in proper address ordered location
  ARM: dts: cygnus: Fix incorrect UART2 register base
  ARM: dts: bcm283x: Add 32-bit enable method for SMP
  dt-bindings: arm: add SMP enable-method for BCM2836
  ARM: dts: BCM53573: Add Broadcom BCM947189ACDBMR board support
  ARM: dts: BCM5301X: Specify USB ports for USB LEDs of few devices
  ARM: dts: NSP: Add USB3 and USB3 PHY to NSP
  ARM: dts: NSP: Rearrage USB entries
  ARM: dts: NSP: Add dma-coherent to relevant DT entries
  ARM: dts: bcm2835: Add Raspberry Pi Zero W
  dt-bindings: bcm: Add Raspberry Pi Zero W
  ARM: bcm283x: Define UART pinmuxing on board level
  ARM: dts: BCM5301X: Specify USB ports for each controller
  ARM: dts: bcm283x: Move the BCM2837 DT contents from arm64 to arm.
parents fe7a70db 0173b2cd
...@@ -42,6 +42,10 @@ Raspberry Pi Zero ...@@ -42,6 +42,10 @@ Raspberry Pi Zero
Required root node properties: Required root node properties:
compatible = "raspberrypi,model-zero", "brcm,bcm2835"; compatible = "raspberrypi,model-zero", "brcm,bcm2835";
Raspberry Pi Zero W
Required root node properties:
compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
Generic BCM2835 board Generic BCM2835 board
Required root node properties: Required root node properties:
compatible = "brcm,bcm2835"; compatible = "brcm,bcm2835";
...@@ -200,6 +200,7 @@ described below. ...@@ -200,6 +200,7 @@ described below.
"arm,realview-smp" "arm,realview-smp"
"brcm,bcm11351-cpu-method" "brcm,bcm11351-cpu-method"
"brcm,bcm23550" "brcm,bcm23550"
"brcm,bcm2836-smp"
"brcm,bcm-nsp-smp" "brcm,bcm-nsp-smp"
"brcm,brahma-b15" "brcm,brahma-b15"
"marvell,armada-375-smp" "marvell,armada-375-smp"
......
...@@ -73,7 +73,8 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ ...@@ -73,7 +73,8 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
bcm2835-rpi-a-plus.dtb \ bcm2835-rpi-a-plus.dtb \
bcm2836-rpi-2-b.dtb \ bcm2836-rpi-2-b.dtb \
bcm2837-rpi-3-b.dtb \ bcm2837-rpi-3-b.dtb \
bcm2835-rpi-zero.dtb bcm2835-rpi-zero.dtb \
bcm2835-rpi-zero-w.dtb
dtb-$(CONFIG_ARCH_BCM_5301X) += \ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm4708-asus-rt-ac56u.dtb \ bcm4708-asus-rt-ac56u.dtb \
bcm4708-asus-rt-ac68u.dtb \ bcm4708-asus-rt-ac68u.dtb \
...@@ -106,7 +107,8 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ ...@@ -106,7 +107,8 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm953012hr.dtb \ bcm953012hr.dtb \
bcm953012k.dtb bcm953012k.dtb
dtb-$(CONFIG_ARCH_BCM_53573) += \ dtb-$(CONFIG_ARCH_BCM_53573) += \
bcm47189-tenda-ac9.dtb bcm47189-tenda-ac9.dtb \
bcm947189acdbmr.dtb
dtb-$(CONFIG_ARCH_BCM_63XX) += \ dtb-$(CONFIG_ARCH_BCM_63XX) += \
bcm963138dvt.dtb bcm963138dvt.dtb
dtb-$(CONFIG_ARCH_BCM_CYGNUS) += \ dtb-$(CONFIG_ARCH_BCM_CYGNUS) += \
......
...@@ -55,6 +55,11 @@ cpu@0 { ...@@ -55,6 +55,11 @@ cpu@0 {
/include/ "bcm-cygnus-clock.dtsi" /include/ "bcm-cygnus-clock.dtsi"
pmu {
compatible = "arm,cortex-a9-pmu";
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
};
core { core {
compatible = "simple-bus"; compatible = "simple-bus";
ranges = <0x00000000 0x19000000 0x1000000>; ranges = <0x00000000 0x19000000 0x1000000>;
...@@ -119,6 +124,21 @@ pinctrl: pinctrl@0301d0c8 { ...@@ -119,6 +124,21 @@ pinctrl: pinctrl@0301d0c8 {
compatible = "brcm,cygnus-pinmux"; compatible = "brcm,cygnus-pinmux";
reg = <0x0301d0c8 0x30>, reg = <0x0301d0c8 0x30>,
<0x0301d24c 0x2c>; <0x0301d24c 0x2c>;
spi_0: spi_0 {
function = "spi0";
groups = "spi0_grp";
};
spi_1: spi_1 {
function = "spi1";
groups = "spi1_grp";
};
spi_2: spi_2 {
function = "spi2";
groups = "spi2_grp";
};
}; };
mailbox: mailbox@03024024 { mailbox: mailbox@03024024 {
...@@ -300,6 +320,23 @@ msi1: msi-controller { ...@@ -300,6 +320,23 @@ msi1: msi-controller {
}; };
}; };
dma0: dma@18018000 {
compatible = "arm,pl330", "arm,primecell";
reg = <0x18018000 0x1000>;
interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&apb_clk>;
clock-names = "apb_pclk";
#dma-cells = <1>;
};
uart0: serial@18020000 { uart0: serial@18020000 {
compatible = "snps,dw-apb-uart"; compatible = "snps,dw-apb-uart";
reg = <0x18020000 0x100>; reg = <0x18020000 0x100>;
...@@ -324,7 +361,7 @@ uart1: serial@18021000 { ...@@ -324,7 +361,7 @@ uart1: serial@18021000 {
uart2: serial@18022000 { uart2: serial@18022000 {
compatible = "snps,dw-apb-uart"; compatible = "snps,dw-apb-uart";
reg = <0x18020000 0x100>; reg = <0x18022000 0x100>;
reg-shift = <2>; reg-shift = <2>;
reg-io-width = <4>; reg-io-width = <4>;
interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
...@@ -344,6 +381,52 @@ uart3: serial@18023000 { ...@@ -344,6 +381,52 @@ uart3: serial@18023000 {
status = "disabled"; status = "disabled";
}; };
spi0: spi@18028000 {
compatible = "arm,pl022", "arm,primecell";
reg = <0x18028000 0x1000>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-0 = <&spi_0>;
clocks = <&axi81_clk>;
clock-names = "apb_pclk";
status = "disabled";
};
spi1: spi@18029000 {
compatible = "arm,pl022", "arm,primecell";
reg = <0x18029000 0x1000>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-0 = <&spi_1>;
clocks = <&axi81_clk>;
clock-names = "apb_pclk";
status = "disabled";
};
spi2: spi@1802a000 {
compatible = "arm,pl022", "arm,primecell";
reg = <0x1802a000 0x1000>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-0 = <&spi_2>;
clocks = <&axi81_clk>;
clock-names = "apb_pclk";
status = "disabled";
};
sdhci0: sdhci@18041000 {
compatible = "brcm,sdhci-iproc-cygnus";
reg = <0x18041000 0x100>;
interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&lcpll0 BCM_CYGNUS_LCPLL0_SDIO_CLK>;
bus-width = <4>;
sdhci,auto-cmd12;
status = "disabled";
};
eth0: ethernet@18042000 { eth0: ethernet@18042000 {
compatible = "brcm,amac"; compatible = "brcm,amac";
reg = <0x18042000 0x1000>, reg = <0x18042000 0x1000>,
...@@ -353,6 +436,16 @@ eth0: ethernet@18042000 { ...@@ -353,6 +436,16 @@ eth0: ethernet@18042000 {
status = "disabled"; status = "disabled";
}; };
sdhci1: sdhci@18043000 {
compatible = "brcm,sdhci-iproc-cygnus";
reg = <0x18043000 0x100>;
interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&lcpll0 BCM_CYGNUS_LCPLL0_SDIO_CLK>;
bus-width = <4>;
sdhci,auto-cmd12;
status = "disabled";
};
nand: nand@18046000 { nand: nand@18046000 {
compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1"; compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
reg = <0x18046000 0x600>, <0xf8105408 0x600>, reg = <0x18046000 0x600>, <0xf8105408 0x600>,
...@@ -366,6 +459,33 @@ nand: nand@18046000 { ...@@ -366,6 +459,33 @@ nand: nand@18046000 {
brcm,nand-has-wp; brcm,nand-has-wp;
}; };
ehci0: usb@18048000 {
compatible = "generic-ehci";
reg = <0x18048000 0x100>;
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
ohci0: usb@18048800 {
compatible = "generic-ohci";
reg = <0x18048800 0x100>;
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
v3d: v3d@180a2000 {
compatible = "brcm,cygnus-v3d";
reg = <0x180a2000 0x1000>;
clocks = <&mipipll BCM_CYGNUS_MIPIPLL_CH2_V3D>;
clock-names = "v3d_clk";
interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
vc4: gpu {
compatible = "brcm,cygnus-vc4";
};
gpio_asiu: gpio@180a5000 { gpio_asiu: gpio@180a5000 {
compatible = "brcm,cygnus-asiu-gpio"; compatible = "brcm,cygnus-asiu-gpio";
reg = <0x180a5000 0x668>; reg = <0x180a5000 0x668>;
...@@ -444,19 +564,6 @@ touchscreen: touchscreen@180a6000 { ...@@ -444,19 +564,6 @@ touchscreen: touchscreen@180a6000 {
status = "disabled"; status = "disabled";
}; };
v3d: v3d@180a2000 {
compatible = "brcm,cygnus-v3d";
reg = <0x180a2000 0x1000>;
clocks = <&mipipll BCM_CYGNUS_MIPIPLL_CH2_V3D>;
clock-names = "v3d_clk";
interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
vc4: gpu {
compatible = "brcm,cygnus-vc4";
};
adc: adc@180a6000 { adc: adc@180a6000 {
compatible = "brcm,iproc-static-adc"; compatible = "brcm,iproc-static-adc";
#io-channel-cells = <1>; #io-channel-cells = <1>;
...@@ -467,5 +574,19 @@ adc: adc@180a6000 { ...@@ -467,5 +574,19 @@ adc: adc@180a6000 {
interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled"; status = "disabled";
}; };
keypad: keypad@180ac000 {
compatible = "brcm,bcm-keypad";
reg = <0x180ac000 0x14c>;
interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&asiu_clks BCM_CYGNUS_ASIU_KEYPAD_CLK>;
clock-names = "peri_clk";
clock-frequency = <31250>;
pull-up-enabled;
col-debounce-filter-period = <0>;
status-debounce-filter-period = <0>;
row-output-enabled;
status = "disabled";
};
}; };
}; };
...@@ -215,6 +215,7 @@ sdio: sdhci@21000 { ...@@ -215,6 +215,7 @@ sdio: sdhci@21000 {
interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
sdhci,auto-cmd12; sdhci,auto-cmd12;
clocks = <&lcpll0 BCM_NSP_LCPLL0_SDIO_CLK>; clocks = <&lcpll0 BCM_NSP_LCPLL0_SDIO_CLK>;
dma-coherent;
status = "disabled"; status = "disabled";
}; };
...@@ -224,6 +225,7 @@ amac0: ethernet@22000 { ...@@ -224,6 +225,7 @@ amac0: ethernet@22000 {
<0x110000 0x1000>; <0x110000 0x1000>;
reg-names = "amac_base", "idm_base"; reg-names = "amac_base", "idm_base";
interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
dma-coherent;
status = "disabled"; status = "disabled";
}; };
...@@ -233,6 +235,7 @@ amac1: ethernet@23000 { ...@@ -233,6 +235,7 @@ amac1: ethernet@23000 {
<0x111000 0x1000>; <0x111000 0x1000>;
reg-names = "amac_base", "idm_base"; reg-names = "amac_base", "idm_base";
interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
dma-coherent;
status = "disabled"; status = "disabled";
}; };
...@@ -242,6 +245,7 @@ amac2: ethernet@24000 { ...@@ -242,6 +245,7 @@ amac2: ethernet@24000 {
<0x112000 0x1000>; <0x112000 0x1000>;
reg-names = "amac_base", "idm_base"; reg-names = "amac_base", "idm_base";
interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
dma-coherent;
status = "disabled"; status = "disabled";
}; };
...@@ -252,6 +256,7 @@ mailbox: mailbox@25000 { ...@@ -252,6 +256,7 @@ mailbox: mailbox@25000 {
#mbox-cells = <1>; #mbox-cells = <1>;
brcm,rx-status-len = <32>; brcm,rx-status-len = <32>;
brcm,use-bcm-hdr; brcm,use-bcm-hdr;
dma-coherent;
}; };
nand: nand@26000 { nand: nand@26000 {
...@@ -297,6 +302,32 @@ qspi: qspi@27200 { ...@@ -297,6 +302,32 @@ qspi: qspi@27200 {
#size-cells = <0>; #size-cells = <0>;
}; };
xhci: usb@29000 {
compatible = "generic-xhci";
reg = <0x29000 0x1000>;
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
phys = <&usb3_phy>;
phy-names = "usb3-phy";
dma-coherent;
status = "disabled";
};
ehci0: usb@2a000 {
compatible = "generic-ehci";
reg = <0x2a000 0x100>;
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
dma-coherent;
status = "disabled";
};
ohci0: usb@2b000 {
compatible = "generic-ohci";
reg = <0x2b000 0x100>;
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
dma-coherent;
status = "disabled";
};
crypto@2f000 { crypto@2f000 {
compatible = "brcm,spum-nsp-crypto"; compatible = "brcm,spum-nsp-crypto";
reg = <0x2f000 0x900>; reg = <0x2f000 0x900>;
...@@ -321,20 +352,6 @@ pwm: pwm@31000 { ...@@ -321,20 +352,6 @@ pwm: pwm@31000 {
status = "disabled"; status = "disabled";
}; };
ehci0: usb@2a000 {
compatible = "generic-ehci";
reg = <0x2a000 0x100>;
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
ohci0: usb@2b000 {
compatible = "generic-ohci";
reg = <0x2b000 0x100>;
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
rng: rng@33000 { rng: rng@33000 {
compatible = "brcm,bcm-nsp-rng"; compatible = "brcm,bcm-nsp-rng";
reg = <0x33000 0x14>; reg = <0x33000 0x14>;
...@@ -376,6 +393,7 @@ i2c0: i2c@38000 { ...@@ -376,6 +393,7 @@ i2c0: i2c@38000 {
#size-cells = <0>; #size-cells = <0>;
interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>; interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>;
clock-frequency = <100000>; clock-frequency = <100000>;
dma-coherent;
status = "disabled"; status = "disabled";
}; };
...@@ -446,6 +464,7 @@ sata: ahci@41000 { ...@@ -446,6 +464,7 @@ sata: ahci@41000 {
interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
dma-coherent;
status = "disabled"; status = "disabled";
sata0: sata-port@0 { sata0: sata-port@0 {
...@@ -460,6 +479,15 @@ sata1: sata-port@1 { ...@@ -460,6 +479,15 @@ sata1: sata-port@1 {
phy-names = "sata-phy"; phy-names = "sata-phy";
}; };
}; };
usb3_phy: usb3-phy@104000 {
compatible = "brcm,ns-bx-usb3-phy";
reg = <0x104000 0x1000>,
<0x032000 0x1000>;
reg-names = "dmp", "ccb-mii";
#phy-cells = <0>;
status = "disabled";
};
}; };
pcie0: pcie@18012000 { pcie0: pcie@18012000 {
...@@ -483,6 +511,7 @@ pcie0: pcie@18012000 { ...@@ -483,6 +511,7 @@ pcie0: pcie@18012000 {
*/ */
ranges = <0x82000000 0 0x08000000 0x08000000 0 0x8000000>; ranges = <0x82000000 0 0x08000000 0x08000000 0 0x8000000>;
dma-coherent;
status = "disabled"; status = "disabled";
msi-parent = <&msi0>; msi-parent = <&msi0>;
...@@ -519,6 +548,7 @@ pcie1: pcie@18013000 { ...@@ -519,6 +548,7 @@ pcie1: pcie@18013000 {
*/ */
ranges = <0x82000000 0 0x40000000 0x40000000 0 0x8000000>; ranges = <0x82000000 0 0x40000000 0x40000000 0 0x8000000>;
dma-coherent;
status = "disabled"; status = "disabled";
msi-parent = <&msi1>; msi-parent = <&msi1>;
...@@ -555,6 +585,7 @@ pcie2: pcie@18014000 { ...@@ -555,6 +585,7 @@ pcie2: pcie@18014000 {
*/ */
ranges = <0x82000000 0 0x48000000 0x48000000 0 0x8000000>; ranges = <0x82000000 0 0x48000000 0x48000000 0 0x8000000>;
dma-coherent;
status = "disabled"; status = "disabled";
msi-parent = <&msi2>; msi-parent = <&msi2>;
......
...@@ -99,3 +99,9 @@ i2s_alt0: i2s_alt0 { ...@@ -99,3 +99,9 @@ i2s_alt0: i2s_alt0 {
&hdmi { &hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
}; };
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
status = "okay";
};
...@@ -94,3 +94,9 @@ i2s_alt2: i2s_alt2 { ...@@ -94,3 +94,9 @@ i2s_alt2: i2s_alt2 {
&hdmi { &hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
}; };
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
status = "okay";
};
...@@ -101,3 +101,9 @@ i2s_alt0: i2s_alt0 { ...@@ -101,3 +101,9 @@ i2s_alt0: i2s_alt0 {
&hdmi { &hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
}; };
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
status = "okay";
};
...@@ -94,3 +94,9 @@ i2s_alt2: i2s_alt2 { ...@@ -94,3 +94,9 @@ i2s_alt2: i2s_alt2 {
&hdmi { &hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
}; };
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
status = "okay";
};
...@@ -89,3 +89,9 @@ &gpio { ...@@ -89,3 +89,9 @@ &gpio {
&hdmi { &hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
}; };
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
status = "okay";
};
/*
* Copyright (C) 2017 Stefan Wahren <stefan.wahren@i2se.com>
*
* The code contained herein is licensed under the GNU General Public
* License. You may obtain a copy of the GNU General Public License
* Version 2 or later at the following locations:
*
* http://www.opensource.org/licenses/gpl-license.html
* http://www.gnu.org/copyleft/gpl.html
*/
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
/ {
compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
model = "Raspberry Pi Zero W";
/* Needed by firmware to properly init UARTs */
aliases {
uart0 = "/soc/serial@7e201000";
uart1 = "/soc/serial@7e215040";
serial0 = "/soc/serial@7e201000";
serial1 = "/soc/serial@7e215040";
};
leds {
act {
gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
};
};
wifi_pwrseq: wifi-pwrseq {
compatible = "mmc-pwrseq-simple";
pinctrl-names = "default";
pinctrl-0 = <&wl_on>;
reset-gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
};
};
&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",
"SDA1",
"SCL1",
"GPIO_GCLK",
"GPIO5",
"GPIO6",
"SPI_CE1_N",
"SPI_CE0_N",
"SPI_MISO",
"SPI_MOSI",
"SPI_SCLK",
"GPIO12",
"GPIO13",
/* Serial port */
"TXD0",
"RXD0",
"GPIO16",
"GPIO17",
"GPIO18",
"GPIO19",
"GPIO20",
"GPIO21",
"GPIO22",
"GPIO23",
"GPIO24",
"GPIO25",
"GPIO26",
"GPIO27",
"SDA0",
"SCL0",
"NC", /* GPIO30 */
"NC", /* GPIO31 */
"NC", /* GPIO32 */
"NC", /* GPIO33 */
"NC", /* GPIO34 */
"NC", /* GPIO35 */
"NC", /* GPIO36 */
"NC", /* GPIO37 */
"NC", /* GPIO38 */
"NC", /* GPIO39 */
"CAM_GPIO1", /* GPIO40 */
"WL_ON", /* GPIO41 */
"NC", /* GPIO42 */
"WIFI_CLK", /* GPIO43 */
"CAM_GPIO0", /* GPIO44 */
"BT_ON", /* GPIO45 */
"HDMI_HPD_N",
"STATUS_LED_N",
/* Used by SD Card */
"SD_CLK_R",
"SD_CMD_R",
"SD_DATA0_R",
"SD_DATA1_R",
"SD_DATA2_R",
"SD_DATA3_R";
pinctrl-0 = <&gpioout &alt0>;
wl_on: wl-on {
brcm,pins = <41>;
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
};
};
&hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
};
&sdhci {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>;
mmc-pwrseq = <&wifi_pwrseq>;
non-removable;
status = "okay";
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
};
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
status = "okay";
};
...@@ -103,3 +103,9 @@ i2s_alt0: i2s_alt0 { ...@@ -103,3 +103,9 @@ i2s_alt0: i2s_alt0 {
&hdmi { &hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
}; };
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
status = "okay";
};
...@@ -39,7 +39,7 @@ gpioout: gpioout { ...@@ -39,7 +39,7 @@ gpioout: gpioout {
}; };
alt0: alt0 { alt0: alt0 {
brcm,pins = <4 5 7 8 9 10 11 14 15>; brcm,pins = <4 5 7 8 9 10 11>;
brcm,function = <BCM2835_FSEL_ALT0>; brcm,function = <BCM2835_FSEL_ALT0>;
}; };
}; };
......
...@@ -39,3 +39,9 @@ i2s_alt0: i2s_alt0 { ...@@ -39,3 +39,9 @@ i2s_alt0: i2s_alt0 {
&hdmi { &hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
}; };
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
status = "okay";
};
...@@ -36,6 +36,7 @@ timer { ...@@ -36,6 +36,7 @@ timer {
cpus: cpus { cpus: cpus {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
enable-method = "brcm,bcm2836-smp";
v7_cpu0: cpu@0 { v7_cpu0: cpu@0 {
device_type = "cpu"; device_type = "cpu";
......
#include "arm64/broadcom/bcm2837-rpi-3-b.dts" /dts-v1/;
#include "bcm2837.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-smsc9514.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
/ {
compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
model = "Raspberry Pi 3 Model B";
memory {
reg = <0 0x40000000>;
};
leds {
act {
gpios = <&gpio 47 0>;
};
};
};
/* uart0 communicates with the BT module */
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>;
status = "okay";
};
/* uart1 is mapped to the pin header */
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_gpio14>;
status = "okay";
};
/* SDHCI is used to control the SDIO for wireless */
&sdhci {
pinctrl-names = "default";
pinctrl-0 = <&emmc_gpio34>;
status = "okay";
bus-width = <4>;
non-removable;
};
/* SDHOST is used to drive the SD card */
&sdhost {
pinctrl-names = "default";
pinctrl-0 = <&sdhost_gpio48>;
status = "okay";
bus-width = <4>;
};
...@@ -30,6 +30,7 @@ timer { ...@@ -30,6 +30,7 @@ timer {
cpus: cpus { cpus: cpus {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
enable-method = "brcm,bcm2836-smp"; // for ARM 32-bit
cpu0: cpu@0 { cpu0: cpu@0 {
device_type = "cpu"; device_type = "cpu";
......
...@@ -52,6 +52,10 @@ leds { ...@@ -52,6 +52,10 @@ leds {
usb { usb {
label = "bcm53xx:blue:usb"; label = "bcm53xx:blue:usb";
gpios = <&hc595 0 GPIO_ACTIVE_HIGH>; gpios = <&hc595 0 GPIO_ACTIVE_HIGH>;
trigger-sources = <&ohci_port1>, <&ehci_port1>,
<&xhci_port1>, <&ohci_port2>,
<&ehci_port2>;
linux,default-trigger = "usbport";
}; };
power0 { power0 {
......
...@@ -48,6 +48,9 @@ power1 { ...@@ -48,6 +48,9 @@ power1 {
usb { usb {
label = "bcm53xx:blue:usb"; label = "bcm53xx:blue:usb";
gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>; gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
trigger-sources = <&ohci_port1>, <&ehci_port1>,
<&xhci_port1>;
linux,default-trigger = "usbport";
}; };
wireless { wireless {
......
...@@ -42,16 +42,22 @@ power-amber { ...@@ -42,16 +42,22 @@ power-amber {
usb2 { usb2 {
label = "bcm53xx:white:usb2"; label = "bcm53xx:white:usb2";
gpios = <&chipcommon 3 GPIO_ACTIVE_HIGH>; gpios = <&chipcommon 3 GPIO_ACTIVE_HIGH>;
trigger-sources = <&ohci_port2>, <&ehci_port2>;
linux,default-trigger = "usbport";
}; };
usb3-white { usb3-white {
label = "bcm53xx:white:usb3"; label = "bcm53xx:white:usb3";
gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>; gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
trigger-sources = <&xhci_port1>;
linux,default-trigger = "usbport";
}; };
usb3-green { usb3-green {
label = "bcm53xx:green:usb3"; label = "bcm53xx:green:usb3";
gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>; gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
trigger-sources = <&ohci_port1>, <&ehci_port1>;
linux,default-trigger = "usbport";
}; };
wps { wps {
......
...@@ -36,6 +36,8 @@ lan { ...@@ -36,6 +36,8 @@ lan {
usb2-port1 { usb2-port1 {
label = "bcm53xx:green:usb2-port1"; label = "bcm53xx:green:usb2-port1";
gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>; gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
trigger-sources = <&ohci_port1>, <&ehci_port1>;
linux,default-trigger = "usbport";
}; };
power { power {
...@@ -67,6 +69,8 @@ wan-amber { ...@@ -67,6 +69,8 @@ wan-amber {
usb2-port2 { usb2-port2 {
label = "bcm53xx:green:usb2-port2"; label = "bcm53xx:green:usb2-port2";
gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>; gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
trigger-sources = <&ohci_port2>, <&ehci_port2>;
linux,default-trigger = "usbport";
}; };
}; };
......
...@@ -46,11 +46,16 @@ wps { ...@@ -46,11 +46,16 @@ wps {
usb3 { usb3 {
label = "bcm53xx:blue:usb3"; label = "bcm53xx:blue:usb3";
gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>; gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
trigger-sources = <&ohci_port1>, <&ehci_port1>,
<&xhci_port1>;
linux,default-trigger = "usbport";
}; };
usb2 { usb2 {
label = "bcm53xx:blue:usb2"; label = "bcm53xx:blue:usb2";
gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>; gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
trigger-sources = <&ohci_port2>, <&ehci_port2>;
linux,default-trigger = "usbport";
}; };
wan-blue { wan-blue {
......
...@@ -71,6 +71,9 @@ wan-amber { ...@@ -71,6 +71,9 @@ wan-amber {
usb3-white { usb3-white {
label = "bcm53xx:white:usb3"; label = "bcm53xx:white:usb3";
gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>; gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
trigger-sources = <&ohci_port1>, <&ehci_port1>,
<&xhci_port1>;
linux,default-trigger = "usbport";
}; };
2ghz { 2ghz {
......
...@@ -59,6 +59,9 @@ lan2 { ...@@ -59,6 +59,9 @@ lan2 {
usb3 { usb3 {
label = "bcm53xx:green:usb3"; label = "bcm53xx:green:usb3";
gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>; gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
trigger-sources = <&ohci_port1>, <&ehci_port1>,
<&xhci_port1>;
linux,default-trigger = "usbport";
}; };
status { status {
......
...@@ -26,6 +26,8 @@ leds { ...@@ -26,6 +26,8 @@ leds {
usb { usb {
label = "bcm53xx:blue:usb"; label = "bcm53xx:blue:usb";
gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>; gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
trigger-sources = <&ohci_port1>, <&ehci_port1>;
linux,default-trigger = "usbport";
}; };
wps { wps {
......
...@@ -272,6 +272,19 @@ ehci: ehci@21000 { ...@@ -272,6 +272,19 @@ ehci: ehci@21000 {
reg = <0x00021000 0x1000>; reg = <0x00021000 0x1000>;
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
phys = <&usb2_phy>; phys = <&usb2_phy>;
#address-cells = <1>;
#size-cells = <0>;
ehci_port1: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
ehci_port2: port@2 {
reg = <2>;
#trigger-source-cells = <0>;
};
}; };
ohci: ohci@22000 { ohci: ohci@22000 {
...@@ -280,6 +293,19 @@ ohci: ohci@22000 { ...@@ -280,6 +293,19 @@ ohci: ohci@22000 {
compatible = "generic-ohci"; compatible = "generic-ohci";
reg = <0x00022000 0x1000>; reg = <0x00022000 0x1000>;
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
ohci_port1: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
ohci_port2: port@2 {
reg = <2>;
#trigger-source-cells = <0>;
};
}; };
}; };
...@@ -300,6 +326,14 @@ xhci: xhci@23000 { ...@@ -300,6 +326,14 @@ xhci: xhci@23000 {
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
phys = <&usb3_phy>; phys = <&usb3_phy>;
phy-names = "usb"; phy-names = "usb";
#address-cells = <1>;
#size-cells = <0>;
xhci_port1: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
}; };
}; };
......
...@@ -138,10 +138,12 @@ ehci: ehci@4000 { ...@@ -138,10 +138,12 @@ ehci: ehci@4000 {
ehci_port1: port@1 { ehci_port1: port@1 {
reg = <1>; reg = <1>;
#trigger-source-cells = <0>;
}; };
ehci_port2: port@2 { ehci_port2: port@2 {
reg = <2>; reg = <2>;
#trigger-source-cells = <0>;
}; };
}; };
...@@ -158,10 +160,12 @@ ohci: ohci@d000 { ...@@ -158,10 +160,12 @@ ohci: ohci@d000 {
ohci_port1: port@1 { ohci_port1: port@1 {
reg = <1>; reg = <1>;
#trigger-source-cells = <0>;
}; };
ohci_port2: port@2 { ohci_port2: port@2 {
reg = <2>; reg = <2>;
#trigger-source-cells = <0>;
}; };
}; };
}; };
......
...@@ -39,9 +39,12 @@ / { ...@@ -39,9 +39,12 @@ / {
model = "Cygnus Enterprise Phone (BCM911360_ENTPHN)"; model = "Cygnus Enterprise Phone (BCM911360_ENTPHN)";
compatible = "brcm,bcm11360", "brcm,cygnus"; compatible = "brcm,bcm11360", "brcm,cygnus";
aliases {
serial0 = &uart3;
};
chosen { chosen {
stdout-path = &uart3; stdout-path = "serial0:115200n8";
bootargs = "console=ttyS0,115200";
}; };
gpio_keys { gpio_keys {
......
/*
* Copyright (C) 2017 Broadcom
* Author: Florian Fainelli <f.fainelli@gmail.com>
*
* Licensed under the ISC license.
*/
/dts-v1/;
#include "bcm53573.dtsi"
/ {
compatible = "brcm,bcm947189acdbmr", "brcm,bcm47189", "brcm,bcm53573";
model = "Broadcom BCM947189ACDBMR";
chosen {
bootargs = "console=ttyS0,115200 earlycon";
};
memory {
reg = <0x00000000 0x08000000>;
};
leds {
compatible = "gpio-leds";
wps {
label = "bcm53xx:blue:wps";
gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
};
5ghz {
label = "bcm53xx:blue:5ghz";
gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
};
2ghz {
label = "bcm53xx:blue:2ghz";
gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
};
};
gpio-keys {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
restart {
label = "Reset";
linux,code = <KEY_RESTART>;
gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
};
wps {
label = "WPS";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&chipcommon 9 GPIO_ACTIVE_LOW>;
};
};
spi {
compatible = "spi-gpio";
num-chipselects = <1>;
gpio-sck = <&chipcommon 21 0>;
gpio-miso = <&chipcommon 22 0>;
gpio-mosi = <&chipcommon 23 0>;
cs-gpios = <&chipcommon 24 0>;
#address-cells = <1>;
#size-cells = <0>;
/* External BCM6802 MoCA chip is connected */
};
};
&pcie0 {
ranges = <0x00000000 0 0 0 0 0x00100000>;
#address-cells = <3>;
#size-cells = <2>;
bridge@0,0,0 {
reg = <0x0000 0 0 0 0>;
ranges = <0x00000000 0 0 0 0 0 0 0x00100000>;
#address-cells = <3>;
#size-cells = <2>;
wifi@0,1,0 {
reg = <0x0000 0 0 0 0>;
ranges = <0x00000000 0 0 0 0x00100000>;
#address-cells = <1>;
#size-cells = <1>;
};
};
};
&usb2 {
vcc-gpio = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
};
...@@ -170,3 +170,11 @@ partition@700000 { ...@@ -170,3 +170,11 @@ partition@700000 {
&uart0 { &uart0 {
status = "okay"; status = "okay";
}; };
&usb3_phy {
status = "okay";
};
&xhci {
status = "okay";
};
...@@ -182,3 +182,11 @@ &sata { ...@@ -182,3 +182,11 @@ &sata {
&uart0 { &uart0 {
status = "okay"; status = "okay";
}; };
&usb3_phy {
status = "okay";
};
&xhci {
status = "okay";
};
...@@ -202,3 +202,11 @@ &sdio { ...@@ -202,3 +202,11 @@ &sdio {
&uart0 { &uart0 {
status = "okay"; status = "okay";
}; };
&usb3_phy {
status = "okay";
};
&xhci {
status = "okay";
};
...@@ -219,3 +219,11 @@ fixed-link { ...@@ -219,3 +219,11 @@ fixed-link {
&uart0 { &uart0 {
status = "okay"; status = "okay";
}; };
&usb3_phy {
status = "okay";
};
&xhci {
status = "okay";
};
...@@ -227,3 +227,11 @@ fixed-link { ...@@ -227,3 +227,11 @@ fixed-link {
&uart0 { &uart0 {
status = "okay"; status = "okay";
}; };
&usb3_phy {
status = "okay";
};
&xhci {
status = "okay";
};
...@@ -229,3 +229,11 @@ fixed-link { ...@@ -229,3 +229,11 @@ fixed-link {
&uart0 { &uart0 {
status = "okay"; status = "okay";
}; };
&usb3_phy {
status = "okay";
};
&xhci {
status = "okay";
};
...@@ -264,3 +264,11 @@ &uart0 { ...@@ -264,3 +264,11 @@ &uart0 {
&uart1 { &uart1 {
status = "okay"; status = "okay";
}; };
&usb3_phy {
status = "okay";
};
&xhci {
status = "okay";
};
../../../../arm/boot/dts/bcm2835-rpi.dtsi
\ No newline at end of file
/dts-v1/; #include "arm/bcm2837-rpi-3-b.dts"
#include "bcm2837.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-smsc9514.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
/ {
compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
model = "Raspberry Pi 3 Model B";
memory {
reg = <0 0x40000000>;
};
leds {
act {
gpios = <&gpio 47 0>;
};
};
};
&uart1 {
status = "okay";
};
/* SDHCI is used to control the SDIO for wireless */
&sdhci {
pinctrl-names = "default";
pinctrl-0 = <&emmc_gpio34>;
status = "okay";
bus-width = <4>;
non-removable;
};
/* SDHOST is used to drive the SD card */
&sdhost {
pinctrl-names = "default";
pinctrl-0 = <&sdhost_gpio48>;
status = "okay";
bus-width = <4>;
};
../../../../arm/boot/dts/bcm283x-rpi-smsc9514.dtsi
\ No newline at end of file
../../../../arm/boot/dts/bcm283x-rpi-usb-host.dtsi
\ No newline at end of file
../../../../arm/boot/dts/bcm283x.dtsi
\ No newline at end of file
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