am335x-moxa-uc-8100-common.dtsi 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (C) 2020 MOXA Inc. - https://www.moxa.com/
  4. *
  5. * Author: Johnson Chen <[email protected]>
  6. */
  7. #include "am33xx.dtsi"
  8. / {
  9. cpus {
  10. cpu@0 {
  11. cpu0-supply = <&vdd1_reg>;
  12. };
  13. };
  14. vbat: vbat-regulator {
  15. compatible = "regulator-fixed";
  16. };
  17. /* Power supply provides a fixed 3.3V @3A */
  18. vmmcsd_fixed: vmmcsd-regulator {
  19. compatible = "regulator-fixed";
  20. regulator-name = "vmmcsd_fixed";
  21. regulator-min-microvolt = <3300000>;
  22. regulator-max-microvolt = <3300000>;
  23. regulator-boot-on;
  24. };
  25. buttons: push_button {
  26. compatible = "gpio-keys";
  27. };
  28. };
  29. &am33xx_pinmux {
  30. pinctrl-names = "default";
  31. pinctrl-0 = <&minipcie_pins>;
  32. minipcie_pins: pinmux_minipcie {
  33. pinctrl-single,pins = <
  34. AM33XX_PADCONF(AM335X_PIN_LCD_PCLK, PIN_INPUT_PULLDOWN, MUX_MODE7) /* lcd_pclk.gpio2_24 */
  35. AM33XX_PADCONF(AM335X_PIN_LCD_AC_BIAS_EN, PIN_INPUT_PULLDOWN, MUX_MODE7) /* lcd_ac_bias_en.gpio2_25 */
  36. AM33XX_PADCONF(AM335X_PIN_LCD_VSYNC, PIN_INPUT_PULLDOWN, MUX_MODE7) /* lcd_vsync.gpio2_22 Power off PIN*/
  37. >;
  38. };
  39. push_button_pins: pinmux_push_button {
  40. pinctrl-single,pins = <
  41. AM33XX_PADCONF(AM335X_PIN_MCASP0_AHCLKX, PIN_INPUT_PULLDOWN, MUX_MODE7) /* mcasp0_ahcklx.gpio3_21 */
  42. >;
  43. };
  44. i2c0_pins: pinmux_i2c0_pins {
  45. pinctrl-single,pins = <
  46. AM33XX_PADCONF(AM335X_PIN_I2C0_SDA, PIN_INPUT_PULLUP, MUX_MODE0)
  47. AM33XX_PADCONF(AM335X_PIN_I2C0_SCL, PIN_INPUT_PULLUP, MUX_MODE0)
  48. >;
  49. };
  50. i2c1_pins: pinmux_i2c1_pins {
  51. pinctrl-single,pins = <
  52. AM33XX_PADCONF(AM335X_PIN_UART0_CTSN, PIN_INPUT_PULLUP, MUX_MODE3) /* uart0_ctsn.i2c1_sda */
  53. AM33XX_PADCONF(AM335X_PIN_UART0_RTSN, PIN_INPUT_PULLUP, MUX_MODE3) /* uart0_rtsn.i2c1_scl */
  54. >;
  55. };
  56. uart0_pins: pinmux_uart0_pins {
  57. pinctrl-single,pins = <
  58. AM33XX_PADCONF(AM335X_PIN_UART0_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
  59. AM33XX_PADCONF(AM335X_PIN_UART0_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
  60. >;
  61. };
  62. uart1_pins: pinmux_uart1_pins {
  63. pinctrl-single,pins = <
  64. AM33XX_PADCONF(AM335X_PIN_UART1_CTSN, PIN_INPUT, MUX_MODE0)
  65. AM33XX_PADCONF(AM335X_PIN_UART1_RTSN, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
  66. AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
  67. AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_OUTPUT, MUX_MODE0)
  68. >;
  69. };
  70. uart2_pins: pinmux_uart2_pins {
  71. pinctrl-single,pins = <
  72. AM33XX_PADCONF(AM335X_PIN_LCD_DATA14, PIN_INPUT, MUX_MODE6) /* lcd_data14.uart5_ctsn */
  73. AM33XX_PADCONF(AM335X_PIN_LCD_DATA15, PIN_OUTPUT_PULLDOWN, MUX_MODE6) /* lcd_data15.uart5_rtsn */
  74. AM33XX_PADCONF(AM335X_PIN_LCD_DATA9, PIN_INPUT_PULLUP, MUX_MODE4) /* lcd_data9.uart5_rxd */
  75. AM33XX_PADCONF(AM335X_PIN_LCD_DATA8, PIN_OUTPUT, MUX_MODE4) /* lcd_data8.uart5_txd */
  76. >;
  77. };
  78. cpsw_default: cpsw_default {
  79. pinctrl-single,pins = <
  80. /* Slave 1 */
  81. AM33XX_PADCONF(AM335X_PIN_MII1_CRS, PIN_INPUT_PULLDOWN, MUX_MODE1)
  82. AM33XX_PADCONF(AM335X_PIN_MII1_RX_ER, PIN_INPUT_PULLUP, MUX_MODE1)
  83. AM33XX_PADCONF(AM335X_PIN_MII1_TX_EN, PIN_OUTPUT_PULLDOWN, MUX_MODE1)
  84. AM33XX_PADCONF(AM335X_PIN_MII1_TXD1, PIN_OUTPUT_PULLDOWN, MUX_MODE1)
  85. AM33XX_PADCONF(AM335X_PIN_MII1_TXD0, PIN_OUTPUT_PULLDOWN, MUX_MODE1)
  86. AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_INPUT_PULLUP, MUX_MODE1)
  87. AM33XX_PADCONF(AM335X_PIN_MII1_RXD0, PIN_INPUT_PULLUP, MUX_MODE1)
  88. AM33XX_PADCONF(AM335X_PIN_RMII1_REF_CLK, PIN_INPUT_PULLDOWN, MUX_MODE0)
  89. /* Slave 2 */
  90. AM33XX_PADCONF(AM335X_PIN_GPMC_WAIT0, PIN_INPUT_PULLDOWN, MUX_MODE3) /* rmii2_crs_dv */
  91. AM33XX_PADCONF(AM335X_PIN_GPMC_WPN, PIN_INPUT_PULLDOWN, MUX_MODE3) /* rmii2_rxer */
  92. AM33XX_PADCONF(AM335X_PIN_GPMC_A0, PIN_OUTPUT_PULLDOWN, MUX_MODE3) /* rmii2_txen */
  93. AM33XX_PADCONF(AM335X_PIN_GPMC_A4, PIN_OUTPUT_PULLDOWN, MUX_MODE3) /* rmii2_td1 */
  94. AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_OUTPUT_PULLDOWN, MUX_MODE3) /* rmii2_td0 */
  95. AM33XX_PADCONF(AM335X_PIN_GPMC_A10, PIN_INPUT_PULLDOWN, MUX_MODE3) /* rmii2_rd1 */
  96. AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_INPUT_PULLDOWN, MUX_MODE3) /* rmii2_rd0 */
  97. AM33XX_PADCONF(AM335X_PIN_MII1_COL, PIN_INPUT_PULLDOWN, MUX_MODE1) /* rmii2_refclk */
  98. >;
  99. };
  100. davinci_mdio_default: davinci_mdio_default {
  101. pinctrl-single,pins = <
  102. /* MDIO */
  103. AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT_PULLUP | SLEWCTRL_FAST, MUX_MODE0)
  104. AM33XX_PADCONF(AM335X_PIN_MDC, PIN_OUTPUT_PULLUP, MUX_MODE0)
  105. >;
  106. };
  107. mmc0_pins_default: pinmux_mmc0_pins {
  108. pinctrl-single,pins = <
  109. AM33XX_PADCONF(AM335X_PIN_MMC0_DAT3, PIN_INPUT_PULLUP, MUX_MODE0)
  110. AM33XX_PADCONF(AM335X_PIN_MMC0_DAT2, PIN_INPUT_PULLUP, MUX_MODE0)
  111. AM33XX_PADCONF(AM335X_PIN_MMC0_DAT1, PIN_INPUT_PULLUP, MUX_MODE0)
  112. AM33XX_PADCONF(AM335X_PIN_MMC0_DAT0, PIN_INPUT_PULLUP, MUX_MODE0)
  113. AM33XX_PADCONF(AM335X_PIN_MMC0_CLK, PIN_INPUT_PULLUP, MUX_MODE0)
  114. AM33XX_PADCONF(AM335X_PIN_MMC0_CMD, PIN_INPUT_PULLUP, MUX_MODE0)
  115. AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKX, PIN_INPUT_PULLUP, MUX_MODE7) /* mcasp0_aclkx.gpio3_14 */
  116. AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKR, PIN_INPUT_PULLUP, MUX_MODE7) /* mcasp0_aclkx.gpio3_18 */
  117. >;
  118. };
  119. mmc2_pins_default: pinmux_mmc2_pins {
  120. pinctrl-single,pins = <
  121. /* eMMC */
  122. AM33XX_PADCONF(AM335X_PIN_GPMC_AD12, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad12.mmc2_dat0 */
  123. AM33XX_PADCONF(AM335X_PIN_GPMC_AD13, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad13.mmc2_dat1 */
  124. AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad14.mmc2_dat2 */
  125. AM33XX_PADCONF(AM335X_PIN_GPMC_AD15, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad15.mmc2_dat3 */
  126. AM33XX_PADCONF(AM335X_PIN_GPMC_AD8, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad8.mmc2_dat4 */
  127. AM33XX_PADCONF(AM335X_PIN_GPMC_AD9, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad9.mmc2_dat5 */
  128. AM33XX_PADCONF(AM335X_PIN_GPMC_AD10, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad10.mmc2_dat6 */
  129. AM33XX_PADCONF(AM335X_PIN_GPMC_AD11, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad11.mmc2_dat7 */
  130. AM33XX_PADCONF(AM335X_PIN_GPMC_CSN3, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_csn3.mmc2_cmd */
  131. AM33XX_PADCONF(AM335X_PIN_GPMC_CLK, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_clk.mmc2_clk */
  132. >;
  133. };
  134. spi0_pins: pinmux_spi0 {
  135. pinctrl-single,pins = <
  136. AM33XX_PADCONF(AM335X_PIN_SPI0_SCLK, PIN_INPUT_PULLUP, MUX_MODE0)
  137. AM33XX_PADCONF(AM335X_PIN_SPI0_CS0, PIN_INPUT_PULLUP, MUX_MODE0)
  138. AM33XX_PADCONF(AM335X_PIN_SPI0_D0, PIN_INPUT_PULLUP, MUX_MODE0)
  139. AM33XX_PADCONF(AM335X_PIN_SPI0_D1, PIN_INPUT_PULLUP, MUX_MODE0)
  140. >;
  141. };
  142. };
  143. &uart0 {
  144. /* Console */
  145. status = "okay";
  146. pinctrl-names = "default";
  147. pinctrl-0 = <&uart0_pins>;
  148. };
  149. &uart1 {
  150. /* UART 1 setting */
  151. status = "okay";
  152. pinctrl-names = "default";
  153. pinctrl-0 = <&uart1_pins>;
  154. };
  155. &uart5 {
  156. /* UART 2 setting */
  157. status = "okay";
  158. pinctrl-names = "default";
  159. pinctrl-0 = <&uart2_pins>;
  160. };
  161. &i2c0 {
  162. pinctrl-names = "default";
  163. pinctrl-0 = <&i2c0_pins>;
  164. status = "okay";
  165. clock-frequency = <400000>;
  166. tps: tps@2d {
  167. compatible = "ti,tps65910";
  168. reg = <0x2d>;
  169. };
  170. eeprom: eeprom@50 {
  171. compatible = "atmel,24c16";
  172. pagesize = <16>;
  173. reg = <0x50>;
  174. };
  175. rtc_wdt: rtc_wdt@68 {
  176. compatible = "dallas,ds1374";
  177. reg = <0x68>;
  178. };
  179. };
  180. &i2c1 {
  181. pinctrl-names = "default";
  182. pinctrl-0 = <&i2c1_pins>;
  183. status = "okay";
  184. clock-frequency = <400000>;
  185. gpio_xten: gpio_xten@27 {
  186. compatible = "nxp,pca9535";
  187. gpio-controller;
  188. #gpio-cells = <2>;
  189. reg = <0x27>;
  190. };
  191. };
  192. &usb0 {
  193. dr_mode = "host";
  194. };
  195. &usb1 {
  196. dr_mode = "host";
  197. };
  198. #include "tps65910.dtsi"
  199. &tps {
  200. vcc1-supply = <&vbat>;
  201. vcc2-supply = <&vbat>;
  202. vcc3-supply = <&vbat>;
  203. vcc4-supply = <&vbat>;
  204. vcc5-supply = <&vbat>;
  205. vcc6-supply = <&vbat>;
  206. vcc7-supply = <&vbat>;
  207. vccio-supply = <&vbat>;
  208. regulators {
  209. vrtc_reg: regulator@0 {
  210. regulator-always-on;
  211. };
  212. vio_reg: regulator@1 {
  213. regulator-always-on;
  214. };
  215. vdd1_reg: regulator@2 {
  216. regulator-always-on;
  217. };
  218. vdd2_reg: regulator@3 {
  219. regulator-always-on;
  220. };
  221. vdd3_reg: regulator@4 {
  222. regulator-always-on;
  223. };
  224. vdig1_reg: regulator@5 {
  225. regulator-always-on;
  226. };
  227. vdig2_reg: regulator@6 {
  228. regulator-always-on;
  229. };
  230. vpll_reg: regulator@7 {
  231. regulator-always-on;
  232. };
  233. vdac_reg: regulator@8 {
  234. regulator-always-on;
  235. };
  236. vaux1_reg: regulator@9 {
  237. regulator-always-on;
  238. };
  239. vaux2_reg: regulator@10 {
  240. regulator-always-on;
  241. };
  242. vaux33_reg: regulator@11 {
  243. regulator-always-on;
  244. };
  245. vmmc_reg: regulator@12 {
  246. compatible = "regulator-fixed";
  247. regulator-name = "vmmc_reg";
  248. regulator-min-microvolt = <3300000>;
  249. regulator-max-microvolt = <3300000>;
  250. regulator-always-on;
  251. };
  252. };
  253. };
  254. /* Power */
  255. &vbat {
  256. regulator-name = "vbat";
  257. regulator-min-microvolt = <5000000>;
  258. regulator-max-microvolt = <5000000>;
  259. };
  260. &mac_sw {
  261. pinctrl-names = "default";
  262. pinctrl-0 = <&cpsw_default>;
  263. status = "okay";
  264. };
  265. &davinci_mdio_sw {
  266. pinctrl-names = "default";
  267. pinctrl-0 = <&davinci_mdio_default>;
  268. ethphy0: ethernet-phy@4 {
  269. reg = <4>;
  270. };
  271. ethphy1: ethernet-phy@5 {
  272. reg = <5>;
  273. };
  274. };
  275. &cpsw_port1 {
  276. phy-handle = <&ethphy0>;
  277. phy-mode = "rmii";
  278. ti,dual-emac-pvid = <1>;
  279. };
  280. &cpsw_port2 {
  281. phy-handle = <&ethphy1>;
  282. phy-mode = "rmii";
  283. ti,dual-emac-pvid = <2>;
  284. };
  285. &sham {
  286. status = "okay";
  287. };
  288. &aes {
  289. status = "okay";
  290. };
  291. &gpio0_target {
  292. ti,no-reset-on-init;
  293. };
  294. &mmc1 {
  295. pinctrl-names = "default";
  296. vmmc-supply = <&vmmcsd_fixed>;
  297. bus-width = <4>;
  298. pinctrl-0 = <&mmc0_pins_default>;
  299. cd-gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
  300. wp-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;
  301. status = "okay";
  302. };
  303. &mmc3 {
  304. dmas = <&edma_xbar 12 0 1
  305. &edma_xbar 13 0 2>;
  306. dma-names = "tx", "rx";
  307. pinctrl-names = "default";
  308. vmmc-supply = <&vmmcsd_fixed>;
  309. bus-width = <8>;
  310. pinctrl-0 = <&mmc2_pins_default>;
  311. ti,non-removable;
  312. status = "okay";
  313. };
  314. &buttons {
  315. pinctrl-names = "default";
  316. pinctrl-0 = <&push_button_pins>;
  317. button-0 {
  318. label = "push_button";
  319. linux,code = <0x100>;
  320. gpios = <&gpio3 21 GPIO_ACTIVE_LOW>;
  321. };
  322. };
  323. /* SPI Busses */
  324. &spi0 {
  325. status = "okay";
  326. pinctrl-names = "default";
  327. pinctrl-0 = <&spi0_pins>;
  328. flash@0 {
  329. compatible = "mx25l6405d";
  330. spi-max-frequency = <40000000>;
  331. reg = <0>;
  332. spi-cpol;
  333. spi-cpha;
  334. #address-cells = <1>;
  335. #size-cells = <1>;
  336. /* reg : The partition's offset and size within the mtd bank. */
  337. partitions@0 {
  338. label = "MLO";
  339. reg = <0x0 0x80000>;
  340. };
  341. partitions@1 {
  342. label = "U-Boot";
  343. reg = <0x80000 0x100000>;
  344. };
  345. partitions@2 {
  346. label = "U-Boot Env";
  347. reg = <0x180000 0x20000>;
  348. };
  349. };
  350. };