am437x-idk-evm.dts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. /*
  2. * Copyright (C) 2014 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 "am4372.dtsi"
  10. #include <dt-bindings/pinctrl/am43xx.h>
  11. #include <dt-bindings/pwm/pwm.h>
  12. #include <dt-bindings/gpio/gpio.h>
  13. #include <dt-bindings/input/input.h>
  14. / {
  15. model = "TI AM437x Industrial Development Kit";
  16. compatible = "ti,am437x-idk-evm","ti,am4372","ti,am43";
  17. chosen {
  18. stdout-path = &uart0;
  19. tick-timer = &timer2;
  20. };
  21. v24_0d: fixed-regulator-v24_0d {
  22. compatible = "regulator-fixed";
  23. regulator-name = "V24_0D";
  24. regulator-min-microvolt = <24000000>;
  25. regulator-max-microvolt = <24000000>;
  26. regulator-always-on;
  27. regulator-boot-on;
  28. };
  29. v3_3d: fixed-regulator-v3_3d {
  30. compatible = "regulator-fixed";
  31. regulator-name = "V3_3D";
  32. regulator-min-microvolt = <3300000>;
  33. regulator-max-microvolt = <3300000>;
  34. regulator-always-on;
  35. regulator-boot-on;
  36. vin-supply = <&v24_0d>;
  37. };
  38. vdd_corereg: fixed-regulator-vdd_corereg {
  39. compatible = "regulator-fixed";
  40. regulator-name = "VDD_COREREG";
  41. regulator-min-microvolt = <1100000>;
  42. regulator-max-microvolt = <1100000>;
  43. regulator-always-on;
  44. regulator-boot-on;
  45. vin-supply = <&v24_0d>;
  46. };
  47. vdd_core: fixed-regulator-vdd_core {
  48. compatible = "regulator-fixed";
  49. regulator-name = "VDD_CORE";
  50. regulator-min-microvolt = <1100000>;
  51. regulator-max-microvolt = <1100000>;
  52. regulator-always-on;
  53. regulator-boot-on;
  54. vin-supply = <&vdd_corereg>;
  55. };
  56. v1_8dreg: fixed-regulator-v1_8dreg{
  57. compatible = "regulator-fixed";
  58. regulator-name = "V1_8DREG";
  59. regulator-min-microvolt = <1800000>;
  60. regulator-max-microvolt = <1800000>;
  61. regulator-always-on;
  62. regulator-boot-on;
  63. vin-supply = <&v24_0d>;
  64. };
  65. v1_8d: fixed-regulator-v1_8d{
  66. compatible = "regulator-fixed";
  67. regulator-name = "V1_8D";
  68. regulator-min-microvolt = <1800000>;
  69. regulator-max-microvolt = <1800000>;
  70. regulator-always-on;
  71. regulator-boot-on;
  72. vin-supply = <&v1_8dreg>;
  73. };
  74. v1_5dreg: fixed-regulator-v1_5dreg{
  75. compatible = "regulator-fixed";
  76. regulator-name = "V1_5DREG";
  77. regulator-min-microvolt = <1500000>;
  78. regulator-max-microvolt = <1500000>;
  79. regulator-always-on;
  80. regulator-boot-on;
  81. vin-supply = <&v24_0d>;
  82. };
  83. v1_5d: fixed-regulator-v1_5d{
  84. compatible = "regulator-fixed";
  85. regulator-name = "V1_5D";
  86. regulator-min-microvolt = <1500000>;
  87. regulator-max-microvolt = <1500000>;
  88. regulator-always-on;
  89. regulator-boot-on;
  90. vin-supply = <&v1_5dreg>;
  91. };
  92. gpio_keys: gpio_keys {
  93. compatible = "gpio-keys";
  94. pinctrl-names = "default";
  95. pinctrl-0 = <&gpio_keys_pins_default>;
  96. #address-cells = <1>;
  97. #size-cells = <0>;
  98. switch@0 {
  99. label = "power-button";
  100. linux,code = <KEY_POWER>;
  101. gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
  102. };
  103. };
  104. /* fixed 32k external oscillator clock */
  105. clk_32k_rtc: clk_32k_rtc {
  106. #clock-cells = <0>;
  107. compatible = "fixed-clock";
  108. clock-frequency = <32768>;
  109. };
  110. };
  111. &am43xx_pinmux {
  112. gpio_keys_pins_default: gpio_keys_pins_default {
  113. pinctrl-single,pins = <
  114. AM4372_IOPAD(0x9b8, PIN_INPUT | MUX_MODE7) /* cam0_field.gpio4_2 */
  115. >;
  116. };
  117. i2c0_pins_default: i2c0_pins_default {
  118. pinctrl-single,pins = <
  119. AM4372_IOPAD(0x988, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */
  120. AM4372_IOPAD(0x98c, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */
  121. >;
  122. };
  123. i2c0_pins_sleep: i2c0_pins_sleep {
  124. pinctrl-single,pins = <
  125. AM4372_IOPAD(0x988, PIN_INPUT_PULLDOWN | MUX_MODE7)
  126. AM4372_IOPAD(0x98c, PIN_INPUT_PULLDOWN | MUX_MODE7)
  127. >;
  128. };
  129. i2c2_pins_default: i2c2_pins_default {
  130. pinctrl-single,pins = <
  131. AM4372_IOPAD(0x9e8, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE3) /* cam1_data1.i2c2_scl */
  132. AM4372_IOPAD(0x9ec, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE3) /* cam1_data0.i2c2_sda */
  133. >;
  134. };
  135. i2c2_pins_sleep: i2c2_pins_sleep {
  136. pinctrl-single,pins = <
  137. AM4372_IOPAD(0x9e8, PIN_INPUT_PULLDOWN | MUX_MODE7)
  138. AM4372_IOPAD(0x9ec, PIN_INPUT_PULLDOWN | MUX_MODE7)
  139. >;
  140. };
  141. mmc1_pins_default: pinmux_mmc1_pins_default {
  142. pinctrl-single,pins = <
  143. AM4372_IOPAD(0x900, PIN_INPUT | MUX_MODE0) /* mmc0_clk.mmc0_clk */
  144. AM4372_IOPAD(0x904, PIN_INPUT | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
  145. AM4372_IOPAD(0x9f0, PIN_INPUT | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
  146. AM4372_IOPAD(0x9f4, PIN_INPUT | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
  147. AM4372_IOPAD(0x9f8, PIN_INPUT | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
  148. AM4372_IOPAD(0x9fc, PIN_INPUT | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
  149. AM4372_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
  150. >;
  151. };
  152. mmc1_pins_sleep: pinmux_mmc1_pins_sleep {
  153. pinctrl-single,pins = <
  154. AM4372_IOPAD(0x900, PIN_INPUT_PULLDOWN | MUX_MODE7)
  155. AM4372_IOPAD(0x904, PIN_INPUT_PULLDOWN | MUX_MODE7)
  156. AM4372_IOPAD(0x9f0, PIN_INPUT_PULLDOWN | MUX_MODE7)
  157. AM4372_IOPAD(0x9f4, PIN_INPUT_PULLDOWN | MUX_MODE7)
  158. AM4372_IOPAD(0x9f8, PIN_INPUT_PULLDOWN | MUX_MODE7)
  159. AM4372_IOPAD(0x9fc, PIN_INPUT_PULLDOWN | MUX_MODE7)
  160. AM4372_IOPAD(0x960, PIN_INPUT_PULLDOWN | MUX_MODE7)
  161. >;
  162. };
  163. ecap0_pins_default: backlight_pins_default {
  164. pinctrl-single,pins = <
  165. AM4372_IOPAD(0x964, PIN_OUTPUT | MUX_MODE0) /* ecap0_in_pwm0_out.ecap0_in_pwm0_out */
  166. >;
  167. };
  168. cpsw_default: cpsw_default {
  169. pinctrl-single,pins = <
  170. AM4372_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */
  171. AM4372_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */
  172. AM4372_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */
  173. AM4372_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */
  174. AM4372_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td2 */
  175. AM4372_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td3 */
  176. AM4372_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rmii1_rclk */
  177. AM4372_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */
  178. AM4372_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */
  179. AM4372_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */
  180. AM4372_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd2 */
  181. AM4372_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd3 */
  182. >;
  183. };
  184. cpsw_sleep: cpsw_sleep {
  185. pinctrl-single,pins = <
  186. AM4372_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
  187. AM4372_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
  188. AM4372_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
  189. AM4372_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
  190. AM4372_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
  191. AM4372_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
  192. AM4372_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
  193. AM4372_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
  194. AM4372_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
  195. AM4372_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
  196. AM4372_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
  197. AM4372_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
  198. >;
  199. };
  200. davinci_mdio_default: davinci_mdio_default {
  201. pinctrl-single,pins = <
  202. /* MDIO */
  203. AM4372_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
  204. AM4372_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
  205. >;
  206. };
  207. davinci_mdio_sleep: davinci_mdio_sleep {
  208. pinctrl-single,pins = <
  209. /* MDIO reset value */
  210. AM4372_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
  211. AM4372_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
  212. >;
  213. };
  214. qspi_pins_default: qspi_pins_default {
  215. pinctrl-single,pins = <
  216. AM4372_IOPAD(0x87c, PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_csn0.qspi_csn */
  217. AM4372_IOPAD(0x888, PIN_OUTPUT | MUX_MODE2) /* gpmc_csn3.qspi_clk */
  218. AM4372_IOPAD(0x890, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_advn_ale.qspi_d0 */
  219. AM4372_IOPAD(0x894, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_oen_ren.qspi_d1 */
  220. AM4372_IOPAD(0x898, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_wen.qspi_d2 */
  221. AM4372_IOPAD(0x89c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_be0n_cle.qspi_d3 */
  222. >;
  223. };
  224. qspi_pins_sleep: qspi_pins_sleep{
  225. pinctrl-single,pins = <
  226. AM4372_IOPAD(0x87c, PIN_INPUT_PULLDOWN | MUX_MODE7)
  227. AM4372_IOPAD(0x888, PIN_INPUT_PULLDOWN | MUX_MODE7)
  228. AM4372_IOPAD(0x890, PIN_INPUT_PULLDOWN | MUX_MODE7)
  229. AM4372_IOPAD(0x894, PIN_INPUT_PULLDOWN | MUX_MODE7)
  230. AM4372_IOPAD(0x898, PIN_INPUT_PULLDOWN | MUX_MODE7)
  231. AM4372_IOPAD(0x89c, PIN_INPUT_PULLDOWN | MUX_MODE7)
  232. >;
  233. };
  234. };
  235. &i2c0 {
  236. status = "okay";
  237. pinctrl-names = "default", "sleep";
  238. pinctrl-0 = <&i2c0_pins_default>;
  239. pinctrl-1 = <&i2c0_pins_sleep>;
  240. clock-frequency = <400000>;
  241. at24@50 {
  242. compatible = "at24,24c256";
  243. pagesize = <64>;
  244. reg = <0x50>;
  245. };
  246. tps: tps62362@60 {
  247. compatible = "ti,tps62362";
  248. reg = <0x60>;
  249. regulator-name = "VDD_MPU";
  250. regulator-min-microvolt = <950000>;
  251. regulator-max-microvolt = <1330000>;
  252. regulator-boot-on;
  253. regulator-always-on;
  254. ti,vsel0-state-high;
  255. ti,vsel1-state-high;
  256. vin-supply = <&v3_3d>;
  257. };
  258. };
  259. &i2c2 {
  260. status = "okay";
  261. pinctrl-names = "default", "sleep";
  262. pinctrl-0 = <&i2c2_pins_default>;
  263. pinctrl-1 = <&i2c2_pins_sleep>;
  264. clock-frequency = <100000>;
  265. };
  266. &epwmss0 {
  267. status = "okay";
  268. };
  269. &ecap0 {
  270. status = "okay";
  271. pinctrl-names = "default";
  272. pinctrl-0 = <&ecap0_pins_default>;
  273. };
  274. &gpio0 {
  275. status = "okay";
  276. };
  277. &gpio1 {
  278. status = "okay";
  279. };
  280. &gpio4 {
  281. status = "okay";
  282. };
  283. &gpio5 {
  284. status = "okay";
  285. };
  286. &mmc1 {
  287. status = "okay";
  288. pinctrl-names = "default", "sleep";
  289. pinctrl-0 = <&mmc1_pins_default>;
  290. pinctrl-1 = <&mmc1_pins_sleep>;
  291. vmmc-supply = <&v3_3d>;
  292. bus-width = <4>;
  293. cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
  294. };
  295. &qspi {
  296. status = "okay";
  297. pinctrl-names = "default", "sleep";
  298. pinctrl-0 = <&qspi_pins_default>;
  299. pinctrl-1 = <&qspi_pins_sleep>;
  300. spi-max-frequency = <48000000>;
  301. m25p80@0 {
  302. compatible = "mx66l51235l", "spi-flash";
  303. spi-max-frequency = <48000000>;
  304. reg = <0>;
  305. spi-cpol;
  306. spi-cpha;
  307. spi-tx-bus-width = <1>;
  308. spi-rx-bus-width = <4>;
  309. #address-cells = <1>;
  310. #size-cells = <1>;
  311. /*
  312. * MTD partition table. The ROM checks the first 512KiB for a
  313. * valid file to boot(XIP).
  314. */
  315. partition@0 {
  316. label = "QSPI.U_BOOT";
  317. reg = <0x00000000 0x000080000>;
  318. };
  319. partition@1 {
  320. label = "QSPI.U_BOOT.backup";
  321. reg = <0x00080000 0x00080000>;
  322. };
  323. partition@2 {
  324. label = "QSPI.U-BOOT-SPL_OS";
  325. reg = <0x00100000 0x00010000>;
  326. };
  327. partition@3 {
  328. label = "QSPI.U_BOOT_ENV";
  329. reg = <0x00110000 0x00010000>;
  330. };
  331. partition@4 {
  332. label = "QSPI.U-BOOT-ENV.backup";
  333. reg = <0x00120000 0x00010000>;
  334. };
  335. partition@5 {
  336. label = "QSPI.KERNEL";
  337. reg = <0x00130000 0x0800000>;
  338. };
  339. partition@6 {
  340. label = "QSPI.FILESYSTEM";
  341. reg = <0x00930000 0x36D0000>;
  342. };
  343. };
  344. };
  345. &mac {
  346. pinctrl-names = "default", "sleep";
  347. pinctrl-0 = <&cpsw_default>;
  348. pinctrl-1 = <&cpsw_sleep>;
  349. status = "okay";
  350. };
  351. &davinci_mdio {
  352. pinctrl-names = "default", "sleep";
  353. pinctrl-0 = <&davinci_mdio_default>;
  354. pinctrl-1 = <&davinci_mdio_sleep>;
  355. status = "okay";
  356. };
  357. &cpsw_emac0 {
  358. phy_id = <&davinci_mdio>, <0>;
  359. phy-mode = "rgmii";
  360. };
  361. &rtc {
  362. clocks = <&clk_32k_rtc>, <&clk_32768_ck>;
  363. clock-names = "ext-clk", "int-clk";
  364. status = "okay";
  365. };
  366. &wdt {
  367. status = "okay";
  368. };
  369. &cpu {
  370. cpu0-supply = <&tps>;
  371. };