1 // SPDX-License-Identifier: GPL-2.0
3 * Google Veyron (and derivatives) board device tree source
5 * Copyright 2014 Google, Inc
8 #include <dt-bindings/clock/rockchip,rk808.h>
9 #include <dt-bindings/input/input.h>
10 #include "rk3288.dtsi"
14 reg = <0x0 0x80000000>;
19 u-boot,spl-boot-order = &spi_flash;
24 pinctrl-names = "default";
25 pinctrl-0 = <&fw_wp_ap>;
26 write-protect-gpio = <&gpio7 6 GPIO_ACTIVE_LOW>;
30 backlight: backlight {
31 compatible = "pwm-backlight";
35 16 17 18 19 20 21 22 23
36 24 25 26 27 28 29 30 31
37 32 33 34 35 36 37 38 39
38 40 41 42 43 44 45 46 47
39 48 49 50 51 52 53 54 55
40 56 57 58 59 60 61 62 63
41 64 65 66 67 68 69 70 71
42 72 73 74 75 76 77 78 79
43 80 81 82 83 84 85 86 87
44 88 89 90 91 92 93 94 95
45 96 97 98 99 100 101 102 103
46 104 105 106 107 108 109 110 111
47 112 113 114 115 116 117 118 119
48 120 121 122 123 124 125 126 127
49 128 129 130 131 132 133 134 135
50 136 137 138 139 140 141 142 143
51 144 145 146 147 148 149 150 151
52 152 153 154 155 156 157 158 159
53 160 161 162 163 164 165 166 167
54 168 169 170 171 172 173 174 175
55 176 177 178 179 180 181 182 183
56 184 185 186 187 188 189 190 191
57 192 193 194 195 196 197 198 199
58 200 201 202 203 204 205 206 207
59 208 209 210 211 212 213 214 215
60 216 217 218 219 220 221 222 223
61 224 225 226 227 228 229 230 231
62 232 233 234 235 236 237 238 239
63 240 241 242 243 244 245 246 247
64 248 249 250 251 252 253 254 255>;
65 default-brightness-level = <128>;
66 enable-gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
68 pinctrl-names = "default";
70 pwms = <&pwm0 0 1000000 0>;
74 compatible ="cnm,n116bgeea2","simple-panel";
76 power-supply = <&vcc33_lcd>;
77 backlight = <&backlight>;
80 gpio_keys: gpio-keys {
81 compatible = "gpio-keys";
83 pinctrl-names = "default";
84 pinctrl-0 = <&pwr_key_h>;
87 gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
88 linux,code = <KEY_POWER>;
89 debounce-interval = <100>;
95 compatible = "gpio-restart";
96 gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
97 pinctrl-names = "default";
98 pinctrl-0 = <&ap_warm_reset_h>;
99 priority = /bits/ 8 <200>;
102 emmc_pwrseq: emmc-pwrseq {
103 compatible = "mmc-pwrseq-emmc";
104 pinctrl-0 = <&emmc_reset>;
105 pinctrl-names = "default";
106 reset-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
110 compatible = "rockchip,rockchip-audio-max98090";
111 rockchip,model = "ROCKCHIP-I2S";
112 rockchip,i2s-controller = <&i2s>;
113 rockchip,audio-codec = <&max98090>;
114 rockchip,hp-det-gpios = <&gpio6 5 GPIO_ACTIVE_HIGH>;
115 rockchip,mic-det-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
116 rockchip,headset-codec = <&headsetcodec>;
117 pinctrl-names = "default";
118 pinctrl-0 = <&mic_det>, <&hp_det>;
121 vdd_logic: pwm-regulator {
122 compatible = "pwm-regulator";
123 pwms = <&pwm1 0 2000 0>;
125 voltage-table = <1350000 0>,
135 regulator-min-microvolt = <950000>;
136 regulator-max-microvolt = <1350000>;
137 regulator-name = "vdd_logic";
138 regulator-ramp-delay = <4000>;
141 vcc33_sys: vcc33-sys {
142 compatible = "regulator-fixed";
143 regulator-name = "vcc33_sys";
146 regulator-min-microvolt = <3300000>;
147 regulator-max-microvolt = <3300000>;
148 vin-supply = <&vccsys>;
152 compatible = "regulator-fixed";
153 regulator-name = "vcc_5v";
156 regulator-min-microvolt = <5000000>;
157 regulator-max-microvolt = <5000000>;
160 vcc50_hdmi: vcc50-hdmi {
161 compatible = "regulator-fixed";
162 regulator-name = "vcc50_hdmi";
165 vin-supply = <&vcc_5v>;
168 bt_regulator: bt-regulator {
170 * On the module itself this is one of these (depending
171 * on the actual card pouplated):
172 * - BT_I2S_WS_BT_RFDISABLE_L
176 compatible = "regulator-fixed";
178 gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
179 pinctrl-names = "default";
180 pinctrl-0 = <&bt_enable_l>;
181 regulator-name = "bt_regulator";
184 wifi_regulator: wifi-regulator {
186 * On the module itself this is one of these (depending
187 * on the actual card populated):
188 * - SDIO_RESET_L_WL_REG_ON
189 * - PDN (power down when low)
192 compatible = "regulator-fixed";
194 gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
195 pinctrl-names = "default";
196 pinctrl-0 = <&wifi_enable_h>;
197 regulator-name = "wifi_regulator";
199 /* Faux input supply. See bt_regulator description. */
200 vin-supply = <&bt_regulator>;
204 compatible = "rockchip,rk3288-io-voltage-domain";
205 rockchip,grf = <&grf>;
207 audio-supply = <&vcc18_codec>;
208 bb-supply = <&vcc33_io>;
209 dvp-supply = <&vcc_18>;
210 flash0-supply = <&vcc18_flashio>;
211 gpio1830-supply = <&vcc33_io>;
212 gpio30-supply = <&vcc33_io>;
213 lcdc-supply = <&vcc33_lcd>;
214 sdcard-supply = <&vccio_sd>;
215 wifi-supply = <&vcc18_wl>;
220 cpu0-supply = <&vdd_cpu>;
224 logic-supply = <&vdd_logic>;
225 rockchip,odt-disable-freq = <333000000>;
226 rockchip,dll-disable-freq = <333000000>;
227 rockchip,sr-enable-freq = <333000000>;
228 rockchip,pd-enable-freq = <666000000>;
229 rockchip,auto-self-refresh-cnt = <0>;
230 rockchip,auto-power-down-cnt = <64>;
231 rockchip,ddr-speed-bin = <21>;
232 rockchip,trcd = <10>;
252 mmc-pwrseq = <&emmc_pwrseq>;
256 pinctrl-names = "default";
257 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8 &emmc_pwr>;
270 card-external-vcc-supply = <&wifi_regulator>;
271 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>, <&cru SCLK_SDIO0_DRV>,
272 <&cru SCLK_SDIO0_SAMPLE>, <&rk808 RK808_CLKOUT1>;
273 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample", "card_ext_clock";
274 keep-power-in-suspend;
277 pinctrl-names = "default";
278 pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>;
280 vmmc-supply = <&vcc33_sys>;
281 vqmmc-supply = <&vcc18_wl>;
292 card-detect-delay = <200>;
293 cd-gpios = <&gpio7 5 GPIO_ACTIVE_LOW>;
296 vmmc-supply = <&vcc33_sd>;
297 vqmmc-supply = <&vccio_sd>;
304 spi_flash: spiflash@0 {
306 compatible = "spidev", "jedec,spi-nor";
307 spi-max-frequency = <20000000>; /* Reduce for Dediprog em100 pro */
315 clock-frequency = <400000>;
316 i2c-scl-falling-time-ns = <50>; /* 2.5ns measured */
317 i2c-scl-rising-time-ns = <100>; /* 45ns measured */
321 compatible = "rockchip,rk808";
322 clock-output-names = "xin32k", "wifibt_32kin";
323 interrupt-parent = <&gpio0>;
324 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
325 pinctrl-names = "default";
326 pinctrl-0 = <&pmic_int_l>;
328 rockchip,system-power-controller;
333 vcc1-supply = <&vcc33_sys>;
334 vcc2-supply = <&vcc33_sys>;
335 vcc3-supply = <&vcc33_sys>;
336 vcc4-supply = <&vcc33_sys>;
337 vcc6-supply = <&vcc_5v>;
338 vcc7-supply = <&vcc33_sys>;
339 vcc8-supply = <&vcc33_sys>;
340 vcc9-supply = <&vcc_5v>;
341 vcc10-supply = <&vcc33_sys>;
342 vcc11-supply = <&vcc_5v>;
343 vcc12-supply = <&vcc_18>;
345 vddio-supply = <&vcc33_io>;
351 regulator-min-microvolt = <750000>;
352 regulator-max-microvolt = <1450000>;
353 regulator-name = "vdd_arm";
354 regulator-ramp-delay = <6001>;
355 regulator-suspend-mem-disabled;
361 regulator-min-microvolt = <800000>;
362 regulator-max-microvolt = <1250000>;
363 regulator-name = "vdd_gpu";
364 regulator-ramp-delay = <6001>;
365 regulator-suspend-mem-disabled;
368 vcc135_ddr: DCDC_REG3 {
371 regulator-name = "vcc135_ddr";
372 regulator-suspend-mem-enabled;
376 * vcc_18 has several aliases. (vcc18_flashio and
377 * vcc18_wl). We'll add those aliases here just to
378 * make it easier to follow the schematic. The signals
379 * are actually hooked together and only separated for
380 * power measurement purposes).
382 vcc18_wl: vcc18_flashio: vcc_18: DCDC_REG4 {
385 regulator-min-microvolt = <1800000>;
386 regulator-max-microvolt = <1800000>;
387 regulator-name = "vcc_18";
388 regulator-suspend-mem-microvolt = <1800000>;
392 * Note that both vcc33_io and vcc33_pmuio are always
393 * powered together. To simplify the logic in the dts
394 * we just refer to vcc33_io every time something is
395 * powered from vcc33_pmuio. In fact, on later boards
396 * (such as danger) they're the same net.
401 regulator-min-microvolt = <3300000>;
402 regulator-max-microvolt = <3300000>;
403 regulator-name = "vcc33_io";
404 regulator-suspend-mem-microvolt = <3300000>;
410 regulator-min-microvolt = <1000000>;
411 regulator-max-microvolt = <1000000>;
412 regulator-name = "vdd_10";
413 regulator-suspend-mem-microvolt = <1000000>;
417 regulator-min-microvolt = <1800000>;
418 regulator-max-microvolt = <3300000>;
419 regulator-name = "vccio_sd";
420 regulator-suspend-mem-disabled;
424 regulator-min-microvolt = <3300000>;
425 regulator-max-microvolt = <3300000>;
426 regulator-name = "vcc33_sd";
427 regulator-suspend-mem-disabled;
430 vcc18_codec: LDO_REG6 {
433 regulator-min-microvolt = <1800000>;
434 regulator-max-microvolt = <1800000>;
435 regulator-name = "vcc18_codec";
436 regulator-suspend-mem-disabled;
439 vdd10_lcd_pwren_h: LDO_REG7 {
442 regulator-min-microvolt = <2500000>;
443 regulator-max-microvolt = <2500000>;
444 regulator-name = "vdd10_lcd_pwren_h";
445 regulator-suspend-mem-disabled;
448 vcc33_lcd: SWITCH_REG1 {
451 regulator-name = "vcc33_lcd";
452 regulator-suspend-mem-disabled;
461 clock-frequency = <400000>;
462 i2c-scl-falling-time-ns = <50>; /* 2.5ns measured */
463 i2c-scl-rising-time-ns = <100>; /* 40ns measured */
466 compatible = "infineon,slb9645tt";
468 powered-while-suspended;
475 /* 100kHz since 4.7k resistors don't rise fast enough */
476 clock-frequency = <100000>;
477 i2c-scl-falling-time-ns = <50>; /* 10ns measured */
478 i2c-scl-rising-time-ns = <800>; /* 600ns measured */
480 max98090: max98090@10 {
481 compatible = "maxim,max98090";
483 #sound-dai-cells = <0>;
484 interrupt-parent = <&gpio6>;
485 interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
486 pinctrl-names = "default";
487 pinctrl-0 = <&int_codec>;
494 clock-frequency = <400000>;
495 i2c-scl-falling-time-ns = <50>;
496 i2c-scl-rising-time-ns = <300>;
502 clock-frequency = <400000>;
503 i2c-scl-falling-time-ns = <50>; /* 11ns measured */
504 i2c-scl-rising-time-ns = <300>; /* 225ns measured */
506 headsetcodec: ts3a227e@3b {
507 compatible = "ti,ts3a227e";
509 interrupt-parent = <&gpio0>;
510 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
511 pinctrl-names = "default";
512 pinctrl-0 = <&ts3a227e_int_l>;
513 ti,micbias = <7>; /* MICBIAS = 2.8V */
520 clock-frequency = <100000>;
521 i2c-scl-falling-time-ns = <300>;
522 i2c-scl-rising-time-ns = <1000>;
527 clock-names = "i2s_hclk", "i2s_clk", "i2s_clk_out";
528 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>, <&cru SCLK_I2S0_OUT>;
546 /* Pins don't include flow control by default; add that in */
547 pinctrl-names = "default";
548 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
549 /* We need to go faster than 24MHz, so adjust clock parents / rates */
550 assigned-clocks = <&cru SCLK_UART0>;
551 assigned-clock-rates = <48000000>;
582 rockchip,panel = <&panel>;
598 tsadc-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
599 tsadc-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
605 pinctrl-names = "default", "sleep";
607 /* Common for sleep and wake, but no owners */
616 /* Common for sleep and wake, but no owners */
625 /* Add this for sdmmc pins to SD card */
626 pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
627 drive-strength = <8>;
630 pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
632 drive-strength = <8>;
635 pcfg_output_high: pcfg-output-high {
639 pcfg_output_low: pcfg-output-low {
645 rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
650 pwr_key_h: pwr-key-h {
651 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_none>;
657 rockchip,pins = <6 5 RK_FUNC_GPIO &pcfg_pull_up>;
659 int_codec: int-codec {
660 rockchip,pins = <6 7 RK_FUNC_GPIO &pcfg_pull_up>;
663 rockchip,pins = <6 11 RK_FUNC_GPIO &pcfg_pull_up>;
668 emmc_reset: emmc-reset {
669 rockchip,pins = <2 9 RK_FUNC_GPIO &pcfg_pull_none>;
673 * We run eMMC at max speed; bump up drive strength.
674 * We also have external pulls, so disable the internal ones.
677 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
681 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
684 emmc_bus8: emmc-bus8 {
685 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
686 <3 1 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
687 <3 2 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
688 <3 3 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
689 <3 4 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
690 <3 5 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
691 <3 6 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
692 <3 7 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
697 ts3a227e_int_l: ts3a227e-int-l {
698 rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_up>;
703 pmic_int_l: pmic-int-l {
705 * Causes jerry to hang when probing bus 0
706 * rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
712 ap_warm_reset_h: ap-warm-reset-h {
713 rockchip,pins = <RK_GPIO0 13 RK_FUNC_GPIO &pcfg_pull_none>;
718 wifi_enable_h: wifienable-h {
719 rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>;
722 /* NOTE: mislabelled on schematic; should be bt_enable_h */
723 bt_enable_l: bt-enable-l {
724 rockchip,pins = <4 29 RK_FUNC_GPIO &pcfg_pull_none>;
728 * We run sdio0 at max speed; bump up drive strength.
729 * We also have external pulls, so disable the internal ones.
731 sdio0_bus4: sdio0-bus4 {
732 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
733 <4 21 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
734 <4 22 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
735 <4 23 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
738 sdio0_cmd: sdio0-cmd {
739 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
742 sdio0_clk: sdio0-clk {
743 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
747 * These pins are only present on very new veyron boards; on
748 * older boards bt_dev_wake is simply always high. Note that
749 * gpio4_26 is a NC on old veyron boards, so it doesn't hurt
750 * to map this pin everywhere
752 bt_dev_wake_sleep: bt-dev-wake-sleep {
753 rockchip,pins = <4 26 RK_FUNC_GPIO &pcfg_output_low>;
756 bt_dev_wake_awake: bt-dev-wake-awake {
757 rockchip,pins = <4 26 RK_FUNC_GPIO &pcfg_output_high>;
763 * We run sdmmc at max speed; bump up drive strength.
764 * We also have external pulls, so disable the internal ones.
766 sdmmc_bus4: sdmmc-bus4 {
767 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
768 <6 17 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
769 <6 18 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
770 <6 19 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
773 sdmmc_clk: sdmmc-clk {
774 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
777 sdmmc_cmd: sdmmc-cmd {
778 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
782 * Builtin CD line is hooked to ground to prevent JTAG at boot
783 * (and also to get the voltage rail correct). Make we
784 * configure gpio6_C6 as GPIO so dw_mmc builtin CD doesn't
785 * think there's a card inserted
787 sdmmc_cd_disabled: sdmmc-cd-disabled {
788 rockchip,pins = <6 22 RK_FUNC_GPIO &pcfg_pull_none>;
791 /* This is where we actually hook up CD */
792 sdmmc_cd_gpio: sdmmc-cd-gpio {
793 rockchip,pins = <7 5 RK_FUNC_GPIO &pcfg_pull_none>;
798 tpm_int_h: tpm-int-h {
799 rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
805 rockchip,pins = <7 6 RK_FUNC_GPIO &pcfg_pull_none>;
816 needs-reset-on-resume;
826 assigned-clocks = <&cru SCLK_USBPHY480M_SRC>;
827 assigned-clock-parents = <&cru SCLK_OTGPHY0>;