Home | History | Annotate | Download | only in dts
      1 // SPDX-License-Identifier: GPL-2.0+
      2 /*
      3  * dts file for Xilinx ZynqMP ZCU100 revC
      4  *
      5  * (C) Copyright 2016 - 2018, Xilinx, Inc.
      6  *
      7  * Michal Simek <michal.simek (a] xilinx.com>
      8  * Nathalie Chan King Choy
      9  */
     10 
     11 /dts-v1/;
     12 
     13 #include "zynqmp.dtsi"
     14 #include "zynqmp-clk.dtsi"
     15 #include <dt-bindings/input/input.h>
     16 #include <dt-bindings/interrupt-controller/irq.h>
     17 #include <dt-bindings/gpio/gpio.h>
     18 #include <dt-bindings/phy/phy.h>
     19 
     20 / {
     21 	model = "ZynqMP ZCU100 RevC";
     22 	compatible = "xlnx,zynqmp-zcu100-revC", "xlnx,zynqmp-zcu100", "xlnx,zynqmp";
     23 
     24 	aliases {
     25 		gpio0 = &gpio;
     26 		i2c0 = &i2c1;
     27 		rtc0 = &rtc;
     28 		serial0 = &uart1;
     29 		serial1 = &uart0;
     30 		serial2 = &dcc;
     31 		spi0 = &spi0;
     32 		spi1 = &spi1;
     33 		usb0 = &usb0;
     34 		usb1 = &usb1;
     35 		mmc0 = &sdhci0;
     36 		mmc1 = &sdhci1;
     37 	};
     38 
     39 	chosen {
     40 		bootargs = "earlycon";
     41 		stdout-path = "serial0:115200n8";
     42 	};
     43 
     44 	memory@0 {
     45 		device_type = "memory";
     46 		reg = <0x0 0x0 0x0 0x80000000>;
     47 	};
     48 
     49 	gpio-keys {
     50 		compatible = "gpio-keys";
     51 		autorepeat;
     52 		sw4 {
     53 			label = "sw4";
     54 			gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
     55 			linux,code = <KEY_POWER>;
     56 			gpio-key,wakeup;
     57 			autorepeat;
     58 		};
     59 	};
     60 
     61 	iio-hwmon {
     62 		compatible = "iio-hwmon";
     63 		io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>,
     64 			      <&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>,
     65 			      <&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>,
     66 			      <&xilinx_ams 9>, <&xilinx_ams 10>,
     67 			      <&xilinx_ams 11>, <&xilinx_ams 12>;
     68 	};
     69 
     70 	leds {
     71 		compatible = "gpio-leds";
     72 		ds2 {
     73 			label = "ds2";
     74 			gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
     75 			linux,default-trigger = "heartbeat";
     76 		};
     77 
     78 		ds3 {
     79 			label = "ds3";
     80 			gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
     81 			linux,default-trigger = "phy0tx"; /* WLAN tx */
     82 			default-state = "off";
     83 		};
     84 
     85 		ds4 {
     86 			label = "ds4";
     87 			gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
     88 			linux,default-trigger = "phy0rx"; /* WLAN rx */
     89 			default-state = "off";
     90 		};
     91 
     92 		ds5 {
     93 			label = "ds5";
     94 			gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
     95 			linux,default-trigger = "bluetooth-power";
     96 		};
     97 
     98 		vbus_det { /* U5 USB5744 VBUS detection via MIO25 */
     99 			label = "vbus_det";
    100 			gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
    101 			default-state = "on";
    102 		};
    103 	};
    104 
    105 	ltc2954: ltc2954 { /* U7 */
    106 		compatible = "lltc,ltc2954", "lltc,ltc2952";
    107 		trigger-gpios = <&gpio 26 GPIO_ACTIVE_LOW>; /* INT line - input */
    108 		/* If there is HW watchdog on mezzanine this signal should be connected there */
    109 		watchdog-gpios = <&gpio 35 GPIO_ACTIVE_HIGH>; /* MIO on PAD */
    110 		kill-gpios = <&gpio 34 GPIO_ACTIVE_LOW>; /* KILL signal - output */
    111 	};
    112 
    113 	wmmcsdio_fixed: fixedregulator-mmcsdio {
    114 		compatible = "regulator-fixed";
    115 		regulator-name = "wmmcsdio_fixed";
    116 		regulator-min-microvolt = <3300000>;
    117 		regulator-max-microvolt = <3300000>;
    118 		regulator-always-on;
    119 		regulator-boot-on;
    120 	};
    121 
    122 	sdio_pwrseq: sdio_pwrseq {
    123 		compatible = "mmc-pwrseq-simple";
    124 		reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
    125 	};
    126 };
    127 
    128 &dcc {
    129 	status = "okay";
    130 };
    131 
    132 &gpio {
    133 	status = "okay";
    134 	gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL",
    135 			  "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS",
    136 			  "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1",
    137 			  "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1",
    138 			  "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT",
    139 			  "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE",
    140 			  "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL",
    141 			  "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C",
    142 			  "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E",
    143 			  "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3",
    144 			  "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2",
    145 			  "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3",
    146 			  "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK",
    147 			  "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1",
    148 			  "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6",
    149 			  "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */
    150 			  "", "",
    151 			  "", "", "", "", "", "", "", "", "", "",
    152 			  "", "", "", "", "", "", "", "", "", "",
    153 			  "", "", "", "", "", "", "", "", "", "",
    154 			  "", "", "", "", "", "", "", "", "", "",
    155 			  "", "", "", "", "", "", "", "", "", "",
    156 			  "", "", "", "", "", "", "", "", "", "",
    157 			  "", "", "", "", "", "", "", "", "", "",
    158 			  "", "", "", "", "", "", "", "", "", "",
    159 			  "", "", "", "", "", "", "", "", "", "",
    160 			  "", "", "", "";
    161 };
    162 
    163 &gpu {
    164 	status = "okay";
    165 };
    166 
    167 &i2c1 {
    168 	status = "okay";
    169 	clock-frequency = <100000>;
    170 	i2c-mux@75 { /* u11 */
    171 		compatible = "nxp,pca9548";
    172 		#address-cells = <1>;
    173 		#size-cells = <0>;
    174 		reg = <0x75>;
    175 		i2csw_0: i2c@0 {
    176 			#address-cells = <1>;
    177 			#size-cells = <0>;
    178 			reg = <0>;
    179 			label = "LS-I2C0";
    180 		};
    181 		i2csw_1: i2c@1 {
    182 			#address-cells = <1>;
    183 			#size-cells = <0>;
    184 			reg = <1>;
    185 			label = "LS-I2C1";
    186 		};
    187 		i2csw_2: i2c@2 {
    188 			#address-cells = <1>;
    189 			#size-cells = <0>;
    190 			reg = <2>;
    191 			label = "HS-I2C2";
    192 		};
    193 		i2csw_3: i2c@3 {
    194 			#address-cells = <1>;
    195 			#size-cells = <0>;
    196 			reg = <3>;
    197 			label = "HS-I2C3";
    198 		};
    199 		i2csw_4: i2c@4 {
    200 			#address-cells = <1>;
    201 			#size-cells = <0>;
    202 			reg = <0x4>;
    203 
    204 			pmic: pmic@5e { /* Custom TI PMIC u33 */
    205 				compatible = "ti,tps65086";
    206 				reg = <0x5e>;
    207 				interrupt-parent = <&gpio>;
    208 				interrupts = <77 GPIO_ACTIVE_LOW>;
    209 				#gpio-cells = <2>;
    210 				gpio-controller;
    211 			};
    212 		};
    213 		i2csw_5: i2c@5 {
    214 			#address-cells = <1>;
    215 			#size-cells = <0>;
    216 			reg = <5>;
    217 			/* PS_PMBUS */
    218 			ina226@40 { /* u35 */
    219 				compatible = "ti,ina226";
    220 				reg = <0x40>;
    221 				shunt-resistor = <10000>;
    222 				/* MIO31 is alert which should be routed to PMUFW */
    223 			};
    224 		};
    225 		i2csw_6: i2c@6 {
    226 			#address-cells = <1>;
    227 			#size-cells = <0>;
    228 			reg = <6>;
    229 			/*
    230 			 * Not Connected
    231 			 */
    232 		};
    233 		i2csw_7: i2c@7 {
    234 			#address-cells = <1>;
    235 			#size-cells = <0>;
    236 			reg = <7>;
    237 			/*
    238 			 * usb5744 (DNP) - U5
    239 			 * 100kHz - this is default freq for us
    240 			 */
    241 		};
    242 	};
    243 };
    244 
    245 &rtc {
    246 	status = "okay";
    247 };
    248 
    249 /* SD0 only supports 3.3V, no level shifter */
    250 &sdhci0 {
    251 	status = "okay";
    252 	no-1-8-v;
    253 	disable-wp;
    254 	xlnx,mio_bank = <0>;
    255 };
    256 
    257 &sdhci1 {
    258 	status = "okay";
    259 	bus-width = <0x4>;
    260 	xlnx,mio_bank = <0>;
    261 	non-removable;
    262 	disable-wp;
    263 	cap-power-off-card;
    264 	mmc-pwrseq = <&sdio_pwrseq>;
    265 	vqmmc-supply = <&wmmcsdio_fixed>;
    266 	#address-cells = <1>;
    267 	#size-cells = <0>;
    268 	wlcore: wifi@2 {
    269 		compatible = "ti,wl1831";
    270 		reg = <2>;
    271 		interrupt-parent = <&gpio>;
    272 		interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
    273 	};
    274 };
    275 
    276 &serdes {
    277 	status = "okay";
    278 };
    279 
    280 &spi0 { /* Low Speed connector */
    281 	status = "okay";
    282 	label = "LS-SPI0";
    283 };
    284 
    285 &spi1 { /* High Speed connector */
    286 	status = "okay";
    287 	label = "HS-SPI1";
    288 };
    289 
    290 &uart0 {
    291 	status = "okay";
    292 	bluetooth {
    293 		compatible = "ti,wl1831-st";
    294 		enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
    295 	};
    296 
    297 };
    298 
    299 &uart1 {
    300 	status = "okay";
    301 
    302 };
    303 
    304 /* ULPI SMSC USB3320 */
    305 &usb0 {
    306 	status = "okay";
    307 };
    308 
    309 &dwc3_0 {
    310 	status = "okay";
    311 	dr_mode = "peripheral";
    312 	phy-names = "usb3-phy";
    313 	phys = <&lane2 PHY_TYPE_USB3 0 0 26000000>;
    314 	maximum-speed = "super-speed";
    315 };
    316 
    317 /* ULPI SMSC USB3320 */
    318 &usb1 {
    319 	status = "okay";
    320 };
    321 
    322 &dwc3_1 {
    323 	status = "okay";
    324 	dr_mode = "host";
    325 	phy-names = "usb3-phy";
    326 	phys = <&lane3 PHY_TYPE_USB3 1 0 26000000>;
    327 	maximum-speed = "super-speed";
    328 };
    329 
    330 &watchdog0 {
    331 	status = "okay";
    332 	reset-on-timeout;
    333 };
    334 
    335 &xilinx_ams {
    336 	status = "okay";
    337 };
    338 
    339 &ams_ps {
    340 	status = "okay";
    341 };
    342