blob: 89e6fd547c7572f6bc7d243e5055da4e33dc94a2 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001// SPDX-License-Identifier: GPL-2.0
Eric Anholt3bfe25f2017-07-26 13:01:56 -07002/dts-v1/;
3#include "bcm2837.dtsi"
4#include "bcm2835-rpi.dtsi"
5#include "bcm283x-rpi-smsc9514.dtsi"
6#include "bcm283x-rpi-usb-host.dtsi"
7
8/ {
9 compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
10 model = "Raspberry Pi 3 Model B";
11
Loic Poulainf08f58a2017-10-06 15:52:52 +020012 chosen {
13 /* 8250 auxiliary UART instead of pl011 */
14 stdout-path = "serial1:115200n8";
15 };
16
Eric Anholt3bfe25f2017-07-26 13:01:56 -070017 memory {
18 reg = <0 0x40000000>;
19 };
20
21 leds {
22 act {
Stefan Wahrenb1b8f452018-04-21 13:28:35 +020023 gpios = <&expgpio 2 GPIO_ACTIVE_HIGH>;
Eric Anholt3bfe25f2017-07-26 13:01:56 -070024 };
25 };
Stefan Wahrenb1b8f452018-04-21 13:28:35 +020026
27 wifi_pwrseq: wifi-pwrseq {
28 compatible = "mmc-pwrseq-simple";
Stefan Wahrene25b6782018-12-03 19:37:08 +010029 reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
Stefan Wahrenb1b8f452018-04-21 13:28:35 +020030 };
Eric Anholt3bfe25f2017-07-26 13:01:56 -070031};
32
Baruch Siach4d5b2ea2018-02-20 14:19:35 +020033&firmware {
34 expgpio: gpio {
35 compatible = "raspberrypi,firmware-gpio";
36 gpio-controller;
37 #gpio-cells = <2>;
38 gpio-line-names = "BT_ON",
39 "WL_ON",
40 "STATUS_LED",
41 "LAN_RUN",
42 "HPD_N",
43 "CAM_GPIO0",
44 "CAM_GPIO1",
45 "PWR_LOW_N";
46 status = "okay";
47 };
48};
49
Stefan Wahrenc4bb9782018-04-21 13:28:34 +020050&pwm {
51 pinctrl-names = "default";
52 pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>;
53 status = "okay";
54};
55
Stefan Wahrenb1b8f452018-04-21 13:28:35 +020056&hdmi {
57 hpd-gpios = <&expgpio 4 GPIO_ACTIVE_LOW>;
58};
59
Stefan Wahren4188ea22017-07-30 19:10:32 +020060/* uart0 communicates with the BT module */
61&uart0 {
62 pinctrl-names = "default";
63 pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>;
64 status = "okay";
Loic Poulainfd3372d2017-08-30 22:42:01 +020065
66 bluetooth {
67 compatible = "brcm,bcm43438-bt";
68 max-speed = <2000000>;
Stefan Wahrenb1b8f452018-04-21 13:28:35 +020069 shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
Loic Poulainfd3372d2017-08-30 22:42:01 +020070 };
Stefan Wahren4188ea22017-07-30 19:10:32 +020071};
72
73/* uart1 is mapped to the pin header */
Eric Anholt3bfe25f2017-07-26 13:01:56 -070074&uart1 {
Stefan Wahren4188ea22017-07-30 19:10:32 +020075 pinctrl-names = "default";
76 pinctrl-0 = <&uart1_gpio14>;
Eric Anholt3bfe25f2017-07-26 13:01:56 -070077 status = "okay";
78};
79
80/* SDHCI is used to control the SDIO for wireless */
81&sdhci {
Stefan Wahrenb1b8f452018-04-21 13:28:35 +020082 #address-cells = <1>;
83 #size-cells = <0>;
Eric Anholt3bfe25f2017-07-26 13:01:56 -070084 pinctrl-names = "default";
85 pinctrl-0 = <&emmc_gpio34>;
86 status = "okay";
87 bus-width = <4>;
88 non-removable;
Stefan Wahrenb1b8f452018-04-21 13:28:35 +020089 mmc-pwrseq = <&wifi_pwrseq>;
90
91 brcmf: wifi@1 {
92 reg = <1>;
93 compatible = "brcm,bcm4329-fmac";
94 };
Eric Anholt3bfe25f2017-07-26 13:01:56 -070095};
96
97/* SDHOST is used to drive the SD card */
98&sdhost {
99 pinctrl-names = "default";
100 pinctrl-0 = <&sdhost_gpio48>;
101 status = "okay";
102 bus-width = <4>;
103};