imx6sx-udoo-neo.dtsi 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2016 Andreas Färber
  4. */
  5. #include "imx6sx.dtsi"
  6. / {
  7. compatible = "fsl,imx6sx";
  8. chosen {
  9. stdout-path = "serial0:115200n8";
  10. };
  11. leds {
  12. compatible = "gpio-leds";
  13. led-red {
  14. label = "udoo-neo:red:mmc";
  15. gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>;
  16. default-state = "off";
  17. linux,default-trigger = "mmc0";
  18. };
  19. led-orange {
  20. label = "udoo-neo:orange:user";
  21. gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
  22. default-state = "keep";
  23. };
  24. };
  25. reg_sdio_pwr: regulator-sdio-pwr {
  26. compatible = "regulator-fixed";
  27. gpio = <&gpio6 1 GPIO_ACTIVE_HIGH>;
  28. enable-active-high;
  29. regulator-name = "SDIO_PWR";
  30. regulator-min-microvolt = <3300000>;
  31. regulator-max-microvolt = <3300000>;
  32. regulator-boot-on;
  33. };
  34. reg_usb_otg1_vbus: regulator-usb-otg1-vbus {
  35. compatible = "regulator-fixed";
  36. pinctrl-names = "default";
  37. pinctrl-0 = <&pinctrl_otg1_reg>;
  38. regulator-name = "usb_otg1_vbus";
  39. regulator-min-microvolt = <5000000>;
  40. regulator-max-microvolt = <5000000>;
  41. gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
  42. enable-active-high;
  43. };
  44. reg_usb_otg2_vbus: regulator-usb-otg2-vbus {
  45. compatible = "regulator-fixed";
  46. pinctrl-names = "default";
  47. pinctrl-0 = <&pinctrl_otg2_reg>;
  48. regulator-name = "usb_otg2_vbus";
  49. regulator-min-microvolt = <5000000>;
  50. regulator-max-microvolt = <5000000>;
  51. gpio = <&gpio4 12 GPIO_ACTIVE_HIGH>;
  52. enable-active-high;
  53. };
  54. reg_wlan: regulator-wlan {
  55. compatible = "regulator-fixed";
  56. regulator-name = "wlan-en-regulator";
  57. regulator-min-microvolt = <1800000>;
  58. regulator-max-microvolt = <1800000>;
  59. gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>;
  60. startup-delay-us = <70000>;
  61. enable-active-high;
  62. };
  63. };
  64. &fec1 {
  65. pinctrl-names = "default";
  66. pinctrl-0 = <&pinctrl_enet1>;
  67. phy-mode = "rmii";
  68. phy-reset-duration = <10>;
  69. phy-reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
  70. };
  71. &i2c1 {
  72. pinctrl-names = "default";
  73. pinctrl-0 = <&pinctrl_i2c1>;
  74. clock-frequency = <100000>;
  75. status = "okay";
  76. pmic: pmic@8 {
  77. compatible = "fsl,pfuze3000";
  78. reg = <0x08>;
  79. regulators {
  80. sw1a_reg: sw1a {
  81. regulator-min-microvolt = <700000>;
  82. regulator-max-microvolt = <1475000>;
  83. regulator-boot-on;
  84. regulator-always-on;
  85. regulator-ramp-delay = <6250>;
  86. };
  87. sw1c_reg: sw1b {
  88. regulator-min-microvolt = <700000>;
  89. regulator-max-microvolt = <1475000>;
  90. regulator-boot-on;
  91. regulator-always-on;
  92. regulator-ramp-delay = <6250>;
  93. };
  94. sw2_reg: sw2 {
  95. regulator-min-microvolt = <1500000>;
  96. regulator-max-microvolt = <1850000>;
  97. regulator-boot-on;
  98. regulator-always-on;
  99. };
  100. sw3a_reg: sw3 {
  101. regulator-min-microvolt = <900000>;
  102. regulator-max-microvolt = <1650000>;
  103. regulator-boot-on;
  104. regulator-always-on;
  105. };
  106. swbst_reg: swbst {
  107. regulator-min-microvolt = <5000000>;
  108. regulator-max-microvolt = <5150000>;
  109. };
  110. snvs_reg: vsnvs {
  111. regulator-min-microvolt = <1000000>;
  112. regulator-max-microvolt = <3000000>;
  113. regulator-boot-on;
  114. regulator-always-on;
  115. };
  116. vref_reg: vrefddr {
  117. regulator-boot-on;
  118. regulator-always-on;
  119. };
  120. vgen1_reg: vldo1 {
  121. regulator-min-microvolt = <1800000>;
  122. regulator-max-microvolt = <3300000>;
  123. regulator-always-on;
  124. };
  125. vgen2_reg: vldo2 {
  126. regulator-min-microvolt = <800000>;
  127. regulator-max-microvolt = <1550000>;
  128. };
  129. vgen3_reg: vccsd {
  130. regulator-min-microvolt = <2850000>;
  131. regulator-max-microvolt = <3300000>;
  132. regulator-always-on;
  133. };
  134. vgen4_reg: v33 {
  135. regulator-min-microvolt = <2850000>;
  136. regulator-max-microvolt = <3300000>;
  137. regulator-always-on;
  138. };
  139. vgen5_reg: vldo3 {
  140. regulator-min-microvolt = <1800000>;
  141. regulator-max-microvolt = <3300000>;
  142. regulator-always-on;
  143. };
  144. vgen6_reg: vldo4 {
  145. regulator-min-microvolt = <1800000>;
  146. regulator-max-microvolt = <3300000>;
  147. regulator-always-on;
  148. };
  149. };
  150. };
  151. };
  152. &i2c2 { /* Brick snap in sensors connector */
  153. pinctrl-names = "default";
  154. pinctrl-0 = <&pinctrl_i2c2>;
  155. clock-frequency = <100000>;
  156. status = "okay";
  157. };
  158. &i2c3 {
  159. pinctrl-names = "default";
  160. pinctrl-0 = <&pinctrl_i2c3>;
  161. clock-frequency = <100000>;
  162. status = "okay";
  163. hdmi-transmitter@70 {
  164. compatible = "nxp,tda998x";
  165. reg = <0x70>;
  166. interrupts-extended = <&gpio3 27 IRQ_TYPE_LEVEL_LOW>;
  167. ports {
  168. port {
  169. hdmi: endpoint {
  170. remote-endpoint = <&lcdc>;
  171. };
  172. };
  173. };
  174. };
  175. };
  176. &i2c4 { /* Onboard Motion sensors */
  177. pinctrl-names = "default";
  178. pinctrl-0 = <&pinctrl_i2c4>;
  179. clock-frequency = <100000>;
  180. status = "disabled";
  181. };
  182. &lcdif1 {
  183. pinctrl-names = "default";
  184. pinctrl-0 = <&pinctrl_lcd>;
  185. status = "okay";
  186. port {
  187. lcdc: endpoint {
  188. remote-endpoint = <&hdmi>;
  189. };
  190. };
  191. };
  192. &iomuxc {
  193. pinctrl_bt_reg: btreggrp {
  194. fsl,pins =
  195. <MX6SX_PAD_KEY_ROW2__GPIO2_IO_17 0x15059>;
  196. };
  197. pinctrl_enet1: enet1grp {
  198. fsl,pins =
  199. <MX6SX_PAD_ENET1_CRS__GPIO2_IO_1 0xa0b1>,
  200. <MX6SX_PAD_ENET1_MDC__ENET1_MDC 0xa0b1>,
  201. <MX6SX_PAD_ENET1_MDIO__ENET1_MDIO 0xa0b1>,
  202. <MX6SX_PAD_RGMII1_TD0__ENET1_TX_DATA_0 0xa0b1>,
  203. <MX6SX_PAD_RGMII1_TD1__ENET1_TX_DATA_1 0xa0b1>,
  204. <MX6SX_PAD_RGMII1_TX_CTL__ENET1_TX_EN 0xa0b1>,
  205. <MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x3081>,
  206. <MX6SX_PAD_ENET2_TX_CLK__GPIO2_IO_9 0x3081>,
  207. <MX6SX_PAD_RGMII1_RD0__ENET1_RX_DATA_0 0x3081>,
  208. <MX6SX_PAD_RGMII1_RD1__ENET1_RX_DATA_1 0x3081>,
  209. <MX6SX_PAD_RGMII1_RX_CTL__ENET1_RX_EN 0x3081>,
  210. <MX6SX_PAD_RGMII1_RXC__ENET1_RX_ER 0x3081>,
  211. <MX6SX_PAD_ENET2_RX_CLK__ENET2_REF_CLK_25M 0x91>;
  212. };
  213. pinctrl_i2c1: i2c1grp {
  214. fsl,pins =
  215. <MX6SX_PAD_GPIO1_IO00__I2C1_SCL 0x4001b8b1>,
  216. <MX6SX_PAD_GPIO1_IO01__I2C1_SDA 0x4001b8b1>;
  217. };
  218. pinctrl_i2c2: i2c2grp {
  219. fsl,pins =
  220. <MX6SX_PAD_GPIO1_IO03__I2C2_SDA 0x4001b8b1>,
  221. <MX6SX_PAD_GPIO1_IO02__I2C2_SCL 0x4001b8b1>;
  222. };
  223. pinctrl_i2c3: i2c3grp {
  224. fsl,pins =
  225. <MX6SX_PAD_KEY_ROW4__I2C3_SDA 0x4001b8b1>,
  226. <MX6SX_PAD_KEY_COL4__I2C3_SCL 0x4001b8b1>;
  227. };
  228. pinctrl_i2c4: i2c4grp {
  229. fsl,pins =
  230. <MX6SX_PAD_USB_H_DATA__I2C4_SDA 0x4001b8b1>,
  231. <MX6SX_PAD_USB_H_STROBE__I2C4_SCL 0x4001b8b1>;
  232. };
  233. pinctrl_lcd: lcdgrp {
  234. fsl,pins = <
  235. MX6SX_PAD_LCD1_DATA00__LCDIF1_DATA_0 0x4001b0b0
  236. MX6SX_PAD_LCD1_DATA01__LCDIF1_DATA_1 0x4001b0b0
  237. MX6SX_PAD_LCD1_DATA02__LCDIF1_DATA_2 0x4001b0b0
  238. MX6SX_PAD_LCD1_DATA03__LCDIF1_DATA_3 0x4001b0b0
  239. MX6SX_PAD_LCD1_DATA04__LCDIF1_DATA_4 0x4001b0b0
  240. MX6SX_PAD_LCD1_DATA05__LCDIF1_DATA_5 0x4001b0b0
  241. MX6SX_PAD_LCD1_DATA06__LCDIF1_DATA_6 0x4001b0b0
  242. MX6SX_PAD_LCD1_DATA07__LCDIF1_DATA_7 0x4001b0b0
  243. MX6SX_PAD_LCD1_DATA08__LCDIF1_DATA_8 0x4001b0b0
  244. MX6SX_PAD_LCD1_DATA09__LCDIF1_DATA_9 0x4001b0b0
  245. MX6SX_PAD_LCD1_DATA10__LCDIF1_DATA_10 0x4001b0b0
  246. MX6SX_PAD_LCD1_DATA11__LCDIF1_DATA_11 0x4001b0b0
  247. MX6SX_PAD_LCD1_DATA12__LCDIF1_DATA_12 0x4001b0b0
  248. MX6SX_PAD_LCD1_DATA13__LCDIF1_DATA_13 0x4001b0b0
  249. MX6SX_PAD_LCD1_DATA14__LCDIF1_DATA_14 0x4001b0b0
  250. MX6SX_PAD_LCD1_DATA15__LCDIF1_DATA_15 0x4001b0b0
  251. MX6SX_PAD_LCD1_DATA16__LCDIF1_DATA_16 0x4001b0b0
  252. MX6SX_PAD_LCD1_DATA17__LCDIF1_DATA_17 0x4001b0b0
  253. MX6SX_PAD_LCD1_DATA18__LCDIF1_DATA_18 0x4001b0b0
  254. MX6SX_PAD_LCD1_DATA19__LCDIF1_DATA_19 0x4001b0b0
  255. MX6SX_PAD_LCD1_DATA20__LCDIF1_DATA_20 0x4001b0b0
  256. MX6SX_PAD_LCD1_DATA21__LCDIF1_DATA_21 0x4001b0b0
  257. MX6SX_PAD_LCD1_DATA22__LCDIF1_DATA_22 0x4001b0b0
  258. MX6SX_PAD_LCD1_DATA23__LCDIF1_DATA_23 0x4001b0b0
  259. MX6SX_PAD_LCD1_CLK__LCDIF1_CLK 0x4001b0b0
  260. MX6SX_PAD_LCD1_ENABLE__LCDIF1_ENABLE 0x4001b0b0
  261. MX6SX_PAD_LCD1_VSYNC__LCDIF1_VSYNC 0x4001b0b0
  262. MX6SX_PAD_LCD1_HSYNC__LCDIF1_HSYNC 0x4001b0b0
  263. MX6SX_PAD_LCD1_RESET__GPIO3_IO_27 0x4001b0b0
  264. >;
  265. };
  266. pinctrl_uart1: uart1grp {
  267. fsl,pins =
  268. <MX6SX_PAD_GPIO1_IO04__UART1_DCE_TX 0x1b0b1>,
  269. <MX6SX_PAD_GPIO1_IO05__UART1_DCE_RX 0x1b0b1>;
  270. };
  271. pinctrl_uart2: uart2grp {
  272. fsl,pins =
  273. <MX6SX_PAD_GPIO1_IO06__UART2_DCE_TX 0x1b0b1>,
  274. <MX6SX_PAD_GPIO1_IO07__UART2_DCE_RX 0x1b0b1>;
  275. };
  276. pinctrl_uart3: uart3grp {
  277. fsl,pins =
  278. <MX6SX_PAD_SD3_DATA4__UART3_DCE_RX 0x13059>,
  279. <MX6SX_PAD_SD3_DATA5__UART3_DCE_TX 0x13059>,
  280. <MX6SX_PAD_SD3_DATA6__UART3_DCE_RTS 0x13059>,
  281. <MX6SX_PAD_SD3_DATA7__UART3_DCE_CTS 0x13059>;
  282. };
  283. pinctrl_uart5: uart5grp {
  284. fsl,pins =
  285. <MX6SX_PAD_SD4_DATA4__UART5_DCE_RX 0x1b0b1>,
  286. <MX6SX_PAD_SD4_DATA5__UART5_DCE_TX 0x1b0b1>;
  287. };
  288. pinctrl_uart6: uart6grp {
  289. fsl,pins =
  290. <MX6SX_PAD_CSI_DATA00__UART6_RI_B 0x1b0b1>,
  291. <MX6SX_PAD_CSI_DATA01__UART6_DSR_B 0x1b0b1>,
  292. <MX6SX_PAD_CSI_DATA02__UART6_DTR_B 0x1b0b1>,
  293. <MX6SX_PAD_CSI_DATA03__UART6_DCD_B 0x1b0b1>,
  294. <MX6SX_PAD_CSI_DATA04__UART6_DCE_RX 0x1b0b1>,
  295. <MX6SX_PAD_CSI_DATA05__UART6_DCE_TX 0x1b0b1>,
  296. <MX6SX_PAD_CSI_DATA06__UART6_DCE_RTS 0x1b0b1>,
  297. <MX6SX_PAD_CSI_DATA07__UART6_DCE_CTS 0x1b0b1>;
  298. };
  299. pinctrl_otg1_reg: otg1grp {
  300. fsl,pins =
  301. <MX6SX_PAD_GPIO1_IO09__GPIO1_IO_9 0x10b0>;
  302. };
  303. pinctrl_otg2_reg: otg2grp {
  304. fsl,pins =
  305. <MX6SX_PAD_NAND_RE_B__GPIO4_IO_12 0x10b0>;
  306. };
  307. pinctrl_usb_otg1: usbotg1grp {
  308. fsl,pins =
  309. <MX6SX_PAD_GPIO1_IO10__ANATOP_OTG1_ID 0x17059>,
  310. <MX6SX_PAD_GPIO1_IO08__USB_OTG1_OC 0x10b0>;
  311. };
  312. pinctrl_usb_otg2: usbot2ggrp {
  313. fsl,pins =
  314. <MX6SX_PAD_QSPI1A_DATA0__USB_OTG2_OC 0x10b0>;
  315. };
  316. pinctrl_usdhc2: usdhc2grp {
  317. fsl,pins =
  318. <MX6SX_PAD_SD2_CMD__USDHC2_CMD 0x17059>,
  319. <MX6SX_PAD_SD2_CLK__USDHC2_CLK 0x10059>,
  320. <MX6SX_PAD_SD2_DATA0__USDHC2_DATA0 0x17059>,
  321. <MX6SX_PAD_SD2_DATA1__USDHC2_DATA1 0x17059>,
  322. <MX6SX_PAD_SD2_DATA2__USDHC2_DATA2 0x17059>,
  323. <MX6SX_PAD_SD2_DATA3__USDHC2_DATA3 0x17059>,
  324. <MX6SX_PAD_SD1_DATA0__GPIO6_IO_2 0x17059>; /* CD */
  325. };
  326. pinctrl_usdhc3: usdhc3grp {
  327. fsl,pins =
  328. <MX6SX_PAD_KEY_COL2__GPIO2_IO_12 0x15059>,
  329. <MX6SX_PAD_KEY_ROW1__GPIO2_IO_16 0x13059>,
  330. <MX6SX_PAD_SD3_DATA0__USDHC3_DATA0 0x17069>,
  331. <MX6SX_PAD_SD3_DATA1__USDHC3_DATA1 0x17069>,
  332. <MX6SX_PAD_SD3_DATA2__USDHC3_DATA2 0x17069>,
  333. <MX6SX_PAD_SD3_DATA3__USDHC3_DATA3 0x17069>,
  334. <MX6SX_PAD_SD3_CMD__USDHC3_CMD 0x17069>,
  335. <MX6SX_PAD_SD3_CLK__USDHC3_CLK 0x10069>,
  336. <MX6SX_PAD_CSI_MCLK__OSC32K_32K_OUT 0x10059>;
  337. };
  338. };
  339. &uart1 {
  340. pinctrl-names = "default";
  341. pinctrl-0 = <&pinctrl_uart1>;
  342. status = "okay";
  343. };
  344. /* Cortex-M4 serial */
  345. &uart2 {
  346. pinctrl-names = "default";
  347. pinctrl-0 = <&pinctrl_uart2>;
  348. status = "disabled";
  349. };
  350. &uart3 { /* Bluetooth - only on Extended/Full versions */
  351. pinctrl-names = "default";
  352. pinctrl-0 = <&pinctrl_uart3>;
  353. uart-has-rtscts;
  354. status = "disabled";
  355. bluetooth {
  356. compatible = "ti,wl1831-st";
  357. enable-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
  358. pinctrl-names = "default";
  359. pinctrl-0 = <&pinctrl_bt_reg>;
  360. max-speed = <921600>;
  361. };
  362. };
  363. /* Arduino serial */
  364. &uart5 {
  365. pinctrl-names = "default";
  366. pinctrl-0 = <&pinctrl_uart5>;
  367. status = "disabled";
  368. };
  369. &uart6 {
  370. pinctrl-names = "default";
  371. pinctrl-0 = <&pinctrl_uart6>;
  372. uart-has-rtscts;
  373. status = "disabled";
  374. };
  375. &usbotg1 { /* J2 micro USB port */
  376. vbus-supply = <&reg_usb_otg1_vbus>;
  377. pinctrl-names = "default";
  378. pinctrl-0 = <&pinctrl_usb_otg1>;
  379. status = "okay";
  380. };
  381. &usbotg2 { /* J3 host USB port */
  382. vbus-supply = <&reg_usb_otg2_vbus>;
  383. pinctrl-names = "default";
  384. pinctrl-0 = <&pinctrl_usb_otg2>;
  385. dr_mode = "host";
  386. status = "okay";
  387. };
  388. &usdhc2 {
  389. pinctrl-names = "default";
  390. pinctrl-0 = <&pinctrl_usdhc2>;
  391. vmmc-supply = <&reg_sdio_pwr>;
  392. bus-width = <4>;
  393. cd-gpios = <&gpio6 2 GPIO_ACTIVE_LOW>;
  394. no-1-8-v;
  395. keep-power-in-suspend;
  396. wakeup-source;
  397. status = "okay";
  398. };
  399. &usdhc3 { /* Wi-Fi */
  400. pinctrl-names = "default";
  401. pinctrl-0 = <&pinctrl_usdhc3>;
  402. non-removable;
  403. vmmc-supply = <&reg_wlan>;
  404. cap-power-off-card;
  405. wakeup-source;
  406. keep-power-in-suspend;
  407. #address-cells = <1>;
  408. #size-cells = <0>;
  409. status = "okay";
  410. wlcore: wlcore@2 {
  411. compatible = "ti,wl1831";
  412. reg = <2>;
  413. interrupt-parent = <&gpio2>;
  414. interrupts = <16 IRQ_TYPE_EDGE_RISING>;
  415. ref-clock-frequency = <38400000>;
  416. tcxo-clock-frequency = <26000000>;
  417. };
  418. };