1 1.1 jmcneill // SPDX-License-Identifier: GPL-2.0 2 1.1 jmcneill /dts-v1/; 3 1.1 jmcneill #include "bcm2837.dtsi" 4 1.1.1.3 jmcneill #include "bcm2836-rpi.dtsi" 5 1.1 jmcneill #include "bcm283x-rpi-lan7515.dtsi" 6 1.1 jmcneill #include "bcm283x-rpi-usb-host.dtsi" 7 1.1 jmcneill 8 1.1 jmcneill / { 9 1.1 jmcneill compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837"; 10 1.1 jmcneill model = "Raspberry Pi 3 Model B+"; 11 1.1 jmcneill 12 1.1 jmcneill chosen { 13 1.1 jmcneill /* 8250 auxiliary UART instead of pl011 */ 14 1.1 jmcneill stdout-path = "serial1:115200n8"; 15 1.1 jmcneill }; 16 1.1 jmcneill 17 1.1.1.3 jmcneill memory@0 { 18 1.1.1.4 skrll device_type = "memory"; 19 1.1 jmcneill reg = <0 0x40000000>; 20 1.1 jmcneill }; 21 1.1 jmcneill 22 1.1 jmcneill leds { 23 1.1.1.5 jmcneill led-act { 24 1.1 jmcneill gpios = <&gpio 29 GPIO_ACTIVE_HIGH>; 25 1.1 jmcneill }; 26 1.1 jmcneill 27 1.1.1.5 jmcneill led-pwr { 28 1.1 jmcneill label = "PWR"; 29 1.1 jmcneill gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; 30 1.1.1.5 jmcneill default-state = "keep"; 31 1.1.1.5 jmcneill linux,default-trigger = "default-on"; 32 1.1 jmcneill }; 33 1.1 jmcneill }; 34 1.1 jmcneill 35 1.1 jmcneill wifi_pwrseq: wifi-pwrseq { 36 1.1 jmcneill compatible = "mmc-pwrseq-simple"; 37 1.1.1.2 jmcneill reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; 38 1.1 jmcneill }; 39 1.1 jmcneill }; 40 1.1 jmcneill 41 1.1 jmcneill &firmware { 42 1.1 jmcneill expgpio: gpio { 43 1.1 jmcneill compatible = "raspberrypi,firmware-gpio"; 44 1.1 jmcneill gpio-controller; 45 1.1 jmcneill #gpio-cells = <2>; 46 1.1 jmcneill gpio-line-names = "BT_ON", 47 1.1 jmcneill "WL_ON", 48 1.1.1.3 jmcneill "STATUS_LED_R", 49 1.1 jmcneill "LAN_RUN", 50 1.1 jmcneill "", 51 1.1 jmcneill "CAM_GPIO0", 52 1.1 jmcneill "CAM_GPIO1", 53 1.1 jmcneill ""; 54 1.1 jmcneill status = "okay"; 55 1.1 jmcneill }; 56 1.1 jmcneill }; 57 1.1 jmcneill 58 1.1.1.3 jmcneill &gpio { 59 1.1.1.3 jmcneill /* 60 1.1.1.3 jmcneill * Taken from rpi_SCH_3bplus_1p0_reduced.pdf and 61 1.1.1.3 jmcneill * the official GPU firmware DT blob. 62 1.1.1.3 jmcneill * 63 1.1.1.3 jmcneill * Legend: 64 1.1.1.3 jmcneill * "NC" = not connected (no rail from the SoC) 65 1.1.1.3 jmcneill * "FOO" = GPIO line named "FOO" on the schematic 66 1.1.1.3 jmcneill * "FOO_N" = GPIO line named "FOO" on schematic, active low 67 1.1.1.3 jmcneill */ 68 1.1.1.3 jmcneill gpio-line-names = "ID_SDA", 69 1.1.1.3 jmcneill "ID_SCL", 70 1.1.1.3 jmcneill "SDA1", 71 1.1.1.3 jmcneill "SCL1", 72 1.1.1.3 jmcneill "GPIO_GCLK", 73 1.1.1.3 jmcneill "GPIO5", 74 1.1.1.3 jmcneill "GPIO6", 75 1.1.1.3 jmcneill "SPI_CE1_N", 76 1.1.1.3 jmcneill "SPI_CE0_N", 77 1.1.1.3 jmcneill "SPI_MISO", 78 1.1.1.3 jmcneill "SPI_MOSI", 79 1.1.1.3 jmcneill "SPI_SCLK", 80 1.1.1.3 jmcneill "GPIO12", 81 1.1.1.3 jmcneill "GPIO13", 82 1.1.1.3 jmcneill /* Serial port */ 83 1.1.1.3 jmcneill "TXD1", 84 1.1.1.3 jmcneill "RXD1", 85 1.1.1.3 jmcneill "GPIO16", 86 1.1.1.3 jmcneill "GPIO17", 87 1.1.1.3 jmcneill "GPIO18", 88 1.1.1.3 jmcneill "GPIO19", 89 1.1.1.3 jmcneill "GPIO20", 90 1.1.1.3 jmcneill "GPIO21", 91 1.1.1.3 jmcneill "GPIO22", 92 1.1.1.3 jmcneill "GPIO23", 93 1.1.1.3 jmcneill "GPIO24", 94 1.1.1.3 jmcneill "GPIO25", 95 1.1.1.3 jmcneill "GPIO26", 96 1.1.1.3 jmcneill "GPIO27", 97 1.1.1.3 jmcneill "HDMI_HPD_N", 98 1.1.1.3 jmcneill "STATUS_LED_G", 99 1.1.1.3 jmcneill /* Used by BT module */ 100 1.1.1.3 jmcneill "CTS0", 101 1.1.1.3 jmcneill "RTS0", 102 1.1.1.3 jmcneill "TXD0", 103 1.1.1.3 jmcneill "RXD0", 104 1.1.1.3 jmcneill /* Used by Wifi */ 105 1.1.1.3 jmcneill "SD1_CLK", 106 1.1.1.3 jmcneill "SD1_CMD", 107 1.1.1.3 jmcneill "SD1_DATA0", 108 1.1.1.3 jmcneill "SD1_DATA1", 109 1.1.1.3 jmcneill "SD1_DATA2", 110 1.1.1.3 jmcneill "SD1_DATA3", 111 1.1.1.3 jmcneill "PWM0_OUT", 112 1.1.1.3 jmcneill "PWM1_OUT", 113 1.1.1.3 jmcneill "ETHCLK", 114 1.1.1.3 jmcneill "WIFI_CLK", 115 1.1.1.3 jmcneill "SDA0", 116 1.1.1.3 jmcneill "SCL0", 117 1.1.1.3 jmcneill "SMPS_SCL", 118 1.1.1.3 jmcneill "SMPS_SDA", 119 1.1.1.3 jmcneill /* Used by SD Card */ 120 1.1.1.3 jmcneill "SD_CLK_R", 121 1.1.1.3 jmcneill "SD_CMD_R", 122 1.1.1.3 jmcneill "SD_DATA0_R", 123 1.1.1.3 jmcneill "SD_DATA1_R", 124 1.1.1.3 jmcneill "SD_DATA2_R", 125 1.1.1.3 jmcneill "SD_DATA3_R"; 126 1.1.1.3 jmcneill }; 127 1.1.1.3 jmcneill 128 1.1 jmcneill &hdmi { 129 1.1 jmcneill hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>; 130 1.1.1.4 skrll power-domains = <&power RPI_POWER_DOMAIN_HDMI>; 131 1.1.1.4 skrll status = "okay"; 132 1.1 jmcneill }; 133 1.1 jmcneill 134 1.1 jmcneill &pwm { 135 1.1 jmcneill pinctrl-names = "default"; 136 1.1 jmcneill pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>; 137 1.1 jmcneill status = "okay"; 138 1.1 jmcneill }; 139 1.1 jmcneill 140 1.1 jmcneill /* SDHCI is used to control the SDIO for wireless */ 141 1.1 jmcneill &sdhci { 142 1.1 jmcneill #address-cells = <1>; 143 1.1 jmcneill #size-cells = <0>; 144 1.1 jmcneill pinctrl-names = "default"; 145 1.1 jmcneill pinctrl-0 = <&emmc_gpio34>; 146 1.1 jmcneill status = "okay"; 147 1.1 jmcneill bus-width = <4>; 148 1.1 jmcneill non-removable; 149 1.1 jmcneill mmc-pwrseq = <&wifi_pwrseq>; 150 1.1 jmcneill 151 1.1 jmcneill brcmf: wifi@1 { 152 1.1 jmcneill reg = <1>; 153 1.1 jmcneill compatible = "brcm,bcm4329-fmac"; 154 1.1 jmcneill }; 155 1.1 jmcneill }; 156 1.1 jmcneill 157 1.1 jmcneill /* SDHOST is used to drive the SD card */ 158 1.1 jmcneill &sdhost { 159 1.1 jmcneill pinctrl-names = "default"; 160 1.1 jmcneill pinctrl-0 = <&sdhost_gpio48>; 161 1.1 jmcneill status = "okay"; 162 1.1 jmcneill bus-width = <4>; 163 1.1 jmcneill }; 164 1.1 jmcneill 165 1.1 jmcneill /* uart0 communicates with the BT module */ 166 1.1 jmcneill &uart0 { 167 1.1 jmcneill pinctrl-names = "default"; 168 1.1 jmcneill pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>; 169 1.1 jmcneill status = "okay"; 170 1.1 jmcneill 171 1.1 jmcneill bluetooth { 172 1.1 jmcneill compatible = "brcm,bcm43438-bt"; 173 1.1 jmcneill max-speed = <2000000>; 174 1.1 jmcneill shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; 175 1.1 jmcneill }; 176 1.1 jmcneill }; 177 1.1 jmcneill 178 1.1 jmcneill /* uart1 is mapped to the pin header */ 179 1.1 jmcneill &uart1 { 180 1.1 jmcneill pinctrl-names = "default"; 181 1.1 jmcneill pinctrl-0 = <&uart1_gpio14>; 182 1.1 jmcneill status = "okay"; 183 1.1 jmcneill }; 184