1 From dc1156479b5bf177ecb403e11fe990af5db54394 Mon Sep 17 00:00:00 2001
2 From: peterharperuk <77111776+peterharperuk@users.noreply.github.com>
3 Date: Mon, 13 Dec 2021 14:00:35 +0000
4 Subject: [PATCH] ARM: dts: Create bcm2711-rpi-cm4s.dts (#4761)
6 Signed-off-by: Peter Harper <peter.harper@raspberrypi.com>
8 arch/arm/boot/dts/Makefile | 3 +-
9 arch/arm/boot/dts/bcm2711-rpi-cm4s.dts | 398 +++++++++++++++++++++++++
10 2 files changed, 400 insertions(+), 1 deletion(-)
11 create mode 100644 arch/arm/boot/dts/bcm2711-rpi-cm4s.dts
13 --- a/arch/arm/boot/dts/Makefile
14 +++ b/arch/arm/boot/dts/Makefile
15 @@ -16,7 +16,8 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
20 + bcm2711-rpi-cm4.dtb \
21 + bcm2711-rpi-cm4s.dtb
23 dtb-$(CONFIG_ARCH_ALPINE) += \
26 +++ b/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts
28 +// SPDX-License-Identifier: GPL-2.0
30 +#include "bcm2711.dtsi"
31 +#include "bcm2711-rpi.dtsi"
34 + compatible = "raspberrypi,4-compute-module-s", "brcm,bcm2711";
35 + model = "Raspberry Pi Compute Module 4S";
38 + /* 8250 auxiliary UART instead of pl011 */
39 + stdout-path = "serial1:115200n8";
44 + gpios = <&virtgpio 0 0>;
55 + * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and
56 + * the official GPU firmware DT blob.
59 + * "FOO" = GPIO line named "FOO" on the schematic
60 + * "FOO_N" = GPIO line named "FOO" on schematic, active low
62 + gpio-line-names = "ID_SDA",
132 + pinctrl-names = "default";
133 + pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
137 +/* EMMC2 is used to drive the EMMC card */
145 + status = "disabled";
149 + interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
157 + status = "disabled";
160 +// =============================================
161 +// Downstream rpi- changes
165 +#include "bcm270x.dtsi"
166 +#include "bcm2711-rpi-ds.dtsi"
170 + /delete-node/ pixelvalve@7e807000;
171 + /delete-node/ hdmi@7e902000;
173 + virtgpio: virtgpio {
174 + compatible = "brcm,bcm2835-virtgpio";
177 + firmware = <&firmware>;
183 +#include "bcm283x-rpi-csi0-2lane.dtsi"
184 +#include "bcm283x-rpi-csi1-4lane.dtsi"
185 +#include "bcm283x-rpi-i2c0mux_0_44.dtsi"
186 +#include "bcm283x-rpi-cam1-regulator.dtsi"
190 + bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1";
206 + /delete-property/ intc;
209 + /delete-node/ wifi-pwrseq;
213 + pinctrl-names = "default";
214 + pinctrl-0 = <&uart0_pins>;
219 + pinctrl-names = "default";
220 + pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
221 + cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
224 + compatible = "spidev";
225 + reg = <0>; /* CE0 */
226 + #address-cells = <1>;
228 + spi-max-frequency = <125000000>;
232 + compatible = "spidev";
233 + reg = <1>; /* CE1 */
234 + #address-cells = <1>;
236 + spi-max-frequency = <125000000>;
241 + spi0_pins: spi0_pins {
242 + brcm,pins = <9 10 11>;
243 + brcm,function = <BCM2835_FSEL_ALT0>;
246 + spi0_cs_pins: spi0_cs_pins {
248 + brcm,function = <BCM2835_FSEL_GPIO_OUT>;
251 + spi3_pins: spi3_pins {
252 + brcm,pins = <1 2 3>;
253 + brcm,function = <BCM2835_FSEL_ALT3>;
256 + spi3_cs_pins: spi3_cs_pins {
257 + brcm,pins = <0 24>;
258 + brcm,function = <BCM2835_FSEL_GPIO_OUT>;
261 + spi4_pins: spi4_pins {
262 + brcm,pins = <5 6 7>;
263 + brcm,function = <BCM2835_FSEL_ALT3>;
266 + spi4_cs_pins: spi4_cs_pins {
267 + brcm,pins = <4 25>;
268 + brcm,function = <BCM2835_FSEL_GPIO_OUT>;
271 + spi5_pins: spi5_pins {
272 + brcm,pins = <13 14 15>;
273 + brcm,function = <BCM2835_FSEL_ALT3>;
276 + spi5_cs_pins: spi5_cs_pins {
277 + brcm,pins = <12 26>;
278 + brcm,function = <BCM2835_FSEL_GPIO_OUT>;
281 + spi6_pins: spi6_pins {
282 + brcm,pins = <19 20 21>;
283 + brcm,function = <BCM2835_FSEL_ALT3>;
286 + spi6_cs_pins: spi6_cs_pins {
287 + brcm,pins = <18 27>;
288 + brcm,function = <BCM2835_FSEL_GPIO_OUT>;
293 + brcm,function = <BCM2835_FSEL_ALT0>;
294 + brcm,pull = <BCM2835_PUD_UP>;
299 + brcm,function = <BCM2835_FSEL_ALT0>;
300 + brcm,pull = <BCM2835_PUD_UP>;
305 + brcm,function = <BCM2835_FSEL_ALT5>;
306 + brcm,pull = <BCM2835_PUD_UP>;
311 + brcm,function = <BCM2835_FSEL_ALT5>;
312 + brcm,pull = <BCM2835_PUD_UP>;
316 + brcm,pins = <12 13>;
317 + brcm,function = <BCM2835_FSEL_ALT5>;
318 + brcm,pull = <BCM2835_PUD_UP>;
322 + brcm,pins = <22 23>;
323 + brcm,function = <BCM2835_FSEL_ALT5>;
324 + brcm,pull = <BCM2835_PUD_UP>;
328 + brcm,pins = <18 19 20 21>;
329 + brcm,function = <BCM2835_FSEL_ALT0>;
332 + sdio_pins: sdio_pins {
333 + brcm,pins = <34 35 36 37 38 39>;
334 + brcm,function = <BCM2835_FSEL_ALT3>; // alt3 = SD1
335 + brcm,pull = <0 2 2 2 2 2>;
338 + uart0_pins: uart0_pins {
344 + uart2_pins: uart2_pins {
346 + brcm,function = <BCM2835_FSEL_ALT4>;
350 + uart3_pins: uart3_pins {
352 + brcm,function = <BCM2835_FSEL_ALT4>;
356 + uart4_pins: uart4_pins {
358 + brcm,function = <BCM2835_FSEL_ALT4>;
362 + uart5_pins: uart5_pins {
363 + brcm,pins = <12 13>;
364 + brcm,function = <BCM2835_FSEL_ALT4>;
370 + clock-frequency = <100000>;
374 + pinctrl-names = "default";
375 + pinctrl-0 = <&i2c1_pins>;
376 + clock-frequency = <100000>;
380 + pinctrl-names = "default";
381 + pinctrl-0 = <&i2s_pins>;
384 +// =============================================
385 +// Board specific stuff here
388 + status = "disabled";
392 + audio_pins: audio_pins {
394 + brcm,function = <>;
401 + linux,default-trigger = "mmc0";
406 + status = "disabled";
410 + pinctrl-names = "default";
411 + pinctrl-0 = <&audio_pins>;
412 + brcm,disable-headphones = <1>;
417 + act_led_gpio = <&act_led>,"gpios:4";
418 + act_led_activelow = <&act_led>,"gpios:8";
419 + act_led_trigger = <&act_led>,"linux,default-trigger";
421 + sd_poll_once = <&emmc2>, "non-removable?";
422 + spi_dma4 = <&spi0>, "dmas:0=", <&dma40>,
423 + <&spi0>, "dmas:8=", <&dma40>;