1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Device Tree Source for A20-SOM204-EVB Board 4 * 5 * Copyright (C) 2018 Olimex Ltd. 6 * Author: Stefan Mavrodiev <stefan@olimex.com> 7 */ 8 9/dts-v1/; 10#include "sun7i-a20.dtsi" 11#include "sunxi-common-regulators.dtsi" 12 13 14#include <dt-bindings/gpio/gpio.h> 15#include <dt-bindings/interrupt-controller/irq.h> 16#include <dt-bindings/pwm/pwm.h> 17 18/ { 19 model = "Olimex A20-SOM204-EVB"; 20 compatible = "olimex,a20-olimex-som204-evb", "allwinner,sun7i-a20"; 21 22 aliases { 23 serial0 = &uart0; 24 serial1 = &uart4; 25 serial2 = &uart7; 26 spi0 = &spi1; 27 spi1 = &spi2; 28 ethernet1 = &rtl8723bs; 29 }; 30 31 chosen { 32 stdout-path = "serial0:115200n8"; 33 }; 34 35 hdmi-connector { 36 compatible = "hdmi-connector"; 37 type = "a"; 38 39 port { 40 hdmi_con_in: endpoint { 41 remote-endpoint = <&hdmi_out_con>; 42 }; 43 }; 44 }; 45 46 leds { 47 compatible = "gpio-leds"; 48 49 stat { 50 label = "a20-som204-evb:green:stat"; 51 gpios = <&pio 8 0 GPIO_ACTIVE_HIGH>; 52 default-state = "on"; 53 }; 54 55 led1 { 56 label = "a20-som204-evb:green:led1"; 57 gpios = <&pio 8 10 GPIO_ACTIVE_HIGH>; 58 default-state = "on"; 59 }; 60 61 led2 { 62 label = "a20-som204-evb:yellow:led2"; 63 gpios = <&pio 8 11 GPIO_ACTIVE_HIGH>; 64 default-state = "on"; 65 }; 66 }; 67 68 rtl_pwrseq: rtl_pwrseq { 69 compatible = "mmc-pwrseq-simple"; 70 reset-gpios = <&pio 6 9 GPIO_ACTIVE_LOW>; 71 }; 72}; 73 74&ahci { 75 target-supply = <®_ahci_5v>; 76 status = "okay"; 77}; 78 79&can0 { 80 pinctrl-names = "default"; 81 pinctrl-0 = <&can0_pins_a>; 82 status = "okay"; 83}; 84 85&codec { 86 status = "okay"; 87}; 88 89&cpu0 { 90 cpu-supply = <®_dcdc2>; 91}; 92 93&de { 94 status = "okay"; 95}; 96 97&ehci0 { 98 status = "okay"; 99}; 100 101&ehci1 { 102 status = "okay"; 103}; 104 105&gmac { 106 pinctrl-names = "default"; 107 pinctrl-0 = <&gmac_pins_rgmii_a>; 108 phy = <&phy3>; 109 phy-mode = "rgmii"; 110 phy-supply = <®_vcc3v3>; 111 112 snps,reset-gpio = <&pio 0 17 GPIO_ACTIVE_HIGH>; 113 snps,reset-active-low; 114 snps,reset-delays-us = <0 10000 1000000>; 115 status = "okay"; 116 117 phy3: ethernet-phy@3 { 118 reg = <3>; 119 }; 120}; 121 122&hdmi { 123 status = "okay"; 124}; 125 126&hdmi_out { 127 hdmi_out_con: endpoint { 128 remote-endpoint = <&hdmi_con_in>; 129 }; 130}; 131 132&i2c0 { 133 pinctrl-names = "default"; 134 pinctrl-0 = <&i2c0_pins_a>; 135 status = "okay"; 136 137 axp209: pmic@34 { 138 reg = <0x34>; 139 interrupt-parent = <&nmi_intc>; 140 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 141 }; 142}; 143 144/* Exposed to UEXT1 */ 145&i2c1 { 146 pinctrl-names = "default"; 147 pinctrl-0 = <&i2c1_pins_a>; 148 status = "okay"; 149 150 eeprom: eeprom@50 { 151 compatible = "atmel,24c16"; 152 reg = <0x50>; 153 pagesize = <16>; 154 }; 155}; 156 157/* Exposed to UEXT2 */ 158&i2c2 { 159 pinctrl-names = "default"; 160 pinctrl-0 = <&i2c2_pins_a>; 161 status = "okay"; 162}; 163 164&ir0 { 165 pinctrl-names = "default"; 166 pinctrl-0 = <&ir0_rx_pins_a>; 167 status = "okay"; 168}; 169 170&mmc0 { 171 pinctrl-names = "default"; 172 pinctrl-0 = <&mmc0_pins_a>; 173 vmmc-supply = <®_vcc3v3>; 174 bus-width = <4>; 175 cd-gpios = <&pio 7 1 GPIO_ACTIVE_LOW>; 176 status = "okay"; 177}; 178 179&mmc3 { 180 pinctrl-names = "default"; 181 pinctrl-0 = <&mmc3_pins_a>; 182 vmmc-supply = <®_vcc3v3>; 183 mmc-pwrseq = <&rtl_pwrseq>; 184 bus-width = <4>; 185 non-removable; 186 status = "okay"; 187 188 rtl8723bs: sdio_wifi@1 { 189 reg = <1>; 190 }; 191}; 192 193&ohci0 { 194 status = "okay"; 195}; 196 197&ohci1 { 198 status = "okay"; 199}; 200 201&otg_sram { 202 status = "okay"; 203}; 204 205&pio { 206 bt_uart_pins: bt_uart_pins@0 { 207 pins = "PG6", "PG7", "PG8"; 208 function = "uart3"; 209 }; 210}; 211 212#include "axp209.dtsi" 213 214&ac_power_supply { 215 status = "okay"; 216}; 217 218&battery_power_supply { 219 status = "okay"; 220}; 221 222®_ahci_5v { 223 gpio = <&pio 2 3 GPIO_ACTIVE_HIGH>; 224 status = "okay"; 225}; 226 227®_dcdc2 { 228 regulator-always-on; 229 regulator-min-microvolt = <1000000>; 230 regulator-max-microvolt = <1400000>; 231 regulator-name = "vdd-cpu"; 232}; 233 234®_dcdc3 { 235 regulator-always-on; 236 regulator-min-microvolt = <1000000>; 237 regulator-max-microvolt = <1400000>; 238 regulator-name = "vdd-int-dll"; 239}; 240 241®_ldo1 { 242 regulator-always-on; 243 regulator-min-microvolt = <1300000>; 244 regulator-max-microvolt = <1300000>; 245 regulator-name = "vdd-rtc"; 246}; 247 248®_ldo2 { 249 regulator-always-on; 250 regulator-min-microvolt = <3000000>; 251 regulator-max-microvolt = <3000000>; 252 regulator-name = "avcc"; 253}; 254 255®_ldo4 { 256 regulator-min-microvolt = <3300000>; 257 regulator-max-microvolt = <3300000>; 258 regulator-name = "vcc-pg"; 259}; 260 261®_usb0_vbus { 262 gpio = <&pio 2 17 GPIO_ACTIVE_HIGH>; 263 status = "okay"; 264}; 265 266®_usb1_vbus { 267 status = "okay"; 268}; 269 270®_usb2_vbus { 271 status = "okay"; 272}; 273 274/* Exposed to UEXT1 */ 275&spi1 { 276 pinctrl-names = "default"; 277 pinctrl-0 = <&spi1_pins_a>, 278 <&spi1_cs0_pins_a>; 279 status = "okay"; 280}; 281 282/* Exposed to UEXT2 */ 283&spi2 { 284 pinctrl-names = "default"; 285 pinctrl-0 = <&spi2_pins_a>, 286 <&spi2_cs0_pins_a>; 287 status = "okay"; 288}; 289 290&uart0 { 291 pinctrl-names = "default"; 292 pinctrl-0 = <&uart0_pins_a>; 293 status = "okay"; 294}; 295 296/* Used for RTL8723BS bluetooth */ 297&uart3 { 298 pinctrl-names = "default"; 299 pinctrl-0 = <&bt_uart_pins>; 300 status = "okay"; 301}; 302 303/* Exposed to UEXT1 */ 304&uart4 { 305 pinctrl-names = "default"; 306 pinctrl-0 = <&uart4_pins_a>; 307 status = "okay"; 308}; 309 310/* Exposed to UEXT2 */ 311&uart7 { 312 pinctrl-names = "default"; 313 pinctrl-0 = <&uart7_pins_a>; 314 status = "okay"; 315}; 316 317&usb_otg { 318 dr_mode = "otg"; 319 status = "okay"; 320}; 321 322&usb_power_supply { 323 status = "okay"; 324}; 325 326&usbphy { 327 usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ 328 usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */ 329 usb0_vbus_power-supply = <&usb_power_supply>; 330 usb0_vbus-supply = <®_usb0_vbus>; 331 usb1_vbus-supply = <®_usb1_vbus>; 332 usb2_vbus-supply = <®_usb2_vbus>; 333 status = "okay"; 334}; 335