imx8mm-kontron-bl.dts 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  1. // SPDX-License-Identifier: GPL-2.0+ OR MIT
  2. /*
  3. * Copyright (C) 2019 Kontron Electronics GmbH
  4. */
  5. /dts-v1/;
  6. #include "imx8mm-kontron-sl.dtsi"
  7. / {
  8. model = "Kontron BL i.MX8MM (N801X S)";
  9. compatible = "kontron,imx8mm-bl", "kontron,imx8mm-sl", "fsl,imx8mm";
  10. aliases {
  11. ethernet1 = &usbnet;
  12. };
  13. /* fixed crystal dedicated to mcp2515 */
  14. osc_can: clock-osc-can {
  15. compatible = "fixed-clock";
  16. #clock-cells = <0>;
  17. clock-frequency = <16000000>;
  18. clock-output-names = "osc-can";
  19. };
  20. leds {
  21. compatible = "gpio-leds";
  22. pinctrl-names = "default";
  23. pinctrl-0 = <&pinctrl_gpio_led>;
  24. led1 {
  25. label = "led1";
  26. gpios = <&gpio4 17 GPIO_ACTIVE_LOW>;
  27. linux,default-trigger = "heartbeat";
  28. };
  29. led2 {
  30. label = "led2";
  31. gpios = <&gpio4 19 GPIO_ACTIVE_LOW>;
  32. };
  33. led3 {
  34. label = "led3";
  35. gpios = <&gpio4 18 GPIO_ACTIVE_LOW>;
  36. };
  37. led4 {
  38. label = "led4";
  39. gpios = <&gpio4 8 GPIO_ACTIVE_LOW>;
  40. };
  41. led5 {
  42. label = "led5";
  43. gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;
  44. };
  45. led6 {
  46. label = "led6";
  47. gpios = <&gpio4 7 GPIO_ACTIVE_LOW>;
  48. };
  49. };
  50. pwm-beeper {
  51. compatible = "pwm-beeper";
  52. pwms = <&pwm2 0 5000 0>;
  53. };
  54. reg_rst_eth2: regulator-rst-eth2 {
  55. compatible = "regulator-fixed";
  56. regulator-name = "rst-usb-eth2";
  57. pinctrl-names = "default";
  58. pinctrl-0 = <&pinctrl_usb_eth2>;
  59. gpio = <&gpio3 2 GPIO_ACTIVE_HIGH>;
  60. enable-active-high;
  61. regulator-always-on;
  62. };
  63. reg_vdd_5v: regulator-5v {
  64. compatible = "regulator-fixed";
  65. regulator-name = "vdd-5v";
  66. regulator-min-microvolt = <5000000>;
  67. regulator-max-microvolt = <5000000>;
  68. };
  69. };
  70. &ecspi2 {
  71. pinctrl-names = "default";
  72. pinctrl-0 = <&pinctrl_ecspi2>;
  73. cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
  74. status = "okay";
  75. can0: can@0 {
  76. compatible = "microchip,mcp2515";
  77. reg = <0>;
  78. pinctrl-names = "default";
  79. pinctrl-0 = <&pinctrl_can>;
  80. clocks = <&osc_can>;
  81. interrupt-parent = <&gpio4>;
  82. interrupts = <28 IRQ_TYPE_EDGE_FALLING>;
  83. spi-max-frequency = <10000000>;
  84. vdd-supply = <&reg_vdd_3v3>;
  85. xceiver-supply = <&reg_vdd_5v>;
  86. };
  87. };
  88. &ecspi3 {
  89. pinctrl-names = "default";
  90. pinctrl-0 = <&pinctrl_ecspi3>;
  91. cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>;
  92. status = "okay";
  93. };
  94. &fec1 {
  95. pinctrl-names = "default";
  96. pinctrl-0 = <&pinctrl_enet>;
  97. phy-connection-type = "rgmii-rxid";
  98. phy-handle = <&ethphy>;
  99. status = "okay";
  100. mdio {
  101. #address-cells = <1>;
  102. #size-cells = <0>;
  103. ethphy: ethernet-phy@0 {
  104. reg = <0>;
  105. reset-assert-us = <1>;
  106. reset-deassert-us = <15000>;
  107. reset-gpios = <&gpio4 27 GPIO_ACTIVE_LOW>;
  108. };
  109. };
  110. };
  111. &i2c4 {
  112. clock-frequency = <100000>;
  113. pinctrl-names = "default";
  114. pinctrl-0 = <&pinctrl_i2c4>;
  115. status = "okay";
  116. rtc@32 {
  117. compatible = "epson,rx8900";
  118. reg = <0x32>;
  119. };
  120. };
  121. &pwm2 {
  122. pinctrl-names = "default";
  123. pinctrl-0 = <&pinctrl_pwm2>;
  124. status = "okay";
  125. };
  126. &uart1 {
  127. pinctrl-names = "default";
  128. pinctrl-0 = <&pinctrl_uart1>;
  129. uart-has-rtscts;
  130. status = "okay";
  131. };
  132. &uart2 {
  133. pinctrl-names = "default";
  134. pinctrl-0 = <&pinctrl_uart2>;
  135. linux,rs485-enabled-at-boot-time;
  136. uart-has-rtscts;
  137. status = "okay";
  138. };
  139. &usbotg1 {
  140. dr_mode = "otg";
  141. over-current-active-low;
  142. status = "okay";
  143. };
  144. &usbotg2 {
  145. dr_mode = "host";
  146. disable-over-current;
  147. #address-cells = <1>;
  148. #size-cells = <0>;
  149. status = "okay";
  150. usb1@1 {
  151. compatible = "usb424,9514";
  152. reg = <1>;
  153. #address-cells = <1>;
  154. #size-cells = <0>;
  155. usbnet: ethernet@1 {
  156. compatible = "usb424,ec00";
  157. reg = <1>;
  158. local-mac-address = [ 00 00 00 00 00 00 ];
  159. };
  160. };
  161. };
  162. &usdhc2 {
  163. pinctrl-names = "default", "state_100mhz", "state_200mhz";
  164. pinctrl-0 = <&pinctrl_usdhc2>;
  165. pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
  166. pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
  167. vmmc-supply = <&reg_vdd_3v3>;
  168. vqmmc-supply = <&reg_nvcc_sd>;
  169. cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
  170. status = "okay";
  171. };
  172. &iomuxc {
  173. pinctrl-names = "default";
  174. pinctrl-0 = <&pinctrl_gpio>;
  175. pinctrl_can: cangrp {
  176. fsl,pins = <
  177. MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28 0x19
  178. >;
  179. };
  180. pinctrl_ecspi2: ecspi2grp {
  181. fsl,pins = <
  182. MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0x82
  183. MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0x82
  184. MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0x82
  185. MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0x19
  186. >;
  187. };
  188. pinctrl_ecspi3: ecspi3grp {
  189. fsl,pins = <
  190. MX8MM_IOMUXC_UART2_RXD_ECSPI3_MISO 0x82
  191. MX8MM_IOMUXC_UART1_TXD_ECSPI3_MOSI 0x82
  192. MX8MM_IOMUXC_UART1_RXD_ECSPI3_SCLK 0x82
  193. MX8MM_IOMUXC_UART2_TXD_GPIO5_IO25 0x19
  194. >;
  195. };
  196. pinctrl_enet: enetgrp {
  197. fsl,pins = <
  198. MX8MM_IOMUXC_ENET_MDC_ENET1_MDC 0x3
  199. MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO 0x3
  200. MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f
  201. MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f
  202. MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f
  203. MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f
  204. MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91
  205. MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91
  206. MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91
  207. MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91
  208. MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x1f
  209. MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91
  210. MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91
  211. MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f
  212. MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27 0x19 /* PHY RST */
  213. MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25 0x19 /* ETH IRQ */
  214. >;
  215. };
  216. pinctrl_gpio_led: gpioledgrp {
  217. fsl,pins = <
  218. MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16 0x19
  219. MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7 0x19
  220. MX8MM_IOMUXC_SAI1_RXD6_GPIO4_IO8 0x19
  221. MX8MM_IOMUXC_SAI1_RXD7_GPIO4_IO9 0x19
  222. MX8MM_IOMUXC_SAI1_TXD5_GPIO4_IO17 0x19
  223. MX8MM_IOMUXC_SAI1_TXD6_GPIO4_IO18 0x19
  224. MX8MM_IOMUXC_SAI1_TXD7_GPIO4_IO19 0x19
  225. >;
  226. };
  227. pinctrl_gpio: gpiogrp {
  228. fsl,pins = <
  229. MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x19
  230. MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x19
  231. MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x19
  232. MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x19
  233. MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x19
  234. MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8 0x19
  235. MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x19
  236. MX8MM_IOMUXC_SAI3_MCLK_GPIO5_IO2 0x19
  237. >;
  238. };
  239. pinctrl_i2c4: i2c4grp {
  240. fsl,pins = <
  241. MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL 0x400001c3
  242. MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA 0x400001c3
  243. >;
  244. };
  245. pinctrl_pwm2: pwm2grp {
  246. fsl,pins = <
  247. MX8MM_IOMUXC_SPDIF_RX_PWM2_OUT 0x19
  248. >;
  249. };
  250. pinctrl_uart1: uart1grp {
  251. fsl,pins = <
  252. MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX 0x140
  253. MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX 0x140
  254. MX8MM_IOMUXC_SAI2_RXD0_UART1_DCE_RTS_B 0x140
  255. MX8MM_IOMUXC_SAI2_TXFS_UART1_DCE_CTS_B 0x140
  256. >;
  257. };
  258. pinctrl_uart2: uart2grp {
  259. fsl,pins = <
  260. MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX 0x140
  261. MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX 0x140
  262. MX8MM_IOMUXC_SAI3_RXD_UART2_DCE_RTS_B 0x140
  263. MX8MM_IOMUXC_SAI3_RXC_UART2_DCE_CTS_B 0x140
  264. >;
  265. };
  266. pinctrl_usb_eth2: usbeth2grp {
  267. fsl,pins = <
  268. MX8MM_IOMUXC_NAND_CE1_B_GPIO3_IO2 0x19
  269. >;
  270. };
  271. pinctrl_usdhc2: usdhc2grp {
  272. fsl,pins = <
  273. MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x190
  274. MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0
  275. MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0
  276. MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0
  277. MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0
  278. MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0
  279. MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019
  280. MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0
  281. >;
  282. };
  283. pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
  284. fsl,pins = <
  285. MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194
  286. MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4
  287. MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4
  288. MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4
  289. MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4
  290. MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4
  291. MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019
  292. MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0
  293. >;
  294. };
  295. pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
  296. fsl,pins = <
  297. MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196
  298. MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6
  299. MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6
  300. MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6
  301. MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6
  302. MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6
  303. MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019
  304. MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0
  305. >;
  306. };
  307. };