Home | History | Annotate | Download | only in dts
      1 /*
      2  * Device tree file for Phytec phyCORE-RK3288 SoM
      3  * Copyright (C) 2017 PHYTEC Messtechnik GmbH
      4  * Author: Wadim Egorov <w.egorov (at) phytec.de>
      5  *
      6  * This file is dual-licensed: you can use it either under the terms
      7  * of the GPL or the X11 license, at your option. Note that this dual
      8  * licensing only applies to this file, and not this project as a
      9  * whole.
     10  *
     11  *  a) This file is free software; you can redistribute it and/or
     12  *     modify it under the terms of the GNU General Public License as
     13  *     published by the Free Software Foundation; either version 2 of the
     14  *     License, or (at your option) any later version.
     15  *
     16  *     This file is distributed in the hope that it will be useful,
     17  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
     18  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     19  *     GNU General Public License for more details.
     20  *
     21  * Or, alternatively,
     22  *
     23  *  b) Permission is hereby granted, free of charge, to any person
     24  *     obtaining a copy of this software and associated documentation
     25  *     files (the "Software"), to deal in the Software without
     26  *     restriction, including without limitation the rights to use,
     27  *     copy, modify, merge, publish, distribute, sublicense, and/or
     28  *     sell copies of the Software, and to permit persons to whom the
     29  *     Software is furnished to do so, subject to the following
     30  *     conditions:
     31  *
     32  *     The above copyright notice and this permission notice shall be
     33  *     included in all copies or substantial portions of the Software.
     34  *
     35  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     36  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
     37  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     38  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
     39  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
     40  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     41  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     42  *     OTHER DEALINGS IN THE SOFTWARE.
     43  */
     44 
     45 #include <dt-bindings/net/ti-dp83867.h>
     46 #include "rk3288.dtsi"
     47 
     48 / {
     49 	model = "Phytec RK3288 phyCORE";
     50 	compatible = "phytec,rk3288-phycore-som", "rockchip,rk3288";
     51 
     52 	/*
     53 	 * Set the minimum memory size here and
     54 	 * let the bootloader set the real size.
     55 	 */
     56 	memory {
     57 		device_type = "memory";
     58 		reg = <0 0x8000000>;
     59 	};
     60 
     61 	aliases {
     62 		rtc0 = &i2c_rtc;
     63 		rtc1 = &rk818;
     64 		eeprom0 = &i2c_eeprom_id;
     65 	};
     66 
     67 	ext_gmac: external-gmac-clock {
     68 		compatible = "fixed-clock";
     69 		#clock-cells = <0>;
     70 		clock-frequency = <125000000>;
     71 		clock-output-names = "ext_gmac";
     72 	};
     73 
     74 	io_domains: io_domains {
     75 		compatible = "rockchip,rk3288-io-voltage-domain";
     76 
     77 		status = "okay";
     78 		sdcard-supply = <&vdd_io_sd>;
     79 		flash0-supply = <&vdd_emmc_io>;
     80 		flash1-supply = <&vdd_misc_1v8>;
     81 		gpio1830-supply = <&vdd_3v3_io>;
     82 		gpio30-supply = <&vdd_3v3_io>;
     83 		bb-supply = <&vdd_3v3_io>;
     84 		dvp-supply = <&vdd_3v3_io>;
     85 		lcdc-supply = <&vdd_3v3_io>;
     86 		wifi-supply = <&vdd_3v3_io>;
     87 		audio-supply = <&vdd_3v3_io>;
     88 	};
     89 
     90 	leds: user-leds {
     91 		compatible = "gpio-leds";
     92 		pinctrl-names = "default";
     93 		pinctrl-0 = <&user_led>;
     94 
     95 		user {
     96 			label = "green_led";
     97 			gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
     98 			linux,default-trigger = "heartbeat";
     99 			default-state = "keep";
    100 		};
    101 	};
    102 
    103 	vdd_emmc_io: vdd-emmc-io {
    104 		compatible = "regulator-fixed";
    105 		regulator-name = "vdd_emmc_io";
    106 		regulator-min-microvolt = <1800000>;
    107 		regulator-max-microvolt = <1800000>;
    108 		vin-supply = <&vdd_3v3_io>;
    109 	};
    110 
    111 	vdd_in_otg_out: vdd-in-otg-out {
    112 		compatible = "regulator-fixed";
    113 		regulator-name = "vdd_in_otg_out";
    114 		regulator-always-on;
    115 		regulator-boot-on;
    116 		regulator-min-microvolt = <5000000>;
    117 		regulator-max-microvolt = <5000000>;
    118 	};
    119 
    120 	vdd_misc_1v8: vdd-misc-1v8 {
    121 		compatible = "regulator-fixed";
    122 		regulator-name = "vdd_misc_1v8";
    123 		regulator-always-on;
    124 		regulator-boot-on;
    125 		regulator-min-microvolt = <1800000>;
    126 		regulator-max-microvolt = <1800000>;
    127 	};
    128 };
    129 
    130 &cpu0 {
    131 	cpu0-supply = <&vdd_cpu>;
    132 	operating-points = <
    133 		/* KHz    uV */
    134 		1800000	1400000
    135 		1608000	1350000
    136 		1512000 1300000
    137 		1416000 1200000
    138 		1200000 1100000
    139 		1008000 1050000
    140 		 816000 1000000
    141 		 696000  950000
    142 		 600000  900000
    143 		 408000  900000
    144 		 312000  900000
    145 		 216000  900000
    146 		 126000  900000
    147 	>;
    148 };
    149 
    150 &emmc {
    151 	status = "okay";
    152 	u-boot,dm-pre-reloc;
    153 
    154 	bus-width = <8>;
    155 	cap-mmc-highspeed;
    156 	disable-wp;
    157 	non-removable;
    158 	num-slots = <1>;
    159 	pinctrl-names = "default";
    160 	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
    161 	vmmc-supply = <&vdd_3v3_io>;
    162 	vqmmc-supply = <&vdd_emmc_io>;
    163 };
    164 
    165 &gmac {
    166 	assigned-clocks = <&cru SCLK_MAC>;
    167 	assigned-clock-parents = <&ext_gmac>;
    168 	clock_in_out = "input";
    169 	pinctrl-names = "default";
    170 	pinctrl-0 = <&rgmii_pins &phy_rst &phy_int>;
    171 	phy-handle = <&phy0>;
    172 	phy-supply = <&vdd_eth_2v5>;
    173 	phy-mode = "rgmii-id";
    174 	snps,reset-active-low;
    175 	snps,reset-delays-us = <0 10000 1000000>;
    176 	snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_HIGH>;
    177 	tx_delay = <0x0>;
    178 	rx_delay = <0x0>;
    179 
    180 	mdio0 {
    181 		compatible = "snps,dwmac-mdio";
    182 		#address-cells = <1>;
    183 		#size-cells = <0>;
    184 
    185 		phy0: ethernet-phy@0 {
    186 			compatible = "ethernet-phy-ieee802.3-c22";
    187 			reg = <0>;
    188 			interrupt-parent = <&gpio4>;
    189 			interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
    190 			ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
    191 			ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
    192 			ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    193 			enet-phy-lane-no-swap;
    194 		};
    195 	};
    196 };
    197 
    198 &hdmi {
    199 	ddc-i2c-bus = <&i2c5>;
    200 };
    201 
    202 &i2c0 {
    203 	status = "okay";
    204 	u-boot,dm-pre-reloc;
    205 
    206 	clock-frequency = <400000>;
    207 
    208 	rk818: pmic@1c {
    209 		status = "okay";
    210 		compatible = "rockchip,rk818";
    211 		reg = <0x1c>;
    212 		interrupt-parent = <&gpio0>;
    213 		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
    214 		pinctrl-names = "default";
    215 		pinctrl-0 = <&pmic_int>;
    216 		rockchip,system-power-controller;
    217 		wakeup-source;
    218 		#clock-cells = <1>;
    219 		u-boot,dm-pre-reloc;
    220 
    221 		vcc1-supply = <&vdd_sys>;
    222 		vcc2-supply = <&vdd_sys>;
    223 		vcc3-supply = <&vdd_sys>;
    224 		vcc4-supply = <&vdd_sys>;
    225 		boost-supply = <&vdd_in_otg_out>;
    226 		vcc6-supply = <&vdd_sys>;
    227 		vcc7-supply = <&vdd_misc_1v8>;
    228 		vcc8-supply = <&vdd_misc_1v8>;
    229 		vcc9-supply = <&vdd_3v3_io>;
    230 		vddio-supply = <&vdd_3v3_io>;
    231 
    232 		regulators {
    233 			u-boot,dm-pre-reloc;
    234 			vdd_log: DCDC_REG1 {
    235 				regulator-name = "vdd_log";
    236 				regulator-always-on;
    237 				regulator-boot-on;
    238 				regulator-min-microvolt = <1100000>;
    239 				regulator-max-microvolt = <1100000>;
    240 				regulator-state-mem {
    241 					regulator-off-in-suspend;
    242 				};
    243 			};
    244 
    245 			vdd_gpu: DCDC_REG2 {
    246 				regulator-name = "vdd_gpu";
    247 				regulator-always-on;
    248 				regulator-boot-on;
    249 				regulator-min-microvolt = <800000>;
    250 				regulator-max-microvolt = <1250000>;
    251 				regulator-state-mem {
    252 					regulator-on-in-suspend;
    253 					regulator-suspend-microvolt = <1000000>;
    254 				};
    255 			};
    256 
    257 			vcc_ddr: DCDC_REG3 {
    258 				regulator-name = "vcc_ddr";
    259 				regulator-always-on;
    260 				regulator-boot-on;
    261 				regulator-state-mem {
    262 					regulator-on-in-suspend;
    263 				};
    264 			};
    265 
    266 			vdd_3v3_io: DCDC_REG4 {
    267 				regulator-name = "vdd_3v3_io";
    268 				regulator-always-on;
    269 				regulator-boot-on;
    270 				regulator-min-microvolt = <3300000>;
    271 				regulator-max-microvolt = <3300000>;
    272 				regulator-state-mem {
    273 					regulator-on-in-suspend;
    274 					regulator-suspend-microvolt = <3300000>;
    275 				};
    276 			};
    277 
    278 			vdd_sys: DCDC_BOOST {
    279 				regulator-name = "vdd_sys";
    280 				regulator-always-on;
    281 				regulator-boot-on;
    282 				regulator-min-microvolt = <5000000>;
    283 				regulator-max-microvolt = <5000000>;
    284 				regulator-state-mem {
    285 					regulator-on-in-suspend;
    286 					regulator-suspend-microvolt = <5000000>;
    287 				};
    288 			};
    289 
    290 			/* vcc9 */
    291 			vdd_sd: SWITCH_REG {
    292 				regulator-name = "vdd_sd";
    293 				regulator-always-on;
    294 				regulator-boot-on;
    295 				regulator-state-mem {
    296 					regulator-off-in-suspend;
    297 				};
    298 			};
    299 
    300 			/* vcc6 */
    301 			vdd_eth_2v5: LDO_REG2 {
    302 				regulator-name = "vdd_eth_2v5";
    303 				regulator-always-on;
    304 				regulator-boot-on;
    305 				regulator-min-microvolt = <2500000>;
    306 				regulator-max-microvolt = <2500000>;
    307 				regulator-state-mem {
    308 					regulator-on-in-suspend;
    309 					regulator-suspend-microvolt = <2500000>;
    310 				};
    311 			};
    312 
    313 			/* vcc7 */
    314 			vdd_1v0: LDO_REG3 {
    315 				regulator-name = "vdd_1v0";
    316 				regulator-always-on;
    317 				regulator-boot-on;
    318 				regulator-min-microvolt = <1000000>;
    319 				regulator-max-microvolt = <1000000>;
    320 				regulator-state-mem {
    321 					regulator-on-in-suspend;
    322 					regulator-suspend-microvolt = <1000000>;
    323 				};
    324 			};
    325 
    326 			/* vcc8 */
    327 			vdd_1v8_lcd_ldo: LDO_REG4 {
    328 				regulator-name = "vdd_1v8_lcd_ldo";
    329 				regulator-always-on;
    330 				regulator-boot-on;
    331 				regulator-min-microvolt = <1800000>;
    332 				regulator-max-microvolt = <1800000>;
    333 				regulator-state-mem {
    334 					regulator-on-in-suspend;
    335 					regulator-suspend-microvolt = <1800000>;
    336 				};
    337 			};
    338 
    339 			/* vcc8 */
    340 			vdd_1v0_lcd: LDO_REG6 {
    341 				regulator-name = "vdd_1v0_lcd";
    342 				regulator-always-on;
    343 				regulator-boot-on;
    344 				regulator-min-microvolt = <1000000>;
    345 				regulator-max-microvolt = <1000000>;
    346 				regulator-state-mem {
    347 					regulator-on-in-suspend;
    348 					regulator-suspend-microvolt = <1000000>;
    349 				};
    350 			};
    351 
    352 			/* vcc7 */
    353 			vdd_1v8_ldo: LDO_REG7 {
    354 				regulator-name = "vdd_1v8_ldo";
    355 				regulator-always-on;
    356 				regulator-boot-on;
    357 				regulator-min-microvolt = <1800000>;
    358 				regulator-max-microvolt = <1800000>;
    359 				regulator-state-mem {
    360 					regulator-off-in-suspend;
    361 					regulator-suspend-microvolt = <1800000>;
    362 				};
    363 			};
    364 
    365 			/* vcc9 */
    366 			vdd_io_sd: LDO_REG9 {
    367 				regulator-name = "vdd_io_sd";
    368 				regulator-always-on;
    369 				regulator-boot-on;
    370 				regulator-min-microvolt = <3300000>;
    371 				regulator-max-microvolt = <3300000>;
    372 				regulator-state-mem {
    373 					regulator-on-in-suspend;
    374 					regulator-suspend-microvolt = <3300000>;
    375 				};
    376 			};
    377 		};
    378 	};
    379 
    380 	/* M24C32-D */
    381 	i2c_eeprom: eeprom@50 {
    382 		compatible = "atmel,24c32";
    383 		reg = <0x50>;
    384 		pagesize = <32>;
    385 	};
    386 
    387 	/* M24C32-D Identification page */
    388 	i2c_eeprom_id: eeprom@58 {
    389 		compatible = "atmel,24c32";
    390 		reg = <0x58>;
    391 		pagesize = <32>;
    392 	};
    393 
    394 	vdd_cpu: regulator@60 {
    395 		compatible = "fcs,fan53555";
    396 		reg = <0x60>;
    397 		fcs,suspend-voltage-selector = <1>;
    398 		regulator-always-on;
    399 		regulator-boot-on;
    400 		regulator-enable-ramp-delay = <300>;
    401 		regulator-name = "vdd_cpu";
    402 		regulator-min-microvolt = <800000>;
    403 		regulator-max-microvolt = <1430000>;
    404 		regulator-ramp-delay = <8000>;
    405 		vin-supply = <&vdd_sys>;
    406 	};
    407 };
    408 
    409 &pinctrl {
    410 	pcfg_output_high: pcfg-output-high {
    411 		output-high;
    412 	};
    413 
    414 	emmc {
    415 		/*
    416 		 * We run eMMC at max speed; bump up drive strength.
    417 		 * We also have external pulls, so disable the internal ones.
    418 		 */
    419 		emmc_clk: emmc-clk {
    420 			rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none_12ma>;
    421 		};
    422 
    423 		emmc_cmd: emmc-cmd {
    424 			rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none_12ma>;
    425 		};
    426 
    427 		emmc_bus8: emmc-bus8 {
    428 			rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_none_12ma>,
    429 					<3 1 RK_FUNC_2 &pcfg_pull_none_12ma>,
    430 					<3 2 RK_FUNC_2 &pcfg_pull_none_12ma>,
    431 					<3 3 RK_FUNC_2 &pcfg_pull_none_12ma>,
    432 					<3 4 RK_FUNC_2 &pcfg_pull_none_12ma>,
    433 					<3 5 RK_FUNC_2 &pcfg_pull_none_12ma>,
    434 					<3 6 RK_FUNC_2 &pcfg_pull_none_12ma>,
    435 					<3 7 RK_FUNC_2 &pcfg_pull_none_12ma>;
    436 		};
    437 	};
    438 
    439 	gmac {
    440 		phy_int: phy-int {
    441 			rockchip,pins = <4 2 RK_FUNC_GPIO &pcfg_pull_up>;
    442 		};
    443 
    444 		phy_rst: phy-rst {
    445 			rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
    446 		};
    447 	};
    448 
    449 	leds {
    450 		user_led: user-led {
    451 			rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_output_high>;
    452 		};
    453 	};
    454 
    455 	pmic {
    456 		pmic_int: pmic-int {
    457 			rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
    458 		};
    459 
    460 		/* Pin for switching state between sleep and non-sleep state */
    461 		pmic_sleep: pmic-sleep {
    462 			rockchip,pins = <RK_GPIO0 0 RK_FUNC_GPIO &pcfg_pull_up>;
    463 		};
    464 	};
    465 };
    466 
    467 &pwm1 {
    468 	status = "okay";
    469 };
    470 
    471 &saradc {
    472 	status = "okay";
    473 	vref-supply = <&vdd_1v8_ldo>;
    474 };
    475 
    476 &spi2 {
    477 	status = "okay";
    478 
    479 	serial_flash: flash@0 {
    480 		compatible = "micron,n25q128a13", "jedec,spi-nor";
    481 		reg = <0x0>;
    482 		spi-max-frequency = <50000000>;
    483 		m25p,fast-read;
    484 		#address-cells = <1>;
    485 		#size-cells = <1>;
    486 		status = "okay";
    487 	};
    488 };
    489 
    490 &tsadc {
    491 	status = "okay";
    492 	rockchip,hw-tshut-mode = <0>;
    493 	rockchip,hw-tshut-polarity = <0>;
    494 };
    495 
    496 &vopb {
    497 	status = "okay";
    498 };
    499 
    500 &vopb_mmu {
    501 	status = "okay";
    502 };
    503 
    504 &vopl {
    505 	status = "okay";
    506 };
    507 
    508 &vopl_mmu {
    509 	status = "okay";
    510 };
    511 
    512 &wdt {
    513 	status = "okay";
    514 };
    515