1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0 2*724ba675SRob Herring/dts-v1/; 3*724ba675SRob Herring#include "bcm2837.dtsi" 4*724ba675SRob Herring#include "bcm2836-rpi.dtsi" 5*724ba675SRob Herring#include "bcm283x-rpi-led-deprecated.dtsi" 6*724ba675SRob Herring#include "bcm283x-rpi-usb-host.dtsi" 7*724ba675SRob Herring#include "bcm283x-rpi-wifi-bt.dtsi" 8*724ba675SRob Herring 9*724ba675SRob Herring/ { 10*724ba675SRob Herring compatible = "raspberrypi,3-model-a-plus", "brcm,bcm2837"; 11*724ba675SRob Herring model = "Raspberry Pi 3 Model A+"; 12*724ba675SRob Herring 13*724ba675SRob Herring chosen { 14*724ba675SRob Herring /* 8250 auxiliary UART instead of pl011 */ 15*724ba675SRob Herring stdout-path = "serial1:115200n8"; 16*724ba675SRob Herring }; 17*724ba675SRob Herring 18*724ba675SRob Herring memory@0 { 19*724ba675SRob Herring device_type = "memory"; 20*724ba675SRob Herring reg = <0 0x20000000>; 21*724ba675SRob Herring }; 22*724ba675SRob Herring}; 23*724ba675SRob Herring 24*724ba675SRob Herring&firmware { 25*724ba675SRob Herring expgpio: gpio { 26*724ba675SRob Herring compatible = "raspberrypi,firmware-gpio"; 27*724ba675SRob Herring gpio-controller; 28*724ba675SRob Herring #gpio-cells = <2>; 29*724ba675SRob Herring gpio-line-names = "", 30*724ba675SRob Herring "BT_WL_ON", 31*724ba675SRob Herring "STATUS_LED_R", 32*724ba675SRob Herring "", 33*724ba675SRob Herring "", 34*724ba675SRob Herring "CAM_GPIO0", 35*724ba675SRob Herring "CAM_GPIO1", 36*724ba675SRob Herring ""; 37*724ba675SRob Herring status = "okay"; 38*724ba675SRob Herring }; 39*724ba675SRob Herring}; 40*724ba675SRob Herring 41*724ba675SRob Herring&gpio { 42*724ba675SRob Herring /* 43*724ba675SRob Herring * This is mostly based on the official GPU firmware DT blob. 44*724ba675SRob Herring * 45*724ba675SRob Herring * Legend: 46*724ba675SRob Herring * "FOO" = GPIO line named "FOO" on the schematic 47*724ba675SRob Herring * "FOO_N" = GPIO line named "FOO" on schematic, active low 48*724ba675SRob Herring */ 49*724ba675SRob Herring gpio-line-names = "ID_SDA", 50*724ba675SRob Herring "ID_SCL", 51*724ba675SRob Herring "SDA1", 52*724ba675SRob Herring "SCL1", 53*724ba675SRob Herring "GPIO_GCLK", 54*724ba675SRob Herring "GPIO5", 55*724ba675SRob Herring "GPIO6", 56*724ba675SRob Herring "SPI_CE1_N", 57*724ba675SRob Herring "SPI_CE0_N", 58*724ba675SRob Herring "SPI_MISO", 59*724ba675SRob Herring "SPI_MOSI", 60*724ba675SRob Herring "SPI_SCLK", 61*724ba675SRob Herring "GPIO12", 62*724ba675SRob Herring "GPIO13", 63*724ba675SRob Herring /* Serial port */ 64*724ba675SRob Herring "TXD1", 65*724ba675SRob Herring "RXD1", 66*724ba675SRob Herring "GPIO16", 67*724ba675SRob Herring "GPIO17", 68*724ba675SRob Herring "GPIO18", 69*724ba675SRob Herring "GPIO19", 70*724ba675SRob Herring "GPIO20", 71*724ba675SRob Herring "GPIO21", 72*724ba675SRob Herring "GPIO22", 73*724ba675SRob Herring "GPIO23", 74*724ba675SRob Herring "GPIO24", 75*724ba675SRob Herring "GPIO25", 76*724ba675SRob Herring "GPIO26", 77*724ba675SRob Herring "GPIO27", 78*724ba675SRob Herring "HDMI_HPD_N", 79*724ba675SRob Herring "STATUS_LED_G", 80*724ba675SRob Herring /* Used by BT module */ 81*724ba675SRob Herring "CTS0", 82*724ba675SRob Herring "RTS0", 83*724ba675SRob Herring "TXD0", 84*724ba675SRob Herring "RXD0", 85*724ba675SRob Herring /* Used by Wifi */ 86*724ba675SRob Herring "SD1_CLK", 87*724ba675SRob Herring "SD1_CMD", 88*724ba675SRob Herring "SD1_DATA0", 89*724ba675SRob Herring "SD1_DATA1", 90*724ba675SRob Herring "SD1_DATA2", 91*724ba675SRob Herring "SD1_DATA3", 92*724ba675SRob Herring "PWM0_OUT", 93*724ba675SRob Herring "PWM1_OUT", 94*724ba675SRob Herring "", /* GPIO42 */ 95*724ba675SRob Herring "WIFI_CLK", 96*724ba675SRob Herring "SDA0", 97*724ba675SRob Herring "SCL0", 98*724ba675SRob Herring "SMPS_SCL", 99*724ba675SRob Herring "SMPS_SDA", 100*724ba675SRob Herring /* Used by SD Card */ 101*724ba675SRob Herring "SD_CLK_R", 102*724ba675SRob Herring "SD_CMD_R", 103*724ba675SRob Herring "SD_DATA0_R", 104*724ba675SRob Herring "SD_DATA1_R", 105*724ba675SRob Herring "SD_DATA2_R", 106*724ba675SRob Herring "SD_DATA3_R"; 107*724ba675SRob Herring}; 108*724ba675SRob Herring 109*724ba675SRob Herring&hdmi { 110*724ba675SRob Herring hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>; 111*724ba675SRob Herring power-domains = <&power RPI_POWER_DOMAIN_HDMI>; 112*724ba675SRob Herring status = "okay"; 113*724ba675SRob Herring}; 114*724ba675SRob Herring 115*724ba675SRob Herring&led_act { 116*724ba675SRob Herring gpios = <&gpio 29 GPIO_ACTIVE_HIGH>; 117*724ba675SRob Herring}; 118*724ba675SRob Herring 119*724ba675SRob Herring&leds { 120*724ba675SRob Herring led-pwr { 121*724ba675SRob Herring label = "PWR"; 122*724ba675SRob Herring gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; 123*724ba675SRob Herring default-state = "keep"; 124*724ba675SRob Herring linux,default-trigger = "default-on"; 125*724ba675SRob Herring }; 126*724ba675SRob Herring}; 127*724ba675SRob Herring 128*724ba675SRob Herring&pwm { 129*724ba675SRob Herring pinctrl-names = "default"; 130*724ba675SRob Herring pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>; 131*724ba675SRob Herring status = "okay"; 132*724ba675SRob Herring}; 133*724ba675SRob Herring 134*724ba675SRob Herring/* SDHOST is used to drive the SD card */ 135*724ba675SRob Herring&sdhost { 136*724ba675SRob Herring pinctrl-names = "default"; 137*724ba675SRob Herring pinctrl-0 = <&sdhost_gpio48>; 138*724ba675SRob Herring status = "okay"; 139*724ba675SRob Herring bus-width = <4>; 140*724ba675SRob Herring}; 141*724ba675SRob Herring 142*724ba675SRob Herring/* uart0 communicates with the BT module 143*724ba675SRob Herring * 144*724ba675SRob Herring * WL_REG_ON and BT_REG_ON of the CYW43455 Wifi/BT module are driven 145*724ba675SRob Herring * by a single GPIO. We can't give GPIO control to one of the drivers, 146*724ba675SRob Herring * otherwise the other part would get unexpectedly disturbed. 147*724ba675SRob Herring */ 148*724ba675SRob Herring&uart0 { 149*724ba675SRob Herring pinctrl-names = "default"; 150*724ba675SRob Herring pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>; 151*724ba675SRob Herring}; 152*724ba675SRob Herring 153*724ba675SRob Herring/* uart1 is mapped to the pin header */ 154*724ba675SRob Herring&uart1 { 155*724ba675SRob Herring pinctrl-names = "default"; 156*724ba675SRob Herring pinctrl-0 = <&uart1_gpio14>; 157*724ba675SRob Herring status = "okay"; 158*724ba675SRob Herring}; 159