diff --git a/debian/changelog b/debian/changelog index 5bd0db110..7bace028e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,6 +11,9 @@ linux (4.19.67-2) UNRELEASED; urgency=medium * netfilter: conntrack: Use consistent ct id hash calculation (fixes regression in 4.19.44) + [ Cyril Brulebois ] + * [arm] Backport DTB support for Rasperry Pi Compute Module 3. + -- Ben Hutchings Wed, 21 Aug 2019 23:37:56 +0100 linux (4.19.67-1) buster; urgency=medium diff --git a/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch b/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch new file mode 100644 index 000000000..bed22fe2e --- /dev/null +++ b/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch @@ -0,0 +1,185 @@ +From: Stefan Wahren +Date: Mon, 27 Aug 2018 19:31:17 +0200 +Subject: ARM: dts: add Raspberry Pi Compute Module 3 and IO board +Origin: https://git.kernel.org/linus/a54fe8a6cf66828499b121c3c39c194b43b8ed94 + +The Raspberry Pi Compute Module 3 (CM3) and the Raspberry Pi +Compute Module 3 Lite (CM3L) are SoMs which contains a BCM2837 processor, +1 GB RAM and a GPIO expander. The CM3 has a 4 GB eMMC, but on the CM3L +the eMMC is unpopulated and it's up to the user to connect their +own SD/MMC device. The dtsi file is designed to work for both modules. +There is also a matching carrier board which is called +Compute Module IO Board V3. + +Signed-off-by: Stefan Wahren +--- + arch/arm/boot/dts/Makefile | 1 + + arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts | 87 +++++++++++++++++++++++++++++++ + arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi | 52 ++++++++++++++++++ + 3 files changed, 140 insertions(+) + create mode 100644 arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts + create mode 100644 arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index b5bd3de87c33..35c749fe22eb 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -81,6 +81,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ + bcm2836-rpi-2-b.dtb \ + bcm2837-rpi-3-b.dtb \ + bcm2837-rpi-3-b-plus.dtb \ ++ bcm2837-rpi-cm3-io3.dtb \ + bcm2835-rpi-zero.dtb \ + bcm2835-rpi-zero-w.dtb + dtb-$(CONFIG_ARCH_BCM_5301X) += \ +diff --git a/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts b/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts +new file mode 100644 +index 000000000000..6c8233a36d86 +--- /dev/null ++++ b/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts +@@ -0,0 +1,87 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/dts-v1/; ++#include "bcm2837-rpi-cm3.dtsi" ++#include "bcm283x-rpi-usb-host.dtsi" ++ ++/ { ++ compatible = "raspberrypi,3-compute-module", "brcm,bcm2837"; ++ model = "Raspberry Pi Compute Module 3 IO board V3.0"; ++}; ++ ++&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", ++ "GPIO2", ++ "GPIO3", ++ "GPIO4", ++ "GPIO5", ++ "GPIO6", ++ "GPIO7", ++ "GPIO8", ++ "GPIO9", ++ "GPIO10", ++ "GPIO11", ++ "GPIO12", ++ "GPIO13", ++ "GPIO14", ++ "GPIO15", ++ "GPIO16", ++ "GPIO17", ++ "GPIO18", ++ "GPIO19", ++ "GPIO20", ++ "GPIO21", ++ "GPIO22", ++ "GPIO23", ++ "GPIO24", ++ "GPIO25", ++ "GPIO26", ++ "GPIO27", ++ "GPIO28", ++ "GPIO29", ++ "GPIO30", ++ "GPIO31", ++ "GPIO32", ++ "GPIO33", ++ "GPIO34", ++ "GPIO35", ++ "GPIO36", ++ "GPIO37", ++ "GPIO38", ++ "GPIO39", ++ "GPIO40", ++ "GPIO41", ++ "GPIO42", ++ "GPIO43", ++ "GPIO44", ++ "GPIO45", ++ "GPIO46", ++ "GPIO47", ++ /* Used by eMMC */ ++ "SD_CLK_R", ++ "SD_CMD_R", ++ "SD_DATA0_R", ++ "SD_DATA1_R", ++ "SD_DATA2_R", ++ "SD_DATA3_R"; ++ ++ pinctrl-0 = <&gpioout &alt0>; ++}; ++ ++&hdmi { ++ hpd-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_gpio14>; ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi +new file mode 100644 +index 000000000000..7b7ab6aea988 +--- /dev/null ++++ b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi +@@ -0,0 +1,52 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/dts-v1/; ++#include "bcm2837.dtsi" ++#include "bcm2835-rpi.dtsi" ++ ++/ { ++ memory { ++ reg = <0 0x40000000>; ++ }; ++ ++ reg_3v3: fixed-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ }; ++ ++ reg_1v8: fixed-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "1V8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-always-on; ++ }; ++}; ++ ++&firmware { ++ expgpio: gpio { ++ compatible = "raspberrypi,firmware-gpio"; ++ gpio-controller; ++ #gpio-cells = <2>; ++ gpio-line-names = "HDMI_HPD_N", ++ "EMMC_EN_N", ++ "NC", ++ "NC", ++ "NC", ++ "NC", ++ "NC", ++ "NC"; ++ status = "okay"; ++ }; ++}; ++ ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ bus-width = <4>; ++ vmmc-supply = <®_3v3>; ++ vqmmc-supply = <®_1v8>; ++ status = "okay"; ++}; diff --git a/debian/patches/series b/debian/patches/series index 26ce098f7..5ef1bdb24 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -248,5 +248,8 @@ bugfix/arm64/huawei-taishan/0031-RDMA-hns-RDMA-hns-Assign-rq-head-pointer-when-e bugfix/arm64/huawei-taishan/0032-scsi-hisi_sas-Fix-NULL-pointer-dereference.patch bugfix/arm64/huawei-taishan/0033-scsi-hisi_sas-fix-calls-to-dma_set_mask_and_coherent.patch +# Backported DTB support for Raspberry Pi Compute Module 3 from 4.20-rc1: +features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch + # ABI maintenance debian/abi/powerpc-avoid-abi-change-for-disabling-tm.patch