1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 // Copyright (C) 2018 Amarula Solutions B.V. 3 // Author: Jagan Teki <jagan@amarulasolutions.com> 4 5 /dts-v1/; 6 7 #include "sun50i-a64.dtsi" 8 #include "sun50i-a64-cpu-opp.dtsi" 9 10 #include <dt-bindings/gpio/gpio.h> 11 12 / { 13 model = "Amarula A64-Relic"; 14 compatible = "amarula,a64-relic", "allwinner,sun50i-a64"; 15 16 aliases { 17 serial0 = &uart0; 18 }; 19 20 chosen { 21 stdout-path = "serial0:115200n8"; 22 }; 23 24 i2c { 25 compatible = "i2c-gpio"; 26 sda-gpios = <&pio 4 13 GPIO_ACTIVE_HIGH>; 27 scl-gpios = <&pio 4 12 GPIO_ACTIVE_HIGH>; 28 i2c-gpio,delay-us = <5>; 29 #address-cells = <1>; 30 #size-cells = <0>; 31 32 ov5640: camera@3c { 33 compatible = "ovti,ov5640"; 34 reg = <0x3c>; 35 pinctrl-names = "default"; 36 pinctrl-0 = <&csi_mclk_pin>; 37 clocks = <&ccu CLK_CSI_MCLK>; 38 clock-names = "xclk"; 39 40 AVDD-supply = <®_aldo1>; 41 DOVDD-supply = <®_dldo3>; 42 DVDD-supply = <®_eldo3>; 43 reset-gpios = <&pio 4 14 GPIO_ACTIVE_LOW>; /* CSI-RST-R: PE14 */ 44 powerdown-gpios = <&pio 4 15 GPIO_ACTIVE_HIGH>; /* CSI-STBY-R: PE15 */ 45 46 port { 47 ov5640_ep: endpoint { 48 remote-endpoint = <&csi_ep>; 49 bus-width = <8>; 50 hsync-active = <1>; /* Active high */ 51 vsync-active = <0>; /* Active low */ 52 data-active = <1>; /* Active high */ 53 pclk-sample = <1>; /* Rising */ 54 }; 55 }; 56 }; 57 }; 58 59 wifi_pwrseq: wifi-pwrseq { 60 compatible = "mmc-pwrseq-simple"; 61 clocks = <&rtc CLK_OSC32K_FANOUT>; 62 clock-names = "ext_clock"; 63 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* WL-PMU-EN: PL2 */ 64 }; 65 }; 66 67 &cpu0 { 68 cpu-supply = <®_dcdc2>; 69 }; 70 71 &cpu1 { 72 cpu-supply = <®_dcdc2>; 73 }; 74 75 &cpu2 { 76 cpu-supply = <®_dcdc2>; 77 }; 78 79 &cpu3 { 80 cpu-supply = <®_dcdc2>; 81 }; 82 83 &csi { 84 status = "okay"; 85 86 port { 87 csi_ep: endpoint { 88 remote-endpoint = <&ov5640_ep>; 89 bus-width = <8>; 90 hsync-active = <1>; /* Active high */ 91 vsync-active = <0>; /* Active low */ 92 data-active = <1>; /* Active high */ 93 pclk-sample = <1>; /* Rising */ 94 }; 95 }; 96 }; 97 98 &ehci0 { 99 status = "okay"; 100 }; 101 102 &i2c0 { 103 status = "okay"; 104 105 sensor@48 { 106 compatible = "st,stlm75"; 107 reg = <0x48>; 108 }; 109 }; 110 111 &i2c0_pins { 112 bias-pull-up; 113 }; 114 115 &i2c1 { 116 status = "okay"; 117 118 touchscreen@5d { 119 compatible = "goodix,gt5663"; 120 reg = <0x5d>; 121 AVDD28-supply = <®_ldo_io0>; /* VCC-CTP: GPIO0-LDO */ 122 interrupt-parent = <&pio>; 123 interrupts = <7 4 IRQ_TYPE_EDGE_FALLING>; 124 irq-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* CTP-INT: PH4 */ 125 reset-gpios = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* CTP-RST: PH8 */ 126 touchscreen-inverted-x; 127 touchscreen-inverted-y; 128 }; 129 }; 130 131 &mmc1 { 132 pinctrl-names = "default"; 133 pinctrl-0 = <&mmc1_pins>; 134 vmmc-supply = <®_dcdc1>; 135 /* 136 * Schematic shows both dldo4 and eldo1 connected for vcc-io-wifi, but 137 * dldo4 connection shows DNP(Do Not Populate) and eldo1 connected with 138 * 0Ohm register to vcc-io-wifi so eldo1 is used. 139 */ 140 vqmmc-supply = <®_eldo1>; 141 mmc-pwrseq = <&wifi_pwrseq>; 142 bus-width = <4>; 143 non-removable; 144 status = "okay"; 145 146 brcmf: wifi@1 { 147 reg = <1>; 148 compatible = "brcm,bcm4329-fmac"; 149 interrupt-parent = <&r_pio>; 150 interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* WL-WAKE-AP: PL3 */ 151 interrupt-names = "host-wake"; 152 }; 153 }; 154 155 &mmc2 { 156 pinctrl-names = "default"; 157 pinctrl-0 = <&mmc2_pins>; 158 vmmc-supply = <®_dcdc1>; 159 bus-width = <8>; 160 non-removable; 161 cap-mmc-hw-reset; 162 status = "okay"; 163 }; 164 165 &ohci0 { 166 status = "okay"; 167 }; 168 169 &r_rsb { 170 status = "okay"; 171 172 axp803: pmic@3a3 { 173 compatible = "x-powers,axp803"; 174 reg = <0x3a3>; 175 interrupt-parent = <&r_intc>; 176 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>; 177 x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ 178 }; 179 }; 180 181 #include "axp803.dtsi" 182 183 ®_aldo1 { 184 regulator-always-on; 185 regulator-min-microvolt = <2800000>; 186 regulator-max-microvolt = <2800000>; 187 regulator-name = "avdd-csi"; 188 }; 189 190 ®_aldo2 { 191 regulator-always-on; 192 regulator-min-microvolt = <1800000>; 193 regulator-max-microvolt = <3300000>; 194 regulator-name = "vcc-pl"; 195 }; 196 197 ®_aldo3 { 198 regulator-always-on; 199 regulator-min-microvolt = <3000000>; 200 regulator-max-microvolt = <3000000>; 201 regulator-name = "vcc-pll-avcc"; 202 }; 203 204 ®_dcdc1 { 205 regulator-always-on; 206 regulator-min-microvolt = <3300000>; 207 regulator-max-microvolt = <3300000>; 208 regulator-name = "vcc-3v3"; 209 }; 210 211 ®_dcdc2 { 212 regulator-always-on; 213 regulator-min-microvolt = <1040000>; 214 regulator-max-microvolt = <1300000>; 215 regulator-name = "vdd-cpux"; 216 }; 217 218 /* DCDC3 is polyphased with DCDC2 */ 219 220 ®_dcdc5 { 221 regulator-always-on; 222 regulator-min-microvolt = <1500000>; 223 regulator-max-microvolt = <1500000>; 224 regulator-name = "vcc-dram"; 225 }; 226 227 ®_dcdc6 { 228 regulator-always-on; 229 regulator-min-microvolt = <1100000>; 230 regulator-max-microvolt = <1100000>; 231 regulator-name = "vdd-sys"; 232 }; 233 234 ®_dldo1 { 235 regulator-min-microvolt = <3300000>; 236 regulator-max-microvolt = <3300000>; 237 regulator-name = "vcc-hdmi-dsi-sensor"; 238 }; 239 240 ®_dldo2 { 241 regulator-min-microvolt = <3300000>; 242 regulator-max-microvolt = <3300000>; 243 regulator-name = "vcc-mipi"; 244 }; 245 246 ®_dldo3 { 247 regulator-min-microvolt = <2800000>; 248 regulator-max-microvolt = <2800000>; 249 regulator-name = "dovdd-csi"; 250 }; 251 252 ®_dldo4 { 253 regulator-min-microvolt = <3300000>; 254 regulator-max-microvolt = <3300000>; 255 regulator-name = "vcc-wifi-io"; 256 }; 257 258 ®_drivevbus { 259 regulator-name = "usb0-vbus"; 260 status = "okay"; 261 }; 262 263 ®_eldo1 { 264 regulator-always-on; 265 regulator-min-microvolt = <1800000>; 266 regulator-max-microvolt = <1800000>; 267 regulator-name = "cpvdd"; 268 }; 269 270 ®_eldo3 { 271 regulator-min-microvolt = <1800000>; 272 regulator-max-microvolt = <1800000>; 273 regulator-name = "dvdd-csi"; 274 }; 275 276 ®_fldo1 { 277 regulator-min-microvolt = <1200000>; 278 regulator-max-microvolt = <1200000>; 279 regulator-name = "vcc-1v2-hsic"; 280 }; 281 282 /* 283 * The A64 chip cannot work without this regulator off, although 284 * it seems to be only driving the AR100 core. 285 * Maybe we don't still know well about CPUs domain. 286 */ 287 ®_fldo2 { 288 regulator-always-on; 289 regulator-min-microvolt = <1100000>; 290 regulator-max-microvolt = <1100000>; 291 regulator-name = "vdd-cpus"; 292 }; 293 294 ®_ldo_io0 { 295 regulator-min-microvolt = <2800000>; 296 regulator-max-microvolt = <2800000>; 297 regulator-name = "vcc-ctp"; 298 status = "okay"; 299 }; 300 301 ®_rtc_ldo { 302 regulator-name = "vcc-rtc"; 303 }; 304 305 &uart0 { 306 pinctrl-names = "default"; 307 pinctrl-0 = <&uart0_pb_pins>; 308 status = "okay"; 309 }; 310 311 &usb_otg { 312 dr_mode = "otg"; 313 status = "okay"; 314 }; 315 316 &usbphy { 317 usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ 318 usb0_vbus-supply = <®_drivevbus>; 319 status = "okay"; 320 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.