exynos5410-odroidxu.dts 12 KB

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