3 #include "bcm2711.dtsi"
4 #include "bcm2711-rpi.dtsi"
5 #include "bcm283x-rpi-csi1-2lane.dtsi"
6 #include <dt-bindings/input/input.h>
9 compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
10 model = "Raspberry Pi 4 Model B";
13 device_type = "memory";
18 bootargs = "coherent_pool=1M 8250.nr_uarts=1 cma=64M";
31 /delete-property/ ethernet;
32 /delete-property/ intc;
36 rpi_backlight: rpi_backlight {
37 compatible = "raspberrypi,rpi-backlight";
38 firmware = <&firmware>;
42 rpi_ft5406: rpi_ft5406 {
43 compatible = "rpi,rpi-ft5406";
44 firmware = <&firmware>;
49 compatible = "gpio-keys";
53 linux,code = <KEY_VOLUMEUP>;
54 gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
58 lable = "volume-down";
59 linux,code = <KEY_VOLUMEDOWN>;
60 gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
64 lable = "fastforward";
65 linux,code = <KEY_FASTFORWARD>;
66 gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
71 linux,code = <KEY_REWIND>;
72 gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
77 linux,code = <KEY_PLAYPAUSE>;
78 gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
85 compatible = "brcm,bcm2835-virtgpio";
88 firmware = <&firmware>;
94 pinctrl-names = "default";
95 pinctrl-0 = <&sdio_pins>;
102 compatible = "raspberrypi,firmware-gpio";
105 gpio-line-names = "BT_ON",
118 pinctrl-names = "default";
119 pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_pins &bt_pins>;
124 pinctrl-names = "default";
125 pinctrl-0 = <&uart1_pins>;
130 compatible = "brcm,bcm2835-usb";
131 dr_mode = "peripheral";
132 g-np-tx-fifo-size = <32>;
133 g-rx-fifo-size = <256>;
134 g-tx-fifo-size = <512 512 512 512 512 256 256>;
140 pinctrl-names = "default";
141 pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
142 cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
146 compatible = "spidev";
148 #address-cells = <1>;
150 spi-max-frequency = <125000000>;
154 compatible = "spidev";
156 #address-cells = <1>;
158 spi-max-frequency = <125000000>;
162 // =============================================
163 // Board specific stuff here
167 sd_io_1v8_reg: sd_io_1v8_reg {
169 compatible = "regulator-gpio";
170 vin-supply = <&vdd_5v0_reg>;
171 regulator-name = "vdd-sd-io";
172 regulator-min-microvolt = <1800000>;
173 regulator-max-microvolt = <3300000>;
176 regulator-settling-time-us = <5000>;
178 gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
179 states = <1800000 0x1
191 vqmmc-supply = <&sd_io_1v8_reg>;
197 linux,default-trigger = "mmc0";
198 gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
203 linux,default-trigger = "default-on";
204 gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
209 pinctrl-names = "default";
210 pinctrl-0 = <&audio_pins>;
215 brcm,pins = <22 23 24 25 26 27>;
216 brcm,function = <BCM2835_FSEL_ALT0>;
220 spi0_pins: spi0_pins {
221 brcm,pins = <9 10 11>;
222 brcm,function = <BCM2835_FSEL_ALT0>;
225 spi0_cs_pins: spi0_cs_pins {
227 brcm,function = <BCM2835_FSEL_GPIO_OUT>;
230 spi3_pins: spi3_pins {
232 brcm,function = <BCM2835_FSEL_ALT3>;
235 spi3_cs_pins: spi3_cs_pins {
237 brcm,function = <BCM2835_FSEL_GPIO_OUT>;
240 spi4_pins: spi4_pins {
242 brcm,function = <BCM2835_FSEL_ALT3>;
245 spi4_cs_pins: spi4_cs_pins {
247 brcm,function = <BCM2835_FSEL_GPIO_OUT>;
250 spi5_pins: spi5_pins {
251 brcm,pins = <13 14 15>;
252 brcm,function = <BCM2835_FSEL_ALT3>;
255 spi5_cs_pins: spi5_cs_pins {
257 brcm,function = <BCM2835_FSEL_GPIO_OUT>;
260 spi6_pins: spi6_pins {
261 brcm,pins = <19 20 21>;
262 brcm,function = <BCM2835_FSEL_ALT3>;
265 spi6_cs_pins: spi6_cs_pins {
267 brcm,function = <BCM2835_FSEL_GPIO_OUT>;
272 brcm,function = <BCM2835_FSEL_ALT0>;
273 brcm,pull = <BCM2835_PUD_UP>;
278 brcm,function = <BCM2835_FSEL_ALT0>;
279 brcm,pull = <BCM2835_PUD_UP>;
284 brcm,function = <BCM2835_FSEL_ALT5>;
285 brcm,pull = <BCM2835_PUD_UP>;
290 brcm,function = <BCM2835_FSEL_ALT5>;
291 brcm,pull = <BCM2835_PUD_UP>;
296 brcm,function = <BCM2835_FSEL_ALT5>;
297 brcm,pull = <BCM2835_PUD_UP>;
302 brcm,function = <BCM2835_FSEL_ALT5>;
303 brcm,pull = <BCM2835_PUD_UP>;
307 brcm,pins = <18 19 20 21>;
308 brcm,function = <BCM2835_FSEL_ALT0>;
311 sdio_pins: sdio_pins {
312 brcm,pins = <34 35 36 37 38 39>;
313 brcm,function = <BCM2835_FSEL_ALT3>; // alt3 = SD1
314 brcm,pull = <0 2 2 2 2 2>;
318 brcm,pins = "-"; // non-empty to keep btuart happy, //4 = 0
324 uart0_pins: uart0_pins {
326 brcm,function = <BCM2835_FSEL_ALT3>;
330 uart1_pins: uart1_pins {
336 uart2_pins: uart2_pins {
338 brcm,function = <BCM2835_FSEL_ALT4>;
342 uart3_pins: uart3_pins {
344 brcm,function = <BCM2835_FSEL_ALT4>;
348 uart4_pins: uart4_pins {
350 brcm,function = <BCM2835_FSEL_ALT4>;
354 uart5_pins: uart5_pins {
356 brcm,function = <BCM2835_FSEL_ALT4>;
360 audio_pins: audio_pins {
365 /* Needs to describe gpio settings at config.txt */
366 key_volume_up: key_volume_up {
368 brcm,function = <1>; /* BCM2835_FSEL_GPIO_IN */
369 brcm,pull = <2>; /* BCM2835_PUD_UP */
372 key_volume_down: key_volume_down {
378 key_fastforward: key_fastforward {
384 key_rewind: key_rewind {
390 key_playpause: key_playpause {
398 pinctrl-names = "default";
399 pinctrl-0 = <&i2c0_pins>;
400 clock-frequency = <100000>;
404 pinctrl-names = "default";
405 pinctrl-0 = <&i2c1_pins>;
406 clock-frequency = <100000>;
409 #address-cells = <1>;
413 compatible = "x-power,ac108_0";
415 #sound-dai-cells = <0>;
421 clock-frequency = <100000>;
442 pinctrl-names = "default";
443 pinctrl-0 = <&i2s_pins>;
445 #sound-dai-cells = <0>;
450 compatible = "seeed-voicecard";
451 seeed-voice-card,format = "dsp_a";
452 seeed-voice-card,name = "seeed-4mic-voicecard";
455 seeed-voice-card,bitclock-master = <&codec_dai>;
456 seeed-voice-card,frame-master = <&codec_dai>;
457 seeed-voice-card,channels-playback-override = <4>;
458 seeed-voice-card,channels-capture-override = <4>;
460 cpu_dai: seeed-voice-card,cpu {
462 dai-tdm-slot-num = <2>;
463 dai-tdm-slot-width = <32>;
464 dai-tdm-slot-tx-mask = <1 1 0 0>;
465 dai-tdm-slot-rx-mask = <1 1 0 0>;
467 codec_dai: seeed-voice-card,codec {
468 sound-dai = <&ac108_a>;
469 system-clock-frequency = <24000000>;
475 act_led_gpio = <&act_led>,"gpios:4";
476 act_led_activelow = <&act_led>,"gpios:8";
477 act_led_trigger = <&act_led>,"linux,default-trigger";
479 pwr_led_gpio = <&pwr_led>,"gpios:4";
480 pwr_led_activelow = <&pwr_led>,"gpios:8";
481 pwr_led_trigger = <&pwr_led>,"linux,default-trigger";