Home | History | Annotate | Line # | Download | only in dts
      1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
      2 /*
      3  * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
      4  */
      5 
      6 #include "rk3288.dtsi"
      7 #include <dt-bindings/input/input.h>
      8 #include <dt-bindings/clock/rockchip,rk808.h>
      9 
     10 / {
     11 	chosen {
     12 		stdout-path = "serial2:115200n8";
     13 	};
     14 
     15 	memory {
     16 		reg = <0x0 0x0 0x0 0x80000000>;
     17 		device_type = "memory";
     18 	};
     19 
     20 	ext_gmac: external-gmac-clock {
     21 		compatible = "fixed-clock";
     22 		#clock-cells = <0>;
     23 		clock-frequency = <125000000>;
     24 		clock-output-names = "ext_gmac";
     25 	};
     26 
     27 	gpio-keys {
     28 		compatible = "gpio-keys";
     29 		#address-cells = <1>;
     30 		#size-cells = <0>;
     31 		autorepeat;
     32 
     33 		pinctrl-names = "default";
     34 		pinctrl-0 = <&pwrbtn>;
     35 
     36 		button@0 {
     37 			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
     38 			linux,code = <KEY_POWER>;
     39 			label = "GPIO Key Power";
     40 			linux,input-type = <1>;
     41 			wakeup-source;
     42 			debounce-interval = <100>;
     43 		};
     44 	};
     45 
     46 	gpio-leds {
     47 		compatible = "gpio-leds";
     48 
     49 		act_led: led-0 {
     50 			gpios = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
     51 			linux,default-trigger = "mmc0";
     52 		};
     53 
     54 		heartbeat_led: led-1 {
     55 			gpios = <&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>;
     56 			linux,default-trigger = "heartbeat";
     57 		};
     58 
     59 		pwr_led: led-2 {
     60 			gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
     61 			linux,default-trigger = "default-on";
     62 		};
     63 	};
     64 
     65 	sdio_pwrseq: sdio-pwrseq {
     66 		compatible = "mmc-pwrseq-simple";
     67 		clocks = <&rk808 RK808_CLKOUT1>;
     68 		clock-names = "ext_clock";
     69 		pinctrl-names = "default";
     70 		pinctrl-0 = <&wifi_enable>;
     71 		reset-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_LOW>,
     72 			<&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
     73 	};
     74 
     75 	sound {
     76 		compatible = "simple-audio-card";
     77 		simple-audio-card,format = "i2s";
     78 		simple-audio-card,name = "rockchip,tinker-codec";
     79 		simple-audio-card,mclk-fs = <512>;
     80 
     81 		simple-audio-card,codec {
     82 			sound-dai = <&hdmi>;
     83 		};
     84 
     85 		simple-audio-card,cpu {
     86 			sound-dai = <&i2s>;
     87 		};
     88 	};
     89 
     90 	vcc_sys: vsys-regulator {
     91 		compatible = "regulator-fixed";
     92 		regulator-name = "vcc_sys";
     93 		regulator-min-microvolt = <5000000>;
     94 		regulator-max-microvolt = <5000000>;
     95 		regulator-always-on;
     96 		regulator-boot-on;
     97 	};
     98 
     99 	vcc_sd: sdmmc-regulator {
    100 		compatible = "regulator-fixed";
    101 		gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
    102 		pinctrl-names = "default";
    103 		pinctrl-0 = <&sdmmc_pwr>;
    104 		regulator-name = "vcc_sd";
    105 		regulator-min-microvolt = <3300000>;
    106 		regulator-max-microvolt = <3300000>;
    107 		startup-delay-us = <100000>;
    108 		vin-supply = <&vcc_io>;
    109 	};
    110 };
    111 
    112 &cpu0 {
    113 	cpu0-supply = <&vdd_cpu>;
    114 };
    115 
    116 &cpu_opp_table {
    117 	opp-1704000000 {
    118 		opp-hz = /bits/ 64 <1704000000>;
    119 		opp-microvolt = <1350000>;
    120 	};
    121 	opp-1800000000 {
    122 		opp-hz = /bits/ 64 <1800000000>;
    123 		opp-microvolt = <1400000>;
    124 	};
    125 };
    126 
    127 &gmac {
    128 	assigned-clocks = <&cru SCLK_MAC>;
    129 	assigned-clock-parents = <&ext_gmac>;
    130 	clock_in_out = "input";
    131 	phy-mode = "rgmii";
    132 	phy-supply = <&vcc33_lan>;
    133 	pinctrl-names = "default";
    134 	pinctrl-0 = <&rgmii_pins>;
    135 	snps,reset-gpio = <&gpio4 7 0>;
    136 	snps,reset-active-low;
    137 	snps,reset-delays-us = <0 10000 1000000>;
    138 	tx_delay = <0x30>;
    139 	rx_delay = <0x10>;
    140 	status = "okay";
    141 };
    142 
    143 &gpu {
    144 	mali-supply = <&vdd_gpu>;
    145 	status = "okay";
    146 };
    147 
    148 &hdmi {
    149 	ddc-i2c-bus = <&i2c5>;
    150 	status = "okay";
    151 };
    152 
    153 &i2c0 {
    154 	clock-frequency = <400000>;
    155 	status = "okay";
    156 
    157 	rk808: pmic@1b {
    158 		compatible = "rockchip,rk808";
    159 		reg = <0x1b>;
    160 		interrupt-parent = <&gpio0>;
    161 		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
    162 		#clock-cells = <1>;
    163 		clock-output-names = "xin32k", "rk808-clkout2";
    164 		dvs-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>,
    165 				<&gpio0 12 GPIO_ACTIVE_HIGH>;
    166 		pinctrl-names = "default";
    167 		pinctrl-0 = <&pmic_int &global_pwroff &dvs_1 &dvs_2>;
    168 		rockchip,system-power-controller;
    169 		wakeup-source;
    170 
    171 		vcc1-supply = <&vcc_sys>;
    172 		vcc2-supply = <&vcc_sys>;
    173 		vcc3-supply = <&vcc_sys>;
    174 		vcc4-supply = <&vcc_sys>;
    175 		vcc6-supply = <&vcc_sys>;
    176 		vcc7-supply = <&vcc_sys>;
    177 		vcc8-supply = <&vcc_io>;
    178 		vcc9-supply = <&vcc_io>;
    179 		vcc10-supply = <&vcc_io>;
    180 		vcc11-supply = <&vcc_sys>;
    181 		vcc12-supply = <&vcc_io>;
    182 		vddio-supply = <&vcc_io>;
    183 
    184 		regulators {
    185 			vdd_cpu: DCDC_REG1 {
    186 				regulator-always-on;
    187 				regulator-boot-on;
    188 				regulator-min-microvolt = <750000>;
    189 				regulator-max-microvolt = <1400000>;
    190 				regulator-name = "vdd_arm";
    191 				regulator-ramp-delay = <6000>;
    192 				regulator-state-mem {
    193 					regulator-off-in-suspend;
    194 				};
    195 			};
    196 
    197 			vdd_gpu: DCDC_REG2 {
    198 				regulator-always-on;
    199 				regulator-boot-on;
    200 				regulator-min-microvolt = <850000>;
    201 				regulator-max-microvolt = <1250000>;
    202 				regulator-name = "vdd_gpu";
    203 				regulator-ramp-delay = <6000>;
    204 				regulator-state-mem {
    205 					regulator-on-in-suspend;
    206 					regulator-suspend-microvolt = <1000000>;
    207 				};
    208 			};
    209 
    210 			vcc_ddr: DCDC_REG3 {
    211 				regulator-always-on;
    212 				regulator-boot-on;
    213 				regulator-name = "vcc_ddr";
    214 				regulator-state-mem {
    215 					regulator-on-in-suspend;
    216 				};
    217 			};
    218 
    219 			vcc_io: DCDC_REG4 {
    220 				regulator-always-on;
    221 				regulator-boot-on;
    222 				regulator-min-microvolt = <3300000>;
    223 				regulator-max-microvolt = <3300000>;
    224 				regulator-name = "vcc_io";
    225 				regulator-state-mem {
    226 					regulator-on-in-suspend;
    227 					regulator-suspend-microvolt = <3300000>;
    228 				};
    229 			};
    230 
    231 			vcc18_ldo1: LDO_REG1 {
    232 				regulator-always-on;
    233 				regulator-boot-on;
    234 				regulator-min-microvolt = <1800000>;
    235 				regulator-max-microvolt = <1800000>;
    236 				regulator-name = "vcc18_ldo1";
    237 				regulator-state-mem {
    238 					regulator-on-in-suspend;
    239 					regulator-suspend-microvolt = <1800000>;
    240 				};
    241 			};
    242 
    243 			vcc33_mipi: LDO_REG2 {
    244 				regulator-always-on;
    245 				regulator-boot-on;
    246 				regulator-min-microvolt = <3300000>;
    247 				regulator-max-microvolt = <3300000>;
    248 				regulator-name = "vcc33_mipi";
    249 				regulator-state-mem {
    250 					regulator-off-in-suspend;
    251 				};
    252 			};
    253 
    254 			vdd_10: LDO_REG3 {
    255 				regulator-always-on;
    256 				regulator-boot-on;
    257 				regulator-min-microvolt = <1000000>;
    258 				regulator-max-microvolt = <1000000>;
    259 				regulator-name = "vdd_10";
    260 				regulator-state-mem {
    261 					regulator-on-in-suspend;
    262 					regulator-suspend-microvolt = <1000000>;
    263 				};
    264 			};
    265 
    266 			vcc18_codec: LDO_REG4 {
    267 				regulator-always-on;
    268 				regulator-boot-on;
    269 				regulator-min-microvolt = <1800000>;
    270 				regulator-max-microvolt = <1800000>;
    271 				regulator-name = "vcc18_codec";
    272 				regulator-state-mem {
    273 					regulator-on-in-suspend;
    274 					regulator-suspend-microvolt = <1800000>;
    275 				};
    276 			};
    277 
    278 			vccio_sd: LDO_REG5 {
    279 				regulator-always-on;
    280 				regulator-boot-on;
    281 				regulator-min-microvolt = <1800000>;
    282 				regulator-max-microvolt = <3300000>;
    283 				regulator-name = "vccio_sd";
    284 				regulator-state-mem {
    285 					regulator-on-in-suspend;
    286 					regulator-suspend-microvolt = <3300000>;
    287 				};
    288 			};
    289 
    290 			vdd10_lcd: LDO_REG6 {
    291 				regulator-always-on;
    292 				regulator-boot-on;
    293 				regulator-min-microvolt = <1000000>;
    294 				regulator-max-microvolt = <1000000>;
    295 				regulator-name = "vdd10_lcd";
    296 				regulator-state-mem {
    297 					regulator-on-in-suspend;
    298 					regulator-suspend-microvolt = <1000000>;
    299 				};
    300 			};
    301 
    302 			vcc_18: LDO_REG7 {
    303 				regulator-always-on;
    304 				regulator-boot-on;
    305 				regulator-min-microvolt = <1800000>;
    306 				regulator-max-microvolt = <1800000>;
    307 				regulator-name = "vcc_18";
    308 				regulator-state-mem {
    309 					regulator-on-in-suspend;
    310 					regulator-suspend-microvolt = <1800000>;
    311 				};
    312 			};
    313 
    314 			vcc18_lcd: LDO_REG8 {
    315 				regulator-always-on;
    316 				regulator-boot-on;
    317 				regulator-min-microvolt = <1800000>;
    318 				regulator-max-microvolt = <1800000>;
    319 				regulator-name = "vcc18_lcd";
    320 				regulator-state-mem {
    321 					regulator-on-in-suspend;
    322 					regulator-suspend-microvolt = <1800000>;
    323 				};
    324 			};
    325 
    326 			vcc33_sd: SWITCH_REG1 {
    327 				regulator-always-on;
    328 				regulator-boot-on;
    329 				regulator-name = "vcc33_sd";
    330 				regulator-state-mem {
    331 					regulator-on-in-suspend;
    332 				};
    333 			};
    334 
    335 			vcc33_lan: SWITCH_REG2 {
    336 				regulator-always-on;
    337 				regulator-boot-on;
    338 				regulator-name = "vcc33_lan";
    339 				regulator-state-mem {
    340 					regulator-on-in-suspend;
    341 				};
    342 			};
    343 		};
    344 	};
    345 };
    346 
    347 &i2c2 {
    348 	status = "okay";
    349 };
    350 
    351 &i2c5 {
    352 	status = "okay";
    353 };
    354 
    355 &i2s {
    356 	#sound-dai-cells = <0>;
    357 	status = "okay";
    358 };
    359 
    360 &io_domains {
    361 	status = "okay";
    362 
    363 	sdcard-supply = <&vccio_sd>;
    364 	wifi-supply = <&vcc_18>;
    365 };
    366 
    367 &pinctrl {
    368 	pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
    369 		drive-strength = <8>;
    370 	};
    371 
    372 	pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
    373 		bias-pull-up;
    374 		drive-strength = <8>;
    375 	};
    376 
    377 	backlight {
    378 		bl_en: bl-en {
    379 			rockchip,pins = <7 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
    380 		};
    381 	};
    382 
    383 	buttons {
    384 		pwrbtn: pwrbtn {
    385 			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
    386 		};
    387 	};
    388 
    389 	eth_phy {
    390 		eth_phy_pwr: eth-phy-pwr {
    391 			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
    392 		};
    393 	};
    394 
    395 	pmic {
    396 		pmic_int: pmic-int {
    397 			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
    398 		};
    399 
    400 		dvs_1: dvs-1 {
    401 			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>;
    402 		};
    403 
    404 		dvs_2: dvs-2 {
    405 			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
    406 		};
    407 	};
    408 
    409 	sdmmc {
    410 		sdmmc_bus4: sdmmc-bus4 {
    411 			rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_8ma>,
    412 					<6 RK_PC1 1 &pcfg_pull_up_drv_8ma>,
    413 					<6 RK_PC2 1 &pcfg_pull_up_drv_8ma>,
    414 					<6 RK_PC3 1 &pcfg_pull_up_drv_8ma>;
    415 		};
    416 
    417 		sdmmc_clk: sdmmc-clk {
    418 			rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_drv_8ma>;
    419 		};
    420 
    421 		sdmmc_cmd: sdmmc-cmd {
    422 			rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_8ma>;
    423 		};
    424 
    425 		sdmmc_pwr: sdmmc-pwr {
    426 			rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
    427 		};
    428 	};
    429 
    430 	usb {
    431 		host_vbus_drv: host-vbus-drv {
    432 			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
    433 		};
    434 
    435 		pwr_3g: pwr-3g {
    436 			rockchip,pins = <7 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
    437 		};
    438 	};
    439 
    440 	sdio {
    441 		wifi_enable: wifi-enable {
    442 			rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>,
    443 					<4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
    444 		};
    445 	};
    446 };
    447 
    448 &pwm0 {
    449 	status = "okay";
    450 };
    451 
    452 &saradc {
    453 	vref-supply = <&vcc18_ldo1>;
    454 	status = "okay";
    455 };
    456 
    457 &sdmmc {
    458 	bus-width = <4>;
    459 	cap-mmc-highspeed;
    460 	cap-sd-highspeed;
    461 	broken-cd;
    462 	disable-wp;			/* wp not hooked up */
    463 	pinctrl-names = "default";
    464 	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
    465 	status = "okay";
    466 	vmmc-supply = <&vcc33_sd>;
    467 	vqmmc-supply = <&vccio_sd>;
    468 };
    469 
    470 &sdio0 {
    471 	bus-width = <4>;
    472 	cap-sd-highspeed;
    473 	cap-sdio-irq;
    474 	keep-power-in-suspend;
    475 	max-frequency = <50000000>;
    476 	mmc-pwrseq = <&sdio_pwrseq>;
    477 	non-removable;
    478 	pinctrl-names = "default";
    479 	pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>, <&sdio0_int>;
    480 	sd-uhs-sdr12;
    481 	sd-uhs-sdr25;
    482 	sd-uhs-sdr50;
    483 	vmmc-supply = <&vcc_io>;
    484 	vqmmc-supply = <&vcc_18>;
    485 	status = "okay";
    486 };
    487 
    488 &tsadc {
    489 	rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
    490 	rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
    491 	status = "okay";
    492 };
    493 
    494 &uart0 {
    495 	status = "okay";
    496 };
    497 
    498 &uart1 {
    499 	status = "okay";
    500 };
    501 
    502 &uart2 {
    503 	status = "okay";
    504 };
    505 
    506 &uart3 {
    507 	status = "okay";
    508 };
    509 
    510 &uart4 {
    511 	status = "okay";
    512 };
    513 
    514 &usbphy {
    515 	status = "okay";
    516 };
    517 
    518 &usb_host0_ehci {
    519 	status = "okay";
    520 };
    521 
    522 &usb_host1 {
    523 	status = "okay";
    524 };
    525 
    526 &usb_otg {
    527 	status = "okay";
    528 };
    529 
    530 &vopb {
    531 	status = "okay";
    532 };
    533 
    534 &vopb_mmu {
    535 	status = "okay";
    536 };
    537 
    538 &vopl {
    539 	status = "okay";
    540 };
    541 
    542 &vopl_mmu {
    543 	status = "okay";
    544 };
    545 
    546 &wdt {
    547 	status = "okay";
    548 };
    549