2019-09-19 14:43:19 +00:00
|
|
|
From 5216bb8a1257a8216362affe4757a96a36b60b32 Mon Sep 17 00:00:00 2001
|
2019-07-09 18:32:28 +00:00
|
|
|
From: Phil Elwell <phil@raspberrypi.org>
|
|
|
|
Date: Tue, 11 Jun 2019 18:08:05 +0100
|
2019-09-19 14:43:19 +00:00
|
|
|
Subject: [PATCH 664/806] arm: dts: First draft of upstream Pi4 DTS
|
2019-07-09 18:32:28 +00:00
|
|
|
|
|
|
|
I've attempted to follow the upstream conventions in the DT commits,
|
|
|
|
but this is just presented here initially as a talking point.
|
|
|
|
|
|
|
|
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|
|
|
---
|
|
|
|
arch/arm/boot/dts/Makefile | 1 +
|
|
|
|
arch/arm/boot/dts/bcm2838-rpi-4-b.dts | 118 ++++++++++++++++++++++++++
|
|
|
|
arch/arm/boot/dts/bcm2838-rpi.dtsi | 25 ++++++
|
|
|
|
3 files changed, 144 insertions(+)
|
|
|
|
create mode 100644 arch/arm/boot/dts/bcm2838-rpi-4-b.dts
|
|
|
|
create mode 100644 arch/arm/boot/dts/bcm2838-rpi.dtsi
|
|
|
|
|
|
|
|
--- a/arch/arm/boot/dts/Makefile
|
|
|
|
+++ b/arch/arm/boot/dts/Makefile
|
|
|
|
@@ -94,6 +94,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
|
|
|
|
bcm2836-rpi-2-b.dtb \
|
|
|
|
bcm2837-rpi-3-b.dtb \
|
|
|
|
bcm2837-rpi-3-b-plus.dtb \
|
|
|
|
+ bcm2838-rpi-4-b.dtb \
|
|
|
|
bcm2835-rpi-zero.dtb \
|
|
|
|
bcm2835-rpi-zero-w.dtb
|
|
|
|
dtb-$(CONFIG_ARCH_BCM_5301X) += \
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/arch/arm/boot/dts/bcm2838-rpi-4-b.dts
|
|
|
|
@@ -0,0 +1,118 @@
|
|
|
|
+// SPDX-License-Identifier: GPL-2.0
|
|
|
|
+/dts-v1/;
|
|
|
|
+#include "bcm2838.dtsi"
|
|
|
|
+#include "bcm2835-rpi.dtsi"
|
|
|
|
+#include "bcm2838-rpi.dtsi"
|
|
|
|
+
|
|
|
|
+/ {
|
|
|
|
+ compatible = "raspberrypi,4-model-b", "brcm,bcm2838";
|
|
|
|
+ model = "Raspberry Pi 4 Model B";
|
|
|
|
+
|
|
|
|
+ chosen {
|
|
|
|
+ /* 8250 auxiliary UART instead of pl011 */
|
|
|
|
+ stdout-path = "serial1:115200n8";
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ memory {
|
|
|
|
+ reg = <0 0 0x40000000>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ 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 {
|
|
|
|
+ status = "okay";
|
|
|
|
+ compatible = "regulator-gpio";
|
|
|
|
+ vin-supply = <&vdd_5v0_reg>;
|
|
|
|
+ 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>;
|
|
|
|
+ };
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+&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 = <&pwm0_gpio40 &pwm1_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>;
|
|
|
|
+ status = "okay";
|
|
|
|
+ bus-width = <4>;
|
|
|
|
+ non-removable;
|
|
|
|
+ mmc-pwrseq = <&wifi_pwrseq>;
|
|
|
|
+
|
|
|
|
+ brcmf: wifi@1 {
|
|
|
|
+ reg = <1>;
|
|
|
|
+ compatible = "brcm,bcm4329-fmac";
|
|
|
|
+ };
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* EMMC2 is used to drive the SD card */
|
|
|
|
+&emmc2 {
|
|
|
|
+ status = "okay";
|
|
|
|
+ broken-cd;
|
|
|
|
+ vqmmc-supply = <&sd_io_1v8_reg>;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* uart0 communicates with the BT module */
|
|
|
|
+&uart0 {
|
|
|
|
+ pinctrl-names = "default";
|
|
|
|
+ pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>;
|
|
|
|
+ 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";
|
|
|
|
+};
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/arch/arm/boot/dts/bcm2838-rpi.dtsi
|
|
|
|
@@ -0,0 +1,25 @@
|
|
|
|
+// SPDX-License-Identifier: GPL-2.0
|
|
|
|
+
|
|
|
|
+/ {
|
|
|
|
+ soc {
|
|
|
|
+ /delete-node/ mailbox@7e00b840;
|
|
|
|
+ };
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+&scb {
|
|
|
|
+ vchiq: mailbox@7e00b840 {
|
|
|
|
+ compatible = "brcm,bcm2838-vchiq";
|
|
|
|
+ reg = <0 0x7e00b840 0x3c>;
|
|
|
|
+ interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
|
+ };
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+&dma {
|
|
|
|
+ /* The VPU firmware uses DMA channel 11 for VCHIQ */
|
|
|
|
+ brcm,dma-channel-mask = <0x1f5>;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+&dma40 {
|
|
|
|
+ /* The VPU firmware DMA channel 11 for VCHIQ */
|
|
|
|
+ brcm,dma-channel-mask = <0x7000>;
|
|
|
|
+};
|