imx7d-smegw01.dts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. //
  3. // Copyright (C) 2020 PHYTEC Messtechnik GmbH
  4. // Author: Jens Lang <[email protected]>
  5. // Copyright (C) 2021 Fabio Estevam <[email protected]>
  6. /dts-v1/;
  7. #include <dt-bindings/gpio/gpio.h>
  8. #include "imx7d.dtsi"
  9. / {
  10. model = "Storopack SMEGW01 board";
  11. compatible = "storopack,imx7d-smegw01", "fsl,imx7d";
  12. aliases {
  13. mmc0 = &usdhc1;
  14. mmc1 = &usdhc3;
  15. mmc2 = &usdhc2;
  16. rtc0 = &i2c_rtc;
  17. rtc1 = &snvs_rtc;
  18. };
  19. chosen {
  20. stdout-path = &uart1;
  21. };
  22. memory@80000000 {
  23. device_type = "memory";
  24. reg = <0x80000000 0x20000000>;
  25. };
  26. reg_lte_on: regulator-lte-on {
  27. compatible = "regulator-fixed";
  28. pinctrl-names = "default";
  29. pinctrl-0 = <&pinctrl_lte_on>;
  30. regulator-min-microvolt = <3300000>;
  31. regulator-max-microvolt = <3300000>;
  32. regulator-name = "lte_on";
  33. gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
  34. enable-active-high;
  35. regulator-always-on;
  36. };
  37. reg_lte_nreset: regulator-lte-nreset {
  38. compatible = "regulator-fixed";
  39. pinctrl-names = "default";
  40. pinctrl-0 = <&pinctrl_lte_nreset>;
  41. regulator-min-microvolt = <3300000>;
  42. regulator-max-microvolt = <3300000>;
  43. regulator-name = "LTE_nReset";
  44. gpio = <&gpio6 21 GPIO_ACTIVE_HIGH>;
  45. enable-active-high;
  46. regulator-always-on;
  47. };
  48. reg_wifi: regulator-wifi {
  49. compatible = "regulator-fixed";
  50. gpio = <&gpio2 30 GPIO_ACTIVE_HIGH>;
  51. enable-active-high;
  52. pinctrl-names = "default";
  53. pinctrl-0 = <&pinctrl_wifi>;
  54. regulator-name = "wifi_reg";
  55. regulator-min-microvolt = <3300000>;
  56. regulator-max-microvolt = <3300000>;
  57. };
  58. reg_wlan_rfkill: regulator-wlan-rfkill {
  59. compatible = "regulator-fixed";
  60. pinctrl-names = "default";
  61. pinctrl-2 = <&pinctrl_rfkill>;
  62. regulator-min-microvolt = <3300000>;
  63. regulator-max-microvolt = <3300000>;
  64. regulator-name = "wlan_rfkill";
  65. gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
  66. enable-active-high;
  67. regulator-always-on;
  68. };
  69. reg_usbotg_vbus: regulator-usbotg-vbus {
  70. compatible = "regulator-fixed";
  71. pinctrl-names = "default";
  72. pinctrl-0 = <&pinctrl_usbotg1_pwr_gpio>;
  73. regulator-name = "usb_otg_vbus";
  74. regulator-min-microvolt = <5000000>;
  75. regulator-max-microvolt = <5000000>;
  76. gpio = <&gpio1 05 GPIO_ACTIVE_HIGH>;
  77. enable-active-high;
  78. };
  79. };
  80. &ecspi1 {
  81. pinctrl-names = "default";
  82. pinctrl-0 = <&pinctrl_ecspi1>;
  83. cs-gpios = <&gpio4 19 GPIO_ACTIVE_LOW>;
  84. status = "okay";
  85. sram@0 {
  86. compatible = "microchip,48l640";
  87. reg = <0>;
  88. #address-cells = <1>;
  89. #size-cells = <1>;
  90. spi-max-frequency = <16000000>;
  91. };
  92. };
  93. &fec1 {
  94. pinctrl-names = "default";
  95. pinctrl-0 = <&pinctrl_enet1>;
  96. assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
  97. <&clks IMX7D_ENET1_TIME_ROOT_CLK>;
  98. assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
  99. assigned-clock-rates = <0>, <100000000>;
  100. phy-mode = "rgmii-id";
  101. phy-handle = <&ethphy0>;
  102. fsl,magic-packet;
  103. status = "okay";
  104. mdio: mdio {
  105. #address-cells = <1>;
  106. #size-cells = <0>;
  107. ethphy0: ethernet-phy@1 {
  108. compatible = "ethernet-phy-id0022.1622",
  109. "ethernet-phy-ieee802.3-c22";
  110. reg = <1>;
  111. reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
  112. };
  113. ethphy1: ethernet-phy@2 {
  114. compatible = "ethernet-phy-id0022.1622",
  115. "ethernet-phy-ieee802.3-c22";
  116. reg = <2>;
  117. };
  118. };
  119. };
  120. &fec2 {
  121. pinctrl-names = "default";
  122. pinctrl-0 = <&pinctrl_enet2>;
  123. assigned-clocks = <&clks IMX7D_ENET2_TIME_ROOT_SRC>,
  124. <&clks IMX7D_ENET2_TIME_ROOT_CLK>;
  125. assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
  126. assigned-clock-rates = <0>, <100000000>;
  127. phy-mode = "rgmii-id";
  128. phy-handle = <&ethphy1>;
  129. fsl,magic-packet;
  130. status = "okay";
  131. };
  132. &i2c2 {
  133. pinctrl-names = "default";
  134. pinctrl-0 =<&pinctrl_i2c2>;
  135. clock-frequency = <100000>;
  136. status = "okay";
  137. i2c_rtc: rtc@52 {
  138. compatible = "microcrystal,rv3028";
  139. pinctrl-names = "default";
  140. pinctrl-0 = <&pinctrl_rtc_int>;
  141. reg = <0x52>;
  142. interrupt-parent = <&gpio2>;
  143. interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
  144. };
  145. };
  146. &flexcan1 {
  147. pinctrl-names = "default";
  148. pinctrl-0 = <&pinctrl_flexcan1>;
  149. status = "okay";
  150. };
  151. &flexcan2 {
  152. pinctrl-names = "default";
  153. pinctrl-0 = <&pinctrl_flexcan2>;
  154. status = "okay";
  155. };
  156. &uart1 {
  157. pinctrl-names = "default";
  158. pinctrl-0 = <&pinctrl_uart1>;
  159. status = "okay";
  160. };
  161. &uart3 {
  162. pinctrl-names = "default";
  163. pinctrl-0 = <&pinctrl_uart3>;
  164. status = "okay";
  165. };
  166. &usbotg1 {
  167. pinctrl-names = "default";
  168. pinctrl-0 = <&pinctrl_usbotg1_lpsr>;
  169. dr_mode = "otg";
  170. vbus-supply = <&reg_usbotg_vbus>;
  171. status = "okay";
  172. };
  173. &usbotg2 {
  174. pinctrl-names = "default";
  175. pinctrl-0 = <&pinctrl_usbotg2>;
  176. over-current-active-low;
  177. dr_mode = "host";
  178. status = "okay";
  179. };
  180. &usdhc1 {
  181. pinctrl-names = "default";
  182. pinctrl-0 = <&pinctrl_usdhc1>;
  183. cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
  184. no-1-8-v;
  185. wakeup-source;
  186. keep-power-in-suspend;
  187. status = "okay";
  188. };
  189. &usdhc2 {
  190. pinctrl-names = "default";
  191. pinctrl-0 = <&pinctrl_usdhc2>;
  192. bus-width = <4>;
  193. no-1-8-v;
  194. non-removable;
  195. vmmc-supply = <&reg_wifi>;
  196. wakeup-source;
  197. status = "okay";
  198. };
  199. &usdhc3 {
  200. pinctrl-names = "default", "state_100mhz", "state_200mhz";
  201. pinctrl-0 = <&pinctrl_usdhc3>;
  202. pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
  203. pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
  204. assigned-clocks = <&clks IMX7D_USDHC3_ROOT_CLK>;
  205. assigned-clock-rates = <400000000>;
  206. max-frequency = <200000000>;
  207. bus-width = <8>;
  208. fsl,tuning-step = <1>;
  209. non-removable;
  210. cap-mmc-highspeed;
  211. cap-mmc-hw-reset;
  212. mmc-hs200-1_8v;
  213. mmc-ddr-1_8v;
  214. status = "okay";
  215. };
  216. &wdog1 {
  217. pinctrl-names = "default";
  218. pinctrl-0 = <&pinctrl_wdog>;
  219. fsl,ext-reset-output;
  220. status = "okay";
  221. };
  222. &iomuxc {
  223. pinctrl_ecspi1: ecspi1grp {
  224. fsl,pins = <
  225. MX7D_PAD_ECSPI1_SS0__GPIO4_IO19 0x04
  226. MX7D_PAD_ECSPI1_SCLK__ECSPI1_SCLK 0x04
  227. MX7D_PAD_ECSPI1_MOSI__ECSPI1_MOSI 0x04
  228. MX7D_PAD_ECSPI1_MISO__ECSPI1_MISO 0x04
  229. >;
  230. };
  231. pinctrl_enet1: enet1grp {
  232. fsl,pins = <
  233. MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x5
  234. MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0 0x5
  235. MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1 0x5
  236. MX7D_PAD_ENET1_RGMII_RD2__ENET1_RGMII_RD2 0x5
  237. MX7D_PAD_ENET1_RGMII_RD3__ENET1_RGMII_RD3 0x5
  238. MX7D_PAD_ENET1_RGMII_RXC__ENET1_RGMII_RXC 0x5
  239. MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x5
  240. MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0 0x5
  241. MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1 0x5
  242. MX7D_PAD_ENET1_RGMII_TD2__ENET1_RGMII_TD2 0x5
  243. MX7D_PAD_ENET1_RGMII_TD3__ENET1_RGMII_TD3 0x5
  244. MX7D_PAD_ENET1_RGMII_TXC__ENET1_RGMII_TXC 0x5
  245. MX7D_PAD_GPIO1_IO10__ENET1_MDIO 0x7
  246. MX7D_PAD_GPIO1_IO11__ENET1_MDC 0x7
  247. >;
  248. };
  249. pinctrl_enet2: enet2grp {
  250. fsl,pins = <
  251. MX7D_PAD_EPDC_SDCE0__ENET2_RGMII_RX_CTL 0x5
  252. MX7D_PAD_EPDC_SDCE1__ENET2_RGMII_RXC 0x5
  253. MX7D_PAD_EPDC_SDCLK__ENET2_RGMII_RD0 0x5
  254. MX7D_PAD_EPDC_SDLE__ENET2_RGMII_RD1 0x5
  255. MX7D_PAD_EPDC_SDOE__ENET2_RGMII_RD2 0x5
  256. MX7D_PAD_EPDC_SDSHR__ENET2_RGMII_RD3 0x5
  257. MX7D_PAD_EPDC_SDCE2__ENET2_RGMII_TD0 0x5
  258. MX7D_PAD_EPDC_SDCE3__ENET2_RGMII_TD1 0x5
  259. MX7D_PAD_EPDC_GDCLK__ENET2_RGMII_TD2 0x5
  260. MX7D_PAD_EPDC_GDOE__ENET2_RGMII_TD3 0x5
  261. MX7D_PAD_EPDC_GDRL__ENET2_RGMII_TX_CTL 0x5
  262. MX7D_PAD_EPDC_GDSP__ENET2_RGMII_TXC 0x5
  263. MX7D_PAD_GPIO1_IO09__GPIO1_IO9 0x08
  264. >;
  265. };
  266. pinctrl_i2c2: i2c2grp {
  267. fsl,pins = <
  268. MX7D_PAD_I2C2_SCL__I2C2_SCL 0x40000004
  269. MX7D_PAD_I2C2_SDA__I2C2_SDA 0x40000004
  270. >;
  271. };
  272. pinctrl_flexcan1: flexcan1grp {
  273. fsl,pins = <
  274. MX7D_PAD_GPIO1_IO12__FLEXCAN1_RX 0x0b0b0
  275. MX7D_PAD_GPIO1_IO13__FLEXCAN1_TX 0x0b0b0
  276. >;
  277. };
  278. pinctrl_flexcan2: flexcan2grp {
  279. fsl,pins = <
  280. MX7D_PAD_GPIO1_IO14__FLEXCAN2_RX 0x0b0b0
  281. MX7D_PAD_GPIO1_IO15__FLEXCAN2_TX 0x0b0b0
  282. >;
  283. };
  284. pinctrl_lte_on: lteongrp {
  285. fsl,pins = <
  286. MX7D_PAD_ENET1_TX_CLK__GPIO7_IO12 0x17059
  287. >;
  288. };
  289. pinctrl_lte_nreset: ltenresetgrp {
  290. fsl,pins = <
  291. MX7D_PAD_SAI2_RX_DATA__GPIO6_IO21 0x17059
  292. >;
  293. };
  294. pinctrl_rfkill: rfkillrp {
  295. fsl,pins = <
  296. MX7D_PAD_EPDC_DATA11__GPIO2_IO11 0x17059
  297. >;
  298. };
  299. pinctrl_rtc_int: rtcintgrp {
  300. fsl,pins = <
  301. MX7D_PAD_EPDC_DATA15__GPIO2_IO15 0x17059
  302. >;
  303. };
  304. pinctrl_uart1: uart1grp {
  305. fsl,pins = <
  306. MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX 0x74
  307. MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX 0x7c
  308. >;
  309. };
  310. pinctrl_uart3: uart3grp {
  311. fsl,pins = <
  312. MX7D_PAD_UART3_TX_DATA__UART3_DCE_TX 0x7c
  313. MX7D_PAD_UART3_RX_DATA__UART3_DCE_RX 0x74
  314. >;
  315. };
  316. pinctrl_usbotg1_lpsr: usbotg1 {
  317. fsl,pins = <
  318. MX7D_PAD_LPSR_GPIO1_IO04__USB_OTG1_OC 0x04
  319. >;
  320. };
  321. pinctrl_usbotg1_pwr: usbotg1-pwr {
  322. fsl,pins = <
  323. MX7D_PAD_LPSR_GPIO1_IO05__USB_OTG1_PWR 0x04
  324. >;
  325. };
  326. pinctrl_usbotg1_pwr_gpio: usbotg1-pwr-gpio {
  327. fsl,pins = <
  328. MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5 0x04
  329. >;
  330. };
  331. pinctrl_usbotg2: usbotg2grp {
  332. fsl,pins = <
  333. MX7D_PAD_UART3_RTS_B__USB_OTG2_OC 0x5c
  334. >;
  335. };
  336. pinctrl_usdhc1: usdhc1grp {
  337. fsl,pins = <
  338. MX7D_PAD_SD1_CD_B__GPIO5_IO0 0x59
  339. MX7D_PAD_SD1_CMD__SD1_CMD 0x59
  340. MX7D_PAD_SD1_CLK__SD1_CLK 0x19
  341. MX7D_PAD_SD1_DATA0__SD1_DATA0 0x59
  342. MX7D_PAD_SD1_DATA1__SD1_DATA1 0x59
  343. MX7D_PAD_SD1_DATA2__SD1_DATA2 0x59
  344. MX7D_PAD_SD1_DATA3__SD1_DATA3 0x59
  345. >;
  346. };
  347. pinctrl_usdhc2: usdhc2grp {
  348. fsl,pins = <
  349. MX7D_PAD_SD2_CLK__SD2_CLK 0x19
  350. MX7D_PAD_SD2_CMD__SD2_CMD 0x59
  351. MX7D_PAD_SD2_DATA0__SD2_DATA0 0x59
  352. MX7D_PAD_SD2_DATA1__SD2_DATA1 0x59
  353. MX7D_PAD_SD2_DATA2__SD2_DATA2 0x59
  354. MX7D_PAD_SD2_DATA3__SD2_DATA3 0x59
  355. MX7D_PAD_SD2_CD_B__SD2_CD_B 0x08
  356. >;
  357. };
  358. pinctrl_usdhc3: usdhc3grp {
  359. fsl,pins = <
  360. MX7D_PAD_SD3_CMD__SD3_CMD 0x5d
  361. MX7D_PAD_SD3_CLK__SD3_CLK 0x1d
  362. MX7D_PAD_SD3_DATA0__SD3_DATA0 0x5d
  363. MX7D_PAD_SD3_DATA1__SD3_DATA1 0x5d
  364. MX7D_PAD_SD3_DATA2__SD3_DATA2 0x5d
  365. MX7D_PAD_SD3_DATA3__SD3_DATA3 0x5d
  366. MX7D_PAD_SD3_DATA4__SD3_DATA4 0x5d
  367. MX7D_PAD_SD3_DATA5__SD3_DATA5 0x5d
  368. MX7D_PAD_SD3_DATA6__SD3_DATA6 0x5d
  369. MX7D_PAD_SD3_DATA7__SD3_DATA7 0x5d
  370. MX7D_PAD_SD3_STROBE__SD3_STROBE 0x1d
  371. >;
  372. };
  373. pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
  374. fsl,pins = <
  375. MX7D_PAD_SD3_CMD__SD3_CMD 0x5e
  376. MX7D_PAD_SD3_CLK__SD3_CLK 0x1e
  377. MX7D_PAD_SD3_DATA0__SD3_DATA0 0x5e
  378. MX7D_PAD_SD3_DATA1__SD3_DATA1 0x5e
  379. MX7D_PAD_SD3_DATA2__SD3_DATA2 0x5e
  380. MX7D_PAD_SD3_DATA3__SD3_DATA3 0x5e
  381. MX7D_PAD_SD3_DATA4__SD3_DATA4 0x5e
  382. MX7D_PAD_SD3_DATA5__SD3_DATA5 0x5e
  383. MX7D_PAD_SD3_DATA6__SD3_DATA6 0x5e
  384. MX7D_PAD_SD3_DATA7__SD3_DATA7 0x5e
  385. MX7D_PAD_SD3_STROBE__SD3_STROBE 0x1e
  386. >;
  387. };
  388. pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
  389. fsl,pins = <
  390. MX7D_PAD_SD3_CMD__SD3_CMD 0x5f
  391. MX7D_PAD_SD3_CLK__SD3_CLK 0x0f
  392. MX7D_PAD_SD3_DATA0__SD3_DATA0 0x5f
  393. MX7D_PAD_SD3_DATA1__SD3_DATA1 0x5f
  394. MX7D_PAD_SD3_DATA2__SD3_DATA2 0x5f
  395. MX7D_PAD_SD3_DATA3__SD3_DATA3 0x5f
  396. MX7D_PAD_SD3_DATA4__SD3_DATA4 0x5f
  397. MX7D_PAD_SD3_DATA5__SD3_DATA5 0x5f
  398. MX7D_PAD_SD3_DATA6__SD3_DATA6 0x5f
  399. MX7D_PAD_SD3_DATA7__SD3_DATA7 0x5f
  400. MX7D_PAD_SD3_STROBE__SD3_STROBE 0x1f
  401. >;
  402. };
  403. pinctrl_wifi: wifigrp {
  404. fsl,pins = <
  405. MX7D_PAD_EPDC_PWR_COM__GPIO2_IO30 0x04
  406. MX7D_PAD_SD2_RESET_B__GPIO5_IO11 0x04
  407. >;
  408. };
  409. };
  410. &iomuxc_lpsr {
  411. pinctrl_wdog: wdoggrp {
  412. fsl,pins = <
  413. MX7D_PAD_LPSR_GPIO1_IO00__WDOG1_WDOG_B 0x74
  414. >;
  415. };
  416. };