am57xx-beagle-x15-common.dtsi 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606
  1. /*
  2. * Copyright (C) 2014-2016 Texas Instruments Incorporated - http://www.ti.com/
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. */
  8. /dts-v1/;
  9. #include "dra74x.dtsi"
  10. #include "am57xx-commercial-grade.dtsi"
  11. #include <dt-bindings/gpio/gpio.h>
  12. #include <dt-bindings/interrupt-controller/irq.h>
  13. / {
  14. compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
  15. chosen {
  16. stdout-path = &uart3;
  17. };
  18. aliases {
  19. rtc0 = &mcp_rtc;
  20. rtc1 = &tps659038_rtc;
  21. rtc2 = &rtc;
  22. display0 = &hdmi0;
  23. };
  24. memory@0 {
  25. device_type = "memory";
  26. reg = <0x0 0x80000000 0x0 0x80000000>;
  27. };
  28. vdd_3v3: fixedregulator-vdd_3v3 {
  29. compatible = "regulator-fixed";
  30. regulator-name = "vdd_3v3";
  31. vin-supply = <&regen1>;
  32. regulator-min-microvolt = <3300000>;
  33. regulator-max-microvolt = <3300000>;
  34. };
  35. aic_dvdd: fixedregulator-aic_dvdd {
  36. compatible = "regulator-fixed";
  37. regulator-name = "aic_dvdd_fixed";
  38. vin-supply = <&vdd_3v3>;
  39. regulator-min-microvolt = <1800000>;
  40. regulator-max-microvolt = <1800000>;
  41. };
  42. vtt_fixed: fixedregulator-vtt {
  43. /* TPS51200 */
  44. compatible = "regulator-fixed";
  45. regulator-name = "vtt_fixed";
  46. vin-supply = <&smps3_reg>;
  47. regulator-min-microvolt = <3300000>;
  48. regulator-max-microvolt = <3300000>;
  49. regulator-always-on;
  50. regulator-boot-on;
  51. enable-active-high;
  52. gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
  53. };
  54. leds {
  55. compatible = "gpio-leds";
  56. led0 {
  57. label = "beagle-x15:usr0";
  58. gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
  59. linux,default-trigger = "heartbeat";
  60. default-state = "off";
  61. };
  62. led1 {
  63. label = "beagle-x15:usr1";
  64. gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
  65. linux,default-trigger = "cpu0";
  66. default-state = "off";
  67. };
  68. led2 {
  69. label = "beagle-x15:usr2";
  70. gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
  71. linux,default-trigger = "mmc0";
  72. default-state = "off";
  73. };
  74. led3 {
  75. label = "beagle-x15:usr3";
  76. gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
  77. linux,default-trigger = "disk-activity";
  78. default-state = "off";
  79. };
  80. };
  81. gpio_fan: gpio_fan {
  82. /* Based on 5v 500mA AFB02505HHB */
  83. compatible = "gpio-fan";
  84. gpios = <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
  85. gpio-fan,speed-map = <0 0>,
  86. <13000 1>;
  87. #cooling-cells = <2>;
  88. };
  89. hdmi0: connector {
  90. compatible = "hdmi-connector";
  91. label = "hdmi";
  92. type = "a";
  93. port {
  94. hdmi_connector_in: endpoint {
  95. remote-endpoint = <&tpd12s015_out>;
  96. };
  97. };
  98. };
  99. tpd12s015: encoder {
  100. compatible = "ti,tpd12s015";
  101. ports {
  102. #address-cells = <1>;
  103. #size-cells = <0>;
  104. port@0 {
  105. reg = <0>;
  106. tpd12s015_in: endpoint {
  107. remote-endpoint = <&hdmi_out>;
  108. };
  109. };
  110. port@1 {
  111. reg = <1>;
  112. tpd12s015_out: endpoint {
  113. remote-endpoint = <&hdmi_connector_in>;
  114. };
  115. };
  116. };
  117. };
  118. sound0: sound0 {
  119. compatible = "simple-audio-card";
  120. simple-audio-card,name = "BeagleBoard-X15";
  121. simple-audio-card,widgets =
  122. "Line", "Line Out",
  123. "Line", "Line In";
  124. simple-audio-card,routing =
  125. "Line Out", "LLOUT",
  126. "Line Out", "RLOUT",
  127. "MIC2L", "Line In",
  128. "MIC2R", "Line In";
  129. simple-audio-card,format = "dsp_b";
  130. simple-audio-card,bitclock-master = <&sound0_master>;
  131. simple-audio-card,frame-master = <&sound0_master>;
  132. simple-audio-card,bitclock-inversion;
  133. simple-audio-card,cpu {
  134. sound-dai = <&mcasp3>;
  135. };
  136. sound0_master: simple-audio-card,codec {
  137. sound-dai = <&tlv320aic3104>;
  138. clocks = <&clkout2_clk>;
  139. };
  140. };
  141. };
  142. &dra7_pmx_core {
  143. mmc1_pins_default: mmc1_pins_default {
  144. pinctrl-single,pins = <
  145. DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */
  146. DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
  147. DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
  148. DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
  149. DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
  150. DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
  151. DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
  152. >;
  153. };
  154. mmc2_pins_default: mmc2_pins_default {
  155. pinctrl-single,pins = <
  156. DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
  157. DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
  158. DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
  159. DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
  160. DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
  161. DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
  162. DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
  163. DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
  164. DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
  165. DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
  166. >;
  167. };
  168. };
  169. &i2c1 {
  170. status = "okay";
  171. clock-frequency = <400000>;
  172. tps659038: tps659038@58 {
  173. compatible = "ti,tps659038";
  174. reg = <0x58>;
  175. interrupt-parent = <&gpio1>;
  176. interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
  177. #interrupt-cells = <2>;
  178. interrupt-controller;
  179. ti,system-power-controller;
  180. tps659038_pmic {
  181. compatible = "ti,tps659038-pmic";
  182. regulators {
  183. smps12_reg: smps12 {
  184. /* VDD_MPU */
  185. regulator-name = "smps12";
  186. regulator-min-microvolt = < 850000>;
  187. regulator-max-microvolt = <1250000>;
  188. regulator-always-on;
  189. regulator-boot-on;
  190. };
  191. smps3_reg: smps3 {
  192. /* VDD_DDR */
  193. regulator-name = "smps3";
  194. regulator-min-microvolt = <1350000>;
  195. regulator-max-microvolt = <1350000>;
  196. regulator-always-on;
  197. regulator-boot-on;
  198. };
  199. smps45_reg: smps45 {
  200. /* VDD_DSPEVE, VDD_IVA, VDD_GPU */
  201. regulator-name = "smps45";
  202. regulator-min-microvolt = < 850000>;
  203. regulator-max-microvolt = <1250000>;
  204. regulator-always-on;
  205. regulator-boot-on;
  206. };
  207. smps6_reg: smps6 {
  208. /* VDD_CORE */
  209. regulator-name = "smps6";
  210. regulator-min-microvolt = <850000>;
  211. regulator-max-microvolt = <1150000>;
  212. regulator-always-on;
  213. regulator-boot-on;
  214. };
  215. /* SMPS7 unused */
  216. smps8_reg: smps8 {
  217. /* VDD_1V8 */
  218. regulator-name = "smps8";
  219. regulator-min-microvolt = <1800000>;
  220. regulator-max-microvolt = <1800000>;
  221. regulator-always-on;
  222. regulator-boot-on;
  223. };
  224. /* SMPS9 unused */
  225. ldo1_reg: ldo1 {
  226. /* VDD_SD / VDDSHV8 */
  227. regulator-name = "ldo1";
  228. regulator-min-microvolt = <1800000>;
  229. regulator-max-microvolt = <3300000>;
  230. regulator-boot-on;
  231. regulator-always-on;
  232. };
  233. ldo2_reg: ldo2 {
  234. /* VDD_SHV5 */
  235. regulator-name = "ldo2";
  236. regulator-min-microvolt = <3300000>;
  237. regulator-max-microvolt = <3300000>;
  238. regulator-always-on;
  239. regulator-boot-on;
  240. };
  241. ldo3_reg: ldo3 {
  242. /* VDDA_1V8_PHYA */
  243. regulator-name = "ldo3";
  244. regulator-min-microvolt = <1800000>;
  245. regulator-max-microvolt = <1800000>;
  246. regulator-always-on;
  247. regulator-boot-on;
  248. };
  249. ldo4_reg: ldo4 {
  250. /* VDDA_1V8_PHYB */
  251. regulator-name = "ldo4";
  252. regulator-min-microvolt = <1800000>;
  253. regulator-max-microvolt = <1800000>;
  254. regulator-always-on;
  255. regulator-boot-on;
  256. };
  257. ldo9_reg: ldo9 {
  258. /* VDD_RTC */
  259. regulator-name = "ldo9";
  260. regulator-min-microvolt = <1050000>;
  261. regulator-max-microvolt = <1050000>;
  262. regulator-always-on;
  263. regulator-boot-on;
  264. };
  265. ldoln_reg: ldoln {
  266. /* VDDA_1V8_PLL */
  267. regulator-name = "ldoln";
  268. regulator-min-microvolt = <1800000>;
  269. regulator-max-microvolt = <1800000>;
  270. regulator-always-on;
  271. regulator-boot-on;
  272. };
  273. ldousb_reg: ldousb {
  274. /* VDDA_3V_USB: VDDA_USBHS33 */
  275. regulator-name = "ldousb";
  276. regulator-min-microvolt = <3300000>;
  277. regulator-max-microvolt = <3300000>;
  278. regulator-boot-on;
  279. };
  280. regen1: regen1 {
  281. /* VDD_3V3_ON */
  282. regulator-name = "regen1";
  283. regulator-boot-on;
  284. regulator-always-on;
  285. };
  286. };
  287. };
  288. tps659038_rtc: tps659038_rtc {
  289. compatible = "ti,palmas-rtc";
  290. interrupt-parent = <&tps659038>;
  291. interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
  292. wakeup-source;
  293. };
  294. tps659038_pwr_button: tps659038_pwr_button {
  295. compatible = "ti,palmas-pwrbutton";
  296. interrupt-parent = <&tps659038>;
  297. interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
  298. wakeup-source;
  299. ti,palmas-long-press-seconds = <12>;
  300. };
  301. tps659038_gpio: tps659038_gpio {
  302. compatible = "ti,palmas-gpio";
  303. gpio-controller;
  304. #gpio-cells = <2>;
  305. };
  306. extcon_usb2: tps659038_usb {
  307. compatible = "ti,palmas-usb-vid";
  308. ti,enable-vbus-detection;
  309. vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
  310. };
  311. };
  312. tmp102: tmp102@48 {
  313. compatible = "ti,tmp102";
  314. reg = <0x48>;
  315. interrupt-parent = <&gpio7>;
  316. interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
  317. #thermal-sensor-cells = <1>;
  318. };
  319. tlv320aic3104: tlv320aic3104@18 {
  320. #sound-dai-cells = <0>;
  321. compatible = "ti,tlv320aic3104";
  322. reg = <0x18>;
  323. assigned-clocks = <&clkoutmux2_clk_mux>;
  324. assigned-clock-parents = <&sys_clk2_dclk_div>;
  325. status = "okay";
  326. adc-settle-ms = <40>;
  327. AVDD-supply = <&vdd_3v3>;
  328. IOVDD-supply = <&vdd_3v3>;
  329. DRVDD-supply = <&vdd_3v3>;
  330. DVDD-supply = <&aic_dvdd>;
  331. };
  332. eeprom: eeprom@50 {
  333. compatible = "at,24c32";
  334. reg = <0x50>;
  335. };
  336. };
  337. &i2c3 {
  338. status = "okay";
  339. clock-frequency = <400000>;
  340. mcp_rtc: rtc@6f {
  341. compatible = "microchip,mcp7941x";
  342. reg = <0x6f>;
  343. interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
  344. <&dra7_pmx_core 0x424>;
  345. interrupt-names = "irq", "wakeup";
  346. vcc-supply = <&vdd_3v3>;
  347. wakeup-source;
  348. };
  349. };
  350. &gpio7 {
  351. ti,no-reset-on-init;
  352. ti,no-idle-on-init;
  353. };
  354. &cpu0 {
  355. cpu0-supply = <&smps12_reg>;
  356. voltage-tolerance = <1>;
  357. };
  358. &uart3 {
  359. status = "okay";
  360. interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
  361. <&dra7_pmx_core 0x3f8>;
  362. };
  363. &mac {
  364. status = "okay";
  365. dual_emac;
  366. };
  367. &cpsw_emac0 {
  368. phy_id = <&davinci_mdio>, <1>;
  369. phy-mode = "rgmii";
  370. dual_emac_res_vlan = <1>;
  371. };
  372. &cpsw_emac1 {
  373. phy_id = <&davinci_mdio>, <2>;
  374. phy-mode = "rgmii";
  375. dual_emac_res_vlan = <2>;
  376. };
  377. &mmc1 {
  378. status = "okay";
  379. pinctrl-names = "default";
  380. pinctrl-0 = <&mmc1_pins_default>;
  381. bus-width = <4>;
  382. cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
  383. /delete-property/ sd-uhs-sdr104;
  384. /delete-property/ sd-uhs-sdr50;
  385. /delete-property/ sd-uhs-ddr50;
  386. /delete-property/ sd-uhs-sdr25;
  387. /delete-property/ sd-uhs-sdr12;
  388. };
  389. &mmc2 {
  390. status = "okay";
  391. pinctrl-names = "default";
  392. pinctrl-0 = <&mmc2_pins_default>;
  393. vmmc-supply = <&vdd_3v3>;
  394. bus-width = <8>;
  395. ti,non-removable;
  396. cap-mmc-dual-data-rate;
  397. no-1-8-v;
  398. };
  399. &sata {
  400. status = "okay";
  401. };
  402. &usb2_phy1 {
  403. phy-supply = <&ldousb_reg>;
  404. };
  405. &usb2_phy2 {
  406. phy-supply = <&ldousb_reg>;
  407. };
  408. &usb1 {
  409. dr_mode = "host";
  410. };
  411. &omap_dwc3_2 {
  412. extcon = <&extcon_usb2>;
  413. };
  414. &usb2 {
  415. /*
  416. * Stand alone usage is peripheral only.
  417. * However, with some resistor modifications
  418. * this port can be used via expansion connectors
  419. * as "host" or "dual-role". If so, provide
  420. * the necessary dr_mode override in the expansion
  421. * board's DT.
  422. */
  423. dr_mode = "peripheral";
  424. };
  425. &cpu_trips {
  426. cpu_alert1: cpu_alert1 {
  427. temperature = <50000>; /* millicelsius */
  428. hysteresis = <2000>; /* millicelsius */
  429. type = "active";
  430. };
  431. };
  432. &cpu_cooling_maps {
  433. map1 {
  434. trip = <&cpu_alert1>;
  435. cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  436. };
  437. };
  438. &thermal_zones {
  439. board_thermal: board_thermal {
  440. polling-delay-passive = <1250>; /* milliseconds */
  441. polling-delay = <1500>; /* milliseconds */
  442. /* sensor ID */
  443. thermal-sensors = <&tmp102 0>;
  444. board_trips: trips {
  445. board_alert0: board_alert {
  446. temperature = <40000>; /* millicelsius */
  447. hysteresis = <2000>; /* millicelsius */
  448. type = "active";
  449. };
  450. board_crit: board_crit {
  451. temperature = <105000>; /* millicelsius */
  452. hysteresis = <0>; /* millicelsius */
  453. type = "critical";
  454. };
  455. };
  456. board_cooling_maps: cooling-maps {
  457. map0 {
  458. trip = <&board_alert0>;
  459. cooling-device =
  460. <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  461. };
  462. };
  463. };
  464. };
  465. &dss {
  466. status = "ok";
  467. vdda_video-supply = <&ldoln_reg>;
  468. };
  469. &hdmi {
  470. status = "ok";
  471. vdda-supply = <&ldo4_reg>;
  472. port {
  473. hdmi_out: endpoint {
  474. remote-endpoint = <&tpd12s015_in>;
  475. };
  476. };
  477. };
  478. &pcie1 {
  479. gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
  480. };
  481. &mcasp3 {
  482. #sound-dai-cells = <0>;
  483. assigned-clocks = <&mcasp3_ahclkx_mux>;
  484. assigned-clock-parents = <&sys_clkin2>;
  485. status = "okay";
  486. op-mode = <0>; /* MCASP_IIS_MODE */
  487. tdm-slots = <2>;
  488. /* 4 serializers */
  489. serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
  490. 1 2 0 0
  491. >;
  492. tx-num-evt = <32>;
  493. rx-num-evt = <32>;
  494. };
  495. &mailbox5 {
  496. status = "okay";
  497. mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
  498. status = "okay";
  499. };
  500. mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
  501. status = "okay";
  502. };
  503. };
  504. &mailbox6 {
  505. status = "okay";
  506. mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
  507. status = "okay";
  508. };
  509. mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
  510. status = "okay";
  511. };
  512. };