Skip to content

Commit c0c7d81

Browse files
committed
Merge tag 'tags/bcm2835-dt-next-2019-10-15' into devicetree/next
This pull request introduce initial Raspberry Pi 4 support. But all the fancy stuff like GENET, PCIe, xHCI, 40 bit DMA and V3D is missing. Signed-off-by: Florian Fainelli <[email protected]>
2 parents 984829e + 46fdee0 commit c0c7d81

File tree

14 files changed

+1236
-256
lines changed

14 files changed

+1236
-256
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/arm/bcm/bcm2835.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Broadcom BCM2711/BCM2835 Platforms Device Tree Bindings
8+
9+
maintainers:
10+
- Eric Anholt <[email protected]>
11+
- Stefan Wahren <[email protected]>
12+
13+
properties:
14+
$nodename:
15+
const: '/'
16+
compatible:
17+
oneOf:
18+
- description: BCM2711 based Boards
19+
items:
20+
- enum:
21+
- raspberrypi,4-model-b
22+
- const: brcm,bcm2711
23+
24+
- description: BCM2835 based Boards
25+
items:
26+
- enum:
27+
- raspberrypi,model-a
28+
- raspberrypi,model-a-plus
29+
- raspberrypi,model-b
30+
- raspberrypi,model-b-i2c0 # Raspberry Pi Model B (no P5)
31+
- raspberrypi,model-b-rev2
32+
- raspberrypi,model-b-plus
33+
- raspberrypi,compute-module
34+
- raspberrypi,model-zero
35+
- raspberrypi,model-zero-w
36+
- const: brcm,bcm2835
37+
38+
- description: BCM2836 based Boards
39+
items:
40+
- enum:
41+
- raspberrypi,2-model-b
42+
- const: brcm,bcm2836
43+
44+
- description: BCM2837 based Boards
45+
items:
46+
- enum:
47+
- raspberrypi,3-model-a-plus
48+
- raspberrypi,3-model-b
49+
- raspberrypi,3-model-b-plus
50+
- raspberrypi,3-compute-module
51+
- raspberrypi,3-compute-module-lite
52+
- const: brcm,bcm2837
53+
54+
...

Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt

Lines changed: 0 additions & 67 deletions
This file was deleted.

arch/arm/boot/dts/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
8383
bcm2837-rpi-3-b.dtb \
8484
bcm2837-rpi-3-b-plus.dtb \
8585
bcm2837-rpi-cm3-io3.dtb \
86+
bcm2711-rpi-4-b.dtb \
8687
bcm2835-rpi-zero.dtb \
8788
bcm2835-rpi-zero-w.dtb
8889
dtb-$(CONFIG_ARCH_BCM_5301X) += \

arch/arm/boot/dts/bcm2711-rpi-4-b.dts

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/dts-v1/;
3+
#include "bcm2711.dtsi"
4+
#include "bcm2835-rpi.dtsi"
5+
#include "bcm283x-rpi-usb-peripheral.dtsi"
6+
7+
/ {
8+
compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
9+
model = "Raspberry Pi 4 Model B";
10+
11+
chosen {
12+
/* 8250 auxiliary UART instead of pl011 */
13+
stdout-path = "serial1:115200n8";
14+
};
15+
16+
/* Will be filled by the bootloader */
17+
memory@0 {
18+
device_type = "memory";
19+
reg = <0 0 0>;
20+
};
21+
22+
leds {
23+
act {
24+
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
25+
};
26+
27+
pwr {
28+
label = "PWR";
29+
gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
30+
};
31+
};
32+
33+
wifi_pwrseq: wifi-pwrseq {
34+
compatible = "mmc-pwrseq-simple";
35+
reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
36+
};
37+
38+
sd_io_1v8_reg: sd_io_1v8_reg {
39+
compatible = "regulator-gpio";
40+
regulator-name = "vdd-sd-io";
41+
regulator-min-microvolt = <1800000>;
42+
regulator-max-microvolt = <3300000>;
43+
regulator-boot-on;
44+
regulator-always-on;
45+
regulator-settling-time-us = <5000>;
46+
gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
47+
states = <1800000 0x1
48+
3300000 0x0>;
49+
status = "okay";
50+
};
51+
};
52+
53+
&firmware {
54+
expgpio: gpio {
55+
compatible = "raspberrypi,firmware-gpio";
56+
gpio-controller;
57+
#gpio-cells = <2>;
58+
gpio-line-names = "BT_ON",
59+
"WL_ON",
60+
"PWR_LED_OFF",
61+
"GLOBAL_RESET",
62+
"VDD_SD_IO_SEL",
63+
"CAM_GPIO",
64+
"",
65+
"";
66+
status = "okay";
67+
};
68+
};
69+
70+
&pwm1 {
71+
pinctrl-names = "default";
72+
pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
73+
status = "okay";
74+
};
75+
76+
/* SDHCI is used to control the SDIO for wireless */
77+
&sdhci {
78+
#address-cells = <1>;
79+
#size-cells = <0>;
80+
pinctrl-names = "default";
81+
pinctrl-0 = <&emmc_gpio34>;
82+
bus-width = <4>;
83+
non-removable;
84+
mmc-pwrseq = <&wifi_pwrseq>;
85+
status = "okay";
86+
87+
brcmf: wifi@1 {
88+
reg = <1>;
89+
compatible = "brcm,bcm4329-fmac";
90+
};
91+
};
92+
93+
/* EMMC2 is used to drive the SD card */
94+
&emmc2 {
95+
vqmmc-supply = <&sd_io_1v8_reg>;
96+
broken-cd;
97+
status = "okay";
98+
};
99+
100+
/* uart0 communicates with the BT module */
101+
&uart0 {
102+
pinctrl-names = "default";
103+
pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>;
104+
uart-has-rtscts;
105+
status = "okay";
106+
107+
bluetooth {
108+
compatible = "brcm,bcm43438-bt";
109+
max-speed = <2000000>;
110+
shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
111+
};
112+
};
113+
114+
/* uart1 is mapped to the pin header */
115+
&uart1 {
116+
pinctrl-names = "default";
117+
pinctrl-0 = <&uart1_gpio14>;
118+
status = "okay";
119+
};
120+
121+
&vchiq {
122+
interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
123+
};

0 commit comments

Comments
 (0)