Home | History | Annotate | Line # | Download | only in dts
exynos4412-odroid-common.dtsi revision 1.1.1.9
      1 // SPDX-License-Identifier: GPL-2.0
      2 /*
      3  * Common definition for Hardkernel's Exynos4412 based ODROID-X/X2/U2/U3 boards
      4  * device tree source
      5 */
      6 
      7 #include <dt-bindings/sound/samsung-i2s.h>
      8 #include <dt-bindings/input/input.h>
      9 #include <dt-bindings/clock/maxim,max77686.h>
     10 #include "exynos4412.dtsi"
     11 #include "exynos4412-ppmu-common.dtsi"
     12 #include <dt-bindings/gpio/gpio.h>
     13 #include "exynos-mfc-reserved-memory.dtsi"
     14 
     15 / {
     16 	chosen {
     17 		stdout-path = &serial_1;
     18 	};
     19 
     20 	firmware@204f000 {
     21 		compatible = "samsung,secure-firmware";
     22 		reg = <0x0204F000 0x1000>;
     23 	};
     24 
     25 	gpio_keys {
     26 		compatible = "gpio-keys";
     27 		pinctrl-names = "default";
     28 		pinctrl-0 = <&gpio_power_key>;
     29 
     30 		power_key {
     31 			gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
     32 			linux,code = <KEY_POWER>;
     33 			label = "power key";
     34 			debounce-interval = <10>;
     35 			wakeup-source;
     36 		};
     37 	};
     38 
     39 	sound: sound {
     40 		compatible = "hardkernel,odroid-xu4-audio";
     41 
     42 		cpu {
     43 			sound-dai = <&i2s0 0>;
     44 		};
     45 
     46 		codec {
     47 			sound-dai = <&hdmi>, <&max98090>;
     48 		};
     49 	};
     50 
     51 	emmc_pwrseq: pwrseq {
     52 		pinctrl-0 = <&emmc_rstn>;
     53 		pinctrl-names = "default";
     54 		compatible = "mmc-pwrseq-emmc";
     55 		reset-gpios = <&gpk1 2 GPIO_ACTIVE_LOW>;
     56 	};
     57 
     58 	fixed-rate-clocks {
     59 		xxti {
     60 			compatible = "samsung,clock-xxti";
     61 			clock-frequency = <0>;
     62 		};
     63 
     64 		xusbxti {
     65 			compatible = "samsung,clock-xusbxti";
     66 			clock-frequency = <24000000>;
     67 		};
     68 	};
     69 
     70 	thermal-zones {
     71 		cpu_thermal: cpu-thermal {
     72 			cooling-maps {
     73 				cooling_map0: map0 {
     74 				     /* Corresponds to 800MHz at freq_table */
     75 				     cooling-device = <&cpu0 7 7>, <&cpu1 7 7>,
     76 						      <&cpu2 7 7>, <&cpu3 7 7>;
     77 				};
     78 				cooling_map1: map1 {
     79 				     /* Corresponds to 200MHz at freq_table */
     80 				     cooling-device = <&cpu0 13 13>,
     81 						      <&cpu1 13 13>,
     82 						      <&cpu2 13 13>,
     83 						      <&cpu3 13 13>;
     84 			       };
     85 		       };
     86 		};
     87 	};
     88 };
     89 
     90 &bus_dmc {
     91 	devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
     92 	vdd-supply = <&buck1_reg>;
     93 	status = "okay";
     94 };
     95 
     96 &bus_acp {
     97 	devfreq = <&bus_dmc>;
     98 	status = "okay";
     99 };
    100 
    101 &bus_c2c {
    102 	devfreq = <&bus_dmc>;
    103 	status = "okay";
    104 };
    105 
    106 &bus_leftbus {
    107 	devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>;
    108 	vdd-supply = <&buck3_reg>;
    109 	status = "okay";
    110 };
    111 
    112 &bus_rightbus {
    113 	devfreq = <&bus_leftbus>;
    114 	status = "okay";
    115 };
    116 
    117 &bus_display {
    118 	devfreq = <&bus_leftbus>;
    119 	status = "okay";
    120 };
    121 
    122 &bus_fsys {
    123 	devfreq = <&bus_leftbus>;
    124 	status = "okay";
    125 };
    126 
    127 &bus_peri {
    128 	devfreq = <&bus_leftbus>;
    129 	status = "okay";
    130 };
    131 
    132 &bus_mfc {
    133 	devfreq = <&bus_leftbus>;
    134 	status = "okay";
    135 };
    136 
    137 &camera {
    138 	status = "okay";
    139 	pinctrl-names = "default";
    140 	pinctrl-0 = <>;
    141 };
    142 
    143 &clock {
    144 	assigned-clocks = <&clock CLK_FOUT_EPLL>;
    145 	assigned-clock-rates = <45158401>;
    146 };
    147 
    148 &clock_audss {
    149 	assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
    150 			<&clock_audss EXYNOS_MOUT_I2S>,
    151 			<&clock_audss EXYNOS_DOUT_SRP>,
    152 			<&clock_audss EXYNOS_DOUT_AUD_BUS>,
    153 			<&clock_audss EXYNOS_DOUT_I2S>;
    154 
    155 	assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
    156 			  <&clock_audss EXYNOS_MOUT_AUDSS>;
    157 
    158 	assigned-clock-rates = <0>, <0>,
    159 			<196608001>,
    160 			<(196608001 / 2)>,
    161 			<(196608001 / 8)>;
    162 };
    163 
    164 &cpu0 {
    165 	cpu0-supply = <&buck2_reg>;
    166 };
    167 
    168 &pinctrl_1 {
    169 	gpio_power_key: power_key {
    170 		samsung,pins = "gpx1-3";
    171 		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
    172 	};
    173 
    174 	max77686_irq: max77686-irq {
    175 		samsung,pins = "gpx3-2";
    176 		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
    177 		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
    178 		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
    179 	};
    180 
    181 	hdmi_hpd: hdmi-hpd {
    182 		samsung,pins = "gpx3-7";
    183 		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
    184 	};
    185 
    186 	emmc_rstn: emmc-rstn {
    187 		samsung,pins = "gpk1-2";
    188 		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
    189 	};
    190 };
    191 
    192 &ehci {
    193 	status = "okay";
    194 };
    195 
    196 &exynos_usbphy {
    197 	status = "okay";
    198 };
    199 
    200 &fimc_0 {
    201 	status = "okay";
    202 	assigned-clocks = <&clock CLK_MOUT_FIMC0>,
    203 			<&clock CLK_SCLK_FIMC0>;
    204 	assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
    205 	assigned-clock-rates = <0>, <176000000>;
    206 };
    207 
    208 &fimc_1 {
    209 	status = "okay";
    210 	assigned-clocks = <&clock CLK_MOUT_FIMC1>,
    211 			<&clock CLK_SCLK_FIMC1>;
    212 	assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
    213 	assigned-clock-rates = <0>, <176000000>;
    214 };
    215 
    216 &fimc_2 {
    217 	status = "okay";
    218 	assigned-clocks = <&clock CLK_MOUT_FIMC2>,
    219 			<&clock CLK_SCLK_FIMC2>;
    220 	assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
    221 	assigned-clock-rates = <0>, <176000000>;
    222 };
    223 
    224 &fimc_3 {
    225 	status = "okay";
    226 	assigned-clocks = <&clock CLK_MOUT_FIMC3>,
    227 			<&clock CLK_SCLK_FIMC3>;
    228 	assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
    229 	assigned-clock-rates = <0>, <176000000>;
    230 };
    231 
    232 &gpu {
    233 	mali-supply = <&buck4_reg>;
    234 	status = "okay";
    235 };
    236 
    237 &hdmi {
    238 	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
    239 	pinctrl-names = "default";
    240 	pinctrl-0 = <&hdmi_hpd>;
    241 	vdd-supply = <&ldo8_reg>;
    242 	vdd_osc-supply = <&ldo10_reg>;
    243 	vdd_pll-supply = <&ldo8_reg>;
    244 	ddc = <&i2c_2>;
    245 	status = "okay";
    246 };
    247 
    248 &hdmicec {
    249 	status = "okay";
    250 };
    251 
    252 &hsotg {
    253 	dr_mode = "peripheral";
    254 	status = "okay";
    255 	vusb_d-supply = <&ldo15_reg>;
    256 	vusb_a-supply = <&ldo12_reg>;
    257 };
    258 
    259 &i2c_0 {
    260 	samsung,i2c-sda-delay = <100>;
    261 	samsung,i2c-max-bus-freq = <400000>;
    262 	status = "okay";
    263 
    264 	usb3503: usb3503@8 {
    265 		compatible = "smsc,usb3503";
    266 		reg = <0x08>;
    267 
    268 		intn-gpios = <&gpx3 0 GPIO_ACTIVE_HIGH>;
    269 		connect-gpios = <&gpx3 4 GPIO_ACTIVE_HIGH>;
    270 		reset-gpios = <&gpx3 5 GPIO_ACTIVE_HIGH>;
    271 		initial-mode = <1>;
    272 	};
    273 
    274 	max77686: pmic@9 {
    275 		compatible = "maxim,max77686";
    276 		interrupt-parent = <&gpx3>;
    277 		interrupts = <2 IRQ_TYPE_NONE>;
    278 		pinctrl-names = "default";
    279 		pinctrl-0 = <&max77686_irq>;
    280 		reg = <0x09>;
    281 		#clock-cells = <1>;
    282 
    283 		voltage-regulators {
    284 			ldo1_reg: LDO1 {
    285 				regulator-name = "VDD_ALIVE_1.0V";
    286 				regulator-min-microvolt = <1000000>;
    287 				regulator-max-microvolt = <1000000>;
    288 				regulator-always-on;
    289 			};
    290 
    291 			ldo2_reg: LDO2 {
    292 				regulator-name = "VDDQ_M1_2_1.8V";
    293 				regulator-min-microvolt = <1800000>;
    294 				regulator-max-microvolt = <1800000>;
    295 				regulator-always-on;
    296 			};
    297 
    298 			ldo3_reg: LDO3 {
    299 				regulator-name = "VDDQ_EXT_1.8V";
    300 				regulator-min-microvolt = <1800000>;
    301 				regulator-max-microvolt = <1800000>;
    302 				regulator-always-on;
    303 			};
    304 
    305 			ldo4_reg: LDO4 {
    306 				regulator-name = "VDDQ_MMC2_2.8V";
    307 				regulator-min-microvolt = <2800000>;
    308 				regulator-max-microvolt = <2800000>;
    309 				regulator-boot-on;
    310 			};
    311 
    312 			ldo5_reg: LDO5 {
    313 				regulator-name = "VDDQ_MMC1_3_1.8V";
    314 				regulator-min-microvolt = <1800000>;
    315 				regulator-max-microvolt = <1800000>;
    316 				regulator-always-on;
    317 				regulator-boot-on;
    318 			};
    319 
    320 			ldo6_reg: LDO6 {
    321 				regulator-name = "VDD10_MPLL_1.0V";
    322 				regulator-min-microvolt = <1000000>;
    323 				regulator-max-microvolt = <1000000>;
    324 				regulator-always-on;
    325 			};
    326 
    327 			ldo7_reg: LDO7 {
    328 				regulator-name = "VDD10_XPLL_1.0V";
    329 				regulator-min-microvolt = <1000000>;
    330 				regulator-max-microvolt = <1000000>;
    331 				regulator-always-on;
    332 			};
    333 
    334 			ldo8_reg: LDO8 {
    335 				regulator-name = "VDD10_HDMI_1.0V";
    336 				regulator-min-microvolt = <1000000>;
    337 				regulator-max-microvolt = <1000000>;
    338 			};
    339 
    340 			ldo10_reg: LDO10 {
    341 				regulator-name = "VDDQ_MIPIHSI_1.8V";
    342 				regulator-min-microvolt = <1800000>;
    343 				regulator-max-microvolt = <1800000>;
    344 			};
    345 
    346 			ldo11_reg: LDO11 {
    347 				regulator-name = "VDD18_ABB1_1.8V";
    348 				regulator-min-microvolt = <1800000>;
    349 				regulator-max-microvolt = <1800000>;
    350 				regulator-always-on;
    351 			};
    352 
    353 			ldo12_reg: LDO12 {
    354 				regulator-name = "VDD33_USB_3.3V";
    355 				regulator-min-microvolt = <3300000>;
    356 				regulator-max-microvolt = <3300000>;
    357 				regulator-always-on;
    358 				regulator-boot-on;
    359 			};
    360 
    361 			ldo13_reg: LDO13 {
    362 				regulator-name = "VDDQ_C2C_W_1.8V";
    363 				regulator-min-microvolt = <1800000>;
    364 				regulator-max-microvolt = <1800000>;
    365 				regulator-always-on;
    366 				regulator-boot-on;
    367 			};
    368 
    369 			ldo14_reg: LDO14 {
    370 				regulator-name = "VDD18_ABB0_2_1.8V";
    371 				regulator-min-microvolt = <1800000>;
    372 				regulator-max-microvolt = <1800000>;
    373 				regulator-always-on;
    374 				regulator-boot-on;
    375 			};
    376 
    377 			ldo15_reg: LDO15 {
    378 				regulator-name = "VDD10_HSIC_1.0V";
    379 				regulator-min-microvolt = <1000000>;
    380 				regulator-max-microvolt = <1000000>;
    381 				regulator-always-on;
    382 				regulator-boot-on;
    383 			};
    384 
    385 			ldo16_reg: LDO16 {
    386 				regulator-name = "VDD18_HSIC_1.8V";
    387 				regulator-min-microvolt = <1800000>;
    388 				regulator-max-microvolt = <1800000>;
    389 				regulator-always-on;
    390 				regulator-boot-on;
    391 			};
    392 
    393 			ldo20_reg: LDO20 {
    394 				regulator-name = "LDO20_1.8V";
    395 				regulator-min-microvolt = <1800000>;
    396 				regulator-max-microvolt = <1800000>;
    397 			};
    398 
    399 			ldo21_reg: LDO21 {
    400 				regulator-name = "TFLASH_2.8V";
    401 				regulator-min-microvolt = <2800000>;
    402 				regulator-max-microvolt = <2800000>;
    403 				regulator-boot-on;
    404 			};
    405 
    406 			ldo22_reg: LDO22 {
    407 				/*
    408 				 * Only U3 uses it, so let it define the
    409 				 * constraints
    410 				 */
    411 				regulator-name = "LDO22";
    412 				regulator-boot-on;
    413 			};
    414 
    415 			ldo25_reg: LDO25 {
    416 				regulator-name = "VDDQ_LCD_1.8V";
    417 				regulator-min-microvolt = <1800000>;
    418 				regulator-max-microvolt = <1800000>;
    419 				regulator-always-on;
    420 				regulator-boot-on;
    421 			};
    422 
    423 			buck1_reg: BUCK1 {
    424 				regulator-name = "vdd_mif";
    425 				regulator-min-microvolt = <900000>;
    426 				regulator-max-microvolt = <1100000>;
    427 				regulator-always-on;
    428 				regulator-boot-on;
    429 			};
    430 
    431 			buck2_reg: BUCK2 {
    432 				regulator-name = "vdd_arm";
    433 				regulator-min-microvolt = <900000>;
    434 				regulator-max-microvolt = <1350000>;
    435 				regulator-always-on;
    436 				regulator-boot-on;
    437 			};
    438 
    439 			buck3_reg: BUCK3 {
    440 				regulator-name = "vdd_int";
    441 				regulator-min-microvolt = <900000>;
    442 				regulator-max-microvolt = <1050000>;
    443 				regulator-always-on;
    444 				regulator-boot-on;
    445 			};
    446 
    447 			buck4_reg: BUCK4 {
    448 				regulator-name = "vdd_g3d";
    449 				regulator-min-microvolt = <900000>;
    450 				regulator-max-microvolt = <1100000>;
    451 				regulator-microvolt-offset = <50000>;
    452 			};
    453 
    454 			buck5_reg: BUCK5 {
    455 				regulator-name = "VDDQ_CKEM1_2_1.2V";
    456 				regulator-min-microvolt = <1200000>;
    457 				regulator-max-microvolt = <1200000>;
    458 				regulator-always-on;
    459 				regulator-boot-on;
    460 			};
    461 
    462 			buck6_reg: BUCK6 {
    463 				regulator-name = "BUCK6_1.35V";
    464 				regulator-min-microvolt = <1350000>;
    465 				regulator-max-microvolt = <1350000>;
    466 				regulator-always-on;
    467 				regulator-boot-on;
    468 			};
    469 
    470 			buck7_reg: BUCK7 {
    471 				regulator-name = "BUCK7_2.0V";
    472 				regulator-min-microvolt = <2000000>;
    473 				regulator-max-microvolt = <2000000>;
    474 				regulator-always-on;
    475 			};
    476 
    477 			buck8_reg: BUCK8 {
    478 				/*
    479 				 * Constraints set by specific board: X,
    480 				 * X2 and U3.
    481 				 */
    482 				regulator-name = "BUCK8_2.8V";
    483 			};
    484 		};
    485 	};
    486 };
    487 
    488 &i2c_1 {
    489 	status = "okay";
    490 	max98090: max98090@10 {
    491 		compatible = "maxim,max98090";
    492 		reg = <0x10>;
    493 		interrupt-parent = <&gpx0>;
    494 		interrupts = <0 IRQ_TYPE_NONE>;
    495 		clocks = <&i2s0 CLK_I2S_CDCLK>;
    496 		clock-names = "mclk";
    497 		#sound-dai-cells = <0>;
    498 	};
    499 };
    500 
    501 &i2c_2 {
    502 	status = "okay";
    503 };
    504 
    505 &i2c_8 {
    506 	status = "okay";
    507 };
    508 
    509 &i2s0 {
    510 	pinctrl-0 = <&i2s0_bus>;
    511 	pinctrl-names = "default";
    512 	status = "okay";
    513 	assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>;
    514 	assigned-clock-parents = <&clock_audss EXYNOS_SCLK_I2S>;
    515 };
    516 
    517 &mixer {
    518 	status = "okay";
    519 };
    520 
    521 &mshc_0 {
    522 	pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
    523 	pinctrl-names = "default";
    524 	vmmc-supply = <&ldo20_reg>;
    525 	mmc-pwrseq = <&emmc_pwrseq>;
    526 	status = "okay";
    527 
    528 	broken-cd;
    529 	card-detect-delay = <200>;
    530 	samsung,dw-mshc-ciu-div = <3>;
    531 	samsung,dw-mshc-sdr-timing = <2 3>;
    532 	samsung,dw-mshc-ddr-timing = <1 2>;
    533 	bus-width = <8>;
    534 	cap-mmc-highspeed;
    535 };
    536 
    537 &rtc {
    538 	status = "okay";
    539 	clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>;
    540 	clock-names = "rtc", "rtc_src";
    541 };
    542 
    543 &sdhci_2 {
    544 	bus-width = <4>;
    545 	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
    546 	pinctrl-names = "default";
    547 	vmmc-supply = <&ldo21_reg>;
    548 	vqmmc-supply = <&ldo4_reg>;
    549 	cd-gpios = <&gpk2 2 GPIO_ACTIVE_LOW>;
    550 	status = "okay";
    551 };
    552 
    553 &serial_0 {
    554 	status = "okay";
    555 };
    556 
    557 &serial_1 {
    558 	status = "okay";
    559 };
    560 
    561 &tmu {
    562 	vtmu-supply = <&ldo10_reg>;
    563 	status = "okay";
    564 };
    565