imx8mm-venice-gw700x.dtsi 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright 2020 Gateworks Corporation
  4. */
  5. #include <dt-bindings/gpio/gpio.h>
  6. #include <dt-bindings/input/linux-event-codes.h>
  7. #include <dt-bindings/net/ti-dp83867.h>
  8. / {
  9. memory@40000000 {
  10. device_type = "memory";
  11. reg = <0x0 0x40000000 0 0x80000000>;
  12. };
  13. gpio-keys {
  14. compatible = "gpio-keys";
  15. key-user-pb {
  16. label = "user_pb";
  17. gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
  18. linux,code = <BTN_0>;
  19. };
  20. key-user-pb1x {
  21. label = "user_pb1x";
  22. linux,code = <BTN_1>;
  23. interrupt-parent = <&gsc>;
  24. interrupts = <0>;
  25. };
  26. key-erased {
  27. label = "key_erased";
  28. linux,code = <BTN_2>;
  29. interrupt-parent = <&gsc>;
  30. interrupts = <1>;
  31. };
  32. key-eeprom-wp {
  33. label = "eeprom_wp";
  34. linux,code = <BTN_3>;
  35. interrupt-parent = <&gsc>;
  36. interrupts = <2>;
  37. };
  38. key-tamper {
  39. label = "tamper";
  40. linux,code = <BTN_4>;
  41. interrupt-parent = <&gsc>;
  42. interrupts = <5>;
  43. };
  44. switch-hold {
  45. label = "switch_hold";
  46. linux,code = <BTN_5>;
  47. interrupt-parent = <&gsc>;
  48. interrupts = <7>;
  49. };
  50. };
  51. };
  52. &A53_0 {
  53. cpu-supply = <&buck3_reg>;
  54. };
  55. &A53_1 {
  56. cpu-supply = <&buck3_reg>;
  57. };
  58. &A53_2 {
  59. cpu-supply = <&buck3_reg>;
  60. };
  61. &A53_3 {
  62. cpu-supply = <&buck3_reg>;
  63. };
  64. &ddrc {
  65. operating-points-v2 = <&ddrc_opp_table>;
  66. ddrc_opp_table: opp-table {
  67. compatible = "operating-points-v2";
  68. opp-25M {
  69. opp-hz = /bits/ 64 <25000000>;
  70. };
  71. opp-100M {
  72. opp-hz = /bits/ 64 <100000000>;
  73. };
  74. opp-750M {
  75. opp-hz = /bits/ 64 <750000000>;
  76. };
  77. };
  78. };
  79. &fec1 {
  80. pinctrl-names = "default";
  81. pinctrl-0 = <&pinctrl_fec1>;
  82. phy-mode = "rgmii-id";
  83. phy-handle = <&ethphy0>;
  84. status = "okay";
  85. mdio {
  86. #address-cells = <1>;
  87. #size-cells = <0>;
  88. ethphy0: ethernet-phy@0 {
  89. compatible = "ethernet-phy-ieee802.3-c22";
  90. reg = <0>;
  91. ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
  92. ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
  93. tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
  94. rx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
  95. };
  96. };
  97. };
  98. &i2c1 {
  99. clock-frequency = <100000>;
  100. pinctrl-names = "default";
  101. pinctrl-0 = <&pinctrl_i2c1>;
  102. status = "okay";
  103. gsc: gsc@20 {
  104. compatible = "gw,gsc";
  105. reg = <0x20>;
  106. pinctrl-0 = <&pinctrl_gsc>;
  107. interrupt-parent = <&gpio2>;
  108. interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
  109. interrupt-controller;
  110. #interrupt-cells = <1>;
  111. #address-cells = <1>;
  112. #size-cells = <0>;
  113. adc {
  114. compatible = "gw,gsc-adc";
  115. #address-cells = <1>;
  116. #size-cells = <0>;
  117. channel@6 {
  118. gw,mode = <0>;
  119. reg = <0x06>;
  120. label = "temp";
  121. };
  122. channel@8 {
  123. gw,mode = <1>;
  124. reg = <0x08>;
  125. label = "vdd_bat";
  126. };
  127. channel@16 {
  128. gw,mode = <4>;
  129. reg = <0x16>;
  130. label = "fan_tach";
  131. };
  132. channel@82 {
  133. gw,mode = <2>;
  134. reg = <0x82>;
  135. label = "vdd_vin";
  136. gw,voltage-divider-ohms = <22100 1000>;
  137. };
  138. channel@84 {
  139. gw,mode = <2>;
  140. reg = <0x84>;
  141. label = "vdd_adc1";
  142. gw,voltage-divider-ohms = <10000 10000>;
  143. };
  144. channel@86 {
  145. gw,mode = <2>;
  146. reg = <0x86>;
  147. label = "vdd_adc2";
  148. gw,voltage-divider-ohms = <10000 10000>;
  149. };
  150. channel@88 {
  151. gw,mode = <2>;
  152. reg = <0x88>;
  153. label = "vdd_dram";
  154. };
  155. channel@8c {
  156. gw,mode = <2>;
  157. reg = <0x8c>;
  158. label = "vdd_1p2";
  159. };
  160. channel@8e {
  161. gw,mode = <2>;
  162. reg = <0x8e>;
  163. label = "vdd_1p0";
  164. };
  165. channel@90 {
  166. gw,mode = <2>;
  167. reg = <0x90>;
  168. label = "vdd_2p5";
  169. gw,voltage-divider-ohms = <10000 10000>;
  170. };
  171. channel@92 {
  172. gw,mode = <2>;
  173. reg = <0x92>;
  174. label = "vdd_3p3";
  175. gw,voltage-divider-ohms = <10000 10000>;
  176. };
  177. channel@98 {
  178. gw,mode = <2>;
  179. reg = <0x98>;
  180. label = "vdd_0p95";
  181. };
  182. channel@9a {
  183. gw,mode = <2>;
  184. reg = <0x9a>;
  185. label = "vdd_1p8";
  186. };
  187. channel@a2 {
  188. gw,mode = <2>;
  189. reg = <0xa2>;
  190. label = "vdd_gsc";
  191. gw,voltage-divider-ohms = <10000 10000>;
  192. };
  193. };
  194. fan-controller@0 {
  195. #address-cells = <1>;
  196. #size-cells = <0>;
  197. compatible = "gw,gsc-fan";
  198. reg = <0x0a>;
  199. };
  200. };
  201. gpio: gpio@23 {
  202. compatible = "nxp,pca9555";
  203. reg = <0x23>;
  204. gpio-controller;
  205. #gpio-cells = <2>;
  206. interrupt-parent = <&gsc>;
  207. interrupts = <4>;
  208. };
  209. eeprom@50 {
  210. compatible = "atmel,24c02";
  211. reg = <0x50>;
  212. pagesize = <16>;
  213. };
  214. eeprom@51 {
  215. compatible = "atmel,24c02";
  216. reg = <0x51>;
  217. pagesize = <16>;
  218. };
  219. eeprom@52 {
  220. compatible = "atmel,24c02";
  221. reg = <0x52>;
  222. pagesize = <16>;
  223. };
  224. eeprom@53 {
  225. compatible = "atmel,24c02";
  226. reg = <0x53>;
  227. pagesize = <16>;
  228. };
  229. rtc@68 {
  230. compatible = "dallas,ds1672";
  231. reg = <0x68>;
  232. };
  233. pmic@69 {
  234. compatible = "mps,mp5416";
  235. reg = <0x69>;
  236. regulators {
  237. /* vdd_0p95: DRAM/GPU/VPU */
  238. buck1 {
  239. regulator-name = "buck1";
  240. regulator-min-microvolt = <800000>;
  241. regulator-max-microvolt = <1000000>;
  242. regulator-min-microamp = <3800000>;
  243. regulator-max-microamp = <6800000>;
  244. regulator-boot-on;
  245. regulator-always-on;
  246. };
  247. /* vdd_soc */
  248. buck2 {
  249. regulator-name = "buck2";
  250. regulator-min-microvolt = <800000>;
  251. regulator-max-microvolt = <900000>;
  252. regulator-min-microamp = <2200000>;
  253. regulator-max-microamp = <5200000>;
  254. regulator-boot-on;
  255. regulator-always-on;
  256. };
  257. /* vdd_arm */
  258. buck3_reg: buck3 {
  259. regulator-name = "buck3";
  260. regulator-min-microvolt = <800000>;
  261. regulator-max-microvolt = <1000000>;
  262. regulator-min-microamp = <3800000>;
  263. regulator-max-microamp = <6800000>;
  264. regulator-always-on;
  265. };
  266. /* vdd_1p8 */
  267. buck4 {
  268. regulator-name = "buck4";
  269. regulator-min-microvolt = <1800000>;
  270. regulator-max-microvolt = <1800000>;
  271. regulator-min-microamp = <2200000>;
  272. regulator-max-microamp = <5200000>;
  273. regulator-boot-on;
  274. regulator-always-on;
  275. };
  276. /* nvcc_snvs_1p8 */
  277. ldo1 {
  278. regulator-name = "ldo1";
  279. regulator-min-microvolt = <1800000>;
  280. regulator-max-microvolt = <1800000>;
  281. regulator-boot-on;
  282. regulator-always-on;
  283. };
  284. /* vdd_snvs_0p8 */
  285. ldo2 {
  286. regulator-name = "ldo2";
  287. regulator-min-microvolt = <800000>;
  288. regulator-max-microvolt = <800000>;
  289. regulator-boot-on;
  290. regulator-always-on;
  291. };
  292. /* vdd_0p9 */
  293. ldo3 {
  294. regulator-name = "ldo3";
  295. regulator-min-microvolt = <900000>;
  296. regulator-max-microvolt = <900000>;
  297. regulator-boot-on;
  298. regulator-always-on;
  299. };
  300. /* vdd_1p8 */
  301. ldo4 {
  302. regulator-name = "ldo4";
  303. regulator-min-microvolt = <1800000>;
  304. regulator-max-microvolt = <1800000>;
  305. regulator-boot-on;
  306. regulator-always-on;
  307. };
  308. };
  309. };
  310. };
  311. &i2c2 {
  312. clock-frequency = <400000>;
  313. pinctrl-names = "default";
  314. pinctrl-0 = <&pinctrl_i2c2>;
  315. status = "okay";
  316. eeprom@52 {
  317. compatible = "atmel,24c32";
  318. reg = <0x52>;
  319. pagesize = <32>;
  320. };
  321. };
  322. /* console */
  323. &uart2 {
  324. pinctrl-names = "default";
  325. pinctrl-0 = <&pinctrl_uart2>;
  326. status = "okay";
  327. };
  328. /* eMMC */
  329. &usdhc3 {
  330. pinctrl-names = "default", "state_100mhz", "state_200mhz";
  331. pinctrl-0 = <&pinctrl_usdhc3>;
  332. pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
  333. pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
  334. bus-width = <8>;
  335. non-removable;
  336. status = "okay";
  337. };
  338. &wdog1 {
  339. pinctrl-names = "default";
  340. pinctrl-0 = <&pinctrl_wdog>;
  341. fsl,ext-reset-output;
  342. status = "okay";
  343. };
  344. &iomuxc {
  345. pinctrl_fec1: fec1grp {
  346. fsl,pins = <
  347. MX8MM_IOMUXC_ENET_MDC_ENET1_MDC 0x3
  348. MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO 0x3
  349. MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f
  350. MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f
  351. MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f
  352. MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f
  353. MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91
  354. MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91
  355. MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91
  356. MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91
  357. MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x1f
  358. MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91
  359. MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91
  360. MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f
  361. MX8MM_IOMUXC_NAND_ALE_GPIO3_IO0 0x19
  362. >;
  363. };
  364. pinctrl_gsc: gscgrp {
  365. fsl,pins = <
  366. MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6 0x159
  367. >;
  368. };
  369. pinctrl_i2c1: i2c1grp {
  370. fsl,pins = <
  371. MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x400001c3
  372. MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c3
  373. >;
  374. };
  375. pinctrl_i2c2: i2c2grp {
  376. fsl,pins = <
  377. MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL 0x400001c3
  378. MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA 0x400001c3
  379. >;
  380. };
  381. pinctrl_uart2: uart2grp {
  382. fsl,pins = <
  383. MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX 0x140
  384. MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX 0x140
  385. >;
  386. };
  387. pinctrl_usdhc3: usdhc3grp {
  388. fsl,pins = <
  389. MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x190
  390. MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d0
  391. MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d0
  392. MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d0
  393. MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d0
  394. MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d0
  395. MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d0
  396. MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d0
  397. MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d0
  398. MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d0
  399. MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x190
  400. >;
  401. };
  402. pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
  403. fsl,pins = <
  404. MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x194
  405. MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d4
  406. MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d4
  407. MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d4
  408. MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d4
  409. MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d4
  410. MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d4
  411. MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d4
  412. MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d4
  413. MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d4
  414. MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x194
  415. >;
  416. };
  417. pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
  418. fsl,pins = <
  419. MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x196
  420. MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d6
  421. MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d6
  422. MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d6
  423. MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d6
  424. MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d6
  425. MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d6
  426. MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d6
  427. MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d6
  428. MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d6
  429. MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x196
  430. >;
  431. };
  432. pinctrl_wdog: wdoggrp {
  433. fsl,pins = <
  434. MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6
  435. >;
  436. };
  437. };