Home | History | Annotate | Line # | Download | only in dts
      1 // SPDX-License-Identifier: GPL-2.0
      2 /dts-v1/;
      3 #include "bcm2711.dtsi"
      4 #include "bcm2711-rpi.dtsi"
      5 #include "bcm283x-rpi-usb-peripheral.dtsi"
      6 
      7 / {
      8 	compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
      9 	model = "Raspberry Pi 4 Model B";
     10 
     11 	chosen {
     12 		/* 8250 auxiliary UART instead of pl011 */
     13 		stdout-path = "serial1:115200n8";
     14 	};
     15 
     16 	leds {
     17 		led-act {
     18 			gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
     19 		};
     20 
     21 		led-pwr {
     22 			label = "PWR";
     23 			gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
     24 			default-state = "keep";
     25 			linux,default-trigger = "default-on";
     26 		};
     27 	};
     28 
     29 	wifi_pwrseq: wifi-pwrseq {
     30 		compatible = "mmc-pwrseq-simple";
     31 		reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
     32 	};
     33 
     34 	sd_io_1v8_reg: sd_io_1v8_reg {
     35 		compatible = "regulator-gpio";
     36 		regulator-name = "vdd-sd-io";
     37 		regulator-min-microvolt = <1800000>;
     38 		regulator-max-microvolt = <3300000>;
     39 		regulator-boot-on;
     40 		regulator-always-on;
     41 		regulator-settling-time-us = <5000>;
     42 		gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
     43 		states = <1800000 0x1>,
     44 			 <3300000 0x0>;
     45 		status = "okay";
     46 	};
     47 
     48 	sd_vcc_reg: sd_vcc_reg {
     49 		compatible = "regulator-fixed";
     50 		regulator-name = "vcc-sd";
     51 		regulator-min-microvolt = <3300000>;
     52 		regulator-max-microvolt = <3300000>;
     53 		regulator-boot-on;
     54 		enable-active-high;
     55 		gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>;
     56 	};
     57 };
     58 
     59 &ddc0 {
     60 	status = "okay";
     61 };
     62 
     63 &ddc1 {
     64 	status = "okay";
     65 };
     66 
     67 &expgpio {
     68 	gpio-line-names = "BT_ON",
     69 			  "WL_ON",
     70 			  "PWR_LED_OFF",
     71 			  "GLOBAL_RESET",
     72 			  "VDD_SD_IO_SEL",
     73 			  "CAM_GPIO",
     74 			  "SD_PWR_ON",
     75 			  "";
     76 };
     77 
     78 &gpio {
     79 	/*
     80 	 * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and
     81 	 * the official GPU firmware DT blob.
     82 	 *
     83 	 * Legend:
     84 	 * "FOO" = GPIO line named "FOO" on the schematic
     85 	 * "FOO_N" = GPIO line named "FOO" on schematic, active low
     86 	 */
     87 	gpio-line-names = "ID_SDA",
     88 			  "ID_SCL",
     89 			  "SDA1",
     90 			  "SCL1",
     91 			  "GPIO_GCLK",
     92 			  "GPIO5",
     93 			  "GPIO6",
     94 			  "SPI_CE1_N",
     95 			  "SPI_CE0_N",
     96 			  "SPI_MISO",
     97 			  "SPI_MOSI",
     98 			  "SPI_SCLK",
     99 			  "GPIO12",
    100 			  "GPIO13",
    101 			  /* Serial port */
    102 			  "TXD1",
    103 			  "RXD1",
    104 			  "GPIO16",
    105 			  "GPIO17",
    106 			  "GPIO18",
    107 			  "GPIO19",
    108 			  "GPIO20",
    109 			  "GPIO21",
    110 			  "GPIO22",
    111 			  "GPIO23",
    112 			  "GPIO24",
    113 			  "GPIO25",
    114 			  "GPIO26",
    115 			  "GPIO27",
    116 			  "RGMII_MDIO",
    117 			  "RGMIO_MDC",
    118 			  /* Used by BT module */
    119 			  "CTS0",
    120 			  "RTS0",
    121 			  "TXD0",
    122 			  "RXD0",
    123 			  /* Used by Wifi */
    124 			  "SD1_CLK",
    125 			  "SD1_CMD",
    126 			  "SD1_DATA0",
    127 			  "SD1_DATA1",
    128 			  "SD1_DATA2",
    129 			  "SD1_DATA3",
    130 			  /* Shared with SPI flash */
    131 			  "PWM0_MISO",
    132 			  "PWM1_MOSI",
    133 			  "STATUS_LED_G_CLK",
    134 			  "SPIFLASH_CE_N",
    135 			  "SDA0",
    136 			  "SCL0",
    137 			  "RGMII_RXCLK",
    138 			  "RGMII_RXCTL",
    139 			  "RGMII_RXD0",
    140 			  "RGMII_RXD1",
    141 			  "RGMII_RXD2",
    142 			  "RGMII_RXD3",
    143 			  "RGMII_TXCLK",
    144 			  "RGMII_TXCTL",
    145 			  "RGMII_TXD0",
    146 			  "RGMII_TXD1",
    147 			  "RGMII_TXD2",
    148 			  "RGMII_TXD3";
    149 };
    150 
    151 &hdmi0 {
    152 	status = "okay";
    153 };
    154 
    155 &hdmi1 {
    156 	status = "okay";
    157 };
    158 
    159 &pixelvalve0 {
    160 	status = "okay";
    161 };
    162 
    163 &pixelvalve1 {
    164 	status = "okay";
    165 };
    166 
    167 &pixelvalve2 {
    168 	status = "okay";
    169 };
    170 
    171 &pixelvalve4 {
    172 	status = "okay";
    173 };
    174 
    175 &pwm1 {
    176 	pinctrl-names = "default";
    177 	pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
    178 	status = "okay";
    179 };
    180 
    181 /* SDHCI is used to control the SDIO for wireless */
    182 &sdhci {
    183 	#address-cells = <1>;
    184 	#size-cells = <0>;
    185 	pinctrl-names = "default";
    186 	pinctrl-0 = <&emmc_gpio34>;
    187 	bus-width = <4>;
    188 	non-removable;
    189 	mmc-pwrseq = <&wifi_pwrseq>;
    190 	status = "okay";
    191 
    192 	brcmf: wifi@1 {
    193 		reg = <1>;
    194 		compatible = "brcm,bcm4329-fmac";
    195 	};
    196 };
    197 
    198 /* EMMC2 is used to drive the SD card */
    199 &emmc2 {
    200 	vqmmc-supply = <&sd_io_1v8_reg>;
    201 	vmmc-supply = <&sd_vcc_reg>;
    202 	broken-cd;
    203 	status = "okay";
    204 };
    205 
    206 &genet {
    207 	phy-handle = <&phy1>;
    208 	phy-mode = "rgmii-rxid";
    209 	status = "okay";
    210 };
    211 
    212 &genet_mdio {
    213 	phy1: ethernet-phy@1 {
    214 		/* No PHY interrupt */
    215 		reg = <0x1>;
    216 	};
    217 };
    218 
    219 &pcie0 {
    220 	pci@0,0 {
    221 		device_type = "pci";
    222 		#address-cells = <3>;
    223 		#size-cells = <2>;
    224 		ranges;
    225 
    226 		reg = <0 0 0 0 0>;
    227 
    228 		usb@0,0 {
    229 			reg = <0 0 0 0 0>;
    230 			resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>;
    231 		};
    232 	};
    233 };
    234 
    235 /* uart0 communicates with the BT module */
    236 &uart0 {
    237 	pinctrl-names = "default";
    238 	pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>;
    239 	uart-has-rtscts;
    240 	status = "okay";
    241 
    242 	bluetooth {
    243 		compatible = "brcm,bcm43438-bt";
    244 		max-speed = <2000000>;
    245 		shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
    246 	};
    247 };
    248 
    249 /* uart1 is mapped to the pin header */
    250 &uart1 {
    251 	pinctrl-names = "default";
    252 	pinctrl-0 = <&uart1_gpio14>;
    253 	status = "okay";
    254 };
    255 
    256 &vc4 {
    257 	status = "okay";
    258 };
    259 
    260 &vec {
    261 	status = "disabled";
    262 };
    263