Home | History | Annotate | Line # | Download | only in dts
exynos4412-odroid-common.dtsi revision 1.1.1.6.2.1
      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 &hdmi {
    233 	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
    234 	pinctrl-names = "default";
    235 	pinctrl-0 = <&hdmi_hpd>;
    236 	vdd-supply = <&ldo8_reg>;
    237 	vdd_osc-supply = <&ldo10_reg>;
    238 	vdd_pll-supply = <&ldo8_reg>;
    239 	ddc = <&i2c_2>;
    240 	status = "okay";
    241 };
    242 
    243 &hdmicec {
    244 	status = "okay";
    245 };
    246 
    247 &hsotg {
    248 	dr_mode = "peripheral";
    249 	status = "okay";
    250 	vusb_d-supply = <&ldo15_reg>;
    251 	vusb_a-supply = <&ldo12_reg>;
    252 };
    253 
    254 &i2c_0 {
    255 	samsung,i2c-sda-delay = <100>;
    256 	samsung,i2c-max-bus-freq = <400000>;
    257 	status = "okay";
    258 
    259 	usb3503: usb3503@8 {
    260 		compatible = "smsc,usb3503";
    261 		reg = <0x08>;
    262 
    263 		intn-gpios = <&gpx3 0 GPIO_ACTIVE_HIGH>;
    264 		connect-gpios = <&gpx3 4 GPIO_ACTIVE_HIGH>;
    265 		reset-gpios = <&gpx3 5 GPIO_ACTIVE_HIGH>;
    266 		initial-mode = <1>;
    267 	};
    268 
    269 	max77686: pmic@9 {
    270 		compatible = "maxim,max77686";
    271 		interrupt-parent = <&gpx3>;
    272 		interrupts = <2 IRQ_TYPE_NONE>;
    273 		pinctrl-names = "default";
    274 		pinctrl-0 = <&max77686_irq>;
    275 		reg = <0x09>;
    276 		#clock-cells = <1>;
    277 
    278 		voltage-regulators {
    279 			ldo1_reg: LDO1 {
    280 				regulator-name = "VDD_ALIVE_1.0V";
    281 				regulator-min-microvolt = <1000000>;
    282 				regulator-max-microvolt = <1000000>;
    283 				regulator-always-on;
    284 			};
    285 
    286 			ldo2_reg: LDO2 {
    287 				regulator-name = "VDDQ_M1_2_1.8V";
    288 				regulator-min-microvolt = <1800000>;
    289 				regulator-max-microvolt = <1800000>;
    290 				regulator-always-on;
    291 			};
    292 
    293 			ldo3_reg: LDO3 {
    294 				regulator-name = "VDDQ_EXT_1.8V";
    295 				regulator-min-microvolt = <1800000>;
    296 				regulator-max-microvolt = <1800000>;
    297 				regulator-always-on;
    298 			};
    299 
    300 			ldo4_reg: LDO4 {
    301 				regulator-name = "VDDQ_MMC2_2.8V";
    302 				regulator-min-microvolt = <2800000>;
    303 				regulator-max-microvolt = <2800000>;
    304 				regulator-boot-on;
    305 			};
    306 
    307 			ldo5_reg: LDO5 {
    308 				regulator-name = "VDDQ_MMC1_3_1.8V";
    309 				regulator-min-microvolt = <1800000>;
    310 				regulator-max-microvolt = <1800000>;
    311 				regulator-always-on;
    312 				regulator-boot-on;
    313 			};
    314 
    315 			ldo6_reg: LDO6 {
    316 				regulator-name = "VDD10_MPLL_1.0V";
    317 				regulator-min-microvolt = <1000000>;
    318 				regulator-max-microvolt = <1000000>;
    319 				regulator-always-on;
    320 			};
    321 
    322 			ldo7_reg: LDO7 {
    323 				regulator-name = "VDD10_XPLL_1.0V";
    324 				regulator-min-microvolt = <1000000>;
    325 				regulator-max-microvolt = <1000000>;
    326 				regulator-always-on;
    327 			};
    328 
    329 			ldo8_reg: LDO8 {
    330 				regulator-name = "VDD10_HDMI_1.0V";
    331 				regulator-min-microvolt = <1000000>;
    332 				regulator-max-microvolt = <1000000>;
    333 			};
    334 
    335 			ldo10_reg: LDO10 {
    336 				regulator-name = "VDDQ_MIPIHSI_1.8V";
    337 				regulator-min-microvolt = <1800000>;
    338 				regulator-max-microvolt = <1800000>;
    339 			};
    340 
    341 			ldo11_reg: LDO11 {
    342 				regulator-name = "VDD18_ABB1_1.8V";
    343 				regulator-min-microvolt = <1800000>;
    344 				regulator-max-microvolt = <1800000>;
    345 				regulator-always-on;
    346 			};
    347 
    348 			ldo12_reg: LDO12 {
    349 				regulator-name = "VDD33_USB_3.3V";
    350 				regulator-min-microvolt = <3300000>;
    351 				regulator-max-microvolt = <3300000>;
    352 				regulator-always-on;
    353 				regulator-boot-on;
    354 			};
    355 
    356 			ldo13_reg: LDO13 {
    357 				regulator-name = "VDDQ_C2C_W_1.8V";
    358 				regulator-min-microvolt = <1800000>;
    359 				regulator-max-microvolt = <1800000>;
    360 				regulator-always-on;
    361 				regulator-boot-on;
    362 			};
    363 
    364 			ldo14_reg: LDO14 {
    365 				regulator-name = "VDD18_ABB0_2_1.8V";
    366 				regulator-min-microvolt = <1800000>;
    367 				regulator-max-microvolt = <1800000>;
    368 				regulator-always-on;
    369 				regulator-boot-on;
    370 			};
    371 
    372 			ldo15_reg: LDO15 {
    373 				regulator-name = "VDD10_HSIC_1.0V";
    374 				regulator-min-microvolt = <1000000>;
    375 				regulator-max-microvolt = <1000000>;
    376 				regulator-always-on;
    377 				regulator-boot-on;
    378 			};
    379 
    380 			ldo16_reg: LDO16 {
    381 				regulator-name = "VDD18_HSIC_1.8V";
    382 				regulator-min-microvolt = <1800000>;
    383 				regulator-max-microvolt = <1800000>;
    384 				regulator-always-on;
    385 				regulator-boot-on;
    386 			};
    387 
    388 			ldo20_reg: LDO20 {
    389 				regulator-name = "LDO20_1.8V";
    390 				regulator-min-microvolt = <1800000>;
    391 				regulator-max-microvolt = <1800000>;
    392 			};
    393 
    394 			ldo21_reg: LDO21 {
    395 				regulator-name = "TFLASH_2.8V";
    396 				regulator-min-microvolt = <2800000>;
    397 				regulator-max-microvolt = <2800000>;
    398 				regulator-boot-on;
    399 			};
    400 
    401 			ldo22_reg: LDO22 {
    402 				/*
    403 				 * Only U3 uses it, so let it define the
    404 				 * constraints
    405 				 */
    406 				regulator-name = "LDO22";
    407 				regulator-boot-on;
    408 			};
    409 
    410 			ldo25_reg: LDO25 {
    411 				regulator-name = "VDDQ_LCD_1.8V";
    412 				regulator-min-microvolt = <1800000>;
    413 				regulator-max-microvolt = <1800000>;
    414 				regulator-always-on;
    415 				regulator-boot-on;
    416 			};
    417 
    418 			buck1_reg: BUCK1 {
    419 				regulator-name = "vdd_mif";
    420 				regulator-min-microvolt = <900000>;
    421 				regulator-max-microvolt = <1100000>;
    422 				regulator-always-on;
    423 				regulator-boot-on;
    424 			};
    425 
    426 			buck2_reg: BUCK2 {
    427 				regulator-name = "vdd_arm";
    428 				regulator-min-microvolt = <900000>;
    429 				regulator-max-microvolt = <1350000>;
    430 				regulator-always-on;
    431 				regulator-boot-on;
    432 			};
    433 
    434 			buck3_reg: BUCK3 {
    435 				regulator-name = "vdd_int";
    436 				regulator-min-microvolt = <900000>;
    437 				regulator-max-microvolt = <1050000>;
    438 				regulator-always-on;
    439 				regulator-boot-on;
    440 			};
    441 
    442 			buck4_reg: BUCK4 {
    443 				regulator-name = "vdd_g3d";
    444 				regulator-min-microvolt = <900000>;
    445 				regulator-max-microvolt = <1100000>;
    446 				regulator-microvolt-offset = <50000>;
    447 			};
    448 
    449 			buck5_reg: BUCK5 {
    450 				regulator-name = "VDDQ_CKEM1_2_1.2V";
    451 				regulator-min-microvolt = <1200000>;
    452 				regulator-max-microvolt = <1200000>;
    453 				regulator-always-on;
    454 				regulator-boot-on;
    455 			};
    456 
    457 			buck6_reg: BUCK6 {
    458 				regulator-name = "BUCK6_1.35V";
    459 				regulator-min-microvolt = <1350000>;
    460 				regulator-max-microvolt = <1350000>;
    461 				regulator-always-on;
    462 				regulator-boot-on;
    463 			};
    464 
    465 			buck7_reg: BUCK7 {
    466 				regulator-name = "BUCK7_2.0V";
    467 				regulator-min-microvolt = <2000000>;
    468 				regulator-max-microvolt = <2000000>;
    469 				regulator-always-on;
    470 			};
    471 
    472 			buck8_reg: BUCK8 {
    473 				/*
    474 				 * Constraints set by specific board: X,
    475 				 * X2 and U3.
    476 				 */
    477 				regulator-name = "BUCK8_2.8V";
    478 			};
    479 		};
    480 	};
    481 };
    482 
    483 &i2c_1 {
    484 	status = "okay";
    485 	max98090: max98090@10 {
    486 		compatible = "maxim,max98090";
    487 		reg = <0x10>;
    488 		interrupt-parent = <&gpx0>;
    489 		interrupts = <0 IRQ_TYPE_NONE>;
    490 		clocks = <&i2s0 CLK_I2S_CDCLK>;
    491 		clock-names = "mclk";
    492 		#sound-dai-cells = <0>;
    493 	};
    494 };
    495 
    496 &i2c_2 {
    497 	status = "okay";
    498 };
    499 
    500 &i2c_8 {
    501 	status = "okay";
    502 };
    503 
    504 &i2s0 {
    505 	pinctrl-0 = <&i2s0_bus>;
    506 	pinctrl-names = "default";
    507 	status = "okay";
    508 	assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>;
    509 	assigned-clock-parents = <&clock_audss EXYNOS_SCLK_I2S>;
    510 };
    511 
    512 &mixer {
    513 	status = "okay";
    514 };
    515 
    516 &mshc_0 {
    517 	pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
    518 	pinctrl-names = "default";
    519 	vmmc-supply = <&ldo20_reg>;
    520 	mmc-pwrseq = <&emmc_pwrseq>;
    521 	status = "okay";
    522 
    523 	broken-cd;
    524 	card-detect-delay = <200>;
    525 	samsung,dw-mshc-ciu-div = <3>;
    526 	samsung,dw-mshc-sdr-timing = <2 3>;
    527 	samsung,dw-mshc-ddr-timing = <1 2>;
    528 	bus-width = <8>;
    529 	cap-mmc-highspeed;
    530 };
    531 
    532 &rtc {
    533 	status = "okay";
    534 	clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>;
    535 	clock-names = "rtc", "rtc_src";
    536 };
    537 
    538 &sdhci_2 {
    539 	bus-width = <4>;
    540 	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
    541 	pinctrl-names = "default";
    542 	vmmc-supply = <&ldo21_reg>;
    543 	vqmmc-supply = <&ldo4_reg>;
    544 	cd-gpios = <&gpk2 2 GPIO_ACTIVE_LOW>;
    545 	status = "okay";
    546 };
    547 
    548 &serial_0 {
    549 	status = "okay";
    550 };
    551 
    552 &serial_1 {
    553 	status = "okay";
    554 };
    555 
    556 &tmu {
    557 	vtmu-supply = <&ldo10_reg>;
    558 	status = "okay";
    559 };
    560