-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ARM: dts: Add minimal Raspberry Pi 4 support
This adds minimal support for the new Raspberry Pi 4 without the fancy stuff like GENET, PCIe, xHCI, 40 bit DMA and V3D. The RPi 4 is available in 3 different variants (1, 2 and 4 GB RAM), so leave the memory size to zero and let the bootloader take care of it. The DWC2 is still usable as peripheral via the USB-C port. Other differences to the Raspberry Pi 3: - additional GIC 400 Interrupt controller - new thermal IP and HWRNG - additional MMC interface (emmc2) - additional UART, I2C, SPI and PWM interfaces - clock stretching bug in I2C IP has been fixed Signed-off-by: Stefan Wahren <wahrenst@gmx.net> Acked-by: Eric Anholt <eric@anholt.net> Acked-by: Florian Fanelli <f.fainelli@gmail.com>
- Loading branch information
Stefan Wahren
committed
Oct 10, 2019
1 parent
091d3ae
commit 7dbe8c6
Showing
5 changed files
with
977 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
// SPDX-License-Identifier: GPL-2.0 | ||
/dts-v1/; | ||
#include "bcm2711.dtsi" | ||
#include "bcm2835-rpi.dtsi" | ||
#include "bcm283x-rpi-usb-peripheral.dtsi" | ||
|
||
/ { | ||
compatible = "raspberrypi,4-model-b", "brcm,bcm2711"; | ||
model = "Raspberry Pi 4 Model B"; | ||
|
||
chosen { | ||
/* 8250 auxiliary UART instead of pl011 */ | ||
stdout-path = "serial1:115200n8"; | ||
}; | ||
|
||
/* Will be filled by the bootloader */ | ||
memory@0 { | ||
device_type = "memory"; | ||
reg = <0 0 0>; | ||
}; | ||
|
||
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 { | ||
compatible = "regulator-gpio"; | ||
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>; | ||
status = "okay"; | ||
}; | ||
}; | ||
|
||
&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 = <&pwm1_0_gpio40 &pwm1_1_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>; | ||
bus-width = <4>; | ||
non-removable; | ||
mmc-pwrseq = <&wifi_pwrseq>; | ||
status = "okay"; | ||
|
||
brcmf: wifi@1 { | ||
reg = <1>; | ||
compatible = "brcm,bcm4329-fmac"; | ||
}; | ||
}; | ||
|
||
/* EMMC2 is used to drive the SD card */ | ||
&emmc2 { | ||
vqmmc-supply = <&sd_io_1v8_reg>; | ||
broken-cd; | ||
status = "okay"; | ||
}; | ||
|
||
/* uart0 communicates with the BT module */ | ||
&uart0 { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>; | ||
uart-has-rtscts; | ||
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"; | ||
}; | ||
|
||
&vchiq { | ||
interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; | ||
}; |
Oops, something went wrong.