|  | // SPDX-License-Identifier: GPL-2.0 | 
|  | /dts-v1/; | 
|  | #include "bcm2837.dtsi" | 
|  | #include "bcm2836-rpi.dtsi" | 
|  | #include "bcm283x-rpi-lan7515.dtsi" | 
|  | #include "bcm283x-rpi-led-deprecated.dtsi" | 
|  | #include "bcm283x-rpi-usb-host.dtsi" | 
|  | #include "bcm283x-rpi-wifi-bt.dtsi" | 
|  |  | 
|  | / { | 
|  | compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837"; | 
|  | model = "Raspberry Pi 3 Model B+"; | 
|  |  | 
|  | chosen { | 
|  | /* 8250 auxiliary UART instead of pl011 */ | 
|  | stdout-path = "serial1:115200n8"; | 
|  | }; | 
|  |  | 
|  | memory@0 { | 
|  | device_type = "memory"; | 
|  | reg = <0 0x40000000>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &bt { | 
|  | shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; | 
|  | }; | 
|  |  | 
|  | &firmware { | 
|  | expgpio: gpio { | 
|  | compatible = "raspberrypi,firmware-gpio"; | 
|  | gpio-controller; | 
|  | #gpio-cells = <2>; | 
|  | gpio-line-names = "BT_ON", | 
|  | "WL_ON", | 
|  | "PWR_LED_R", | 
|  | "LAN_RUN", | 
|  | "", | 
|  | "CAM_GPIO0", | 
|  | "CAM_GPIO1", | 
|  | ""; | 
|  | status = "okay"; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &gpio { | 
|  | /* | 
|  | * Taken from rpi_SCH_3bplus_1p0_reduced.pdf and | 
|  | * the official GPU firmware DT blob. | 
|  | * | 
|  | * Legend: | 
|  | * "FOO" = GPIO line named "FOO" on the schematic | 
|  | * "FOO_N" = GPIO line named "FOO" on schematic, active low | 
|  | */ | 
|  | gpio-line-names = "ID_SDA", | 
|  | "ID_SCL", | 
|  | "SDA1", | 
|  | "SCL1", | 
|  | "GPIO_GCLK", | 
|  | "GPIO5", | 
|  | "GPIO6", | 
|  | "SPI_CE1_N", | 
|  | "SPI_CE0_N", | 
|  | "SPI_MISO", | 
|  | "SPI_MOSI", | 
|  | "SPI_SCLK", | 
|  | "GPIO12", | 
|  | "GPIO13", | 
|  | /* Serial port */ | 
|  | "TXD1", | 
|  | "RXD1", | 
|  | "GPIO16", | 
|  | "GPIO17", | 
|  | "GPIO18", | 
|  | "GPIO19", | 
|  | "GPIO20", | 
|  | "GPIO21", | 
|  | "GPIO22", | 
|  | "GPIO23", | 
|  | "GPIO24", | 
|  | "GPIO25", | 
|  | "GPIO26", | 
|  | "GPIO27", | 
|  | "HDMI_HPD_N", | 
|  | "STATUS_LED_G", | 
|  | /* Used by BT module */ | 
|  | "CTS0", | 
|  | "RTS0", | 
|  | "TXD0", | 
|  | "RXD0", | 
|  | /* Used by Wifi */ | 
|  | "SD1_CLK", | 
|  | "SD1_CMD", | 
|  | "SD1_DATA0", | 
|  | "SD1_DATA1", | 
|  | "SD1_DATA2", | 
|  | "SD1_DATA3", | 
|  | "PWM0_OUT", | 
|  | "PWM1_OUT", | 
|  | "ETH_CLK", | 
|  | "WIFI_CLK", | 
|  | "SDA0", | 
|  | "SCL0", | 
|  | "SMPS_SCL", | 
|  | "SMPS_SDA", | 
|  | /* Used by SD Card */ | 
|  | "SD_CLK_R", | 
|  | "SD_CMD_R", | 
|  | "SD_DATA0_R", | 
|  | "SD_DATA1_R", | 
|  | "SD_DATA2_R", | 
|  | "SD_DATA3_R"; | 
|  | }; | 
|  |  | 
|  | &hdmi { | 
|  | hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>; | 
|  | power-domains = <&power RPI_POWER_DOMAIN_HDMI>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &led_act { | 
|  | gpios = <&gpio 29 GPIO_ACTIVE_HIGH>; | 
|  | }; | 
|  |  | 
|  | &leds { | 
|  | led-pwr { | 
|  | label = "PWR"; | 
|  | gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; | 
|  | default-state = "keep"; | 
|  | linux,default-trigger = "default-on"; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &pwm { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | /* SDHOST is used to drive the SD card */ | 
|  | &sdhost { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&sdhost_gpio48>; | 
|  | status = "okay"; | 
|  | bus-width = <4>; | 
|  | }; | 
|  |  | 
|  | /* uart0 communicates with the BT module */ | 
|  | &uart0 { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>; | 
|  | }; | 
|  |  | 
|  | /* uart1 is mapped to the pin header */ | 
|  | &uart1 { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&uart1_gpio14>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &wifi_pwrseq { | 
|  | reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; | 
|  | }; |