imx8mm-venice-gw7902.dts 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright 2021 Gateworks Corporation
  4. */
  5. /dts-v1/;
  6. #include <dt-bindings/gpio/gpio.h>
  7. #include <dt-bindings/input/linux-event-codes.h>
  8. #include <dt-bindings/leds/common.h>
  9. #include <dt-bindings/net/ti-dp83867.h>
  10. #include <dt-bindings/phy/phy-imx8-pcie.h>
  11. #include "imx8mm.dtsi"
  12. / {
  13. model = "Gateworks Venice GW7902 i.MX8MM board";
  14. compatible = "gw,imx8mm-gw7902", "fsl,imx8mm";
  15. aliases {
  16. ethernet1 = &eth1;
  17. usb0 = &usbotg1;
  18. usb1 = &usbotg2;
  19. };
  20. chosen {
  21. stdout-path = &uart2;
  22. };
  23. memory@40000000 {
  24. device_type = "memory";
  25. reg = <0x0 0x40000000 0 0x80000000>;
  26. };
  27. can20m: can20m {
  28. compatible = "fixed-clock";
  29. #clock-cells = <0>;
  30. clock-frequency = <20000000>;
  31. clock-output-names = "can20m";
  32. };
  33. gpio-keys {
  34. compatible = "gpio-keys";
  35. key-user-pb {
  36. label = "user_pb";
  37. gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
  38. linux,code = <BTN_0>;
  39. };
  40. key-user-pb1x {
  41. label = "user_pb1x";
  42. linux,code = <BTN_1>;
  43. interrupt-parent = <&gsc>;
  44. interrupts = <0>;
  45. };
  46. key-erased {
  47. label = "key_erased";
  48. linux,code = <BTN_2>;
  49. interrupt-parent = <&gsc>;
  50. interrupts = <1>;
  51. };
  52. key-eeprom-wp {
  53. label = "eeprom_wp";
  54. linux,code = <BTN_3>;
  55. interrupt-parent = <&gsc>;
  56. interrupts = <2>;
  57. };
  58. key-tamper {
  59. label = "tamper";
  60. linux,code = <BTN_4>;
  61. interrupt-parent = <&gsc>;
  62. interrupts = <5>;
  63. };
  64. switch-hold {
  65. label = "switch_hold";
  66. linux,code = <BTN_5>;
  67. interrupt-parent = <&gsc>;
  68. interrupts = <7>;
  69. };
  70. };
  71. led-controller {
  72. compatible = "gpio-leds";
  73. pinctrl-names = "default";
  74. pinctrl-0 = <&pinctrl_gpio_leds>;
  75. led-0 {
  76. function = LED_FUNCTION_STATUS;
  77. color = <LED_COLOR_ID_GREEN>;
  78. label = "panel1";
  79. gpios = <&gpio3 21 GPIO_ACTIVE_LOW>;
  80. default-state = "off";
  81. };
  82. led-1 {
  83. function = LED_FUNCTION_STATUS;
  84. color = <LED_COLOR_ID_GREEN>;
  85. label = "panel2";
  86. gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
  87. default-state = "off";
  88. };
  89. led-2 {
  90. function = LED_FUNCTION_STATUS;
  91. color = <LED_COLOR_ID_GREEN>;
  92. label = "panel3";
  93. gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
  94. default-state = "off";
  95. };
  96. led-3 {
  97. function = LED_FUNCTION_STATUS;
  98. color = <LED_COLOR_ID_GREEN>;
  99. label = "panel4";
  100. gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
  101. default-state = "off";
  102. };
  103. led-4 {
  104. function = LED_FUNCTION_STATUS;
  105. color = <LED_COLOR_ID_GREEN>;
  106. label = "panel5";
  107. gpios = <&gpio3 25 GPIO_ACTIVE_LOW>;
  108. default-state = "off";
  109. };
  110. };
  111. pcie0_refclk: pcie0-refclk {
  112. compatible = "fixed-clock";
  113. #clock-cells = <0>;
  114. clock-frequency = <100000000>;
  115. };
  116. pps {
  117. compatible = "pps-gpio";
  118. pinctrl-names = "default";
  119. pinctrl-0 = <&pinctrl_pps>;
  120. gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>;
  121. status = "okay";
  122. };
  123. reg_3p3v: regulator-3p3v {
  124. compatible = "regulator-fixed";
  125. regulator-name = "3P3V";
  126. regulator-min-microvolt = <3300000>;
  127. regulator-max-microvolt = <3300000>;
  128. regulator-always-on;
  129. };
  130. reg_usb1_vbus: regulator-usb1 {
  131. compatible = "regulator-fixed";
  132. pinctrl-names = "default";
  133. pinctrl-0 = <&pinctrl_reg_usb1>;
  134. regulator-name = "usb_usb1_vbus";
  135. gpio = <&gpio2 7 GPIO_ACTIVE_HIGH>;
  136. enable-active-high;
  137. regulator-min-microvolt = <5000000>;
  138. regulator-max-microvolt = <5000000>;
  139. };
  140. reg_wifi: regulator-wifi {
  141. compatible = "regulator-fixed";
  142. pinctrl-names = "default";
  143. pinctrl-0 = <&pinctrl_reg_wl>;
  144. regulator-name = "wifi";
  145. gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
  146. enable-active-high;
  147. startup-delay-us = <100>;
  148. regulator-min-microvolt = <3300000>;
  149. regulator-max-microvolt = <3300000>;
  150. };
  151. };
  152. &A53_0 {
  153. cpu-supply = <&buck2>;
  154. };
  155. &A53_1 {
  156. cpu-supply = <&buck2>;
  157. };
  158. &A53_2 {
  159. cpu-supply = <&buck2>;
  160. };
  161. &A53_3 {
  162. cpu-supply = <&buck2>;
  163. };
  164. &ddrc {
  165. operating-points-v2 = <&ddrc_opp_table>;
  166. ddrc_opp_table: opp-table {
  167. compatible = "operating-points-v2";
  168. opp-25M {
  169. opp-hz = /bits/ 64 <25000000>;
  170. };
  171. opp-100M {
  172. opp-hz = /bits/ 64 <100000000>;
  173. };
  174. opp-750M {
  175. opp-hz = /bits/ 64 <750000000>;
  176. };
  177. };
  178. };
  179. &ecspi1 {
  180. pinctrl-names = "default";
  181. pinctrl-0 = <&pinctrl_spi1>;
  182. cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
  183. status = "okay";
  184. can@0 {
  185. compatible = "microchip,mcp2515";
  186. reg = <0>;
  187. clocks = <&can20m>;
  188. interrupt-parent = <&gpio2>;
  189. interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
  190. spi-max-frequency = <10000000>;
  191. };
  192. };
  193. /* off-board header */
  194. &ecspi2 {
  195. pinctrl-names = "default";
  196. pinctrl-0 = <&pinctrl_spi2>;
  197. cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
  198. status = "okay";
  199. };
  200. &fec1 {
  201. pinctrl-names = "default";
  202. pinctrl-0 = <&pinctrl_fec1>;
  203. phy-mode = "rgmii-id";
  204. phy-handle = <&ethphy0>;
  205. local-mac-address = [00 00 00 00 00 00];
  206. status = "okay";
  207. mdio {
  208. #address-cells = <1>;
  209. #size-cells = <0>;
  210. ethphy0: ethernet-phy@0 {
  211. compatible = "ethernet-phy-ieee802.3-c22";
  212. reg = <0>;
  213. ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
  214. ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
  215. tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
  216. rx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
  217. };
  218. };
  219. };
  220. &gpio1 {
  221. gpio-line-names = "", "", "", "", "", "", "", "",
  222. "", "", "", "", "", "m2_reset", "", "m2_wdis#",
  223. "", "", "", "", "", "", "", "",
  224. "", "", "", "", "", "", "", "";
  225. };
  226. &gpio2 {
  227. gpio-line-names = "", "", "", "", "", "", "", "",
  228. "uart2_en#", "", "", "", "", "", "", "",
  229. "", "", "", "", "", "", "", "",
  230. "", "", "", "", "", "", "", "";
  231. };
  232. &gpio3 {
  233. gpio-line-names = "", "m2_gdis#", "", "", "", "", "", "m2_off#",
  234. "", "", "", "", "", "", "", "",
  235. "", "", "", "", "", "", "", "",
  236. "", "", "", "", "", "", "", "";
  237. };
  238. &gpio4 {
  239. gpio-line-names = "", "", "", "", "", "", "", "",
  240. "", "", "", "amp_gpio3", "amp_gpio2", "", "amp_gpio1", "",
  241. "", "", "", "", "amp_gpio4", "app_gpio1", "", "uart1_rs485",
  242. "", "uart1_term", "uart1_half", "app_gpio2",
  243. "mipi_gpio1", "", "", "";
  244. };
  245. &gpio5 {
  246. gpio-line-names = "", "", "", "mipi_gpio4",
  247. "mipi_gpio3", "mipi_gpio2", "", "",
  248. "", "", "", "", "", "", "", "",
  249. "", "", "", "", "", "", "", "",
  250. "", "", "", "", "", "", "", "";
  251. };
  252. &i2c1 {
  253. clock-frequency = <100000>;
  254. pinctrl-names = "default";
  255. pinctrl-0 = <&pinctrl_i2c1>;
  256. status = "okay";
  257. gsc: gsc@20 {
  258. compatible = "gw,gsc";
  259. reg = <0x20>;
  260. pinctrl-0 = <&pinctrl_gsc>;
  261. interrupt-parent = <&gpio2>;
  262. interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
  263. interrupt-controller;
  264. #interrupt-cells = <1>;
  265. adc {
  266. compatible = "gw,gsc-adc";
  267. #address-cells = <1>;
  268. #size-cells = <0>;
  269. channel@6 {
  270. gw,mode = <0>;
  271. reg = <0x06>;
  272. label = "temp";
  273. };
  274. channel@8 {
  275. gw,mode = <1>;
  276. reg = <0x08>;
  277. label = "vdd_bat";
  278. };
  279. channel@82 {
  280. gw,mode = <2>;
  281. reg = <0x82>;
  282. label = "vin";
  283. gw,voltage-divider-ohms = <22100 1000>;
  284. gw,voltage-offset-microvolt = <700000>;
  285. };
  286. channel@84 {
  287. gw,mode = <2>;
  288. reg = <0x84>;
  289. label = "vin_4p0";
  290. gw,voltage-divider-ohms = <10000 10000>;
  291. };
  292. channel@86 {
  293. gw,mode = <2>;
  294. reg = <0x86>;
  295. label = "vdd_3p3";
  296. gw,voltage-divider-ohms = <10000 10000>;
  297. };
  298. channel@88 {
  299. gw,mode = <2>;
  300. reg = <0x88>;
  301. label = "vdd_0p9";
  302. };
  303. channel@8c {
  304. gw,mode = <2>;
  305. reg = <0x8c>;
  306. label = "vdd_soc";
  307. };
  308. channel@8e {
  309. gw,mode = <2>;
  310. reg = <0x8e>;
  311. label = "vdd_arm";
  312. };
  313. channel@90 {
  314. gw,mode = <2>;
  315. reg = <0x90>;
  316. label = "vdd_1p8";
  317. };
  318. channel@92 {
  319. gw,mode = <2>;
  320. reg = <0x92>;
  321. label = "vdd_dram";
  322. };
  323. channel@98 {
  324. gw,mode = <2>;
  325. reg = <0x98>;
  326. label = "vdd_1p0";
  327. };
  328. channel@9a {
  329. gw,mode = <2>;
  330. reg = <0x9a>;
  331. label = "vdd_2p5";
  332. gw,voltage-divider-ohms = <10000 10000>;
  333. };
  334. channel@9c {
  335. gw,mode = <2>;
  336. reg = <0x9c>;
  337. label = "vdd_5p0";
  338. gw,voltage-divider-ohms = <10000 10000>;
  339. };
  340. channel@a2 {
  341. gw,mode = <2>;
  342. reg = <0xa2>;
  343. label = "vdd_gsc";
  344. gw,voltage-divider-ohms = <10000 10000>;
  345. };
  346. };
  347. };
  348. gpio: gpio@23 {
  349. compatible = "nxp,pca9555";
  350. reg = <0x23>;
  351. gpio-controller;
  352. #gpio-cells = <2>;
  353. interrupt-parent = <&gsc>;
  354. interrupts = <4>;
  355. };
  356. pmic@4b {
  357. compatible = "rohm,bd71847";
  358. reg = <0x4b>;
  359. pinctrl-names = "default";
  360. pinctrl-0 = <&pinctrl_pmic>;
  361. interrupt-parent = <&gpio3>;
  362. interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
  363. rohm,reset-snvs-powered;
  364. #clock-cells = <0>;
  365. clocks = <&osc_32k 0>;
  366. clock-output-names = "clk-32k-out";
  367. regulators {
  368. /* vdd_soc: 0.805-0.900V (typ=0.8V) */
  369. BUCK1 {
  370. regulator-name = "buck1";
  371. regulator-min-microvolt = <700000>;
  372. regulator-max-microvolt = <1300000>;
  373. regulator-boot-on;
  374. regulator-always-on;
  375. regulator-ramp-delay = <1250>;
  376. };
  377. /* vdd_arm: 0.805-1.0V (typ=0.9V) */
  378. buck2: BUCK2 {
  379. regulator-name = "buck2";
  380. regulator-min-microvolt = <700000>;
  381. regulator-max-microvolt = <1300000>;
  382. regulator-boot-on;
  383. regulator-always-on;
  384. regulator-ramp-delay = <1250>;
  385. rohm,dvs-run-voltage = <1000000>;
  386. rohm,dvs-idle-voltage = <900000>;
  387. };
  388. /* vdd_0p9: 0.805-1.0V (typ=0.9V) */
  389. BUCK3 {
  390. regulator-name = "buck3";
  391. regulator-min-microvolt = <700000>;
  392. regulator-max-microvolt = <1350000>;
  393. regulator-boot-on;
  394. regulator-always-on;
  395. };
  396. /* vdd_3p3 */
  397. BUCK4 {
  398. regulator-name = "buck4";
  399. regulator-min-microvolt = <3000000>;
  400. regulator-max-microvolt = <3300000>;
  401. regulator-boot-on;
  402. regulator-always-on;
  403. };
  404. /* vdd_1p8 */
  405. BUCK5 {
  406. regulator-name = "buck5";
  407. regulator-min-microvolt = <1605000>;
  408. regulator-max-microvolt = <1995000>;
  409. regulator-boot-on;
  410. regulator-always-on;
  411. };
  412. /* vdd_dram */
  413. BUCK6 {
  414. regulator-name = "buck6";
  415. regulator-min-microvolt = <800000>;
  416. regulator-max-microvolt = <1400000>;
  417. regulator-boot-on;
  418. regulator-always-on;
  419. };
  420. /* nvcc_snvs_1p8 */
  421. LDO1 {
  422. regulator-name = "ldo1";
  423. regulator-min-microvolt = <1600000>;
  424. regulator-max-microvolt = <1900000>;
  425. regulator-boot-on;
  426. regulator-always-on;
  427. };
  428. /* vdd_snvs_0p8 */
  429. LDO2 {
  430. regulator-name = "ldo2";
  431. regulator-min-microvolt = <800000>;
  432. regulator-max-microvolt = <900000>;
  433. regulator-boot-on;
  434. regulator-always-on;
  435. };
  436. /* vdda_1p8 */
  437. LDO3 {
  438. regulator-name = "ldo3";
  439. regulator-min-microvolt = <1800000>;
  440. regulator-max-microvolt = <3300000>;
  441. regulator-boot-on;
  442. regulator-always-on;
  443. };
  444. LDO4 {
  445. regulator-name = "ldo4";
  446. regulator-min-microvolt = <900000>;
  447. regulator-max-microvolt = <1800000>;
  448. regulator-boot-on;
  449. regulator-always-on;
  450. };
  451. LDO6 {
  452. regulator-name = "ldo6";
  453. regulator-min-microvolt = <900000>;
  454. regulator-max-microvolt = <1800000>;
  455. regulator-boot-on;
  456. regulator-always-on;
  457. };
  458. };
  459. };
  460. eeprom@50 {
  461. compatible = "atmel,24c02";
  462. reg = <0x50>;
  463. pagesize = <16>;
  464. };
  465. eeprom@51 {
  466. compatible = "atmel,24c02";
  467. reg = <0x51>;
  468. pagesize = <16>;
  469. };
  470. eeprom@52 {
  471. compatible = "atmel,24c02";
  472. reg = <0x52>;
  473. pagesize = <16>;
  474. };
  475. eeprom@53 {
  476. compatible = "atmel,24c02";
  477. reg = <0x53>;
  478. pagesize = <16>;
  479. };
  480. rtc@68 {
  481. compatible = "dallas,ds1672";
  482. reg = <0x68>;
  483. };
  484. };
  485. &i2c2 {
  486. clock-frequency = <400000>;
  487. pinctrl-names = "default";
  488. pinctrl-0 = <&pinctrl_i2c2>;
  489. status = "okay";
  490. accelerometer@19 {
  491. compatible = "st,lis2de12";
  492. pinctrl-names = "default";
  493. pinctrl-0 = <&pinctrl_accel>;
  494. reg = <0x19>;
  495. st,drdy-int-pin = <1>;
  496. interrupt-parent = <&gpio1>;
  497. interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
  498. interrupt-names = "INT1";
  499. };
  500. };
  501. /* off-board header */
  502. &i2c3 {
  503. clock-frequency = <400000>;
  504. pinctrl-names = "default";
  505. pinctrl-0 = <&pinctrl_i2c3>;
  506. status = "okay";
  507. };
  508. /* off-board header */
  509. &i2c4 {
  510. clock-frequency = <400000>;
  511. pinctrl-names = "default";
  512. pinctrl-0 = <&pinctrl_i2c4>;
  513. status = "okay";
  514. };
  515. &pcie_phy {
  516. fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
  517. fsl,clkreq-unsupported;
  518. clocks = <&pcie0_refclk>;
  519. clock-names = "ref";
  520. status = "okay";
  521. };
  522. &pcie0 {
  523. pinctrl-names = "default";
  524. pinctrl-0 = <&pinctrl_pcie0>;
  525. reset-gpio = <&gpio4 5 GPIO_ACTIVE_LOW>;
  526. clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>, <&clk IMX8MM_CLK_PCIE1_AUX>,
  527. <&pcie0_refclk>;
  528. clock-names = "pcie", "pcie_aux", "pcie_bus";
  529. assigned-clocks = <&clk IMX8MM_CLK_PCIE1_AUX>,
  530. <&clk IMX8MM_CLK_PCIE1_CTRL>;
  531. assigned-clock-rates = <10000000>, <250000000>;
  532. assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_50M>,
  533. <&clk IMX8MM_SYS_PLL2_250M>;
  534. status = "okay";
  535. pcie@0,0 {
  536. reg = <0x0000 0 0 0 0>;
  537. #address-cells = <1>;
  538. #size-cells = <0>;
  539. eth1: pcie@1,0 {
  540. reg = <0x0000 0 0 0 0>;
  541. #address-cells = <1>;
  542. #size-cells = <0>;
  543. local-mac-address = [00 00 00 00 00 00];
  544. };
  545. };
  546. };
  547. /* off-board header */
  548. &sai3 {
  549. pinctrl-names = "default";
  550. pinctrl-0 = <&pinctrl_sai3>;
  551. assigned-clocks = <&clk IMX8MM_CLK_SAI3>;
  552. assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
  553. assigned-clock-rates = <24576000>;
  554. status = "okay";
  555. };
  556. /* RS232/RS485/RS422 selectable */
  557. &uart1 {
  558. pinctrl-names = "default";
  559. pinctrl-0 = <&pinctrl_uart1>, <&pinctrl_uart1_gpio>;
  560. rts-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;
  561. cts-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>;
  562. status = "okay";
  563. };
  564. /* RS232 console */
  565. &uart2 {
  566. pinctrl-names = "default";
  567. pinctrl-0 = <&pinctrl_uart2>;
  568. status = "okay";
  569. };
  570. /* bluetooth HCI */
  571. &uart3 {
  572. pinctrl-names = "default";
  573. pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_uart3_gpio>;
  574. rts-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
  575. cts-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
  576. status = "okay";
  577. bluetooth {
  578. compatible = "brcm,bcm4330-bt";
  579. shutdown-gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
  580. };
  581. };
  582. /* LTE Cat M1/NB1/EGPRS modem or GPS (loading option) */
  583. &uart4 {
  584. pinctrl-names = "default";
  585. pinctrl-0 = <&pinctrl_uart4>;
  586. rts-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
  587. cts-gpios = <&gpio4 1 GPIO_ACTIVE_LOW>;
  588. dtr-gpios = <&gpio4 3 GPIO_ACTIVE_LOW>;
  589. dsr-gpios = <&gpio4 4 GPIO_ACTIVE_LOW>;
  590. dcd-gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;
  591. status = "okay";
  592. };
  593. &usbotg1 {
  594. dr_mode = "host";
  595. vbus-supply = <&reg_usb1_vbus>;
  596. disable-over-current;
  597. status = "okay";
  598. };
  599. &usbotg2 {
  600. dr_mode = "host";
  601. disable-over-current;
  602. status = "okay";
  603. };
  604. /* SDIO WiFi */
  605. &usdhc2 {
  606. pinctrl-names = "default";
  607. pinctrl-0 = <&pinctrl_usdhc2>;
  608. bus-width = <4>;
  609. non-removable;
  610. vmmc-supply = <&reg_wifi>;
  611. status = "okay";
  612. };
  613. /* eMMC */
  614. &usdhc3 {
  615. pinctrl-names = "default", "state_100mhz", "state_200mhz";
  616. pinctrl-0 = <&pinctrl_usdhc3>;
  617. pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
  618. pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
  619. bus-width = <8>;
  620. non-removable;
  621. status = "okay";
  622. };
  623. &wdog1 {
  624. pinctrl-names = "default";
  625. pinctrl-0 = <&pinctrl_wdog>;
  626. fsl,ext-reset-output;
  627. status = "okay";
  628. };
  629. &iomuxc {
  630. pinctrl-names = "default";
  631. pinctrl-0 = <&pinctrl_hog>;
  632. pinctrl_hog: hoggrp {
  633. fsl,pins = <
  634. MX8MM_IOMUXC_NAND_CE0_B_GPIO3_IO1 0x40000159 /* M2_GDIS# */
  635. MX8MM_IOMUXC_GPIO1_IO13_GPIO1_IO13 0x40000041 /* M2_RESET */
  636. MX8MM_IOMUXC_NAND_DATA01_GPIO3_IO7 0x40000119 /* M2_OFF# */
  637. MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x40000159 /* M2_WDIS# */
  638. MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14 0x40000041 /* AMP GPIO1 */
  639. MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12 0x40000041 /* AMP GPIO2 */
  640. MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11 0x40000041 /* AMP GPIO3 */
  641. MX8MM_IOMUXC_SAI1_MCLK_GPIO4_IO20 0x40000041 /* AMP_GPIO4 */
  642. MX8MM_IOMUXC_SAI2_RXFS_GPIO4_IO21 0x40000041 /* APP GPIO1 */
  643. MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27 0x40000041 /* APP GPIO2 */
  644. MX8MM_IOMUXC_SD1_DATA6_GPIO2_IO8 0x40000041 /* UART2_EN# */
  645. MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28 0x40000041 /* MIPI_GPIO1 */
  646. MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5 0x40000041 /* MIPI_GPIO2 */
  647. MX8MM_IOMUXC_SPDIF_RX_GPIO5_IO4 0x40000041 /* MIPI_GPIO3/PWM2 */
  648. MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3 0x40000041 /* MIPI_GPIO4/PWM3 */
  649. >;
  650. };
  651. pinctrl_accel: accelgrp {
  652. fsl,pins = <
  653. MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x159
  654. >;
  655. };
  656. pinctrl_fec1: fec1grp {
  657. fsl,pins = <
  658. MX8MM_IOMUXC_ENET_MDC_ENET1_MDC 0x3
  659. MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO 0x3
  660. MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f
  661. MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f
  662. MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f
  663. MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f
  664. MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91
  665. MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91
  666. MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91
  667. MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91
  668. MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x1f
  669. MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91
  670. MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91
  671. MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f
  672. MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x19 /* RST# */
  673. MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x19 /* IRQ# */
  674. MX8MM_IOMUXC_GPIO1_IO08_ENET1_1588_EVENT0_IN 0x141
  675. MX8MM_IOMUXC_GPIO1_IO09_ENET1_1588_EVENT0_OUT 0x141
  676. >;
  677. };
  678. pinctrl_gsc: gscgrp {
  679. fsl,pins = <
  680. MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6 0x40
  681. >;
  682. };
  683. pinctrl_i2c1: i2c1grp {
  684. fsl,pins = <
  685. MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x400001c3
  686. MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c3
  687. >;
  688. };
  689. pinctrl_i2c2: i2c2grp {
  690. fsl,pins = <
  691. MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL 0x400001c3
  692. MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA 0x400001c3
  693. >;
  694. };
  695. pinctrl_i2c3: i2c3grp {
  696. fsl,pins = <
  697. MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL 0x400001c3
  698. MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA 0x400001c3
  699. >;
  700. };
  701. pinctrl_i2c4: i2c4grp {
  702. fsl,pins = <
  703. MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL 0x400001c3
  704. MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA 0x400001c3
  705. >;
  706. };
  707. pinctrl_gpio_leds: gpioledgrp {
  708. fsl,pins = <
  709. MX8MM_IOMUXC_SAI5_RXD0_GPIO3_IO21 0x19
  710. MX8MM_IOMUXC_SAI5_RXD2_GPIO3_IO23 0x19
  711. MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22 0x19
  712. MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20 0x19
  713. MX8MM_IOMUXC_SAI5_MCLK_GPIO3_IO25 0x19
  714. >;
  715. };
  716. pinctrl_pcie0: pciegrp {
  717. fsl,pins = <
  718. MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5 0x41
  719. >;
  720. };
  721. pinctrl_pmic: pmicgrp {
  722. fsl,pins = <
  723. MX8MM_IOMUXC_NAND_DATA02_GPIO3_IO8 0x41
  724. >;
  725. };
  726. pinctrl_pps: ppsgrp {
  727. fsl,pins = <
  728. MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24 0x141 /* PPS */
  729. >;
  730. };
  731. pinctrl_reg_wl: regwlgrp {
  732. fsl,pins = <
  733. MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41 /* WLAN_WLON */
  734. >;
  735. };
  736. pinctrl_reg_usb1: regusb1grp {
  737. fsl,pins = <
  738. MX8MM_IOMUXC_SD1_DATA5_GPIO2_IO7 0x41
  739. >;
  740. };
  741. pinctrl_sai3: sai3grp {
  742. fsl,pins = <
  743. MX8MM_IOMUXC_SAI3_MCLK_SAI3_MCLK 0xd6
  744. MX8MM_IOMUXC_SAI3_RXD_SAI3_RX_DATA0 0xd6
  745. MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK 0xd6
  746. MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 0xd6
  747. MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0xd6
  748. >;
  749. };
  750. pinctrl_spi1: spi1grp {
  751. fsl,pins = <
  752. MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x82
  753. MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x82
  754. MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x82
  755. MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x40
  756. MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3 0x140 /* CAN_IRQ# */
  757. >;
  758. };
  759. pinctrl_spi2: spi2grp {
  760. fsl,pins = <
  761. MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0x82
  762. MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0x82
  763. MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0x82
  764. MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0x40 /* SS0 */
  765. >;
  766. };
  767. pinctrl_uart1: uart1grp {
  768. fsl,pins = <
  769. MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX 0x140
  770. MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX 0x140
  771. MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10 0x140 /* RTS */
  772. MX8MM_IOMUXC_SAI2_TXFS_GPIO4_IO24 0x140 /* CTS */
  773. >;
  774. };
  775. pinctrl_uart1_gpio: uart1gpiogrp {
  776. fsl,pins = <
  777. MX8MM_IOMUXC_SAI2_TXD0_GPIO4_IO26 0x40000110 /* HALF */
  778. MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25 0x40000110 /* TERM */
  779. MX8MM_IOMUXC_SAI2_RXD0_GPIO4_IO23 0x40000110 /* RS485 */
  780. >;
  781. };
  782. pinctrl_uart2: uart2grp {
  783. fsl,pins = <
  784. MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX 0x140
  785. MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX 0x140
  786. >;
  787. };
  788. pinctrl_uart3_gpio: uart3_gpiogrp {
  789. fsl,pins = <
  790. MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x41 /* BT_EN# */
  791. >;
  792. };
  793. pinctrl_uart3: uart3grp {
  794. fsl,pins = <
  795. MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX 0x140
  796. MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX 0x140
  797. MX8MM_IOMUXC_SD1_CLK_GPIO2_IO0 0x140 /* CTS */
  798. MX8MM_IOMUXC_SD1_CMD_GPIO2_IO1 0x140 /* RTS */
  799. >;
  800. };
  801. pinctrl_uart4: uart4grp {
  802. fsl,pins = <
  803. MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX 0x140
  804. MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX 0x140
  805. MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1 0x140 /* CTS */
  806. MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2 0x140 /* RTS */
  807. MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3 0x140 /* DTR */
  808. MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4 0x140 /* DSR */
  809. MX8MM_IOMUXC_SAI1_RXD4_GPIO4_IO6 0x140 /* DCD */
  810. MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7 0x140 /* RI */
  811. MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0 0x140 /* GNSS_PPS */
  812. MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x141 /* GNSS_GASP */
  813. >;
  814. };
  815. pinctrl_usdhc2: usdhc2grp {
  816. fsl,pins = <
  817. MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x190
  818. MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0
  819. MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0
  820. MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0
  821. MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0
  822. MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0
  823. >;
  824. };
  825. pinctrl_usdhc3: usdhc3grp {
  826. fsl,pins = <
  827. MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x190
  828. MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d0
  829. MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d0
  830. MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d0
  831. MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d0
  832. MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d0
  833. MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d0
  834. MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d0
  835. MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d0
  836. MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d0
  837. MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x190
  838. >;
  839. };
  840. pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
  841. fsl,pins = <
  842. MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x194
  843. MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d4
  844. MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d4
  845. MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d4
  846. MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d4
  847. MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d4
  848. MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d4
  849. MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d4
  850. MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d4
  851. MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d4
  852. MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x194
  853. >;
  854. };
  855. pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
  856. fsl,pins = <
  857. MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x196
  858. MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d6
  859. MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d6
  860. MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d6
  861. MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d6
  862. MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d6
  863. MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d6
  864. MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d6
  865. MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d6
  866. MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d6
  867. MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x196
  868. >;
  869. };
  870. pinctrl_wdog: wdoggrp {
  871. fsl,pins = <
  872. MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6
  873. >;
  874. };
  875. };