am335x-icev2.dts 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (C) 2016 Texas Instruments Incorporated - https://www.ti.com/
  4. */
  5. /*
  6. * AM335x ICE V2 board
  7. * http://www.ti.com/tool/tmdsice3359
  8. */
  9. /dts-v1/;
  10. #include "am33xx.dtsi"
  11. / {
  12. model = "TI AM3359 ICE-V2";
  13. compatible = "ti,am3359-icev2", "ti,am33xx";
  14. memory@80000000 {
  15. device_type = "memory";
  16. reg = <0x80000000 0x10000000>; /* 256 MB */
  17. };
  18. chosen {
  19. stdout-path = &uart3;
  20. };
  21. vbat: fixedregulator0 {
  22. compatible = "regulator-fixed";
  23. regulator-name = "vbat";
  24. regulator-min-microvolt = <5000000>;
  25. regulator-max-microvolt = <5000000>;
  26. regulator-boot-on;
  27. };
  28. vtt_fixed: fixedregulator1 {
  29. compatible = "regulator-fixed";
  30. regulator-name = "vtt";
  31. regulator-min-microvolt = <1500000>;
  32. regulator-max-microvolt = <1500000>;
  33. gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
  34. regulator-always-on;
  35. regulator-boot-on;
  36. enable-active-high;
  37. };
  38. leds-iio {
  39. status = "disabled";
  40. compatible = "gpio-leds";
  41. led-out0 {
  42. label = "out0";
  43. gpios = <&tpic2810 0 GPIO_ACTIVE_HIGH>;
  44. default-state = "off";
  45. };
  46. led-out1 {
  47. label = "out1";
  48. gpios = <&tpic2810 1 GPIO_ACTIVE_HIGH>;
  49. default-state = "off";
  50. };
  51. led-out2 {
  52. label = "out2";
  53. gpios = <&tpic2810 2 GPIO_ACTIVE_HIGH>;
  54. default-state = "off";
  55. };
  56. led-out3 {
  57. label = "out3";
  58. gpios = <&tpic2810 3 GPIO_ACTIVE_HIGH>;
  59. default-state = "off";
  60. };
  61. led-out4 {
  62. label = "out4";
  63. gpios = <&tpic2810 4 GPIO_ACTIVE_HIGH>;
  64. default-state = "off";
  65. };
  66. led-out5 {
  67. label = "out5";
  68. gpios = <&tpic2810 5 GPIO_ACTIVE_HIGH>;
  69. default-state = "off";
  70. };
  71. led-out6 {
  72. label = "out6";
  73. gpios = <&tpic2810 6 GPIO_ACTIVE_HIGH>;
  74. default-state = "off";
  75. };
  76. led-out7 {
  77. label = "out7";
  78. gpios = <&tpic2810 7 GPIO_ACTIVE_HIGH>;
  79. default-state = "off";
  80. };
  81. };
  82. /* Tricolor status LEDs */
  83. leds1 {
  84. compatible = "gpio-leds";
  85. pinctrl-names = "default";
  86. pinctrl-0 = <&user_leds>;
  87. led0 {
  88. label = "status0:red:cpu0";
  89. gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
  90. default-state = "off";
  91. linux,default-trigger = "cpu0";
  92. };
  93. led1 {
  94. label = "status0:green:usr";
  95. gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
  96. default-state = "off";
  97. };
  98. led2 {
  99. label = "status0:yellow:usr";
  100. gpios = <&gpio3 9 GPIO_ACTIVE_HIGH>;
  101. default-state = "off";
  102. };
  103. led3 {
  104. label = "status1:red:mmc0";
  105. gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
  106. default-state = "off";
  107. linux,default-trigger = "mmc0";
  108. };
  109. led4 {
  110. label = "status1:green:usr";
  111. gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
  112. default-state = "off";
  113. };
  114. led5 {
  115. label = "status1:yellow:usr";
  116. gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
  117. default-state = "off";
  118. };
  119. };
  120. gpio-decoder {
  121. compatible = "gpio-decoder";
  122. gpios = <&pca9536 3 GPIO_ACTIVE_HIGH>,
  123. <&pca9536 2 GPIO_ACTIVE_HIGH>,
  124. <&pca9536 1 GPIO_ACTIVE_HIGH>,
  125. <&pca9536 0 GPIO_ACTIVE_HIGH>;
  126. linux,axis = <0>; /* ABS_X */
  127. decoder-max-value = <9>;
  128. };
  129. };
  130. &am33xx_pinmux {
  131. user_leds: user_leds {
  132. pinctrl-single,pins = <
  133. AM33XX_PADCONF(AM335X_PIN_MII1_TXD3, PIN_OUTPUT, MUX_MODE7) /* (J18) gmii1_txd3.gpio0[16] */
  134. AM33XX_PADCONF(AM335X_PIN_MII1_TXD2, PIN_OUTPUT, MUX_MODE7) /* (K15) gmii1_txd2.gpio0[17] */
  135. AM33XX_PADCONF(AM335X_PIN_XDMA_EVENT_INTR0, PIN_OUTPUT, MUX_MODE7) /* (A15) xdma_event_intr0.gpio0[19] */
  136. AM33XX_PADCONF(AM335X_PIN_XDMA_EVENT_INTR1, PIN_OUTPUT, MUX_MODE7) /* (D14) xdma_event_intr1.gpio0[20] */
  137. AM33XX_PADCONF(AM335X_PIN_GPMC_CSN1, PIN_OUTPUT, MUX_MODE7) /* (U9) gpmc_csn1.gpio1[30] */
  138. AM33XX_PADCONF(AM335X_PIN_MII1_TX_CLK, PIN_OUTPUT, MUX_MODE7) /* (K18) gmii1_txclk.gpio3[9] */
  139. >;
  140. };
  141. mmc0_pins_default: mmc0_pins_default {
  142. pinctrl-single,pins = <
  143. AM33XX_PADCONF(AM335X_PIN_MMC0_DAT3, PIN_INPUT_PULLUP, MUX_MODE0)
  144. AM33XX_PADCONF(AM335X_PIN_MMC0_DAT2, PIN_INPUT_PULLUP, MUX_MODE0)
  145. AM33XX_PADCONF(AM335X_PIN_MMC0_DAT1, PIN_INPUT_PULLUP, MUX_MODE0)
  146. AM33XX_PADCONF(AM335X_PIN_MMC0_DAT0, PIN_INPUT_PULLUP, MUX_MODE0)
  147. AM33XX_PADCONF(AM335X_PIN_MMC0_CLK, PIN_INPUT_PULLUP, MUX_MODE0)
  148. AM33XX_PADCONF(AM335X_PIN_MMC0_CMD, PIN_INPUT_PULLUP, MUX_MODE0)
  149. >;
  150. };
  151. i2c0_pins_default: i2c0_pins_default {
  152. pinctrl-single,pins = <
  153. AM33XX_PADCONF(AM335X_PIN_I2C0_SDA, PIN_INPUT, MUX_MODE0)
  154. AM33XX_PADCONF(AM335X_PIN_I2C0_SCL, PIN_INPUT, MUX_MODE0)
  155. >;
  156. };
  157. spi0_pins_default: spi0_pins_default {
  158. pinctrl-single,pins = <
  159. AM33XX_PADCONF(AM335X_PIN_SPI0_SCLK, PIN_INPUT_PULLUP, MUX_MODE0)
  160. AM33XX_PADCONF(AM335X_PIN_SPI0_D0, PIN_INPUT_PULLUP, MUX_MODE0)
  161. AM33XX_PADCONF(AM335X_PIN_SPI0_D1, PIN_INPUT_PULLUP, MUX_MODE0)
  162. AM33XX_PADCONF(AM335X_PIN_SPI0_CS0, PIN_INPUT_PULLUP, MUX_MODE0)
  163. AM33XX_PADCONF(AM335X_PIN_SPI0_CS1, PIN_INPUT_PULLUP, MUX_MODE0)
  164. AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKR, PIN_INPUT_PULLUP, MUX_MODE7) /* (B12) mcasp0_aclkr.gpio3[18] */
  165. >;
  166. };
  167. uart3_pins_default: uart3_pins_default {
  168. pinctrl-single,pins = <
  169. AM33XX_PADCONF(AM335X_PIN_MII1_RXD3, PIN_INPUT_PULLUP, MUX_MODE1) /* (L17) gmii1_rxd3.uart3_rxd */
  170. AM33XX_PADCONF(AM335X_PIN_MII1_RXD2, PIN_OUTPUT_PULLUP, MUX_MODE1) /* (L16) gmii1_rxd2.uart3_txd */
  171. >;
  172. };
  173. cpsw_default: cpsw_default {
  174. pinctrl-single,pins = <
  175. /* Slave 1, RMII mode */
  176. AM33XX_PADCONF(AM335X_PIN_MII1_CRS, PIN_INPUT_PULLUP, MUX_MODE1) /* mii1_crs.rmii1_crs_dv */
  177. AM33XX_PADCONF(AM335X_PIN_RMII1_REF_CLK, PIN_INPUT_PULLUP, MUX_MODE0)
  178. AM33XX_PADCONF(AM335X_PIN_MII1_RXD0, PIN_INPUT_PULLUP, MUX_MODE1)
  179. AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_INPUT_PULLUP, MUX_MODE1)
  180. AM33XX_PADCONF(AM335X_PIN_MII1_RX_ER, PIN_INPUT_PULLUP, MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */
  181. AM33XX_PADCONF(AM335X_PIN_MII1_TXD0, PIN_OUTPUT_PULLDOWN, MUX_MODE1) /* mii1_txd0.rmii1_txd0 */
  182. AM33XX_PADCONF(AM335X_PIN_MII1_TXD1, PIN_OUTPUT_PULLDOWN, MUX_MODE1) /* mii1_txd1.rmii1_txd1 */
  183. AM33XX_PADCONF(AM335X_PIN_MII1_TX_EN, PIN_OUTPUT_PULLDOWN, MUX_MODE1) /* mii1_txen.rmii1_txen */
  184. /* Slave 2, RMII mode */
  185. AM33XX_PADCONF(AM335X_PIN_GPMC_WAIT0, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_wait0.rmii2_crs_dv */
  186. AM33XX_PADCONF(AM335X_PIN_MII1_COL, PIN_INPUT_PULLUP, MUX_MODE1) /* mii1_col.rmii2_refclk */
  187. AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_a11.rmii2_rxd0 */
  188. AM33XX_PADCONF(AM335X_PIN_GPMC_A10, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_a10.rmii2_rxd1 */
  189. AM33XX_PADCONF(AM335X_PIN_GPMC_WPN, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_wpn.rmii2_rxerr */
  190. AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_OUTPUT_PULLDOWN, MUX_MODE3) /* gpmc_a5.rmii2_txd0 */
  191. AM33XX_PADCONF(AM335X_PIN_GPMC_A4, PIN_OUTPUT_PULLDOWN, MUX_MODE3) /* gpmc_a4.rmii2_txd1 */
  192. AM33XX_PADCONF(AM335X_PIN_GPMC_A0, PIN_OUTPUT_PULLDOWN, MUX_MODE3) /* gpmc_a0.rmii2_txen */
  193. >;
  194. };
  195. cpsw_sleep: cpsw_sleep {
  196. pinctrl-single,pins = <
  197. /* Slave 1 reset value */
  198. AM33XX_PADCONF(AM335X_PIN_MII1_CRS, PIN_INPUT_PULLDOWN, MUX_MODE7)
  199. AM33XX_PADCONF(AM335X_PIN_RMII1_REF_CLK, PIN_INPUT_PULLDOWN, MUX_MODE7)
  200. AM33XX_PADCONF(AM335X_PIN_MII1_RXD0, PIN_INPUT_PULLDOWN, MUX_MODE7)
  201. AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_INPUT_PULLDOWN, MUX_MODE7)
  202. AM33XX_PADCONF(AM335X_PIN_MII1_RX_ER, PIN_INPUT_PULLDOWN, MUX_MODE7)
  203. AM33XX_PADCONF(AM335X_PIN_MII1_TXD0, PIN_INPUT_PULLDOWN, MUX_MODE7)
  204. AM33XX_PADCONF(AM335X_PIN_MII1_TXD1, PIN_INPUT_PULLDOWN, MUX_MODE7)
  205. AM33XX_PADCONF(AM335X_PIN_MII1_TX_EN, PIN_INPUT_PULLDOWN, MUX_MODE7)
  206. /* Slave 2 reset value */
  207. AM33XX_PADCONF(AM335X_PIN_GPMC_WAIT0, PIN_INPUT_PULLDOWN, MUX_MODE7)
  208. AM33XX_PADCONF(AM335X_PIN_MII1_COL, PIN_INPUT_PULLDOWN, MUX_MODE7)
  209. AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_INPUT_PULLDOWN, MUX_MODE7)
  210. AM33XX_PADCONF(AM335X_PIN_GPMC_A10, PIN_INPUT_PULLDOWN, MUX_MODE7)
  211. AM33XX_PADCONF(AM335X_PIN_GPMC_WPN, PIN_INPUT_PULLDOWN, MUX_MODE7)
  212. AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_INPUT_PULLDOWN, MUX_MODE7)
  213. AM33XX_PADCONF(AM335X_PIN_GPMC_A4, PIN_INPUT_PULLDOWN, MUX_MODE7)
  214. AM33XX_PADCONF(AM335X_PIN_GPMC_A0, PIN_INPUT_PULLDOWN, MUX_MODE7)
  215. >;
  216. };
  217. davinci_mdio_default: davinci_mdio_default {
  218. pinctrl-single,pins = <
  219. /* MDIO */
  220. AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT_PULLUP | SLEWCTRL_FAST, MUX_MODE0)
  221. AM33XX_PADCONF(AM335X_PIN_MDC, PIN_OUTPUT_PULLUP, MUX_MODE0)
  222. >;
  223. };
  224. davinci_mdio_sleep: davinci_mdio_sleep {
  225. pinctrl-single,pins = <
  226. /* MDIO reset value */
  227. AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT_PULLDOWN, MUX_MODE7)
  228. AM33XX_PADCONF(AM335X_PIN_MDC, PIN_INPUT_PULLDOWN, MUX_MODE7)
  229. >;
  230. };
  231. };
  232. &i2c0 {
  233. pinctrl-names = "default";
  234. pinctrl-0 = <&i2c0_pins_default>;
  235. status = "okay";
  236. clock-frequency = <400000>;
  237. tps: power-controller@2d {
  238. reg = <0x2d>;
  239. };
  240. tpic2810: gpio@60 {
  241. compatible = "ti,tpic2810";
  242. reg = <0x60>;
  243. gpio-controller;
  244. #gpio-cells = <2>;
  245. };
  246. pca9536: gpio@41 {
  247. compatible = "ti,pca9536";
  248. reg = <0x41>;
  249. gpio-controller;
  250. #gpio-cells = <2>;
  251. };
  252. /* osd9616p0899-10 */
  253. display@3c {
  254. compatible = "solomon,ssd1306fb-i2c";
  255. reg = <0x3c>;
  256. solomon,height = <16>;
  257. solomon,width = <96>;
  258. solomon,com-seq;
  259. solomon,com-invdir;
  260. solomon,page-offset = <0>;
  261. solomon,prechargep1 = <2>;
  262. solomon,prechargep2 = <13>;
  263. };
  264. };
  265. &spi0 {
  266. status = "okay";
  267. pinctrl-names = "default";
  268. pinctrl-0 = <&spi0_pins_default>;
  269. sn65hvs882@1 {
  270. compatible = "pisosr-gpio";
  271. gpio-controller;
  272. #gpio-cells = <2>;
  273. load-gpios = <&gpio3 18 GPIO_ACTIVE_LOW>;
  274. reg = <1>;
  275. spi-max-frequency = <1000000>;
  276. spi-cpol;
  277. };
  278. spi_nor: flash@0 {
  279. #address-cells = <1>;
  280. #size-cells = <1>;
  281. compatible = "winbond,w25q64", "jedec,spi-nor";
  282. spi-max-frequency = <80000000>;
  283. m25p,fast-read;
  284. reg = <0>;
  285. partition@0 {
  286. label = "u-boot-spl";
  287. reg = <0x0 0x80000>;
  288. read-only;
  289. };
  290. partition@1 {
  291. label = "u-boot";
  292. reg = <0x80000 0x100000>;
  293. read-only;
  294. };
  295. partition@2 {
  296. label = "u-boot-env";
  297. reg = <0x180000 0x20000>;
  298. read-only;
  299. };
  300. partition@3 {
  301. label = "misc";
  302. reg = <0x1A0000 0x660000>;
  303. };
  304. };
  305. };
  306. &tscadc {
  307. status = "okay";
  308. adc {
  309. ti,adc-channels = <1 2 3 4 5 6 7>;
  310. };
  311. };
  312. #include "tps65910.dtsi"
  313. &tps {
  314. vcc1-supply = <&vbat>;
  315. vcc2-supply = <&vbat>;
  316. vcc3-supply = <&vbat>;
  317. vcc4-supply = <&vbat>;
  318. vcc5-supply = <&vbat>;
  319. vcc6-supply = <&vbat>;
  320. vcc7-supply = <&vbat>;
  321. vccio-supply = <&vbat>;
  322. regulators {
  323. vrtc_reg: regulator@0 {
  324. regulator-always-on;
  325. };
  326. vio_reg: regulator@1 {
  327. regulator-always-on;
  328. };
  329. vdd1_reg: regulator@2 {
  330. regulator-name = "vdd_mpu";
  331. regulator-min-microvolt = <912500>;
  332. regulator-max-microvolt = <1326000>;
  333. regulator-boot-on;
  334. regulator-always-on;
  335. };
  336. vdd2_reg: regulator@3 {
  337. regulator-name = "vdd_core";
  338. regulator-min-microvolt = <912500>;
  339. regulator-max-microvolt = <1144000>;
  340. regulator-boot-on;
  341. regulator-always-on;
  342. };
  343. vdd3_reg: regulator@4 {
  344. regulator-always-on;
  345. };
  346. vdig1_reg: regulator@5 {
  347. regulator-always-on;
  348. };
  349. vdig2_reg: regulator@6 {
  350. regulator-always-on;
  351. };
  352. vpll_reg: regulator@7 {
  353. regulator-always-on;
  354. };
  355. vdac_reg: regulator@8 {
  356. regulator-always-on;
  357. };
  358. vaux1_reg: regulator@9 {
  359. regulator-always-on;
  360. };
  361. vaux2_reg: regulator@10 {
  362. regulator-always-on;
  363. };
  364. vaux33_reg: regulator@11 {
  365. regulator-always-on;
  366. };
  367. vmmc_reg: regulator@12 {
  368. regulator-min-microvolt = <1800000>;
  369. regulator-max-microvolt = <3300000>;
  370. regulator-always-on;
  371. };
  372. };
  373. };
  374. &mmc1 {
  375. status = "okay";
  376. vmmc-supply = <&vmmc_reg>;
  377. bus-width = <4>;
  378. pinctrl-names = "default";
  379. pinctrl-0 = <&mmc0_pins_default>;
  380. };
  381. &gpio0_target {
  382. /* Do not idle the GPIO used for holding the VTT regulator */
  383. ti,no-reset-on-init;
  384. ti,no-idle-on-init;
  385. };
  386. &uart3 {
  387. pinctrl-names = "default";
  388. pinctrl-0 = <&uart3_pins_default>;
  389. status = "okay";
  390. };
  391. &gpio3 {
  392. pr1-mii-ctl-hog {
  393. gpio-hog;
  394. gpios = <4 GPIO_ACTIVE_HIGH>;
  395. output-high;
  396. line-name = "PR1_MII_CTRL";
  397. };
  398. mux-mii-hog {
  399. gpio-hog;
  400. gpios = <10 GPIO_ACTIVE_HIGH>;
  401. /* ETH1 mux: Low for MII-PRU, high for RMII-CPSW */
  402. output-high;
  403. line-name = "MUX_MII_CTL1";
  404. };
  405. };
  406. &cpsw_port1 {
  407. phy-handle = <&ethphy0>;
  408. phy-mode = "rmii";
  409. ti,dual-emac-pvid = <1>;
  410. };
  411. &cpsw_port2 {
  412. phy-handle = <&ethphy1>;
  413. phy-mode = "rmii";
  414. ti,dual-emac-pvid = <2>;
  415. };
  416. &mac_sw {
  417. pinctrl-names = "default", "sleep";
  418. pinctrl-0 = <&cpsw_default>;
  419. pinctrl-1 = <&cpsw_sleep>;
  420. status = "okay";
  421. };
  422. &davinci_mdio_sw {
  423. pinctrl-names = "default", "sleep";
  424. pinctrl-0 = <&davinci_mdio_default>;
  425. pinctrl-1 = <&davinci_mdio_sleep>;
  426. reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
  427. reset-delay-us = <2>; /* PHY datasheet states 1uS min */
  428. ethphy0: ethernet-phy@1 {
  429. reg = <1>;
  430. };
  431. ethphy1: ethernet-phy@3 {
  432. reg = <3>;
  433. };
  434. };
  435. &pruss_tm {
  436. status = "okay";
  437. };
  438. &rtc {
  439. system-power-controller;
  440. };