1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Google Veyron (and derivatives) board device tree source
5 * Copyright 2015 Google, Inc
8 #include <dt-bindings/clock/rockchip,rk808.h>
9 #include <dt-bindings/input/input.h>
10 #include "rk3288.dtsi"
14 device_type = "memory";
15 reg = <0x0 0x0 0x0 0x80000000>;
18 gpio_keys: gpio-keys {
19 compatible = "gpio-keys";
23 pinctrl-names = "default";
24 pinctrl-0 = <&pwr_key_l>;
27 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
28 linux,code = <KEY_POWER>;
29 debounce-interval = <100>;
35 compatible = "gpio-restart";
36 gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
37 pinctrl-names = "default";
38 pinctrl-0 = <&ap_warm_reset_h>;
42 emmc_pwrseq: emmc-pwrseq {
43 compatible = "mmc-pwrseq-emmc";
44 pinctrl-0 = <&emmc_reset>;
45 pinctrl-names = "default";
46 reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;
49 sdio_pwrseq: sdio-pwrseq {
50 compatible = "mmc-pwrseq-simple";
51 clocks = <&rk808 RK808_CLKOUT1>;
52 clock-names = "ext_clock";
53 pinctrl-names = "default";
54 pinctrl-0 = <&bt_enable_l>, <&wifi_enable_h>;
57 * On the module itself this is one of these (depending
58 * on the actual card populated):
59 * - SDIO_RESET_L_WL_REG_ON
60 * - PDN (power down when low)
62 reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
66 compatible = "regulator-fixed";
67 regulator-name = "vcc_5v";
70 regulator-min-microvolt = <5000000>;
71 regulator-max-microvolt = <5000000>;
74 vcc33_sys: vcc33-sys {
75 compatible = "regulator-fixed";
76 regulator-name = "vcc33_sys";
79 regulator-min-microvolt = <3300000>;
80 regulator-max-microvolt = <3300000>;
83 vcc50_hdmi: vcc50-hdmi {
84 compatible = "regulator-fixed";
85 regulator-name = "vcc50_hdmi";
88 vin-supply = <&vcc_5v>;
93 cpu0-supply = <&vdd_cpu>;
96 /* rk3288-c used in Veyron Chrome-devices has slightly changed OPPs */
98 /delete-node/ opp-312000000;
101 opp-microvolt = <1250000>;
104 opp-microvolt = <1300000>;
107 opp-hz = /bits/ 64 <1704000000>;
108 opp-microvolt = <1350000>;
111 opp-hz = /bits/ 64 <1800000000>;
112 opp-microvolt = <1400000>;
121 rockchip,default-sample-phase = <158>;
124 mmc-pwrseq = <&emmc_pwrseq>;
126 pinctrl-names = "default";
127 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
131 mali-supply = <&vdd_gpu>;
136 ddc-i2c-bus = <&i2c5>;
143 clock-frequency = <400000>;
144 i2c-scl-falling-time-ns = <50>; /* 2.5ns measured */
145 i2c-scl-rising-time-ns = <100>; /* 45ns measured */
148 compatible = "rockchip,rk808";
150 clock-output-names = "xin32k", "wifibt_32kin";
151 interrupt-parent = <&gpio0>;
152 interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
153 pinctrl-names = "default";
154 pinctrl-0 = <&pmic_int_l>;
155 rockchip,system-power-controller;
159 vcc1-supply = <&vcc33_sys>;
160 vcc2-supply = <&vcc33_sys>;
161 vcc3-supply = <&vcc33_sys>;
162 vcc4-supply = <&vcc33_sys>;
163 vcc6-supply = <&vcc_5v>;
164 vcc7-supply = <&vcc33_sys>;
165 vcc8-supply = <&vcc33_sys>;
166 vcc12-supply = <&vcc_18>;
167 vddio-supply = <&vcc33_io>;
171 regulator-name = "vdd_arm";
174 regulator-min-microvolt = <750000>;
175 regulator-max-microvolt = <1450000>;
176 regulator-ramp-delay = <6001>;
177 regulator-state-mem {
178 regulator-off-in-suspend;
183 regulator-name = "vdd_gpu";
186 regulator-min-microvolt = <800000>;
187 regulator-max-microvolt = <1250000>;
188 regulator-ramp-delay = <6001>;
189 regulator-state-mem {
190 regulator-on-in-suspend;
191 regulator-suspend-microvolt = <1000000>;
195 vcc135_ddr: DCDC_REG3 {
196 regulator-name = "vcc135_ddr";
199 regulator-state-mem {
200 regulator-on-in-suspend;
205 * vcc_18 has several aliases. (vcc18_flashio and
206 * vcc18_wl). We'll add those aliases here just to
207 * make it easier to follow the schematic. The signals
208 * are actually hooked together and only separated for
209 * power measurement purposes).
211 vcc18_wl: vcc18_flashio: vcc_18: DCDC_REG4 {
212 regulator-name = "vcc_18";
215 regulator-min-microvolt = <1800000>;
216 regulator-max-microvolt = <1800000>;
217 regulator-state-mem {
218 regulator-on-in-suspend;
219 regulator-suspend-microvolt = <1800000>;
224 * Note that both vcc33_io and vcc33_pmuio are always
225 * powered together. To simplify the logic in the dts
226 * we just refer to vcc33_io every time something is
227 * powered from vcc33_pmuio. In fact, on later boards
228 * (such as danger) they're the same net.
231 regulator-name = "vcc33_io";
234 regulator-min-microvolt = <3300000>;
235 regulator-max-microvolt = <3300000>;
236 regulator-state-mem {
237 regulator-on-in-suspend;
238 regulator-suspend-microvolt = <3300000>;
243 regulator-name = "vdd_10";
246 regulator-min-microvolt = <1000000>;
247 regulator-max-microvolt = <1000000>;
248 regulator-state-mem {
249 regulator-on-in-suspend;
250 regulator-suspend-microvolt = <1000000>;
254 vdd10_lcd_pwren_h: LDO_REG7 {
255 regulator-name = "vdd10_lcd_pwren_h";
258 regulator-min-microvolt = <2500000>;
259 regulator-max-microvolt = <2500000>;
260 regulator-state-mem {
261 regulator-off-in-suspend;
265 vcc33_lcd: SWITCH_REG1 {
266 regulator-name = "vcc33_lcd";
269 regulator-state-mem {
270 regulator-off-in-suspend;
280 clock-frequency = <400000>;
281 i2c-scl-falling-time-ns = <50>; /* 2.5ns measured */
282 i2c-scl-rising-time-ns = <100>; /* 40ns measured */
285 compatible = "infineon,slb9645tt";
287 powered-while-suspended;
294 /* 100kHz since 4.7k resistors don't rise fast enough */
295 clock-frequency = <100000>;
296 i2c-scl-falling-time-ns = <50>; /* 10ns measured */
297 i2c-scl-rising-time-ns = <800>; /* 600ns measured */
303 clock-frequency = <400000>;
304 i2c-scl-falling-time-ns = <50>; /* 11ns measured */
305 i2c-scl-rising-time-ns = <300>; /* 225ns measured */
311 clock-frequency = <100000>;
312 i2c-scl-falling-time-ns = <300>;
313 i2c-scl-rising-time-ns = <1000>;
319 bb-supply = <&vcc33_io>;
320 dvp-supply = <&vcc_18>;
321 flash0-supply = <&vcc18_flashio>;
322 gpio1830-supply = <&vcc33_io>;
323 gpio30-supply = <&vcc33_io>;
324 lcdc-supply = <&vcc33_lcd>;
325 wifi-supply = <&vcc18_wl>;
338 keep-power-in-suspend;
339 mmc-pwrseq = <&sdio_pwrseq>;
341 pinctrl-names = "default";
342 pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>;
347 vmmc-supply = <&vcc33_sys>;
348 vqmmc-supply = <&vcc18_wl>;
354 rx-sample-delay-ns = <12>;
357 compatible = "jedec,spi-nor";
358 spi-max-frequency = <50000000>;
366 rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
367 rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
373 /* We need to go faster than 24MHz, so adjust clock parents / rates */
374 assigned-clocks = <&cru SCLK_UART0>;
375 assigned-clock-rates = <48000000>;
377 /* Pins don't include flow control by default; add that in */
378 pinctrl-names = "default";
379 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
397 needs-reset-on-resume;
407 assigned-clocks = <&cru SCLK_USBPHY480M_SRC>;
408 assigned-clock-parents = <&usbphy0>;
425 pinctrl-names = "default", "sleep";
427 /* Common for sleep and wake, but no owners */
431 /* Common for sleep and wake, but no owners */
435 pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
437 drive-strength = <8>;
440 pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
442 drive-strength = <8>;
445 pcfg_output_high: pcfg-output-high {
449 pcfg_output_low: pcfg-output-low {
454 pwr_key_l: pwr-key-l {
455 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
460 emmc_reset: emmc-reset {
461 rockchip,pins = <2 9 RK_FUNC_GPIO &pcfg_pull_none>;
465 * We run eMMC at max speed; bump up drive strength.
466 * We also have external pulls, so disable the internal ones.
469 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
473 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
476 emmc_bus8: emmc-bus8 {
477 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
478 <3 1 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
479 <3 2 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
480 <3 3 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
481 <3 4 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
482 <3 5 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
483 <3 6 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
484 <3 7 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
489 pmic_int_l: pmic-int-l {
490 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
495 ap_warm_reset_h: ap-warm-reset-h {
496 rockchip,pins = <RK_GPIO0 13 RK_FUNC_GPIO &pcfg_pull_none>;
501 rec_mode_l: rec-mode-l {
502 rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
507 wifi_enable_h: wifienable-h {
508 rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>;
511 /* NOTE: mislabelled on schematic; should be bt_enable_h */
512 bt_enable_l: bt-enable-l {
513 rockchip,pins = <4 29 RK_FUNC_GPIO &pcfg_pull_none>;
517 * We run sdio0 at max speed; bump up drive strength.
518 * We also have external pulls, so disable the internal ones.
520 sdio0_bus4: sdio0-bus4 {
521 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
522 <4 21 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
523 <4 22 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
524 <4 23 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
527 sdio0_cmd: sdio0-cmd {
528 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
531 sdio0_clk: sdio0-clk {
532 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
537 tpm_int_h: tpm-int-h {
538 rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
544 rockchip,pins = <7 6 RK_FUNC_GPIO &pcfg_pull_none>;