1 1.1.1.3 jmcneill // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 1.1 jmcneill /* 3 1.1 jmcneill * Google Veyron (and derivatives) board device tree source 4 1.1 jmcneill * 5 1.1 jmcneill * Copyright 2015 Google, Inc 6 1.1 jmcneill */ 7 1.1 jmcneill 8 1.1 jmcneill #include <dt-bindings/clock/rockchip,rk808.h> 9 1.1 jmcneill #include <dt-bindings/input/input.h> 10 1.1 jmcneill #include "rk3288.dtsi" 11 1.1 jmcneill 12 1.1 jmcneill / { 13 1.1.1.4 jmcneill chosen { 14 1.1.1.4 jmcneill stdout-path = "serial2:115200n8"; 15 1.1.1.4 jmcneill }; 16 1.1.1.4 jmcneill 17 1.1.1.3 jmcneill /* 18 1.1.1.3 jmcneill * The default coreboot on veyron devices ignores memory@0 nodes 19 1.1.1.3 jmcneill * and would instead create another memory node. 20 1.1.1.3 jmcneill */ 21 1.1.1.3 jmcneill memory { 22 1.1 jmcneill device_type = "memory"; 23 1.1.1.2 jmcneill reg = <0x0 0x0 0x0 0x80000000>; 24 1.1 jmcneill }; 25 1.1 jmcneill 26 1.1.1.5 skrll 27 1.1.1.5 skrll power_button: power-button { 28 1.1.1.5 skrll compatible = "gpio-keys"; 29 1.1 jmcneill pinctrl-names = "default"; 30 1.1 jmcneill pinctrl-0 = <&pwr_key_l>; 31 1.1.1.5 skrll 32 1.1 jmcneill power { 33 1.1 jmcneill label = "Power"; 34 1.1 jmcneill gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 35 1.1 jmcneill linux,code = <KEY_POWER>; 36 1.1 jmcneill debounce-interval = <100>; 37 1.1 jmcneill wakeup-source; 38 1.1 jmcneill }; 39 1.1 jmcneill }; 40 1.1 jmcneill 41 1.1 jmcneill gpio-restart { 42 1.1 jmcneill compatible = "gpio-restart"; 43 1.1 jmcneill gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; 44 1.1 jmcneill pinctrl-names = "default"; 45 1.1 jmcneill pinctrl-0 = <&ap_warm_reset_h>; 46 1.1 jmcneill priority = <200>; 47 1.1 jmcneill }; 48 1.1 jmcneill 49 1.1 jmcneill emmc_pwrseq: emmc-pwrseq { 50 1.1 jmcneill compatible = "mmc-pwrseq-emmc"; 51 1.1 jmcneill pinctrl-0 = <&emmc_reset>; 52 1.1 jmcneill pinctrl-names = "default"; 53 1.1 jmcneill reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>; 54 1.1 jmcneill }; 55 1.1 jmcneill 56 1.1 jmcneill sdio_pwrseq: sdio-pwrseq { 57 1.1 jmcneill compatible = "mmc-pwrseq-simple"; 58 1.1 jmcneill clocks = <&rk808 RK808_CLKOUT1>; 59 1.1 jmcneill clock-names = "ext_clock"; 60 1.1 jmcneill pinctrl-names = "default"; 61 1.1.1.6 jmcneill pinctrl-0 = <&wifi_enable_h>; 62 1.1 jmcneill 63 1.1 jmcneill /* 64 1.1.1.6 jmcneill * Depending on the actual card populated GPIO4 D4 65 1.1.1.5 skrll * correspond to one of these signals on the module: 66 1.1.1.5 skrll * 67 1.1.1.5 skrll * D4: 68 1.1 jmcneill * - SDIO_RESET_L_WL_REG_ON 69 1.1 jmcneill * - PDN (power down when low) 70 1.1 jmcneill */ 71 1.1.1.6 jmcneill reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>; 72 1.1 jmcneill }; 73 1.1 jmcneill 74 1.1 jmcneill vcc_5v: vcc-5v { 75 1.1 jmcneill compatible = "regulator-fixed"; 76 1.1 jmcneill regulator-name = "vcc_5v"; 77 1.1 jmcneill regulator-always-on; 78 1.1 jmcneill regulator-boot-on; 79 1.1 jmcneill regulator-min-microvolt = <5000000>; 80 1.1 jmcneill regulator-max-microvolt = <5000000>; 81 1.1 jmcneill }; 82 1.1 jmcneill 83 1.1 jmcneill vcc33_sys: vcc33-sys { 84 1.1 jmcneill compatible = "regulator-fixed"; 85 1.1 jmcneill regulator-name = "vcc33_sys"; 86 1.1 jmcneill regulator-always-on; 87 1.1 jmcneill regulator-boot-on; 88 1.1 jmcneill regulator-min-microvolt = <3300000>; 89 1.1 jmcneill regulator-max-microvolt = <3300000>; 90 1.1 jmcneill }; 91 1.1 jmcneill 92 1.1 jmcneill vcc50_hdmi: vcc50-hdmi { 93 1.1 jmcneill compatible = "regulator-fixed"; 94 1.1 jmcneill regulator-name = "vcc50_hdmi"; 95 1.1 jmcneill regulator-always-on; 96 1.1 jmcneill regulator-boot-on; 97 1.1 jmcneill vin-supply = <&vcc_5v>; 98 1.1 jmcneill }; 99 1.1.1.5 skrll 100 1.1.1.5 skrll vdd_logic: vdd-logic { 101 1.1.1.5 skrll compatible = "pwm-regulator"; 102 1.1.1.5 skrll regulator-name = "vdd_logic"; 103 1.1.1.5 skrll 104 1.1.1.5 skrll pwms = <&pwm1 0 1994 0>; 105 1.1.1.5 skrll pwm-supply = <&vcc33_sys>; 106 1.1.1.5 skrll 107 1.1.1.5 skrll pwm-dutycycle-range = <0x7b 0>; 108 1.1.1.5 skrll pwm-dutycycle-unit = <0x94>; 109 1.1.1.5 skrll 110 1.1.1.5 skrll regulator-always-on; 111 1.1.1.5 skrll regulator-boot-on; 112 1.1.1.5 skrll regulator-min-microvolt = <950000>; 113 1.1.1.5 skrll regulator-max-microvolt = <1350000>; 114 1.1.1.5 skrll regulator-ramp-delay = <4000>; 115 1.1.1.5 skrll }; 116 1.1 jmcneill }; 117 1.1 jmcneill 118 1.1 jmcneill &cpu0 { 119 1.1 jmcneill cpu0-supply = <&vdd_cpu>; 120 1.1.1.3 jmcneill }; 121 1.1.1.3 jmcneill 122 1.1.1.5 skrll &cpu_crit { 123 1.1.1.5 skrll temperature = <100000>; 124 1.1.1.5 skrll }; 125 1.1.1.5 skrll 126 1.1.1.3 jmcneill /* rk3288-c used in Veyron Chrome-devices has slightly changed OPPs */ 127 1.1.1.3 jmcneill &cpu_opp_table { 128 1.1.1.3 jmcneill /delete-node/ opp-312000000; 129 1.1.1.3 jmcneill 130 1.1.1.3 jmcneill opp-1512000000 { 131 1.1.1.3 jmcneill opp-microvolt = <1250000>; 132 1.1.1.3 jmcneill }; 133 1.1.1.3 jmcneill opp-1608000000 { 134 1.1.1.3 jmcneill opp-microvolt = <1300000>; 135 1.1.1.3 jmcneill }; 136 1.1.1.3 jmcneill opp-1704000000 { 137 1.1.1.3 jmcneill opp-hz = /bits/ 64 <1704000000>; 138 1.1.1.3 jmcneill opp-microvolt = <1350000>; 139 1.1.1.3 jmcneill }; 140 1.1.1.3 jmcneill opp-1800000000 { 141 1.1.1.3 jmcneill opp-hz = /bits/ 64 <1800000000>; 142 1.1.1.3 jmcneill opp-microvolt = <1400000>; 143 1.1.1.3 jmcneill }; 144 1.1 jmcneill }; 145 1.1 jmcneill 146 1.1 jmcneill &emmc { 147 1.1 jmcneill status = "okay"; 148 1.1 jmcneill 149 1.1 jmcneill bus-width = <8>; 150 1.1 jmcneill cap-mmc-highspeed; 151 1.1 jmcneill rockchip,default-sample-phase = <158>; 152 1.1 jmcneill disable-wp; 153 1.1 jmcneill mmc-hs200-1_8v; 154 1.1 jmcneill mmc-pwrseq = <&emmc_pwrseq>; 155 1.1 jmcneill non-removable; 156 1.1 jmcneill pinctrl-names = "default"; 157 1.1 jmcneill pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; 158 1.1 jmcneill }; 159 1.1 jmcneill 160 1.1.1.2 jmcneill &gpu { 161 1.1.1.2 jmcneill mali-supply = <&vdd_gpu>; 162 1.1.1.2 jmcneill status = "okay"; 163 1.1.1.2 jmcneill }; 164 1.1.1.2 jmcneill 165 1.1.1.5 skrll &gpu_alert0 { 166 1.1.1.5 skrll temperature = <72500>; 167 1.1.1.5 skrll }; 168 1.1.1.5 skrll 169 1.1.1.5 skrll &gpu_crit { 170 1.1.1.5 skrll temperature = <100000>; 171 1.1.1.5 skrll }; 172 1.1.1.5 skrll 173 1.1 jmcneill &hdmi { 174 1.1.1.5 skrll pinctrl-names = "default", "unwedge"; 175 1.1.1.5 skrll pinctrl-0 = <&hdmi_ddc>; 176 1.1.1.5 skrll pinctrl-1 = <&hdmi_ddc_unwedge>; 177 1.1 jmcneill status = "okay"; 178 1.1 jmcneill }; 179 1.1 jmcneill 180 1.1 jmcneill &i2c0 { 181 1.1 jmcneill status = "okay"; 182 1.1 jmcneill 183 1.1 jmcneill clock-frequency = <400000>; 184 1.1 jmcneill i2c-scl-falling-time-ns = <50>; /* 2.5ns measured */ 185 1.1 jmcneill i2c-scl-rising-time-ns = <100>; /* 45ns measured */ 186 1.1 jmcneill 187 1.1 jmcneill rk808: pmic@1b { 188 1.1 jmcneill compatible = "rockchip,rk808"; 189 1.1 jmcneill reg = <0x1b>; 190 1.1 jmcneill clock-output-names = "xin32k", "wifibt_32kin"; 191 1.1 jmcneill interrupt-parent = <&gpio0>; 192 1.1 jmcneill interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>; 193 1.1 jmcneill pinctrl-names = "default"; 194 1.1 jmcneill pinctrl-0 = <&pmic_int_l>; 195 1.1 jmcneill rockchip,system-power-controller; 196 1.1 jmcneill wakeup-source; 197 1.1 jmcneill #clock-cells = <1>; 198 1.1 jmcneill 199 1.1 jmcneill vcc1-supply = <&vcc33_sys>; 200 1.1 jmcneill vcc2-supply = <&vcc33_sys>; 201 1.1 jmcneill vcc3-supply = <&vcc33_sys>; 202 1.1 jmcneill vcc4-supply = <&vcc33_sys>; 203 1.1 jmcneill vcc6-supply = <&vcc_5v>; 204 1.1 jmcneill vcc7-supply = <&vcc33_sys>; 205 1.1 jmcneill vcc8-supply = <&vcc33_sys>; 206 1.1 jmcneill vcc12-supply = <&vcc_18>; 207 1.1 jmcneill vddio-supply = <&vcc33_io>; 208 1.1 jmcneill 209 1.1 jmcneill regulators { 210 1.1 jmcneill vdd_cpu: DCDC_REG1 { 211 1.1 jmcneill regulator-name = "vdd_arm"; 212 1.1 jmcneill regulator-always-on; 213 1.1 jmcneill regulator-boot-on; 214 1.1 jmcneill regulator-min-microvolt = <750000>; 215 1.1 jmcneill regulator-max-microvolt = <1450000>; 216 1.1 jmcneill regulator-ramp-delay = <6001>; 217 1.1 jmcneill regulator-state-mem { 218 1.1 jmcneill regulator-off-in-suspend; 219 1.1 jmcneill }; 220 1.1 jmcneill }; 221 1.1 jmcneill 222 1.1 jmcneill vdd_gpu: DCDC_REG2 { 223 1.1 jmcneill regulator-name = "vdd_gpu"; 224 1.1 jmcneill regulator-always-on; 225 1.1 jmcneill regulator-boot-on; 226 1.1 jmcneill regulator-min-microvolt = <800000>; 227 1.1 jmcneill regulator-max-microvolt = <1250000>; 228 1.1 jmcneill regulator-ramp-delay = <6001>; 229 1.1 jmcneill regulator-state-mem { 230 1.1.1.5 skrll regulator-off-in-suspend; 231 1.1 jmcneill }; 232 1.1 jmcneill }; 233 1.1 jmcneill 234 1.1 jmcneill vcc135_ddr: DCDC_REG3 { 235 1.1 jmcneill regulator-name = "vcc135_ddr"; 236 1.1 jmcneill regulator-always-on; 237 1.1 jmcneill regulator-boot-on; 238 1.1 jmcneill regulator-state-mem { 239 1.1 jmcneill regulator-on-in-suspend; 240 1.1 jmcneill }; 241 1.1 jmcneill }; 242 1.1 jmcneill 243 1.1 jmcneill /* 244 1.1 jmcneill * vcc_18 has several aliases. (vcc18_flashio and 245 1.1 jmcneill * vcc18_wl). We'll add those aliases here just to 246 1.1 jmcneill * make it easier to follow the schematic. The signals 247 1.1 jmcneill * are actually hooked together and only separated for 248 1.1 jmcneill * power measurement purposes). 249 1.1 jmcneill */ 250 1.1 jmcneill vcc18_wl: vcc18_flashio: vcc_18: DCDC_REG4 { 251 1.1 jmcneill regulator-name = "vcc_18"; 252 1.1 jmcneill regulator-always-on; 253 1.1 jmcneill regulator-boot-on; 254 1.1 jmcneill regulator-min-microvolt = <1800000>; 255 1.1 jmcneill regulator-max-microvolt = <1800000>; 256 1.1 jmcneill regulator-state-mem { 257 1.1 jmcneill regulator-on-in-suspend; 258 1.1 jmcneill regulator-suspend-microvolt = <1800000>; 259 1.1 jmcneill }; 260 1.1 jmcneill }; 261 1.1 jmcneill 262 1.1 jmcneill /* 263 1.1 jmcneill * Note that both vcc33_io and vcc33_pmuio are always 264 1.1 jmcneill * powered together. To simplify the logic in the dts 265 1.1 jmcneill * we just refer to vcc33_io every time something is 266 1.1 jmcneill * powered from vcc33_pmuio. In fact, on later boards 267 1.1 jmcneill * (such as danger) they're the same net. 268 1.1 jmcneill */ 269 1.1 jmcneill vcc33_io: LDO_REG1 { 270 1.1 jmcneill regulator-name = "vcc33_io"; 271 1.1 jmcneill regulator-always-on; 272 1.1 jmcneill regulator-boot-on; 273 1.1 jmcneill regulator-min-microvolt = <3300000>; 274 1.1 jmcneill regulator-max-microvolt = <3300000>; 275 1.1 jmcneill regulator-state-mem { 276 1.1 jmcneill regulator-on-in-suspend; 277 1.1 jmcneill regulator-suspend-microvolt = <3300000>; 278 1.1 jmcneill }; 279 1.1 jmcneill }; 280 1.1 jmcneill 281 1.1 jmcneill vdd_10: LDO_REG3 { 282 1.1 jmcneill regulator-name = "vdd_10"; 283 1.1 jmcneill regulator-always-on; 284 1.1 jmcneill regulator-boot-on; 285 1.1 jmcneill regulator-min-microvolt = <1000000>; 286 1.1 jmcneill regulator-max-microvolt = <1000000>; 287 1.1 jmcneill regulator-state-mem { 288 1.1 jmcneill regulator-on-in-suspend; 289 1.1 jmcneill regulator-suspend-microvolt = <1000000>; 290 1.1 jmcneill }; 291 1.1 jmcneill }; 292 1.1 jmcneill 293 1.1 jmcneill vdd10_lcd_pwren_h: LDO_REG7 { 294 1.1 jmcneill regulator-name = "vdd10_lcd_pwren_h"; 295 1.1 jmcneill regulator-always-on; 296 1.1 jmcneill regulator-boot-on; 297 1.1 jmcneill regulator-min-microvolt = <2500000>; 298 1.1 jmcneill regulator-max-microvolt = <2500000>; 299 1.1 jmcneill regulator-state-mem { 300 1.1 jmcneill regulator-off-in-suspend; 301 1.1 jmcneill }; 302 1.1 jmcneill }; 303 1.1 jmcneill 304 1.1 jmcneill vcc33_lcd: SWITCH_REG1 { 305 1.1 jmcneill regulator-name = "vcc33_lcd"; 306 1.1 jmcneill regulator-always-on; 307 1.1 jmcneill regulator-boot-on; 308 1.1 jmcneill regulator-state-mem { 309 1.1 jmcneill regulator-off-in-suspend; 310 1.1 jmcneill }; 311 1.1 jmcneill }; 312 1.1 jmcneill }; 313 1.1 jmcneill }; 314 1.1 jmcneill }; 315 1.1 jmcneill 316 1.1 jmcneill &i2c1 { 317 1.1 jmcneill status = "okay"; 318 1.1 jmcneill 319 1.1 jmcneill clock-frequency = <400000>; 320 1.1 jmcneill i2c-scl-falling-time-ns = <50>; /* 2.5ns measured */ 321 1.1 jmcneill i2c-scl-rising-time-ns = <100>; /* 40ns measured */ 322 1.1 jmcneill 323 1.1 jmcneill tpm: tpm@20 { 324 1.1 jmcneill compatible = "infineon,slb9645tt"; 325 1.1 jmcneill reg = <0x20>; 326 1.1 jmcneill powered-while-suspended; 327 1.1 jmcneill }; 328 1.1 jmcneill }; 329 1.1 jmcneill 330 1.1 jmcneill &i2c2 { 331 1.1 jmcneill status = "okay"; 332 1.1 jmcneill 333 1.1 jmcneill /* 100kHz since 4.7k resistors don't rise fast enough */ 334 1.1 jmcneill clock-frequency = <100000>; 335 1.1 jmcneill i2c-scl-falling-time-ns = <50>; /* 10ns measured */ 336 1.1 jmcneill i2c-scl-rising-time-ns = <800>; /* 600ns measured */ 337 1.1 jmcneill }; 338 1.1 jmcneill 339 1.1 jmcneill &i2c4 { 340 1.1 jmcneill status = "okay"; 341 1.1 jmcneill 342 1.1 jmcneill clock-frequency = <400000>; 343 1.1 jmcneill i2c-scl-falling-time-ns = <50>; /* 11ns measured */ 344 1.1 jmcneill i2c-scl-rising-time-ns = <300>; /* 225ns measured */ 345 1.1 jmcneill }; 346 1.1 jmcneill 347 1.1 jmcneill &io_domains { 348 1.1 jmcneill status = "okay"; 349 1.1 jmcneill 350 1.1 jmcneill bb-supply = <&vcc33_io>; 351 1.1 jmcneill dvp-supply = <&vcc_18>; 352 1.1 jmcneill flash0-supply = <&vcc18_flashio>; 353 1.1 jmcneill gpio1830-supply = <&vcc33_io>; 354 1.1 jmcneill gpio30-supply = <&vcc33_io>; 355 1.1 jmcneill lcdc-supply = <&vcc33_lcd>; 356 1.1 jmcneill wifi-supply = <&vcc18_wl>; 357 1.1 jmcneill }; 358 1.1 jmcneill 359 1.1 jmcneill &pwm1 { 360 1.1 jmcneill status = "okay"; 361 1.1 jmcneill }; 362 1.1 jmcneill 363 1.1 jmcneill &sdio0 { 364 1.1 jmcneill status = "okay"; 365 1.1 jmcneill 366 1.1 jmcneill bus-width = <4>; 367 1.1 jmcneill cap-sd-highspeed; 368 1.1 jmcneill cap-sdio-irq; 369 1.1 jmcneill keep-power-in-suspend; 370 1.1 jmcneill mmc-pwrseq = <&sdio_pwrseq>; 371 1.1 jmcneill non-removable; 372 1.1 jmcneill pinctrl-names = "default"; 373 1.1 jmcneill pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>; 374 1.1 jmcneill sd-uhs-sdr12; 375 1.1 jmcneill sd-uhs-sdr25; 376 1.1 jmcneill sd-uhs-sdr50; 377 1.1 jmcneill sd-uhs-sdr104; 378 1.1 jmcneill vmmc-supply = <&vcc33_sys>; 379 1.1 jmcneill vqmmc-supply = <&vcc18_wl>; 380 1.1 jmcneill }; 381 1.1 jmcneill 382 1.1 jmcneill &spi2 { 383 1.1 jmcneill status = "okay"; 384 1.1 jmcneill 385 1.1 jmcneill rx-sample-delay-ns = <12>; 386 1.1 jmcneill 387 1.1 jmcneill flash@0 { 388 1.1 jmcneill compatible = "jedec,spi-nor"; 389 1.1 jmcneill spi-max-frequency = <50000000>; 390 1.1 jmcneill reg = <0>; 391 1.1 jmcneill }; 392 1.1 jmcneill }; 393 1.1 jmcneill 394 1.1 jmcneill &tsadc { 395 1.1 jmcneill status = "okay"; 396 1.1 jmcneill 397 1.1 jmcneill rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */ 398 1.1 jmcneill rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */ 399 1.1.1.5 skrll rockchip,hw-tshut-temp = <125000>; 400 1.1 jmcneill }; 401 1.1 jmcneill 402 1.1 jmcneill &uart0 { 403 1.1 jmcneill status = "okay"; 404 1.1 jmcneill 405 1.1 jmcneill /* Pins don't include flow control by default; add that in */ 406 1.1 jmcneill pinctrl-names = "default"; 407 1.1 jmcneill pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; 408 1.1 jmcneill }; 409 1.1 jmcneill 410 1.1 jmcneill &uart1 { 411 1.1 jmcneill status = "okay"; 412 1.1 jmcneill }; 413 1.1 jmcneill 414 1.1 jmcneill &uart2 { 415 1.1 jmcneill status = "okay"; 416 1.1 jmcneill }; 417 1.1 jmcneill 418 1.1 jmcneill &usbphy { 419 1.1 jmcneill status = "okay"; 420 1.1 jmcneill }; 421 1.1 jmcneill 422 1.1 jmcneill &usb_host0_ehci { 423 1.1 jmcneill status = "okay"; 424 1.1 jmcneill 425 1.1 jmcneill needs-reset-on-resume; 426 1.1 jmcneill }; 427 1.1 jmcneill 428 1.1 jmcneill &usb_host1 { 429 1.1 jmcneill status = "okay"; 430 1.1.1.5 skrll snps,need-phy-for-wake; 431 1.1 jmcneill }; 432 1.1 jmcneill 433 1.1 jmcneill &usb_otg { 434 1.1 jmcneill status = "okay"; 435 1.1 jmcneill 436 1.1 jmcneill assigned-clocks = <&cru SCLK_USBPHY480M_SRC>; 437 1.1 jmcneill assigned-clock-parents = <&usbphy0>; 438 1.1 jmcneill dr_mode = "host"; 439 1.1.1.5 skrll snps,need-phy-for-wake; 440 1.1 jmcneill }; 441 1.1 jmcneill 442 1.1 jmcneill &vopb { 443 1.1 jmcneill status = "okay"; 444 1.1 jmcneill }; 445 1.1 jmcneill 446 1.1 jmcneill &vopb_mmu { 447 1.1 jmcneill status = "okay"; 448 1.1 jmcneill }; 449 1.1 jmcneill 450 1.1 jmcneill &wdt { 451 1.1 jmcneill status = "okay"; 452 1.1 jmcneill }; 453 1.1 jmcneill 454 1.1 jmcneill &pinctrl { 455 1.1 jmcneill pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { 456 1.1 jmcneill bias-disable; 457 1.1 jmcneill drive-strength = <8>; 458 1.1 jmcneill }; 459 1.1 jmcneill 460 1.1 jmcneill pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma { 461 1.1 jmcneill bias-pull-up; 462 1.1 jmcneill drive-strength = <8>; 463 1.1 jmcneill }; 464 1.1 jmcneill 465 1.1 jmcneill pcfg_output_high: pcfg-output-high { 466 1.1 jmcneill output-high; 467 1.1 jmcneill }; 468 1.1 jmcneill 469 1.1 jmcneill pcfg_output_low: pcfg-output-low { 470 1.1 jmcneill output-low; 471 1.1 jmcneill }; 472 1.1 jmcneill 473 1.1 jmcneill buttons { 474 1.1 jmcneill pwr_key_l: pwr-key-l { 475 1.1.1.5 skrll rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 476 1.1 jmcneill }; 477 1.1 jmcneill }; 478 1.1 jmcneill 479 1.1 jmcneill emmc { 480 1.1 jmcneill emmc_reset: emmc-reset { 481 1.1.1.5 skrll rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 482 1.1 jmcneill }; 483 1.1 jmcneill 484 1.1 jmcneill /* 485 1.1 jmcneill * We run eMMC at max speed; bump up drive strength. 486 1.1 jmcneill * We also have external pulls, so disable the internal ones. 487 1.1 jmcneill */ 488 1.1 jmcneill emmc_clk: emmc-clk { 489 1.1.1.5 skrll rockchip,pins = <3 RK_PC2 2 &pcfg_pull_none_drv_8ma>; 490 1.1 jmcneill }; 491 1.1 jmcneill 492 1.1 jmcneill emmc_cmd: emmc-cmd { 493 1.1.1.5 skrll rockchip,pins = <3 RK_PC0 2 &pcfg_pull_none_drv_8ma>; 494 1.1 jmcneill }; 495 1.1 jmcneill 496 1.1 jmcneill emmc_bus8: emmc-bus8 { 497 1.1.1.5 skrll rockchip,pins = <3 RK_PA0 2 &pcfg_pull_none_drv_8ma>, 498 1.1.1.5 skrll <3 RK_PA1 2 &pcfg_pull_none_drv_8ma>, 499 1.1.1.5 skrll <3 RK_PA2 2 &pcfg_pull_none_drv_8ma>, 500 1.1.1.5 skrll <3 RK_PA3 2 &pcfg_pull_none_drv_8ma>, 501 1.1.1.5 skrll <3 RK_PA4 2 &pcfg_pull_none_drv_8ma>, 502 1.1.1.5 skrll <3 RK_PA5 2 &pcfg_pull_none_drv_8ma>, 503 1.1.1.5 skrll <3 RK_PA6 2 &pcfg_pull_none_drv_8ma>, 504 1.1.1.5 skrll <3 RK_PA7 2 &pcfg_pull_none_drv_8ma>; 505 1.1 jmcneill }; 506 1.1 jmcneill }; 507 1.1 jmcneill 508 1.1 jmcneill pmic { 509 1.1 jmcneill pmic_int_l: pmic-int-l { 510 1.1.1.5 skrll rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; 511 1.1 jmcneill }; 512 1.1 jmcneill }; 513 1.1 jmcneill 514 1.1 jmcneill reboot { 515 1.1 jmcneill ap_warm_reset_h: ap-warm-reset-h { 516 1.1.1.5 skrll rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 517 1.1 jmcneill }; 518 1.1 jmcneill }; 519 1.1 jmcneill 520 1.1 jmcneill recovery-switch { 521 1.1 jmcneill rec_mode_l: rec-mode-l { 522 1.1.1.5 skrll rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>; 523 1.1 jmcneill }; 524 1.1 jmcneill }; 525 1.1 jmcneill 526 1.1 jmcneill sdio0 { 527 1.1 jmcneill wifi_enable_h: wifienable-h { 528 1.1.1.5 skrll rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 529 1.1 jmcneill }; 530 1.1 jmcneill 531 1.1 jmcneill /* NOTE: mislabelled on schematic; should be bt_enable_h */ 532 1.1 jmcneill bt_enable_l: bt-enable-l { 533 1.1.1.5 skrll rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; 534 1.1.1.5 skrll }; 535 1.1.1.5 skrll 536 1.1.1.5 skrll bt_host_wake: bt-host-wake { 537 1.1.1.5 skrll rockchip,pins = <4 RK_PD7 RK_FUNC_GPIO &pcfg_pull_down>; 538 1.1.1.5 skrll }; 539 1.1.1.5 skrll 540 1.1.1.5 skrll bt_host_wake_l: bt-host-wake-l { 541 1.1.1.5 skrll rockchip,pins = <4 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>; 542 1.1 jmcneill }; 543 1.1 jmcneill 544 1.1 jmcneill /* 545 1.1 jmcneill * We run sdio0 at max speed; bump up drive strength. 546 1.1 jmcneill * We also have external pulls, so disable the internal ones. 547 1.1 jmcneill */ 548 1.1 jmcneill sdio0_bus4: sdio0-bus4 { 549 1.1.1.5 skrll rockchip,pins = <4 RK_PC4 1 &pcfg_pull_none_drv_8ma>, 550 1.1.1.5 skrll <4 RK_PC5 1 &pcfg_pull_none_drv_8ma>, 551 1.1.1.5 skrll <4 RK_PC6 1 &pcfg_pull_none_drv_8ma>, 552 1.1.1.5 skrll <4 RK_PC7 1 &pcfg_pull_none_drv_8ma>; 553 1.1 jmcneill }; 554 1.1 jmcneill 555 1.1 jmcneill sdio0_cmd: sdio0-cmd { 556 1.1.1.5 skrll rockchip,pins = <4 RK_PD0 1 &pcfg_pull_none_drv_8ma>; 557 1.1 jmcneill }; 558 1.1 jmcneill 559 1.1 jmcneill sdio0_clk: sdio0-clk { 560 1.1.1.5 skrll rockchip,pins = <4 RK_PD1 1 &pcfg_pull_none_drv_8ma>; 561 1.1.1.5 skrll }; 562 1.1.1.5 skrll 563 1.1.1.5 skrll /* 564 1.1.1.5 skrll * These pins are only present on very new veyron boards; on 565 1.1.1.5 skrll * older boards bt_dev_wake is simply always high. Note that 566 1.1.1.5 skrll * gpio4_D2 is a NC on old veyron boards, so it doesn't hurt 567 1.1.1.5 skrll * to map this pin everywhere 568 1.1.1.5 skrll */ 569 1.1.1.5 skrll bt_dev_wake_sleep: bt-dev-wake-sleep { 570 1.1.1.5 skrll rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_output_low>; 571 1.1.1.5 skrll }; 572 1.1.1.5 skrll 573 1.1.1.5 skrll bt_dev_wake_awake: bt-dev-wake-awake { 574 1.1.1.5 skrll rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_output_high>; 575 1.1 jmcneill }; 576 1.1.1.6 jmcneill 577 1.1.1.6 jmcneill bt_dev_wake: bt-dev-wake { 578 1.1.1.6 jmcneill rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 579 1.1.1.6 jmcneill }; 580 1.1 jmcneill }; 581 1.1 jmcneill 582 1.1 jmcneill tpm { 583 1.1 jmcneill tpm_int_h: tpm-int-h { 584 1.1.1.5 skrll rockchip,pins = <7 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 585 1.1 jmcneill }; 586 1.1 jmcneill }; 587 1.1 jmcneill 588 1.1 jmcneill write-protect { 589 1.1 jmcneill fw_wp_ap: fw-wp-ap { 590 1.1.1.5 skrll rockchip,pins = <7 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 591 1.1 jmcneill }; 592 1.1 jmcneill }; 593 1.1 jmcneill }; 594