Commit 71dd33b9 authored by Olof Johansson's avatar Olof Johansson
Browse files

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

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

- Stefan paves the way for supporting the Raspberry Pi 4 and gets rid of
  a bunch of dtc checker warnings by removing incorrect
  nodes/properties, moving BCM2835/6/7 specific nodes into the
  appropriate DTS, converts Raspberry Pi boards to JSON schema, and
  finally adds minimal Raspberry Pi 4 model B support

- Dan adds support for the Luxul XWC-2000 router based on the BCM47094 SoC

- Chris adds a proper label to the Hurricane 2 watchdog controller node

* tag 'arm-soc/for-5.5/devicetree' of https://github.com/Broadcom/stblinux:
  ARM: dts: bcm: HR2: add label to sp805 watchdog
  ARM: dts: BCM5301X: Add DT for Luxul XWC-2000
  arm64: dts: broadcom: Add reference to RPi 4 B
  ARM: dts: Add minimal Raspberry Pi 4 support
  dt-bindings: arm: bcm2835: Add Raspberry Pi 4 to DT schema
  dt-bindings: arm: Convert BCM2835 board/soc bindings to json-schema
  ARM: dts: bcm283x: Move BCM2835/6/7 specific to bcm2835-common.dtsi
  ARM: dts: bcm283x: Remove brcm,bcm2835-pl011 compatible
  ARM: dts: bcm283x: Remove simple-bus from fixed clocks

Link: https://lore.kernel.org/r/20191023212814.30622-1-f.fainelli@gmail.com


Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 044393a7 4c365e23
Loading
Loading
Loading
Loading
+54 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/bcm/bcm2835.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM2711/BCM2835 Platforms Device Tree Bindings

maintainers:
  - Eric Anholt <eric@anholt.net>
  - Stefan Wahren <wahrenst@gmx.net>

properties:
  $nodename:
    const: '/'
  compatible:
    oneOf:
      - description: BCM2711 based Boards
        items:
          - enum:
              - raspberrypi,4-model-b
          - const: brcm,bcm2711

      - description: BCM2835 based Boards
        items:
          - enum:
              - raspberrypi,model-a
              - raspberrypi,model-a-plus
              - raspberrypi,model-b
              - raspberrypi,model-b-i2c0  # Raspberry Pi Model B (no P5)
              - raspberrypi,model-b-rev2
              - raspberrypi,model-b-plus
              - raspberrypi,compute-module
              - raspberrypi,model-zero
              - raspberrypi,model-zero-w
          - const: brcm,bcm2835

      - description: BCM2836 based Boards
        items:
          - enum:
              - raspberrypi,2-model-b
          - const: brcm,bcm2836

      - description: BCM2837 based Boards
        items:
          - enum:
              - raspberrypi,3-model-a-plus
              - raspberrypi,3-model-b
              - raspberrypi,3-model-b-plus
              - raspberrypi,3-compute-module
              - raspberrypi,3-compute-module-lite
          - const: brcm,bcm2837

...
+0 −67
Original line number Diff line number Diff line
Broadcom BCM2835 device tree bindings
-------------------------------------------

Raspberry Pi Model A
Required root node properties:
compatible = "raspberrypi,model-a", "brcm,bcm2835";

Raspberry Pi Model A+
Required root node properties:
compatible = "raspberrypi,model-a-plus", "brcm,bcm2835";

Raspberry Pi Model B
Required root node properties:
compatible = "raspberrypi,model-b", "brcm,bcm2835";

Raspberry Pi Model B (no P5)
early model B with I2C0 rather than I2C1 routed to the expansion header
Required root node properties:
compatible = "raspberrypi,model-b-i2c0", "brcm,bcm2835";

Raspberry Pi Model B rev2
Required root node properties:
compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835";

Raspberry Pi Model B+
Required root node properties:
compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";

Raspberry Pi 2 Model B
Required root node properties:
compatible = "raspberrypi,2-model-b", "brcm,bcm2836";

Raspberry Pi 3 Model A+
Required root node properties:
compatible = "raspberrypi,3-model-a-plus", "brcm,bcm2837";

Raspberry Pi 3 Model B
Required root node properties:
compatible = "raspberrypi,3-model-b", "brcm,bcm2837";

Raspberry Pi 3 Model B+
Required root node properties:
compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837";

Raspberry Pi Compute Module
Required root node properties:
compatible = "raspberrypi,compute-module", "brcm,bcm2835";

Raspberry Pi Compute Module 3
Required root node properties:
compatible = "raspberrypi,3-compute-module", "brcm,bcm2837";

Raspberry Pi Compute Module 3 Lite
Required root node properties:
compatible = "raspberrypi,3-compute-module-lite", "brcm,bcm2837";

Raspberry Pi Zero
Required root node properties:
compatible = "raspberrypi,model-zero", "brcm,bcm2835";

Raspberry Pi Zero W
Required root node properties:
compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";

Generic BCM2835 board
Required root node properties:
compatible = "brcm,bcm2835";
+2 −0
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
	bcm2837-rpi-3-b.dtb \
	bcm2837-rpi-3-b-plus.dtb \
	bcm2837-rpi-cm3-io3.dtb \
	bcm2711-rpi-4-b.dtb \
	bcm2835-rpi-zero.dtb \
	bcm2835-rpi-zero-w.dtb
dtb-$(CONFIG_ARCH_BCM_5301X) += \
@@ -113,6 +114,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
	bcm47094-luxul-abr-4500.dtb \
	bcm47094-luxul-xap-1610.dtb \
	bcm47094-luxul-xbr-4500.dtb \
	bcm47094-luxul-xwc-2000.dtb \
	bcm47094-luxul-xwr-3100.dtb \
	bcm47094-luxul-xwr-3150-v1.dtb \
	bcm47094-netgear-r8500.dtb \
+1 −1
Original line number Diff line number Diff line
@@ -268,7 +268,7 @@
			clock-frequency = <100000>;
		};

		watchdog@39000 {
		watchdog: watchdog@39000 {
			compatible = "arm,sp805", "arm,primecell";
			reg = <0x39000 0x1000>;
			interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>;
+123 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2711.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-usb-peripheral.dtsi"

/ {
	compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
	model = "Raspberry Pi 4 Model B";

	chosen {
		/* 8250 auxiliary UART instead of pl011 */
		stdout-path = "serial1:115200n8";
	};

	/* Will be filled by the bootloader */
	memory@0 {
		device_type = "memory";
		reg = <0 0 0>;
	};

	leds {
		act {
			gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
		};

		pwr {
			label = "PWR";
			gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
		};
	};

	wifi_pwrseq: wifi-pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
	};

	sd_io_1v8_reg: sd_io_1v8_reg {
		compatible = "regulator-gpio";
		regulator-name = "vdd-sd-io";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
		regulator-always-on;
		regulator-settling-time-us = <5000>;
		gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
		states = <1800000 0x1
			  3300000 0x0>;
		status = "okay";
	};
};

&firmware {
	expgpio: gpio {
		compatible = "raspberrypi,firmware-gpio";
		gpio-controller;
		#gpio-cells = <2>;
		gpio-line-names = "BT_ON",
				  "WL_ON",
				  "PWR_LED_OFF",
				  "GLOBAL_RESET",
				  "VDD_SD_IO_SEL",
				  "CAM_GPIO",
				  "",
				  "";
		status = "okay";
	};
};

&pwm1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
	status = "okay";
};

/* SDHCI is used to control the SDIO for wireless */
&sdhci {
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&emmc_gpio34>;
	bus-width = <4>;
	non-removable;
	mmc-pwrseq = <&wifi_pwrseq>;
	status = "okay";

	brcmf: wifi@1 {
		reg = <1>;
		compatible = "brcm,bcm4329-fmac";
	};
};

/* EMMC2 is used to drive the SD card */
&emmc2 {
	vqmmc-supply = <&sd_io_1v8_reg>;
	broken-cd;
	status = "okay";
};

/* uart0 communicates with the BT module */
&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>;
	uart-has-rtscts;
	status = "okay";

	bluetooth {
		compatible = "brcm,bcm43438-bt";
		max-speed = <2000000>;
		shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
	};
};

/* uart1 is mapped to the pin header */
&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart1_gpio14>;
	status = "okay";
};

&vchiq {
	interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
};
Loading