exynos5410-odroidxu.dts 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579
  1. /*
  2. * Hardkernel Odroid XU board device tree source
  3. *
  4. * Copyright (c) 2013 Samsung Electronics Co., Ltd.
  5. * http://www.samsung.com
  6. * Copyright (c) 2016 Krzysztof Kozlowski
  7. *
  8. * This program is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License version 2 as
  10. * published by the Free Software Foundation.
  11. */
  12. /dts-v1/;
  13. #include "exynos5410.dtsi"
  14. #include <dt-bindings/clock/maxim,max77802.h>
  15. #include <dt-bindings/gpio/gpio.h>
  16. #include <dt-bindings/interrupt-controller/irq.h>
  17. #include "exynos54xx-odroidxu-leds.dtsi"
  18. / {
  19. model = "Hardkernel Odroid XU";
  20. compatible = "hardkernel,odroid-xu", "samsung,exynos5410", "samsung,exynos5";
  21. memory@40000000 {
  22. device_type = "memory";
  23. reg = <0x40000000 0x7ea00000>;
  24. };
  25. chosen {
  26. stdout-path = "serial2:115200n8";
  27. };
  28. emmc_pwrseq: pwrseq {
  29. pinctrl-0 = <&emmc_nrst_pin>;
  30. pinctrl-names = "default";
  31. compatible = "mmc-pwrseq-emmc";
  32. reset-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>;
  33. };
  34. fan0: pwm-fan {
  35. compatible = "pwm-fan";
  36. pwms = <&pwm 0 20972 0>;
  37. cooling-min-state = <0>;
  38. cooling-max-state = <3>;
  39. #cooling-cells = <2>;
  40. cooling-levels = <0 130 170 230>;
  41. };
  42. fin_pll: xxti {
  43. compatible = "fixed-clock";
  44. clock-frequency = <24000000>;
  45. clock-output-names = "fin_pll";
  46. #clock-cells = <0>;
  47. };
  48. firmware@02073000 {
  49. compatible = "samsung,secure-firmware";
  50. reg = <0x02073000 0x1000>;
  51. };
  52. };
  53. &cpu0_thermal {
  54. thermal-sensors = <&tmu_cpu0 0>;
  55. polling-delay-passive = <0>;
  56. polling-delay = <0>;
  57. trips {
  58. cpu_alert0: cpu-alert-0 {
  59. temperature = <50000>; /* millicelsius */
  60. hysteresis = <5000>; /* millicelsius */
  61. type = "active";
  62. };
  63. cpu_alert1: cpu-alert-1 {
  64. temperature = <60000>; /* millicelsius */
  65. hysteresis = <5000>; /* millicelsius */
  66. type = "active";
  67. };
  68. cpu_alert2: cpu-alert-2 {
  69. temperature = <70000>; /* millicelsius */
  70. hysteresis = <5000>; /* millicelsius */
  71. type = "active";
  72. };
  73. cpu_crit0: cpu-crit-0 {
  74. temperature = <120000>; /* millicelsius */
  75. hysteresis = <0>; /* millicelsius */
  76. type = "critical";
  77. };
  78. };
  79. cooling-maps {
  80. map0 {
  81. trip = <&cpu_alert0>;
  82. cooling-device = <&fan0 0 1>;
  83. };
  84. map1 {
  85. trip = <&cpu_alert1>;
  86. cooling-device = <&fan0 1 2>;
  87. };
  88. map2 {
  89. trip = <&cpu_alert2>;
  90. cooling-device = <&fan0 2 3>;
  91. };
  92. };
  93. };
  94. &hsi2c_4 {
  95. samsung,i2c-sda-delay = <100>;
  96. samsung,i2c-max-bus-freq = <400000>;
  97. status = "okay";
  98. usb3503: usb-hub@08 {
  99. compatible = "smsc,usb3503";
  100. reg = <0x08>;
  101. intn-gpios = <&gpx0 7 GPIO_ACTIVE_HIGH>;
  102. connect-gpios = <&gpx0 6 GPIO_ACTIVE_HIGH>;
  103. reset-gpios = <&gpx1 4 GPIO_ACTIVE_HIGH>;
  104. initial-mode = <1>;
  105. clock-names = "refclk";
  106. clocks = <&pmu_system_controller 0>;
  107. refclk-frequency = <24000000>;
  108. };
  109. max77802: pmic@09 {
  110. compatible = "maxim,max77802";
  111. reg = <0x9>;
  112. interrupt-parent = <&gpx0>;
  113. interrupts = <4 IRQ_TYPE_NONE>;
  114. pinctrl-names = "default";
  115. pinctrl-0 = <&max77802_irq>, <&pmic_dvs_1>, <&pmic_dvs_2>,
  116. <&pmic_dvs_3>;
  117. #clock-cells = <1>;
  118. inl1-supply = <&buck5_reg>;
  119. inl2-supply = <&buck7_reg>;
  120. inl3-supply = <&buck9_reg>;
  121. inl4-supply = <&buck9_reg>;
  122. inl5-supply = <&buck9_reg>;
  123. inl6-supply = <&buck10_reg>;
  124. inl7-supply = <&buck9_reg>;
  125. /* inl9 supply is BOOST, not configured here */
  126. inl10-supply = <&buck7_reg>;
  127. regulators {
  128. buck1_reg: BUCK1 {
  129. regulator-name = "vdd_mif";
  130. regulator-min-microvolt = <800000>;
  131. regulator-max-microvolt = <1300000>;
  132. regulator-always-on;
  133. regulator-boot-on;
  134. };
  135. buck2_reg: BUCK2 {
  136. regulator-name = "vdd_arm";
  137. regulator-min-microvolt = <800000>;
  138. regulator-max-microvolt = <1500000>;
  139. regulator-always-on;
  140. regulator-boot-on;
  141. };
  142. buck3_reg: BUCK3 {
  143. regulator-name = "vdd_int";
  144. regulator-min-microvolt = <800000>;
  145. regulator-max-microvolt = <1400000>;
  146. regulator-always-on;
  147. regulator-boot-on;
  148. };
  149. buck4_reg: BUCK4 {
  150. regulator-name = "vdd_g3d";
  151. regulator-min-microvolt = <800000>;
  152. regulator-max-microvolt = <1400000>;
  153. regulator-always-on;
  154. regulator-boot-on;
  155. };
  156. buck5_reg: BUCK5 {
  157. regulator-name = "vdd_mem";
  158. regulator-min-microvolt = <800000>;
  159. regulator-max-microvolt = <1500000>;
  160. regulator-always-on;
  161. regulator-boot-on;
  162. };
  163. buck6_reg: BUCK6 {
  164. regulator-name = "vdd_kfc";
  165. regulator-min-microvolt = <800000>;
  166. regulator-max-microvolt = <1500000>;
  167. regulator-always-on;
  168. regulator-boot-on;
  169. };
  170. buck7_reg: BUCK7 {
  171. regulator-name = "buck7";
  172. regulator-min-microvolt = <1300000>;
  173. regulator-max-microvolt = <1300000>;
  174. regulator-always-on;
  175. regulator-boot-on;
  176. };
  177. buck8_reg: BUCK8 {
  178. /* vdd_mmc0 */
  179. regulator-name = "vddf_2v85";
  180. regulator-min-microvolt = <2850000>;
  181. regulator-max-microvolt = <2850000>;
  182. regulator-always-on;
  183. regulator-boot-on;
  184. };
  185. buck9_reg: BUCK9 {
  186. regulator-name = "buck9";
  187. regulator-min-microvolt = <3000000>;
  188. regulator-max-microvolt = <3000000>;
  189. regulator-always-on;
  190. regulator-boot-on;
  191. };
  192. buck10_reg: BUCK10 {
  193. regulator-name = "buck10";
  194. regulator-min-microvolt = <2950000>;
  195. regulator-max-microvolt = <2950000>;
  196. regulator-always-on;
  197. regulator-boot-on;
  198. };
  199. ldo1_reg: LDO1 {
  200. regulator-name = "vdd_alive";
  201. regulator-min-microvolt = <1000000>;
  202. regulator-max-microvolt = <1000000>;
  203. regulator-always-on;
  204. };
  205. ldo2_reg: LDO2 {
  206. regulator-name = "vddq_m1_m2";
  207. regulator-min-microvolt = <1200000>;
  208. regulator-max-microvolt = <1200000>;
  209. regulator-always-on;
  210. };
  211. ldo3_reg: LDO3 {
  212. regulator-name = "vddq_gpio";
  213. regulator-min-microvolt = <1800000>;
  214. regulator-max-microvolt = <1800000>;
  215. regulator-always-on;
  216. };
  217. ldo4_reg: LDO4 {
  218. regulator-name = "vddq_mmc2";
  219. regulator-min-microvolt = <1800000>;
  220. regulator-max-microvolt = <3000000>;
  221. /* Having it off prevents reboot */
  222. regulator-always-on;
  223. };
  224. ldo5_reg: LDO5 {
  225. regulator-name = "vdd18_hsic";
  226. regulator-min-microvolt = <1800000>;
  227. regulator-max-microvolt = <1800000>;
  228. regulator-always-on;
  229. };
  230. ldo6_reg: LDO6 {
  231. regulator-name = "vdd18_bpll";
  232. regulator-min-microvolt = <1800000>;
  233. regulator-max-microvolt = <1800000>;
  234. regulator-always-on;
  235. };
  236. ldo7_reg: LDO7 {
  237. regulator-name = "vddq_lcd";
  238. regulator-min-microvolt = <1800000>;
  239. regulator-max-microvolt = <1800000>;
  240. };
  241. ldo8_reg: LDO8 {
  242. regulator-name = "vdd10_hdmi";
  243. regulator-min-microvolt = <1000000>;
  244. regulator-max-microvolt = <1000000>;
  245. regulator-always-on;
  246. };
  247. ldo9_reg: LDO9 {
  248. regulator-name = "ldo9";
  249. };
  250. ldo10_reg: LDO10 {
  251. regulator-name = "vdd18_mipi";
  252. regulator-min-microvolt = <1800000>;
  253. regulator-max-microvolt = <1800000>;
  254. regulator-always-on;
  255. };
  256. ldo11_reg: LDO11 {
  257. regulator-name = "vddq_mmc01";
  258. regulator-min-microvolt = <1800000>;
  259. regulator-max-microvolt = <1800000>;
  260. /*
  261. * Having it off prevents accessing MMC after
  262. * reboot with error:
  263. * MMC Device 1: Clock OFF has been failed.
  264. */
  265. regulator-always-on;
  266. };
  267. ldo12_reg: LDO12 {
  268. regulator-name = "vdd33_usb3";
  269. regulator-min-microvolt = <3300000>;
  270. regulator-max-microvolt = <3300000>;
  271. regulator-always-on;
  272. };
  273. ldo13_reg: LDO13 {
  274. regulator-name = "vddq_abbg0";
  275. regulator-min-microvolt = <1800000>;
  276. regulator-max-microvolt = <1800000>;
  277. regulator-always-on;
  278. };
  279. ldo14_reg: LDO14 {
  280. regulator-name = "vddq_abbg1";
  281. regulator-min-microvolt = <1800000>;
  282. regulator-max-microvolt = <1800000>;
  283. regulator-always-on;
  284. };
  285. ldo15_reg: LDO15 {
  286. regulator-name = "vdd10_usb3";
  287. regulator-min-microvolt = <1000000>;
  288. regulator-max-microvolt = <1000000>;
  289. regulator-always-on;
  290. };
  291. ldo16_reg: LDO16 {
  292. regulator-name = "ldo16";
  293. };
  294. ldo17_reg: LDO17 {
  295. regulator-name = "cam_sensor_core";
  296. regulator-min-microvolt = <1200000>;
  297. regulator-max-microvolt = <1200000>;
  298. };
  299. ldo18_reg: LDO18 {
  300. regulator-name = "ldo18";
  301. regulator-min-microvolt = <1800000>;
  302. regulator-max-microvolt = <1800000>;
  303. };
  304. ldo19_reg: LDO19 {
  305. regulator-name = "ldo19";
  306. };
  307. ldo20_reg: LDO20 {
  308. regulator-name = "vdd_mmc0";
  309. regulator-min-microvolt = <1800000>;
  310. regulator-max-microvolt = <1800000>;
  311. };
  312. ldo21_reg: LDO21 {
  313. /* vdd_mmc2 */
  314. regulator-name = "vddf_2v8";
  315. regulator-min-microvolt = <2850000>;
  316. regulator-max-microvolt = <2850000>;
  317. };
  318. ldo22_reg: LDO22 {
  319. regulator-name = "ldo22";
  320. };
  321. ldo23_reg: LDO23 {
  322. regulator-name = "dp_p3v3";
  323. regulator-min-microvolt = <3300000>;
  324. regulator-max-microvolt = <3300000>;
  325. regulator-always-on;
  326. };
  327. ldo24_reg: LDO24 {
  328. regulator-name = "cam_af";
  329. regulator-min-microvolt = <2800000>;
  330. regulator-max-microvolt = <2800000>;
  331. };
  332. ldo25_reg: LDO25 {
  333. regulator-name = "eth_p3v3";
  334. regulator-min-microvolt = <3300000>;
  335. regulator-max-microvolt = <3300000>;
  336. regulator-always-on;
  337. };
  338. ldo26_reg: LDO26 {
  339. regulator-name = "usb30_extclk";
  340. regulator-min-microvolt = <3300000>;
  341. regulator-max-microvolt = <3300000>;
  342. regulator-always-on;
  343. };
  344. ldo27_reg: LDO27 {
  345. regulator-name = "ldo27";
  346. };
  347. ldo28_reg: LDO28 {
  348. regulator-name = "ldo28";
  349. };
  350. ldo29_reg: LDO29 {
  351. regulator-name = "ldo29";
  352. };
  353. ldo30_reg: LDO30 {
  354. regulator-name = "vddq_e1_e2";
  355. regulator-min-microvolt = <1200000>;
  356. regulator-max-microvolt = <1200000>;
  357. regulator-always-on;
  358. };
  359. ldo31_reg: LDO31 {
  360. regulator-name = "ldo31";
  361. };
  362. /* On revisions with ti,ina231 this is sensor VS */
  363. ldo32_reg: LDO32 {
  364. regulator-name = "vs_power_meter";
  365. regulator-min-microvolt = <3300000>;
  366. regulator-max-microvolt = <3300000>;
  367. };
  368. ldo33_reg: LDO33 {
  369. regulator-name = "ldo33";
  370. };
  371. ldo34_reg: LDO34 {
  372. regulator-name = "ldo34";
  373. };
  374. ldo35_reg: LDO35 {
  375. regulator-name = "ldo35";
  376. };
  377. };
  378. };
  379. };
  380. &mmc_0 {
  381. status = "okay";
  382. mmc-pwrseq = <&emmc_pwrseq>;
  383. cd-gpios = <&gpc0 2 GPIO_ACTIVE_LOW>;
  384. card-detect-delay = <200>;
  385. samsung,dw-mshc-ciu-div = <3>;
  386. samsung,dw-mshc-sdr-timing = <0 4>;
  387. samsung,dw-mshc-ddr-timing = <0 2>;
  388. pinctrl-names = "default";
  389. pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_cd>;
  390. bus-width = <8>;
  391. cap-mmc-highspeed;
  392. mmc-hs200-1_8v;
  393. vmmc-supply = <&ldo20_reg>;
  394. vqmmc-supply = <&ldo11_reg>;
  395. };
  396. &mmc_2 {
  397. status = "okay";
  398. card-detect-delay = <200>;
  399. samsung,dw-mshc-ciu-div = <3>;
  400. samsung,dw-mshc-sdr-timing = <0 4>;
  401. samsung,dw-mshc-ddr-timing = <0 2>;
  402. pinctrl-names = "default";
  403. pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
  404. bus-width = <4>;
  405. cap-sd-highspeed;
  406. vmmc-supply = <&ldo21_reg>;
  407. vqmmc-supply = <&ldo4_reg>;
  408. };
  409. &pinctrl_0 {
  410. emmc_nrst_pin: emmc-nrst {
  411. samsung,pins = "gpd1-0";
  412. samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
  413. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  414. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  415. };
  416. pmic_dvs_3: pmic-dvs-3 {
  417. samsung,pins = "gpx0-0";
  418. samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
  419. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  420. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  421. };
  422. pmic_dvs_2: pmic-dvs-2 {
  423. samsung,pins = "gpx0-1";
  424. samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
  425. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  426. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  427. };
  428. pmic_dvs_1: pmic-dvs-1 {
  429. samsung,pins = "gpx0-2";
  430. samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
  431. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  432. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  433. samsung,pin-val = <1>;
  434. };
  435. max77802_irq: max77802-irq {
  436. samsung,pins = "gpx0-4";
  437. samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
  438. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  439. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  440. };
  441. };
  442. &pwm {
  443. /*
  444. * PWM 0 -- fan
  445. * PWM 1 -- Green LED
  446. * PWM 2 -- Blue LED
  447. * PWM 3 -- on MIPI connector for backlight
  448. */
  449. pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
  450. pinctrl-names = "default";
  451. status = "okay";
  452. };
  453. &rtc {
  454. status = "okay";
  455. clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>;
  456. clock-names = "rtc", "rtc_src";
  457. };
  458. &serial_0 {
  459. status = "okay";
  460. };
  461. &serial_1 {
  462. status = "okay";
  463. };
  464. &serial_2 {
  465. status = "okay";
  466. };
  467. &serial_3 {
  468. status = "okay";
  469. };
  470. &tmu_cpu0 {
  471. vtmu-supply = <&ldo10_reg>;
  472. };
  473. &tmu_cpu1 {
  474. vtmu-supply = <&ldo10_reg>;
  475. };
  476. &tmu_cpu2 {
  477. vtmu-supply = <&ldo10_reg>;
  478. };
  479. &tmu_cpu3 {
  480. vtmu-supply = <&ldo10_reg>;
  481. };
  482. &usbdrd_dwc3_0 {
  483. dr_mode = "host";
  484. };
  485. &usbdrd_dwc3_1 {
  486. dr_mode = "peripheral";
  487. };
  488. &usbdrd3_0 {
  489. vdd33-supply = <&ldo12_reg>;
  490. vdd10-supply = <&ldo15_reg>;
  491. };
  492. &usbdrd3_1 {
  493. vdd33-supply = <&ldo12_reg>;
  494. vdd10-supply = <&ldo15_reg>;
  495. };