From 261fe7baf01a8ec4d308eefa8dcb23dafeadf20f Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Sun, 17 Jun 2018 15:31:23 -0700 Subject: [PATCH] [arm64,armhf] Add device-tree to support Raspberry PI 3b+. --- debian/changelog | 1 + ...om-Add-reference-to-Raspberry-Pi-3-B.patch | 39 ++++ ...ARM-dts-bcm2837-Add-Raspberry-Pi-3-B.patch | 185 ++++++++++++++++++ debian/patches/series | 3 + 4 files changed, 228 insertions(+) create mode 100644 debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Raspberry-Pi-3-B.patch create mode 100644 debian/patches/features/armhf/ARM-dts-bcm2837-Add-Raspberry-Pi-3-B.patch diff --git a/debian/changelog b/debian/changelog index acf218f39..2c880c46b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -300,6 +300,7 @@ linux (4.16.13-1) UNRELEASED; urgency=medium ROCKCHIP_DW_MIPI_DSI, ROCKCHIP_SARADC, ROCKCHIP_IOMMU, ROCKCHIP_EFUSE, PHY_ROCKCHIP_TYPEC, ROCKCHIP_THERMAL (Closes: #901159). Thanks to Heinrich Schuchardt. + * [arm64,armhf] Add device-tree to support Raspberry PI 3b+. -- Salvatore Bonaccorso Wed, 30 May 2018 08:41:30 +0200 diff --git a/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Raspberry-Pi-3-B.patch b/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Raspberry-Pi-3-B.patch new file mode 100644 index 000000000..91188b54b --- /dev/null +++ b/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Raspberry-Pi-3-B.patch @@ -0,0 +1,39 @@ +From bdd6d1fe1cd84806429467ce62a735bdc6bdbae7 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Sat, 21 Apr 2018 13:28:42 +0200 +Subject: [PATCH 2/2] arm64: dts: broadcom: Add reference to Raspberry Pi 3 B+ + +This adds a reference to the dts of the Raspberry Pi 3 B+ +in arm, so don't need to maintain the content in arm64. + +Signed-off-by: Stefan Wahren +Reviewed-by: Eric Anholt +Signed-off-by: Eric Anholt +--- + arch/arm64/boot/dts/broadcom/Makefile | 3 ++- + arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts | 2 ++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile +index 2a2591ef1fee..1193a9e34bbb 100644 +--- a/arch/arm64/boot/dts/broadcom/Makefile ++++ b/arch/arm64/boot/dts/broadcom/Makefile +@@ -1,5 +1,6 @@ + # SPDX-License-Identifier: GPL-2.0 +-dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb ++dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \ ++ bcm2837-rpi-3-b-plus.dtb + + subdir-y += northstar2 + subdir-y += stingray +diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts +new file mode 100644 +index 000000000000..46ad2023cccf +--- /dev/null ++++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts +@@ -0,0 +1,2 @@ ++// SPDX-License-Identifier: GPL-2.0 ++#include "arm/bcm2837-rpi-3-b-plus.dts" +-- +2.11.0 + diff --git a/debian/patches/features/armhf/ARM-dts-bcm2837-Add-Raspberry-Pi-3-B.patch b/debian/patches/features/armhf/ARM-dts-bcm2837-Add-Raspberry-Pi-3-B.patch new file mode 100644 index 000000000..cd9fd85d6 --- /dev/null +++ b/debian/patches/features/armhf/ARM-dts-bcm2837-Add-Raspberry-Pi-3-B.patch @@ -0,0 +1,185 @@ +From 71c0cd2283f29c16049d6459c2d4ce6230c3c81f Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Sat, 21 Apr 2018 13:28:37 +0200 +Subject: [PATCH 1/2] ARM: dts: bcm2837: Add Raspberry Pi 3 B+ + +The Raspberry Pi 3 B+ has the following major differences compared +to the model 3 B: +* Microchip LAN7515 (Gigabit Ethernet with integrated USB 2.0 HUB) +* Cypress CYW43455 (802.11n/ac and BT 4.2) + +We need to add the USB LAN chip so the bootloader can add the MAC address. +This is necessary because there ain't an EEPROM or a valid OTP. + +Signed-off-by: Phil Elwell +Signed-off-by: Stefan Wahren +Reviewed-by: Eric Anholt +Signed-off-by: Eric Anholt +--- + arch/arm/boot/dts/Makefile | 1 + + arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 108 +++++++++++++++++++++++++++++ + arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi | 27 ++++++++ + 3 files changed, 136 insertions(+) + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index 7e2424957809..a300a3599d59 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ + bcm2835-rpi-a-plus.dtb \ + bcm2836-rpi-2-b.dtb \ + bcm2837-rpi-3-b.dtb \ ++ bcm2837-rpi-3-b-plus.dtb \ + bcm2835-rpi-zero.dtb \ + bcm2835-rpi-zero-w.dtb + dtb-$(CONFIG_ARCH_BCM_5301X) += \ +diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts +new file mode 100644 +index 000000000000..4adb85e66be3 +--- /dev/null ++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts +@@ -0,0 +1,108 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/dts-v1/; ++#include "bcm2837.dtsi" ++#include "bcm2835-rpi.dtsi" ++#include "bcm283x-rpi-lan7515.dtsi" ++#include "bcm283x-rpi-usb-host.dtsi" ++ ++/ { ++ compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837"; ++ model = "Raspberry Pi 3 Model B+"; ++ ++ chosen { ++ /* 8250 auxiliary UART instead of pl011 */ ++ stdout-path = "serial1:115200n8"; ++ }; ++ ++ memory { ++ reg = <0 0x40000000>; ++ }; ++ ++ leds { ++ act { ++ gpios = <&gpio 29 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_HIGH>; ++ }; ++}; ++ ++&firmware { ++ expgpio: gpio { ++ compatible = "raspberrypi,firmware-gpio"; ++ gpio-controller; ++ #gpio-cells = <2>; ++ gpio-line-names = "BT_ON", ++ "WL_ON", ++ "STATUS_LED", ++ "LAN_RUN", ++ "", ++ "CAM_GPIO0", ++ "CAM_GPIO1", ++ ""; ++ status = "okay"; ++ }; ++}; ++ ++&hdmi { ++ hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>; ++}; ++ ++&pwm { ++ 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"; ++ }; ++}; ++ ++/* SDHOST is used to drive the SD card */ ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ status = "okay"; ++ bus-width = <4>; ++}; ++ ++/* 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"; ++}; +diff --git a/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi b/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi +new file mode 100644 +index 000000000000..9403da0990d0 +--- /dev/null ++++ b/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi +@@ -0,0 +1,27 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/ { ++ aliases { ++ ethernet0 = ðernet; ++ }; ++}; ++ ++&usb { ++ usb-port@1 { ++ compatible = "usb424,2514"; ++ reg = <1>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ usb-port@1 { ++ compatible = "usb424,2514"; ++ reg = <1>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ ethernet: ethernet@1 { ++ compatible = "usb424,7800"; ++ reg = <1>; ++ }; ++ }; ++ }; ++}; +-- +2.11.0 + diff --git a/debian/patches/series b/debian/patches/series index cc0aed6cc..fb6a3f6fc 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -90,6 +90,9 @@ features/arm64/tegra210-sata/0005-ata-ahci_tegra-Add-AHCI-support-for-Tegra210.p features/arm64/tegra210-sata/0006-arm64-tegra-Add-SATA-node-for-Tegra210.patch features/arm64/tegra210-sata/0007-arm64-tegra-Enable-AHCI-on-Jetson-TX1.patch features/arm64/arm64-dts-allwinner-a64-add-simplefb-for-A64-SoC.patch +# Add support for Raspberry PI 3b+ +features/armhf/ARM-dts-bcm2837-Add-Raspberry-Pi-3-B.patch +features/arm64/arm64-dts-broadcom-Add-reference-to-Raspberry-Pi-3-B.patch # Miscellaneous bug fixes bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch