Home | History | Annotate | Line # | Download | only in dts
      1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
      2 /*
      3  * Copyright (c) 2014, 2015 Andy Yan <andy.yan (a] rock-chips.com>
      4  */
      5 
      6 /dts-v1/;
      7 #include <dt-bindings/input/input.h>
      8 #include "rk3288.dtsi"
      9 
     10 / {
     11 	model = "PopMetal-RK3288";
     12 	compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
     13 
     14 	memory@0 {
     15 		device_type = "memory";
     16 		reg = <0x0 0x0 0x0 0x80000000>;
     17 	};
     18 
     19 	ext_gmac: external-gmac-clock {
     20 		compatible = "fixed-clock";
     21 		clock-frequency = <125000000>;
     22 		clock-output-names = "ext_gmac";
     23 		#clock-cells = <0>;
     24 	};
     25 
     26 	gpio-keys {
     27 		compatible = "gpio-keys";
     28 		autorepeat;
     29 
     30 		pinctrl-names = "default";
     31 		pinctrl-0 = <&pwrbtn>;
     32 
     33 		power {
     34 			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
     35 			linux,code = <KEY_POWER>;
     36 			label = "GPIO Key Power";
     37 			linux,input-type = <1>;
     38 			wakeup-source;
     39 			debounce-interval = <100>;
     40 		};
     41 	};
     42 
     43 	ir: ir-receiver {
     44 		compatible = "gpio-ir-receiver";
     45 		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
     46 		pinctrl-names = "default";
     47 		pinctrl-0 = <&ir_int>;
     48 	};
     49 
     50 	vcc_flash: flash-regulator {
     51 		compatible = "regulator-fixed";
     52 		regulator-name = "vcc_flash";
     53 		regulator-min-microvolt = <1800000>;
     54 		regulator-max-microvolt = <1800000>;
     55 		vin-supply = <&vcc_io>;
     56 	};
     57 
     58 	vcc_sd: sdmmc-regulator {
     59 		compatible = "regulator-fixed";
     60 		gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
     61 		pinctrl-names = "default";
     62 		pinctrl-0 = <&sdmmc_pwr>;
     63 		regulator-name = "vcc_sd";
     64 		regulator-min-microvolt = <3300000>;
     65 		regulator-max-microvolt = <3300000>;
     66 		startup-delay-us = <100000>;
     67 		vin-supply = <&vcc_io>;
     68 	};
     69 
     70 	vcc_sys: vsys-regulator {
     71 		compatible = "regulator-fixed";
     72 		regulator-name = "vcc_sys";
     73 		regulator-min-microvolt = <5000000>;
     74 		regulator-max-microvolt = <5000000>;
     75 		regulator-always-on;
     76 		regulator-boot-on;
     77 	};
     78 
     79 	/*
     80 	 * A PT5128 creates both dovdd_1v8 and vcc28_dvp, controlled
     81 	 * by the dvp_pwr pin.
     82 	 */
     83 	vcc18_dvp: vcc18-dvp-regulator {
     84 		compatible = "regulator-fixed";
     85 		regulator-name = "vcc18-dvp";
     86 		regulator-min-microvolt = <1800000>;
     87 		regulator-max-microvolt = <1800000>;
     88 		vin-supply = <&vcc28_dvp>;
     89 	};
     90 
     91 	vcc28_dvp: vcc28-dvp-regulator {
     92 		compatible = "regulator-fixed";
     93 		enable-active-high;
     94 		gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
     95 		pinctrl-names = "default";
     96 		pinctrl-0 = <&dvp_pwr>;
     97 		regulator-name = "vcc28_dvp";
     98 		regulator-min-microvolt = <2800000>;
     99 		regulator-max-microvolt = <2800000>;
    100 		regulator-always-on;
    101 		vin-supply = <&vcc_io>;
    102 	};
    103 };
    104 
    105 &cpu0 {
    106 	cpu-supply = <&vdd_cpu>;
    107 };
    108 
    109 &cpu1 {
    110 	cpu-supply = <&vdd_cpu>;
    111 };
    112 
    113 &cpu2 {
    114 	cpu-supply = <&vdd_cpu>;
    115 };
    116 
    117 &cpu3 {
    118 	cpu-supply = <&vdd_cpu>;
    119 };
    120 
    121 &emmc {
    122 	bus-width = <8>;
    123 	cap-mmc-highspeed;
    124 	mmc-ddr-1_8v;
    125 	mmc-hs200-1_8v;
    126 	non-removable;
    127 	pinctrl-names = "default";
    128 	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
    129 	vmmc-supply = <&vcc_io>;
    130 	vqmmc-supply = <&vcc_flash>;
    131 	status = "okay";
    132 };
    133 
    134 &sdmmc {
    135 	bus-width = <4>;
    136 	cap-mmc-highspeed;
    137 	cap-sd-highspeed;
    138 	card-detect-delay = <200>;
    139 	disable-wp;                     /* wp not hooked up */
    140 	pinctrl-names = "default";
    141 	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
    142 	sd-uhs-sdr12;
    143 	sd-uhs-sdr25;
    144 	sd-uhs-sdr50;
    145 	sd-uhs-sdr104;
    146 	vmmc-supply = <&vcc_sd>;
    147 	vqmmc-supply = <&vccio_sd>;
    148 	status = "okay";
    149 };
    150 
    151 &gmac {
    152 	phy-supply = <&vcc_lan>;
    153 	phy-mode = "rgmii";
    154 	clock_in_out = "input";
    155 	snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
    156 	snps,reset-active-low;
    157 	snps,reset-delays-us = <0 10000 1000000>;
    158 	assigned-clocks = <&cru SCLK_MAC>;
    159 	assigned-clock-parents = <&ext_gmac>;
    160 	pinctrl-names = "default";
    161 	pinctrl-0 = <&rgmii_pins>;
    162 	tx_delay = <0x30>;
    163 	rx_delay = <0x10>;
    164 	status = "okay";
    165 };
    166 
    167 &hdmi {
    168 	ddc-i2c-bus = <&i2c5>;
    169 	status = "okay";
    170 };
    171 
    172 &i2c0 {
    173 	status = "okay";
    174 	clock-frequency = <400000>;
    175 
    176 	rk808: pmic@1b {
    177 		compatible = "rockchip,rk808";
    178 		reg = <0x1b>;
    179 		interrupt-parent = <&gpio0>;
    180 		interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
    181 		pinctrl-names = "default";
    182 		pinctrl-0 = <&pmic_int &global_pwroff>;
    183 		rockchip,system-power-controller;
    184 		wakeup-source;
    185 		#clock-cells = <1>;
    186 		clock-output-names = "xin32k", "rk808-clkout2";
    187 
    188 		vcc1-supply = <&vcc_sys>;
    189 		vcc2-supply = <&vcc_sys>;
    190 		vcc3-supply = <&vcc_sys>;
    191 		vcc4-supply = <&vcc_sys>;
    192 		vcc6-supply = <&vcc_sys>;
    193 		vcc7-supply = <&vcc_sys>;
    194 		vcc8-supply = <&vcc_18>;
    195 		vcc9-supply = <&vcc_io>;
    196 		vcc10-supply = <&vcc_io>;
    197 		vcc11-supply = <&vcc_sys>;
    198 		vcc12-supply = <&vcc_io>;
    199 		vddio-supply = <&vcc_io>;
    200 
    201 		regulators {
    202 			vdd_cpu: DCDC_REG1 {
    203 				regulator-always-on;
    204 				regulator-boot-on;
    205 				regulator-min-microvolt = <750000>;
    206 				regulator-max-microvolt = <1350000>;
    207 				regulator-name = "vdd_arm";
    208 				regulator-state-mem {
    209 					regulator-off-in-suspend;
    210 				};
    211 			};
    212 
    213 			vdd_gpu: DCDC_REG2 {
    214 				regulator-always-on;
    215 				regulator-boot-on;
    216 				regulator-min-microvolt = <850000>;
    217 				regulator-max-microvolt = <1250000>;
    218 				regulator-name = "vdd_gpu";
    219 				regulator-state-mem {
    220 					regulator-on-in-suspend;
    221 					regulator-suspend-microvolt = <1000000>;
    222 				};
    223 			};
    224 
    225 			vcc_ddr: DCDC_REG3 {
    226 				regulator-always-on;
    227 				regulator-boot-on;
    228 				regulator-name = "vcc_ddr";
    229 				regulator-state-mem {
    230 					regulator-on-in-suspend;
    231 				};
    232 			};
    233 
    234 			vcc_io: DCDC_REG4 {
    235 				regulator-always-on;
    236 				regulator-boot-on;
    237 				regulator-min-microvolt = <3300000>;
    238 				regulator-max-microvolt = <3300000>;
    239 				regulator-name = "vcc_io";
    240 				regulator-state-mem {
    241 					regulator-on-in-suspend;
    242 					regulator-suspend-microvolt = <3300000>;
    243 				};
    244 			};
    245 
    246 			vcc_lan: LDO_REG1 {
    247 				regulator-always-on;
    248 				regulator-boot-on;
    249 				regulator-min-microvolt = <3300000>;
    250 				regulator-max-microvolt = <3300000>;
    251 				regulator-name = "vcc_lan";
    252 				regulator-state-mem {
    253 					regulator-on-in-suspend;
    254 					regulator-suspend-microvolt = <3300000>;
    255 				};
    256 			};
    257 
    258 			vccio_sd: LDO_REG2 {
    259 				regulator-always-on;
    260 				regulator-boot-on;
    261 				regulator-min-microvolt = <1800000>;
    262 				regulator-max-microvolt = <3300000>;
    263 				regulator-name = "vccio_sd";
    264 				regulator-state-mem {
    265 					regulator-off-in-suspend;
    266 				};
    267 			};
    268 
    269 			vdd_10: LDO_REG3 {
    270 				regulator-always-on;
    271 				regulator-boot-on;
    272 				regulator-min-microvolt = <1000000>;
    273 				regulator-max-microvolt = <1000000>;
    274 				regulator-name = "vdd_10";
    275 				regulator-state-mem {
    276 					regulator-on-in-suspend;
    277 					regulator-suspend-microvolt = <1000000>;
    278 				};
    279 			};
    280 
    281 			vcc18_lcd: LDO_REG4 {
    282 				regulator-always-on;
    283 				regulator-boot-on;
    284 				regulator-min-microvolt = <1800000>;
    285 				regulator-max-microvolt = <1800000>;
    286 				regulator-name = "vcc18_lcd";
    287 				regulator-state-mem {
    288 					regulator-on-in-suspend;
    289 					regulator-suspend-microvolt = <1800000>;
    290 				};
    291 			};
    292 
    293 			ldo5: LDO_REG5 {
    294 				regulator-always-on;
    295 				regulator-min-microvolt = <1800000>;
    296 				regulator-max-microvolt = <3300000>;
    297 				regulator-name = "ldo5";
    298 			};
    299 
    300 			vdd10_lcd: LDO_REG6 {
    301 				regulator-always-on;
    302 				regulator-boot-on;
    303 				regulator-min-microvolt = <1000000>;
    304 				regulator-max-microvolt = <1000000>;
    305 				regulator-name = "vdd10_lcd";
    306 				regulator-state-mem {
    307 					regulator-on-in-suspend;
    308 					regulator-suspend-microvolt = <1000000>;
    309 				};
    310 			};
    311 
    312 			vcc_18: LDO_REG7 {
    313 				regulator-always-on;
    314 				regulator-boot-on;
    315 				regulator-min-microvolt = <1800000>;
    316 				regulator-max-microvolt = <1800000>;
    317 				regulator-name = "vcc_18";
    318 				regulator-state-mem {
    319 					regulator-on-in-suspend;
    320 					regulator-suspend-microvolt = <1800000>;
    321 				};
    322 			};
    323 
    324 			vcca_33: LDO_REG8 {
    325 				regulator-always-on;
    326 				regulator-boot-on;
    327 				regulator-min-microvolt = <3300000>;
    328 				regulator-max-microvolt = <3300000>;
    329 				regulator-name = "vcca_33";
    330 				regulator-state-mem {
    331 					regulator-on-in-suspend;
    332 					regulator-suspend-microvolt = <3300000>;
    333 				};
    334 			};
    335 
    336 			vccio_wl: SWITCH_REG1 {
    337 				regulator-always-on;
    338 				regulator-boot-on;
    339 				regulator-name = "vccio_wl";
    340 				regulator-state-mem {
    341 					regulator-on-in-suspend;
    342 				};
    343 			};
    344 
    345 			vcc_lcd: SWITCH_REG2 {
    346 				regulator-always-on;
    347 				regulator-boot-on;
    348 				regulator-name = "vcc_lcd";
    349 				regulator-state-mem {
    350 					regulator-on-in-suspend;
    351 				};
    352 			};
    353 		};
    354 	};
    355 };
    356 
    357 &i2c1 {
    358 	status = "okay";
    359 	clock-frequency = <400000>;
    360 
    361 	ak8963: ak8963@d {
    362 		compatible = "asahi-kasei,ak8975";
    363 		reg = <0x0d>;
    364 		interrupt-parent = <&gpio8>;
    365 		interrupts = <RK_PA1 IRQ_TYPE_EDGE_RISING>;
    366 		pinctrl-names = "default";
    367 		pinctrl-0 = <&comp_int>;
    368 		vdd-supply = <&vcc_io>;
    369 		vid-supply = <&vcc_io>;
    370 	};
    371 
    372 	l3g4200d: l3g4200d@69 {
    373 		compatible = "st,l3g4200d-gyro";
    374 		st,drdy-int-pin = <2>;
    375 		reg = <0x69>;
    376 		vdd-supply = <&vcc_io>;
    377 		vddio-supply = <&vcc_io>;
    378 	};
    379 
    380 	mma8452: mma8452@1d {
    381 		compatible = "fsl,mma8452";
    382 		reg = <0x1d>;
    383 		interrupt-parent = <&gpio8>;
    384 		interrupts = <RK_PA0 IRQ_TYPE_EDGE_RISING>;
    385 		pinctrl-names = "default";
    386 		pinctrl-0 = <&gsensor_int>;
    387 	};
    388 };
    389 
    390 &i2c2 {
    391 	status = "okay";
    392 };
    393 
    394 &i2c3 {
    395 	status = "okay";
    396 };
    397 
    398 &i2c4 {
    399 	status = "okay";
    400 };
    401 
    402 &i2c5 {
    403 	status = "okay";
    404 };
    405 
    406 &io_domains {
    407 	status = "okay";
    408 
    409 	audio-supply = <&vcca_33>;
    410 	bb-supply = <&vcc_io>;
    411 	dvp-supply = <&vcc18_dvp>;
    412 	flash0-supply = <&vcc_flash>;
    413 	flash1-supply = <&vcc_lan>;
    414 	gpio30-supply = <&vcc_io>;
    415 	gpio1830-supply = <&vcc_io>;
    416 	lcdc-supply = <&vcc_io>;
    417 	sdcard-supply = <&vccio_sd>;
    418 	wifi-supply = <&vccio_wl>;
    419 };
    420 
    421 &pinctrl {
    422 	ak8963 {
    423 		comp_int: comp-int {
    424 			rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
    425 		};
    426 	};
    427 
    428 	buttons {
    429 		pwrbtn: pwrbtn {
    430 			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
    431 		};
    432 	};
    433 
    434 	dvp {
    435 		dvp_pwr: dvp-pwr {
    436 			rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
    437 		};
    438 	};
    439 
    440 	ir {
    441 		ir_int: ir-int {
    442 			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
    443 		};
    444 	};
    445 
    446 	mma8452 {
    447 		gsensor_int: gsensor-int {
    448 			rockchip,pins = <8 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
    449 		};
    450 	};
    451 
    452 	pmic {
    453 		pmic_int: pmic-int {
    454 			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
    455 		};
    456 	};
    457 
    458 	sdmmc {
    459 		sdmmc_pwr: sdmmc-pwr {
    460 			rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
    461 		};
    462 	};
    463 };
    464 
    465 &tsadc {
    466 	rockchip,hw-tshut-mode = <0>;
    467 	rockchip,hw-tshut-polarity = <0>;
    468 	status = "okay";
    469 };
    470 
    471 &vopb {
    472 	status = "okay";
    473 };
    474 
    475 &vopb_mmu {
    476 	status = "okay";
    477 };
    478 
    479 &vopl {
    480 	status = "okay";
    481 };
    482 
    483 &vopl_mmu {
    484 	status = "okay";
    485 };
    486 
    487 &uart0 {
    488 	status = "okay";
    489 };
    490 
    491 &uart1 {
    492 	status = "okay";
    493 };
    494 
    495 &uart2 {
    496 	status = "okay";
    497 };
    498 
    499 &uart3 {
    500 	status = "okay";
    501 };
    502 
    503 &uart4 {
    504 	status = "okay";
    505 };
    506 
    507 &usbphy {
    508 	status = "okay";
    509 };
    510 
    511 &usb_otg {
    512 	status = "okay";
    513 };
    514