Commit 206c12fc authored by Arnd Bergmann's avatar Arnd Bergmann

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

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

This pull request contains Broadcom ARM-based SoCs devicetree changes
for 4.17, please pull the following:

- Henry fixes the pin functions for the JTAG pins, nothing uses this for
  now, but it could be backported eventually if deemed appropriate

- Stefan fixes the register ranges for the bcm2835-i2s nodes in the
  binding document definition, he then fixes the probing of the
  bcm2835-i2s driver by providing an appropriate register range and a
  missing clock. Stefan also makes sure that the appropriate pull
  settings are applied to the pins used on the Raspberry Pi Zero
  Wireless, he then adds the necessary UART node to connected to the
  BCM43438 Bluetooth adapter on the Pi Zero W. He finally enables USB
  OTG mode on the Pi Zero W since he became usable again

- Baruch adds the necessary Device Tree nodes to support the Raspberry
  Pi GPIO expander which is controlled via the VC4 firmware

- Hiroshi adds the missing LEDs on the Buffalo WZR-900DHP router

- Eric adds the DPI hardware block into the BCM283x Device Tree include
  file for future use when an actual panel is available

- Florian updates the Northstar Plus platforms to use port 8 of the
  internal switch as the CPU/management port since necessary code was
  added in the b53 switch driver to support that

* tag 'arm-soc/for-4.17/devicetree' of https://github.com/Broadcom/stblinux:
  ARM: dts: NSP: Switch to port 8 for CPU port
  ARM: bcm2835: Add the DPI hardware to the device tree.
  ARM: dts: BCM5301X: add missing LEDs for Buffalo WZR-900DHP
  ARM: dts: bcm2835-rpi-zero-w: Enable OTG mode
  ARM: dts: bcm2835-rpi-zero-w: Add bcm43438 serial slave
  ARM: dts: bcm283x: Apply pull settings to Zero W relevant groups
  ARM: dts: bcm2837-rpi-3-b: add GPIO expander
  ARM: dts: bcm2835: make the firmware node into a bus
  ARM: dts: bcm283x: Fix probing of bcm2835-i2s
  dt-bindings: bcm283x: Fix register ranges of bcm2835-i2s
  ARM: dts: bcm283x: Fix pin function of JTAG pins
parents 90d4806b e5c851ef
......@@ -74,8 +74,8 @@ Example:
bcm2835_i2s: i2s@7e203000 {
compatible = "brcm,bcm2835-i2s";
reg = < 0x7e203000 0x20>,
< 0x7e101098 0x02>;
reg = < 0x7e203000 0x24>;
clocks = <&clocks BCM2835_CLOCK_PCM>;
dmas = <&dma 2>,
<&dma 3>;
......
......@@ -2,9 +2,8 @@
Required properties:
- compatible: "brcm,bcm2835-i2s"
- reg: A list of base address and size entries:
* The first entry should cover the PCM registers
* The second entry should cover the PCM clock registers
- reg: Should contain PCM registers location and length.
- clocks: the (PCM) clock to use
- dmas: List of DMA controller phandle and DMA request line ordered pairs.
- dma-names: Identifier string for each DMA request line in the dmas property.
These strings correspond 1:1 with the ordered pairs in dmas.
......@@ -16,8 +15,8 @@ Example:
bcm2835_i2s: i2s@7e203000 {
compatible = "brcm,bcm2835-i2s";
reg = <0x7e203000 0x20>,
<0x7e101098 0x02>;
reg = <0x7e203000 0x24>;
clocks = <&clocks BCM2835_CLOCK_PCM>;
dmas = <&dma 2>,
<&dma 3>;
......
......@@ -12,7 +12,7 @@
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
#include "bcm283x-rpi-usb-otg.dtsi"
/ {
compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
......@@ -131,6 +131,18 @@ brcmf: wifi@1 {
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
pinctrl-0 = <&uart0_gpio32 &uart0_ctsrts_gpio30>;
status = "okay";
bluetooth {
compatible = "brcm,bcm43438-bt";
max-speed = <2000000>;
shutdown-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
};
};
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_gpio14>;
status = "okay";
};
......@@ -18,7 +18,9 @@ act {
soc {
firmware: firmware {
compatible = "raspberrypi,bcm2835-firmware";
compatible = "raspberrypi,bcm2835-firmware", "simple-bus";
#address-cells = <0>;
#size-cells = <0>;
mboxes = <&mailbox>;
};
......
......@@ -25,6 +25,23 @@ act {
};
};
&firmware {
expgpio: gpio {
compatible = "raspberrypi,firmware-gpio";
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "BT_ON",
"WL_ON",
"STATUS_LED",
"LAN_RUN",
"HPD_N",
"CAM_GPIO0",
"CAM_GPIO1",
"PWR_LOW_N";
status = "okay";
};
};
/* uart0 communicates with the BT module */
&uart0 {
pinctrl-names = "default";
......
......@@ -223,6 +223,7 @@ gpclk2_gpio6: gpclk2_gpio6 {
gpclk2_gpio43: gpclk2_gpio43 {
brcm,pins = <43>;
brcm,function = <BCM2835_FSEL_ALT0>;
brcm,pull = <BCM2835_PUD_OFF>;
};
i2c0_gpio0: i2c0_gpio0 {
......@@ -252,7 +253,7 @@ i2c_slave_gpio18: i2c_slave_gpio18 {
jtag_gpio4: jtag_gpio4 {
brcm,pins = <4 5 6 12 13>;
brcm,function = <BCM2835_FSEL_ALT4>;
brcm,function = <BCM2835_FSEL_ALT5>;
};
jtag_gpio22: jtag_gpio22 {
brcm,pins = <22 23 24 25 26 27>;
......@@ -335,10 +336,12 @@ uart0_ctsrts_gpio16: uart0_ctsrts_gpio16 {
uart0_ctsrts_gpio30: uart0_ctsrts_gpio30 {
brcm,pins = <30 31>;
brcm,function = <BCM2835_FSEL_ALT3>;
brcm,pull = <BCM2835_PUD_UP BCM2835_PUD_OFF>;
};
uart0_gpio32: uart0_gpio32 {
brcm,pins = <32 33>;
brcm,function = <BCM2835_FSEL_ALT3>;
brcm,pull = <BCM2835_PUD_OFF BCM2835_PUD_UP>;
};
uart0_gpio36: uart0_gpio36 {
brcm,pins = <36 37>;
......@@ -397,8 +400,8 @@ sdhost: mmc@7e202000 {
i2s: i2s@7e203000 {
compatible = "brcm,bcm2835-i2s";
reg = <0x7e203000 0x20>,
<0x7e101098 0x02>;
reg = <0x7e203000 0x24>;
clocks = <&clocks BCM2835_CLOCK_PCM>;
dmas = <&dma 2>,
<&dma 3>;
......@@ -438,6 +441,17 @@ pixelvalve@7e207000 {
interrupts = <2 14>; /* pwa1 */
};
dpi: dpi@7e208000 {
compatible = "brcm,bcm2835-dpi";
reg = <0x7e208000 0x8c>;
clocks = <&clocks BCM2835_CLOCK_VPU>,
<&clocks BCM2835_CLOCK_DPI>;
clock-names = "core", "pixel";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
dsi0: dsi@7e209000 {
compatible = "brcm,bcm2835-dsi0";
reg = <0x7e209000 0x78>;
......
......@@ -35,6 +35,74 @@ memory {
0x88000000 0x08000000>;
};
spi {
compatible = "spi-gpio";
num-chipselects = <1>;
gpio-sck = <&chipcommon 7 0>;
gpio-mosi = <&chipcommon 4 0>;
cs-gpios = <&chipcommon 6 0>;
#address-cells = <1>;
#size-cells = <0>;
hc595: gpio_spi@0 {
compatible = "fairchild,74hc595";
reg = <0>;
registers-number = <1>;
spi-max-frequency = <100000>;
gpio-controller;
#gpio-cells = <2>;
};
};
leds {
compatible = "gpio-leds";
usb {
label = "bcm53xx:green:usb";
gpios = <&hc595 0 GPIO_ACTIVE_HIGH>;
};
power0 {
label = "bcm53xx:green:power";
gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "default-on";
};
power1 {
label = "bcm53xx:red:power";
gpios = <&hc595 2 GPIO_ACTIVE_HIGH>;
};
router0 {
label = "bcm53xx:green:router";
gpios = <&hc595 3 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "default-on";
};
router1 {
label = "bcm53xx:amber:router";
gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
};
wan {
label = "bcm53xx:green:wan";
gpios = <&hc595 5 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "default-on";
};
wireless0 {
label = "bcm53xx:green:wireless";
gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
};
wireless1 {
label = "bcm53xx:amber:wireless";
gpios = <&hc595 7 GPIO_ACTIVE_HIGH>;
};
};
gpio-keys {
compatible = "gpio-keys";
#address-cells = <1>;
......
......@@ -204,10 +204,10 @@ port@4 {
reg = <4>;
};
port@5 {
ethernet = <&amac0>;
port@8 {
ethernet = <&amac2>;
label = "cpu";
reg = <5>;
reg = <8>;
fixed-link {
speed = <1000>;
full-duplex;
......
......@@ -208,10 +208,10 @@ port@4 {
reg = <4>;
};
port@5 {
ethernet = <&amac0>;
port@8 {
ethernet = <&amac2>;
label = "cpu";
reg = <5>;
reg = <8>;
fixed-link {
speed = <1000>;
full-duplex;
......
......@@ -210,10 +210,10 @@ port@4 {
reg = <4>;
};
port@5 {
ethernet = <&amac0>;
port@8 {
ethernet = <&amac2>;
label = "cpu";
reg = <5>;
reg = <8>;
fixed-link {
speed = <1000>;
full-duplex;
......
......@@ -245,10 +245,10 @@ port@4 {
reg = <4>;
};
port@5 {
ethernet = <&amac0>;
port@8 {
ethernet = <&amac2>;
label = "cpu";
reg = <5>;
reg = <8>;
fixed-link {
speed = <1000>;
full-duplex;
......
......@@ -216,10 +216,10 @@ port@4 {
reg = <4>;
};
port@5 {
ethernet = <&amac0>;
port@8 {
ethernet = <&amac2>;
label = "cpu";
reg = <5>;
reg = <8>;
fixed-link {
speed = <1000>;
full-duplex;
......
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