162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/dts-v1/; 362306a36Sopenharmony_ci#include "bcm2837.dtsi" 462306a36Sopenharmony_ci#include "bcm2836-rpi.dtsi" 562306a36Sopenharmony_ci#include "bcm283x-rpi-lan7515.dtsi" 662306a36Sopenharmony_ci#include "bcm283x-rpi-led-deprecated.dtsi" 762306a36Sopenharmony_ci#include "bcm283x-rpi-usb-host.dtsi" 862306a36Sopenharmony_ci#include "bcm283x-rpi-wifi-bt.dtsi" 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci/ { 1162306a36Sopenharmony_ci compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837"; 1262306a36Sopenharmony_ci model = "Raspberry Pi 3 Model B+"; 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci chosen { 1562306a36Sopenharmony_ci /* 8250 auxiliary UART instead of pl011 */ 1662306a36Sopenharmony_ci stdout-path = "serial1:115200n8"; 1762306a36Sopenharmony_ci }; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci memory@0 { 2062306a36Sopenharmony_ci device_type = "memory"; 2162306a36Sopenharmony_ci reg = <0 0x40000000>; 2262306a36Sopenharmony_ci }; 2362306a36Sopenharmony_ci}; 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci&bt { 2662306a36Sopenharmony_ci shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; 2762306a36Sopenharmony_ci}; 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci&firmware { 3062306a36Sopenharmony_ci expgpio: gpio { 3162306a36Sopenharmony_ci compatible = "raspberrypi,firmware-gpio"; 3262306a36Sopenharmony_ci gpio-controller; 3362306a36Sopenharmony_ci #gpio-cells = <2>; 3462306a36Sopenharmony_ci gpio-line-names = "BT_ON", 3562306a36Sopenharmony_ci "WL_ON", 3662306a36Sopenharmony_ci "PWR_LED_R", 3762306a36Sopenharmony_ci "LAN_RUN", 3862306a36Sopenharmony_ci "", 3962306a36Sopenharmony_ci "CAM_GPIO0", 4062306a36Sopenharmony_ci "CAM_GPIO1", 4162306a36Sopenharmony_ci ""; 4262306a36Sopenharmony_ci status = "okay"; 4362306a36Sopenharmony_ci }; 4462306a36Sopenharmony_ci}; 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci&gpio { 4762306a36Sopenharmony_ci /* 4862306a36Sopenharmony_ci * Taken from rpi_SCH_3bplus_1p0_reduced.pdf and 4962306a36Sopenharmony_ci * the official GPU firmware DT blob. 5062306a36Sopenharmony_ci * 5162306a36Sopenharmony_ci * Legend: 5262306a36Sopenharmony_ci * "FOO" = GPIO line named "FOO" on the schematic 5362306a36Sopenharmony_ci * "FOO_N" = GPIO line named "FOO" on schematic, active low 5462306a36Sopenharmony_ci */ 5562306a36Sopenharmony_ci gpio-line-names = "ID_SDA", 5662306a36Sopenharmony_ci "ID_SCL", 5762306a36Sopenharmony_ci "SDA1", 5862306a36Sopenharmony_ci "SCL1", 5962306a36Sopenharmony_ci "GPIO_GCLK", 6062306a36Sopenharmony_ci "GPIO5", 6162306a36Sopenharmony_ci "GPIO6", 6262306a36Sopenharmony_ci "SPI_CE1_N", 6362306a36Sopenharmony_ci "SPI_CE0_N", 6462306a36Sopenharmony_ci "SPI_MISO", 6562306a36Sopenharmony_ci "SPI_MOSI", 6662306a36Sopenharmony_ci "SPI_SCLK", 6762306a36Sopenharmony_ci "GPIO12", 6862306a36Sopenharmony_ci "GPIO13", 6962306a36Sopenharmony_ci /* Serial port */ 7062306a36Sopenharmony_ci "TXD1", 7162306a36Sopenharmony_ci "RXD1", 7262306a36Sopenharmony_ci "GPIO16", 7362306a36Sopenharmony_ci "GPIO17", 7462306a36Sopenharmony_ci "GPIO18", 7562306a36Sopenharmony_ci "GPIO19", 7662306a36Sopenharmony_ci "GPIO20", 7762306a36Sopenharmony_ci "GPIO21", 7862306a36Sopenharmony_ci "GPIO22", 7962306a36Sopenharmony_ci "GPIO23", 8062306a36Sopenharmony_ci "GPIO24", 8162306a36Sopenharmony_ci "GPIO25", 8262306a36Sopenharmony_ci "GPIO26", 8362306a36Sopenharmony_ci "GPIO27", 8462306a36Sopenharmony_ci "HDMI_HPD_N", 8562306a36Sopenharmony_ci "STATUS_LED_G", 8662306a36Sopenharmony_ci /* Used by BT module */ 8762306a36Sopenharmony_ci "CTS0", 8862306a36Sopenharmony_ci "RTS0", 8962306a36Sopenharmony_ci "TXD0", 9062306a36Sopenharmony_ci "RXD0", 9162306a36Sopenharmony_ci /* Used by Wifi */ 9262306a36Sopenharmony_ci "SD1_CLK", 9362306a36Sopenharmony_ci "SD1_CMD", 9462306a36Sopenharmony_ci "SD1_DATA0", 9562306a36Sopenharmony_ci "SD1_DATA1", 9662306a36Sopenharmony_ci "SD1_DATA2", 9762306a36Sopenharmony_ci "SD1_DATA3", 9862306a36Sopenharmony_ci "PWM0_OUT", 9962306a36Sopenharmony_ci "PWM1_OUT", 10062306a36Sopenharmony_ci "ETH_CLK", 10162306a36Sopenharmony_ci "WIFI_CLK", 10262306a36Sopenharmony_ci "SDA0", 10362306a36Sopenharmony_ci "SCL0", 10462306a36Sopenharmony_ci "SMPS_SCL", 10562306a36Sopenharmony_ci "SMPS_SDA", 10662306a36Sopenharmony_ci /* Used by SD Card */ 10762306a36Sopenharmony_ci "SD_CLK_R", 10862306a36Sopenharmony_ci "SD_CMD_R", 10962306a36Sopenharmony_ci "SD_DATA0_R", 11062306a36Sopenharmony_ci "SD_DATA1_R", 11162306a36Sopenharmony_ci "SD_DATA2_R", 11262306a36Sopenharmony_ci "SD_DATA3_R"; 11362306a36Sopenharmony_ci}; 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci&hdmi { 11662306a36Sopenharmony_ci hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>; 11762306a36Sopenharmony_ci power-domains = <&power RPI_POWER_DOMAIN_HDMI>; 11862306a36Sopenharmony_ci status = "okay"; 11962306a36Sopenharmony_ci}; 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci&led_act { 12262306a36Sopenharmony_ci gpios = <&gpio 29 GPIO_ACTIVE_HIGH>; 12362306a36Sopenharmony_ci}; 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci&leds { 12662306a36Sopenharmony_ci led-pwr { 12762306a36Sopenharmony_ci label = "PWR"; 12862306a36Sopenharmony_ci gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; 12962306a36Sopenharmony_ci default-state = "keep"; 13062306a36Sopenharmony_ci linux,default-trigger = "default-on"; 13162306a36Sopenharmony_ci }; 13262306a36Sopenharmony_ci}; 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ci&pwm { 13562306a36Sopenharmony_ci pinctrl-names = "default"; 13662306a36Sopenharmony_ci pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>; 13762306a36Sopenharmony_ci status = "okay"; 13862306a36Sopenharmony_ci}; 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ci/* SDHOST is used to drive the SD card */ 14162306a36Sopenharmony_ci&sdhost { 14262306a36Sopenharmony_ci pinctrl-names = "default"; 14362306a36Sopenharmony_ci pinctrl-0 = <&sdhost_gpio48>; 14462306a36Sopenharmony_ci status = "okay"; 14562306a36Sopenharmony_ci bus-width = <4>; 14662306a36Sopenharmony_ci}; 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci/* uart0 communicates with the BT module */ 14962306a36Sopenharmony_ci&uart0 { 15062306a36Sopenharmony_ci pinctrl-names = "default"; 15162306a36Sopenharmony_ci pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>; 15262306a36Sopenharmony_ci}; 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci/* uart1 is mapped to the pin header */ 15562306a36Sopenharmony_ci&uart1 { 15662306a36Sopenharmony_ci pinctrl-names = "default"; 15762306a36Sopenharmony_ci pinctrl-0 = <&uart1_gpio14>; 15862306a36Sopenharmony_ci status = "okay"; 15962306a36Sopenharmony_ci}; 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci&wifi_pwrseq { 16262306a36Sopenharmony_ci reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; 16362306a36Sopenharmony_ci}; 164