Home | History | Annotate | Line # | Download | only in dts
      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