imx8mq-librem5.dtsi 29 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * Copyright 2018-2020 Purism SPC
  4. */
  5. /dts-v1/;
  6. #include "dt-bindings/input/input.h"
  7. #include <dt-bindings/interrupt-controller/irq.h>
  8. #include <dt-bindings/leds/common.h>
  9. #include "dt-bindings/pwm/pwm.h"
  10. #include "dt-bindings/usb/pd.h"
  11. #include "imx8mq.dtsi"
  12. / {
  13. model = "Purism Librem 5";
  14. compatible = "purism,librem5", "fsl,imx8mq";
  15. chassis-type = "handset";
  16. backlight_dsi: backlight-dsi {
  17. compatible = "led-backlight";
  18. leds = <&led_backlight>;
  19. };
  20. pmic_osc: clock-pmic {
  21. compatible = "fixed-clock";
  22. #clock-cells = <0>;
  23. clock-frequency = <32768>;
  24. clock-output-names = "pmic_osc";
  25. };
  26. chosen {
  27. stdout-path = &uart1;
  28. };
  29. gpio-keys {
  30. compatible = "gpio-keys";
  31. pinctrl-names = "default";
  32. pinctrl-0 = <&pinctrl_keys>;
  33. key-vol-down {
  34. label = "VOL_DOWN";
  35. gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
  36. linux,code = <KEY_VOLUMEDOWN>;
  37. debounce-interval = <50>;
  38. wakeup-source;
  39. };
  40. key-vol-up {
  41. label = "VOL_UP";
  42. gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
  43. linux,code = <KEY_VOLUMEUP>;
  44. debounce-interval = <50>;
  45. wakeup-source;
  46. };
  47. };
  48. led-controller {
  49. compatible = "pwm-leds";
  50. led-0 {
  51. function = LED_FUNCTION_STATUS;
  52. color = <LED_COLOR_ID_BLUE>;
  53. max-brightness = <248>;
  54. pwms = <&pwm2 0 50000 0>;
  55. };
  56. led-1 {
  57. function = LED_FUNCTION_STATUS;
  58. color = <LED_COLOR_ID_GREEN>;
  59. max-brightness = <248>;
  60. pwms = <&pwm4 0 50000 0>;
  61. };
  62. led-2 {
  63. function = LED_FUNCTION_STATUS;
  64. color = <LED_COLOR_ID_RED>;
  65. max-brightness = <248>;
  66. pwms = <&pwm3 0 50000 0>;
  67. };
  68. };
  69. reg_aud_1v8: regulator-audio-1v8 {
  70. compatible = "regulator-fixed";
  71. pinctrl-names = "default";
  72. pinctrl-0 = <&pinctrl_audiopwr>;
  73. regulator-name = "AUDIO_PWR_EN";
  74. regulator-min-microvolt = <1800000>;
  75. regulator-max-microvolt = <1800000>;
  76. gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
  77. enable-active-high;
  78. };
  79. /*
  80. * the pinctrl for reg_csi_1v8 and reg_vcam_1v8 is added to the PMIC
  81. * since we can't have it twice in the 2 different regulator nodes.
  82. */
  83. reg_csi_1v8: regulator-csi-1v8 {
  84. compatible = "regulator-fixed";
  85. regulator-name = "CAMERA_VDDIO_1V8";
  86. regulator-min-microvolt = <1800000>;
  87. regulator-max-microvolt = <1800000>;
  88. vin-supply = <&reg_vdd_3v3>;
  89. gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
  90. enable-active-high;
  91. };
  92. /* controlled by the CAMERA_POWER_KEY HKS */
  93. reg_vcam_1v2: regulator-vcam-1v2 {
  94. compatible = "regulator-fixed";
  95. regulator-name = "CAMERA_VDDD_1V2";
  96. regulator-min-microvolt = <1200000>;
  97. regulator-max-microvolt = <1200000>;
  98. vin-supply = <&reg_vdd_1v8>;
  99. enable-active-high;
  100. };
  101. reg_vcam_2v8: regulator-vcam-2v8 {
  102. compatible = "regulator-fixed";
  103. regulator-name = "CAMERA_VDDA_2V8";
  104. regulator-min-microvolt = <2800000>;
  105. regulator-max-microvolt = <2800000>;
  106. vin-supply = <&reg_vdd_3v3>;
  107. gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
  108. enable-active-high;
  109. };
  110. reg_gnss: regulator-gnss {
  111. compatible = "regulator-fixed";
  112. pinctrl-names = "default";
  113. pinctrl-0 = <&pinctrl_gnsspwr>;
  114. regulator-name = "GNSS";
  115. regulator-min-microvolt = <3300000>;
  116. regulator-max-microvolt = <3300000>;
  117. gpio = <&gpio3 12 GPIO_ACTIVE_HIGH>;
  118. enable-active-high;
  119. };
  120. reg_hub: regulator-hub {
  121. compatible = "regulator-fixed";
  122. pinctrl-names = "default";
  123. pinctrl-0 = <&pinctrl_hub_pwr>;
  124. regulator-name = "HUB";
  125. regulator-min-microvolt = <3300000>;
  126. regulator-max-microvolt = <3300000>;
  127. gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
  128. enable-active-high;
  129. };
  130. reg_lcd_1v8: regulator-lcd-1v8 {
  131. compatible = "regulator-fixed";
  132. pinctrl-names = "default";
  133. pinctrl-0 = <&pinctrl_dsien>;
  134. regulator-name = "LCD_1V8";
  135. regulator-min-microvolt = <1800000>;
  136. regulator-max-microvolt = <1800000>;
  137. vin-supply = <&reg_vdd_1v8>;
  138. gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
  139. enable-active-high;
  140. /* Otherwise i2c3 is not functional */
  141. regulator-always-on;
  142. };
  143. reg_lcd_3v4: regulator-lcd-3v4 {
  144. compatible = "regulator-fixed";
  145. regulator-name = "LCD_3V4";
  146. pinctrl-names = "default";
  147. pinctrl-0 = <&pinctrl_dsibiasen>;
  148. vin-supply = <&reg_vsys_3v4>;
  149. gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>;
  150. enable-active-high;
  151. };
  152. reg_vdd_sen: regulator-vdd-sen {
  153. compatible = "regulator-fixed";
  154. regulator-name = "VDD_SEN";
  155. regulator-min-microvolt = <3300000>;
  156. regulator-max-microvolt = <3300000>;
  157. };
  158. reg_vdd_1v8: regulator-vdd-1v8 {
  159. compatible = "regulator-fixed";
  160. regulator-name = "VDD_1V8";
  161. regulator-min-microvolt = <1800000>;
  162. regulator-max-microvolt = <1800000>;
  163. vin-supply = <&buck7_reg>;
  164. };
  165. reg_vdd_3v3: regulator-vdd-3v3 {
  166. compatible = "regulator-fixed";
  167. regulator-name = "VDD_3V3";
  168. regulator-min-microvolt = <3300000>;
  169. regulator-max-microvolt = <3300000>;
  170. };
  171. reg_vsys_3v4: regulator-vsys-3v4 {
  172. compatible = "regulator-fixed";
  173. regulator-name = "VSYS_3V4";
  174. regulator-min-microvolt = <3400000>;
  175. regulator-max-microvolt = <3400000>;
  176. regulator-always-on;
  177. };
  178. reg_wifi_3v3: regulator-wifi-3v3 {
  179. compatible = "regulator-fixed";
  180. pinctrl-names = "default";
  181. pinctrl-0 = <&pinctrl_wifi_pwr>;
  182. regulator-name = "3V3_WIFI";
  183. regulator-min-microvolt = <3300000>;
  184. regulator-max-microvolt = <3300000>;
  185. gpio = <&gpio3 10 GPIO_ACTIVE_HIGH>;
  186. enable-active-high;
  187. vin-supply = <&reg_vdd_3v3>;
  188. };
  189. sound {
  190. compatible = "simple-audio-card";
  191. pinctrl-names = "default";
  192. pinctrl-0 = <&pinctrl_hp>;
  193. simple-audio-card,name = "Librem 5";
  194. simple-audio-card,format = "i2s";
  195. simple-audio-card,widgets =
  196. "Headphone", "Headphones",
  197. "Microphone", "Headset Mic",
  198. "Microphone", "Digital Mic",
  199. "Speaker", "Speaker";
  200. simple-audio-card,routing =
  201. "Headphones", "HPOUTL",
  202. "Headphones", "HPOUTR",
  203. "Speaker", "SPKOUTL",
  204. "Speaker", "SPKOUTR",
  205. "Headset Mic", "MICBIAS",
  206. "IN3R", "Headset Mic",
  207. "DMICDAT", "Digital Mic";
  208. simple-audio-card,hp-det-gpio = <&gpio3 9 GPIO_ACTIVE_HIGH>;
  209. simple-audio-card,cpu {
  210. sound-dai = <&sai2>;
  211. };
  212. simple-audio-card,codec {
  213. sound-dai = <&codec>;
  214. clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
  215. frame-master;
  216. bitclock-master;
  217. };
  218. };
  219. sound-wwan {
  220. compatible = "simple-audio-card";
  221. simple-audio-card,name = "Modem";
  222. simple-audio-card,format = "i2s";
  223. simple-audio-card,cpu {
  224. sound-dai = <&sai6>;
  225. frame-inversion;
  226. };
  227. simple-audio-card,codec {
  228. sound-dai = <&bm818_codec>;
  229. frame-master;
  230. bitclock-master;
  231. };
  232. };
  233. usdhc2_pwrseq: pwrseq {
  234. pinctrl-names = "default";
  235. pinctrl-0 = <&pinctrl_bt>, <&pinctrl_wifi_disable>;
  236. compatible = "mmc-pwrseq-simple";
  237. reset-gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>,
  238. <&gpio4 29 GPIO_ACTIVE_HIGH>;
  239. };
  240. bm818_codec: sound-wwan-codec {
  241. compatible = "broadmobi,bm818", "option,gtm601";
  242. #sound-dai-cells = <0>;
  243. };
  244. vibrator {
  245. compatible = "pwm-vibrator";
  246. pwms = <&pwm1 0 1000000000 0>;
  247. pwm-names = "enable";
  248. vcc-supply = <&reg_vdd_3v3>;
  249. };
  250. };
  251. &A53_0 {
  252. cpu-supply = <&buck2_reg>;
  253. };
  254. &A53_1 {
  255. cpu-supply = <&buck2_reg>;
  256. };
  257. &A53_2 {
  258. cpu-supply = <&buck2_reg>;
  259. };
  260. &A53_3 {
  261. cpu-supply = <&buck2_reg>;
  262. };
  263. &csi1 {
  264. status = "okay";
  265. };
  266. &ddrc {
  267. operating-points-v2 = <&ddrc_opp_table>;
  268. status = "okay";
  269. ddrc_opp_table: opp-table {
  270. compatible = "operating-points-v2";
  271. opp-25M {
  272. opp-hz = /bits/ 64 <25000000>;
  273. };
  274. opp-100M {
  275. opp-hz = /bits/ 64 <100000000>;
  276. };
  277. opp-800M {
  278. opp-hz = /bits/ 64 <800000000>;
  279. };
  280. };
  281. };
  282. &dphy {
  283. status = "okay";
  284. };
  285. &ecspi1 {
  286. pinctrl-names = "default";
  287. pinctrl-0 = <&pinctrl_ecspi1>;
  288. cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
  289. #address-cells = <1>;
  290. #size-cells = <0>;
  291. status = "okay";
  292. nor_flash: flash@0 {
  293. compatible = "jedec,spi-nor";
  294. reg = <0>;
  295. spi-max-frequency = <1000000>;
  296. #address-cells = <1>;
  297. #size-cells = <1>;
  298. partition@0 {
  299. label = "protected0";
  300. reg = <0x0 0x30000>;
  301. read-only;
  302. };
  303. partition@30000 {
  304. label = "firmware";
  305. reg = <0x30000 0x1d0000>;
  306. read-only;
  307. };
  308. };
  309. };
  310. &gpio1 {
  311. pinctrl-names = "default";
  312. pinctrl-0 = <&pinctrl_pmic_5v>;
  313. pmic-5v-hog {
  314. gpio-hog;
  315. gpios = <1 GPIO_ACTIVE_HIGH>;
  316. input;
  317. lane-mapping = "pmic-5v";
  318. };
  319. };
  320. &iomuxc {
  321. pinctrl_audiopwr: audiopwrgrp {
  322. fsl,pins = <
  323. /* AUDIO_POWER_EN_3V3 */
  324. MX8MQ_IOMUXC_GPIO1_IO04_GPIO1_IO4 0x83
  325. >;
  326. };
  327. pinctrl_bl: blgrp {
  328. fsl,pins = <
  329. /* BACKLINGE_EN */
  330. MX8MQ_IOMUXC_NAND_DQS_GPIO3_IO14 0x83
  331. >;
  332. };
  333. pinctrl_bt: btgrp {
  334. fsl,pins = <
  335. /* BT_REG_ON */
  336. MX8MQ_IOMUXC_SAI5_MCLK_GPIO3_IO25 0x83
  337. >;
  338. };
  339. pinctrl_camera_pwr: camerapwrgrp {
  340. fsl,pins = <
  341. /* CAMERA_PWR_EN_3V3 */
  342. MX8MQ_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x83
  343. >;
  344. };
  345. pinctrl_csi1: csi1grp {
  346. fsl,pins = <
  347. /* CSI1_NRST */
  348. MX8MQ_IOMUXC_ENET_RXC_GPIO1_IO25 0x83
  349. >;
  350. };
  351. pinctrl_charger_in: chargeringrp {
  352. fsl,pins = <
  353. /* CHRG_INT */
  354. MX8MQ_IOMUXC_NAND_CE2_B_GPIO3_IO3 0x80
  355. >;
  356. };
  357. pinctrl_dsibiasen: dsibiasengrp {
  358. fsl,pins = <
  359. /* DSI_BIAS_EN */
  360. MX8MQ_IOMUXC_ENET_TD1_GPIO1_IO20 0x83
  361. >;
  362. };
  363. pinctrl_dsien: dsiengrp {
  364. fsl,pins = <
  365. /* DSI_EN_3V3 */
  366. MX8MQ_IOMUXC_GPIO1_IO05_GPIO1_IO5 0x83
  367. >;
  368. };
  369. pinctrl_dsirst: dsirstgrp {
  370. fsl,pins = <
  371. /* DSI_RST */
  372. MX8MQ_IOMUXC_ENET_RD3_GPIO1_IO29 0x83
  373. /* DSI_TE */
  374. MX8MQ_IOMUXC_ENET_RD2_GPIO1_IO28 0x83
  375. /* TP_RST */
  376. MX8MQ_IOMUXC_ENET_RX_CTL_GPIO1_IO24 0x83
  377. >;
  378. };
  379. pinctrl_ecspi1: ecspigrp {
  380. fsl,pins = <
  381. MX8MQ_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x83
  382. MX8MQ_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x83
  383. MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x19
  384. MX8MQ_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x83
  385. >;
  386. };
  387. pinctrl_gauge: gaugegrp {
  388. fsl,pins = <
  389. /* BAT_LOW */
  390. MX8MQ_IOMUXC_SAI5_RXC_GPIO3_IO20 0x80
  391. >;
  392. };
  393. pinctrl_gnsspwr: gnsspwrgrp {
  394. fsl,pins = <
  395. /* GPS3V3_EN */
  396. MX8MQ_IOMUXC_NAND_DATA06_GPIO3_IO12 0x83
  397. >;
  398. };
  399. pinctrl_haptic: hapticgrp {
  400. fsl,pins = <
  401. /* MOTO */
  402. MX8MQ_IOMUXC_SPDIF_EXT_CLK_PWM1_OUT 0x83
  403. >;
  404. };
  405. pinctrl_hp: hpgrp {
  406. fsl,pins = <
  407. /* HEADPHONE_DET_1V8 */
  408. MX8MQ_IOMUXC_NAND_DATA03_GPIO3_IO9 0x180
  409. >;
  410. };
  411. pinctrl_hub_pwr: hubpwrgrp {
  412. fsl,pins = <
  413. /* HUB_PWR_3V3_EN */
  414. MX8MQ_IOMUXC_GPIO1_IO14_GPIO1_IO14 0x83
  415. >;
  416. };
  417. pinctrl_i2c1: i2c1grp {
  418. fsl,pins = <
  419. MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL 0x40000026
  420. MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA 0x40000026
  421. >;
  422. };
  423. pinctrl_i2c2: i2c2grp {
  424. fsl,pins = <
  425. MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL 0x40000026
  426. MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA 0x40000026
  427. >;
  428. };
  429. pinctrl_i2c3: i2c3grp {
  430. fsl,pins = <
  431. MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL 0x40000026
  432. MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA 0x40000026
  433. >;
  434. };
  435. pinctrl_i2c4: i2c4grp {
  436. fsl,pins = <
  437. MX8MQ_IOMUXC_I2C4_SCL_I2C4_SCL 0x40000026
  438. MX8MQ_IOMUXC_I2C4_SDA_I2C4_SDA 0x40000026
  439. >;
  440. };
  441. pinctrl_keys: keysgrp {
  442. fsl,pins = <
  443. /* VOL- */
  444. MX8MQ_IOMUXC_ENET_MDIO_GPIO1_IO17 0x01C0
  445. /* VOL+ */
  446. MX8MQ_IOMUXC_ENET_MDC_GPIO1_IO16 0x01C0
  447. >;
  448. };
  449. pinctrl_led_b: ledbgrp {
  450. fsl,pins = <
  451. /* LED_B */
  452. MX8MQ_IOMUXC_GPIO1_IO13_PWM2_OUT 0x06
  453. >;
  454. };
  455. pinctrl_led_g: ledggrp {
  456. fsl,pins = <
  457. /* LED_G */
  458. MX8MQ_IOMUXC_SAI3_MCLK_PWM4_OUT 0x06
  459. >;
  460. };
  461. pinctrl_led_r: ledrgrp {
  462. fsl,pins = <
  463. /* LED_R */
  464. MX8MQ_IOMUXC_SPDIF_TX_PWM3_OUT 0x06
  465. >;
  466. };
  467. pinctrl_mag: maggrp {
  468. fsl,pins = <
  469. /* INT_MAG */
  470. MX8MQ_IOMUXC_SAI5_RXD1_GPIO3_IO22 0x80
  471. >;
  472. };
  473. pinctrl_pmic: pmicgrp {
  474. fsl,pins = <
  475. /* PMIC_NINT */
  476. MX8MQ_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x80
  477. >;
  478. };
  479. pinctrl_pmic_5v: pmic5vgrp {
  480. fsl,pins = <
  481. /* PMIC_5V */
  482. MX8MQ_IOMUXC_GPIO1_IO01_GPIO1_IO1 0x80
  483. >;
  484. };
  485. pinctrl_prox: proxgrp {
  486. fsl,pins = <
  487. /* INT_LIGHT */
  488. MX8MQ_IOMUXC_NAND_DATA01_GPIO3_IO7 0x80
  489. >;
  490. };
  491. pinctrl_rtc: rtcgrp {
  492. fsl,pins = <
  493. /* RTC_INT */
  494. MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x80
  495. >;
  496. };
  497. pinctrl_sai2: sai2grp {
  498. fsl,pins = <
  499. MX8MQ_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0 0xd6
  500. MX8MQ_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC 0xd6
  501. MX8MQ_IOMUXC_SAI2_MCLK_SAI2_MCLK 0xd6
  502. MX8MQ_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0 0xd6
  503. MX8MQ_IOMUXC_SAI2_TXC_SAI2_TX_BCLK 0xd6
  504. >;
  505. };
  506. pinctrl_sai6: sai6grp {
  507. fsl,pins = <
  508. MX8MQ_IOMUXC_SAI1_RXD5_SAI6_RX_DATA0 0xd6
  509. MX8MQ_IOMUXC_SAI1_RXD6_SAI6_RX_SYNC 0xd6
  510. MX8MQ_IOMUXC_SAI1_TXD4_SAI6_RX_BCLK 0xd6
  511. MX8MQ_IOMUXC_SAI1_TXD5_SAI6_TX_DATA0 0xd6
  512. >;
  513. };
  514. pinctrl_tcpc: tcpcgrp {
  515. fsl,pins = <
  516. /* TCPC_INT */
  517. MX8MQ_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x01C0
  518. >;
  519. };
  520. pinctrl_touch: touchgrp {
  521. fsl,pins = <
  522. /* TP_INT */
  523. MX8MQ_IOMUXC_ENET_RD1_GPIO1_IO27 0x80
  524. >;
  525. };
  526. pinctrl_typec: typecgrp {
  527. fsl,pins = <
  528. /* TYPEC_MUX_EN */
  529. MX8MQ_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x83
  530. >;
  531. };
  532. pinctrl_uart1: uart1grp {
  533. fsl,pins = <
  534. MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX 0x49
  535. MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX 0x49
  536. >;
  537. };
  538. pinctrl_uart2: uart2grp {
  539. fsl,pins = <
  540. MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX 0x49
  541. MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX 0x49
  542. >;
  543. };
  544. pinctrl_uart3: uart3grp {
  545. fsl,pins = <
  546. MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX 0x49
  547. MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX 0x49
  548. >;
  549. };
  550. pinctrl_uart4: uart4grp {
  551. fsl,pins = <
  552. MX8MQ_IOMUXC_ECSPI2_SCLK_UART4_DCE_RX 0x49
  553. MX8MQ_IOMUXC_ECSPI2_MOSI_UART4_DCE_TX 0x49
  554. MX8MQ_IOMUXC_ECSPI2_MISO_UART4_DCE_CTS_B 0x49
  555. MX8MQ_IOMUXC_ECSPI2_SS0_UART4_DCE_RTS_B 0x49
  556. >;
  557. };
  558. pinctrl_usdhc1: usdhc1grp {
  559. fsl,pins = <
  560. MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x83
  561. MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xc3
  562. MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xc3
  563. MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xc3
  564. MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xc3
  565. MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xc3
  566. MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xc3
  567. MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xc3
  568. MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xc3
  569. MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xc3
  570. MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x83
  571. MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1
  572. >;
  573. };
  574. pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
  575. fsl,pins = <
  576. MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x8d
  577. MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xcd
  578. MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xcd
  579. MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xcd
  580. MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xcd
  581. MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xcd
  582. MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xcd
  583. MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xcd
  584. MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xcd
  585. MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xcd
  586. MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x8d
  587. MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1
  588. >;
  589. };
  590. pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
  591. fsl,pins = <
  592. MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x9f
  593. MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xdf
  594. MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xdf
  595. MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xdf
  596. MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xdf
  597. MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xdf
  598. MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xdf
  599. MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xdf
  600. MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xdf
  601. MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xdf
  602. MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x9f
  603. MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1
  604. >;
  605. };
  606. pinctrl_usdhc2: usdhc2grp {
  607. fsl,pins = <
  608. MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x80
  609. MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x83
  610. MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc3
  611. MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc3
  612. MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc3
  613. MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc3
  614. MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc3
  615. MX8MQ_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0xc1
  616. >;
  617. };
  618. pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
  619. fsl,pins = <
  620. MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x80
  621. MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x8d
  622. MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcd
  623. MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcd
  624. MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcd
  625. MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcd
  626. MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcd
  627. MX8MQ_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0xc1
  628. >;
  629. };
  630. pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
  631. fsl,pins = <
  632. MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x80
  633. MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x9f
  634. MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcf
  635. MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcf
  636. MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcf
  637. MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcf
  638. MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcf
  639. MX8MQ_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0xc1
  640. >;
  641. };
  642. pinctrl_wifi_disable: wifidisablegrp {
  643. fsl,pins = <
  644. /* WIFI_REG_ON */
  645. MX8MQ_IOMUXC_SAI3_RXC_GPIO4_IO29 0x83
  646. >;
  647. };
  648. pinctrl_wifi_pwr: wifipwrgrp {
  649. fsl,pins = <
  650. /* WIFI3V3_EN */
  651. MX8MQ_IOMUXC_NAND_DATA04_GPIO3_IO10 0x83
  652. >;
  653. };
  654. pinctrl_wdog: wdoggrp {
  655. fsl,pins = <
  656. /* nWDOG */
  657. MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0x1f
  658. >;
  659. };
  660. };
  661. &i2c1 {
  662. clock-frequency = <387000>;
  663. pinctrl-names = "default";
  664. pinctrl-0 = <&pinctrl_i2c1>;
  665. status = "okay";
  666. typec_pd: usb-pd@3f {
  667. compatible = "ti,tps6598x";
  668. reg = <0x3f>;
  669. pinctrl-names = "default";
  670. pinctrl-0 = <&pinctrl_typec>, <&pinctrl_tcpc>;
  671. interrupt-parent = <&gpio1>;
  672. interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
  673. interrupt-names = "irq";
  674. connector {
  675. compatible = "usb-c-connector";
  676. label = "USB-C";
  677. data-role = "dual";
  678. ports {
  679. #address-cells = <1>;
  680. #size-cells = <0>;
  681. port@0 {
  682. reg = <0>;
  683. usb_con_hs: endpoint {
  684. remote-endpoint = <&typec_hs>;
  685. };
  686. };
  687. port@1 {
  688. reg = <1>;
  689. usb_con_ss: endpoint {
  690. remote-endpoint = <&typec_ss>;
  691. };
  692. };
  693. };
  694. };
  695. };
  696. pmic: pmic@4b {
  697. compatible = "rohm,bd71837";
  698. reg = <0x4b>;
  699. pinctrl-names = "default";
  700. pinctrl-0 = <&pinctrl_pmic>, <&pinctrl_camera_pwr>;
  701. clocks = <&pmic_osc>;
  702. clock-names = "osc";
  703. clock-output-names = "pmic_clk";
  704. interrupt-parent = <&gpio1>;
  705. interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
  706. rohm,reset-snvs-powered;
  707. regulators {
  708. buck1_reg: BUCK1 {
  709. regulator-name = "buck1";
  710. regulator-min-microvolt = <700000>;
  711. regulator-max-microvolt = <1300000>;
  712. regulator-boot-on;
  713. regulator-ramp-delay = <1250>;
  714. rohm,dvs-run-voltage = <900000>;
  715. rohm,dvs-idle-voltage = <850000>;
  716. rohm,dvs-suspend-voltage = <800000>;
  717. regulator-always-on;
  718. };
  719. buck2_reg: BUCK2 {
  720. regulator-name = "buck2";
  721. regulator-min-microvolt = <700000>;
  722. regulator-max-microvolt = <1300000>;
  723. regulator-boot-on;
  724. regulator-ramp-delay = <1250>;
  725. rohm,dvs-run-voltage = <1000000>;
  726. rohm,dvs-idle-voltage = <900000>;
  727. regulator-always-on;
  728. };
  729. buck3_reg: BUCK3 {
  730. regulator-name = "buck3";
  731. regulator-min-microvolt = <700000>;
  732. regulator-max-microvolt = <1300000>;
  733. regulator-boot-on;
  734. rohm,dvs-run-voltage = <900000>;
  735. };
  736. buck4_reg: BUCK4 {
  737. regulator-name = "buck4";
  738. regulator-min-microvolt = <700000>;
  739. regulator-max-microvolt = <1300000>;
  740. rohm,dvs-run-voltage = <1000000>;
  741. };
  742. buck5_reg: BUCK5 {
  743. regulator-name = "buck5";
  744. regulator-min-microvolt = <700000>;
  745. regulator-max-microvolt = <1350000>;
  746. regulator-boot-on;
  747. regulator-always-on;
  748. };
  749. buck6_reg: BUCK6 {
  750. regulator-name = "buck6";
  751. regulator-min-microvolt = <3000000>;
  752. regulator-max-microvolt = <3300000>;
  753. regulator-boot-on;
  754. regulator-always-on;
  755. };
  756. buck7_reg: BUCK7 {
  757. regulator-name = "buck7";
  758. regulator-min-microvolt = <1605000>;
  759. regulator-max-microvolt = <1995000>;
  760. regulator-boot-on;
  761. regulator-always-on;
  762. };
  763. buck8_reg: BUCK8 {
  764. regulator-name = "buck8";
  765. regulator-min-microvolt = <800000>;
  766. regulator-max-microvolt = <1400000>;
  767. regulator-boot-on;
  768. regulator-always-on;
  769. };
  770. ldo1_reg: LDO1 {
  771. regulator-name = "ldo1";
  772. regulator-min-microvolt = <3000000>;
  773. regulator-max-microvolt = <3300000>;
  774. regulator-boot-on;
  775. /* leave on for snvs power button */
  776. regulator-always-on;
  777. };
  778. ldo2_reg: LDO2 {
  779. regulator-name = "ldo2";
  780. regulator-min-microvolt = <900000>;
  781. regulator-max-microvolt = <900000>;
  782. regulator-boot-on;
  783. /* leave on for snvs power button */
  784. regulator-always-on;
  785. };
  786. ldo3_reg: LDO3 {
  787. regulator-name = "ldo3";
  788. regulator-min-microvolt = <1800000>;
  789. regulator-max-microvolt = <3300000>;
  790. regulator-boot-on;
  791. regulator-always-on;
  792. };
  793. ldo4_reg: LDO4 {
  794. regulator-name = "ldo4";
  795. regulator-min-microvolt = <900000>;
  796. regulator-max-microvolt = <1800000>;
  797. regulator-boot-on;
  798. regulator-always-on;
  799. };
  800. ldo5_reg: LDO5 {
  801. /* VDD_PHY_0V9 - MIPI and HDMI domains */
  802. regulator-name = "ldo5";
  803. regulator-min-microvolt = <1800000>;
  804. regulator-max-microvolt = <3300000>;
  805. regulator-always-on;
  806. };
  807. ldo6_reg: LDO6 {
  808. /* VDD_PHY_0V9 - MIPI, HDMI and USB domains */
  809. regulator-name = "ldo6";
  810. regulator-min-microvolt = <900000>;
  811. regulator-max-microvolt = <1800000>;
  812. regulator-boot-on;
  813. regulator-always-on;
  814. };
  815. ldo7_reg: LDO7 {
  816. /* VDD_PHY_3V3 - USB domain */
  817. regulator-name = "ldo7";
  818. regulator-min-microvolt = <1800000>;
  819. regulator-max-microvolt = <3300000>;
  820. regulator-boot-on;
  821. regulator-always-on;
  822. };
  823. };
  824. };
  825. rtc@68 {
  826. compatible = "microcrystal,rv4162";
  827. reg = <0x68>;
  828. pinctrl-names = "default";
  829. pinctrl-0 = <&pinctrl_rtc>;
  830. interrupt-parent = <&gpio1>;
  831. interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
  832. };
  833. };
  834. &i2c2 {
  835. clock-frequency = <387000>;
  836. pinctrl-names = "default";
  837. pinctrl-0 = <&pinctrl_i2c2>;
  838. status = "okay";
  839. magnetometer@1e {
  840. compatible = "st,lsm9ds1-magn";
  841. reg = <0x1e>;
  842. pinctrl-names = "default";
  843. pinctrl-0 = <&pinctrl_mag>;
  844. interrupt-parent = <&gpio3>;
  845. interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
  846. vdd-supply = <&reg_vdd_sen>;
  847. vddio-supply = <&reg_vdd_1v8>;
  848. };
  849. regulator@3e {
  850. compatible = "tps65132";
  851. reg = <0x3e>;
  852. reg_lcd_avdd: outp {
  853. regulator-name = "LCD_AVDD";
  854. vin-supply = <&reg_lcd_3v4>;
  855. };
  856. reg_lcd_avee: outn {
  857. regulator-name = "LCD_AVEE";
  858. vin-supply = <&reg_lcd_3v4>;
  859. };
  860. };
  861. proximity: prox@60 {
  862. compatible = "vishay,vcnl4040";
  863. reg = <0x60>;
  864. pinctrl-names = "default";
  865. pinctrl-0 = <&pinctrl_prox>;
  866. interrupt-parent = <&gpio3>;
  867. interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
  868. };
  869. accel_gyro: accel-gyro@6a {
  870. compatible = "st,lsm9ds1-imu";
  871. reg = <0x6a>;
  872. vdd-supply = <&reg_vdd_sen>;
  873. vddio-supply = <&reg_vdd_1v8>;
  874. };
  875. };
  876. &i2c3 {
  877. clock-frequency = <387000>;
  878. pinctrl-names = "default";
  879. pinctrl-0 = <&pinctrl_i2c3>;
  880. status = "okay";
  881. codec: audio-codec@1a {
  882. compatible = "wlf,wm8962";
  883. reg = <0x1a>;
  884. clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
  885. assigned-clocks = <&clk IMX8MQ_CLK_SAI2>;
  886. assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
  887. assigned-clock-rates = <24576000>;
  888. #sound-dai-cells = <0>;
  889. mic-cfg = <0x200>;
  890. DCVDD-supply = <&reg_aud_1v8>;
  891. DBVDD-supply = <&reg_aud_1v8>;
  892. AVDD-supply = <&reg_aud_1v8>;
  893. CPVDD-supply = <&reg_aud_1v8>;
  894. MICVDD-supply = <&reg_aud_1v8>;
  895. PLLVDD-supply = <&reg_aud_1v8>;
  896. SPKVDD1-supply = <&reg_vsys_3v4>;
  897. SPKVDD2-supply = <&reg_vsys_3v4>;
  898. gpio-cfg = <
  899. 0x0000 /* n/c */
  900. 0x0001 /* gpio2, 1: default */
  901. 0x0013 /* gpio3, 2: dmicclk */
  902. 0x0000 /* n/c, 3: default */
  903. 0x8014 /* gpio5, 4: dmic_dat */
  904. 0x0000 /* gpio6, 5: default */
  905. >;
  906. };
  907. camera_front: camera@20 {
  908. compatible = "hynix,hi846";
  909. reg = <0x20>;
  910. pinctrl-names = "default";
  911. pinctrl-0 = <&pinctrl_csi1>;
  912. clocks = <&clk IMX8MQ_CLK_CLKO2>;
  913. assigned-clocks = <&clk IMX8MQ_CLK_CLKO2>;
  914. assigned-clock-rates = <25000000>;
  915. reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
  916. vdda-supply = <&reg_vcam_2v8>;
  917. vddd-supply = <&reg_vcam_1v2>;
  918. vddio-supply = <&reg_csi_1v8>;
  919. rotation = <90>;
  920. orientation = <0>;
  921. port {
  922. camera1_ep: endpoint {
  923. data-lanes = <1 2>;
  924. link-frequencies = /bits/ 64
  925. <80000000 200000000 300000000>;
  926. remote-endpoint = <&mipi1_sensor_ep>;
  927. };
  928. };
  929. };
  930. backlight@36 {
  931. compatible = "ti,lm36922";
  932. reg = <0x36>;
  933. pinctrl-names = "default";
  934. pinctrl-0 = <&pinctrl_bl>;
  935. #address-cells = <1>;
  936. #size-cells = <0>;
  937. enable-gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
  938. vled-supply = <&reg_vsys_3v4>;
  939. ti,ovp-microvolt = <25000000>;
  940. led_backlight: led@0 {
  941. reg = <0>;
  942. label = ":backlight";
  943. linux,default-trigger = "backlight";
  944. led-max-microamp = <20000>;
  945. };
  946. };
  947. touchscreen@38 {
  948. compatible = "edt,edt-ft5506";
  949. reg = <0x38>;
  950. pinctrl-names = "default";
  951. pinctrl-0 = <&pinctrl_touch>;
  952. interrupt-parent = <&gpio1>;
  953. interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
  954. touchscreen-size-x = <720>;
  955. touchscreen-size-y = <1440>;
  956. vcc-supply = <&reg_lcd_1v8>;
  957. };
  958. };
  959. &i2c4 {
  960. clock-frequency = <387000>;
  961. pinctrl-names = "default";
  962. pinctrl-0 = <&pinctrl_i2c4>;
  963. status = "okay";
  964. vcm@c {
  965. compatible = "dongwoon,dw9714";
  966. reg = <0x0c>;
  967. vcc-supply = <&reg_csi_1v8>;
  968. };
  969. bat: fuel-gauge@36 {
  970. compatible = "maxim,max17055";
  971. reg = <0x36>;
  972. interrupt-parent = <&gpio3>;
  973. interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
  974. pinctrl-names = "default";
  975. pinctrl-0 = <&pinctrl_gauge>;
  976. power-supplies = <&bq25895>;
  977. maxim,over-heat-temp = <700>;
  978. maxim,over-volt = <4500>;
  979. maxim,rsns-microohm = <5000>;
  980. };
  981. bq25895: charger@6a {
  982. compatible = "ti,bq25895", "ti,bq25890";
  983. reg = <0x6a>;
  984. pinctrl-names = "default";
  985. pinctrl-0 = <&pinctrl_charger_in>;
  986. interrupt-parent = <&gpio3>;
  987. interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
  988. phys = <&usb3_phy0>;
  989. ti,precharge-current = <130000>; /* uA */
  990. ti,minimum-sys-voltage = <3700000>; /* uV */
  991. ti,boost-voltage = <5000000>; /* uV */
  992. ti,boost-max-current = <1500000>; /* uA */
  993. ti,use-vinmin-threshold = <1>; /* enable VINDPM */
  994. ti,vinmin-threshold = <3900000>; /* uV */
  995. monitored-battery = <&bat>;
  996. power-supplies = <&typec_pd>;
  997. };
  998. };
  999. &lcdif {
  1000. status = "okay";
  1001. };
  1002. &mipi_csi1 {
  1003. status = "okay";
  1004. ports {
  1005. port@0 {
  1006. reg = <0>;
  1007. mipi1_sensor_ep: endpoint {
  1008. remote-endpoint = <&camera1_ep>;
  1009. data-lanes = <1 2>;
  1010. };
  1011. };
  1012. };
  1013. };
  1014. &mipi_dsi {
  1015. #address-cells = <1>;
  1016. #size-cells = <0>;
  1017. status = "okay";
  1018. lcd_panel: panel@0 {
  1019. compatible = "mantix,mlaf057we51-x";
  1020. reg = <0>;
  1021. pinctrl-names = "default";
  1022. pinctrl-0 = <&pinctrl_dsirst>;
  1023. avdd-supply = <&reg_lcd_avdd>;
  1024. avee-supply = <&reg_lcd_avee>;
  1025. vddi-supply = <&reg_lcd_1v8>;
  1026. backlight = <&backlight_dsi>;
  1027. reset-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
  1028. mantix,tp-rstn-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
  1029. port {
  1030. panel_in: endpoint {
  1031. remote-endpoint = <&mipi_dsi_out>;
  1032. };
  1033. };
  1034. };
  1035. ports {
  1036. port@1 {
  1037. reg = <1>;
  1038. mipi_dsi_out: endpoint {
  1039. remote-endpoint = <&panel_in>;
  1040. };
  1041. };
  1042. };
  1043. };
  1044. &pgc_gpu {
  1045. power-supply = <&buck3_reg>;
  1046. };
  1047. &pgc_mipi {
  1048. power-supply = <&ldo5_reg>;
  1049. };
  1050. &pgc_vpu {
  1051. power-supply = <&buck4_reg>;
  1052. };
  1053. &pwm1 {
  1054. pinctrl-names = "default";
  1055. pinctrl-0 = <&pinctrl_haptic>;
  1056. status = "okay";
  1057. };
  1058. &pwm2 {
  1059. pinctrl-names = "default";
  1060. pinctrl-0 = <&pinctrl_led_b>;
  1061. status = "okay";
  1062. };
  1063. &pwm3 {
  1064. pinctrl-names = "default";
  1065. pinctrl-0 = <&pinctrl_led_r>;
  1066. status = "okay";
  1067. };
  1068. &pwm4 {
  1069. pinctrl-names = "default";
  1070. pinctrl-0 = <&pinctrl_led_g>;
  1071. status = "okay";
  1072. };
  1073. &sai2 {
  1074. pinctrl-names = "default";
  1075. pinctrl-0 = <&pinctrl_sai2>;
  1076. assigned-clocks = <&clk IMX8MQ_CLK_SAI2>;
  1077. assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
  1078. assigned-clock-rates = <24576000>;
  1079. status = "okay";
  1080. };
  1081. &sai6 {
  1082. pinctrl-names = "default";
  1083. pinctrl-0 = <&pinctrl_sai6>;
  1084. assigned-clocks = <&clk IMX8MQ_CLK_SAI6>;
  1085. assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
  1086. assigned-clock-rates = <24576000>;
  1087. fsl,sai-synchronous-rx;
  1088. status = "okay";
  1089. };
  1090. &snvs_pwrkey {
  1091. status = "okay";
  1092. };
  1093. &snvs_rtc {
  1094. status = "disabled";
  1095. };
  1096. &uart1 { /* console */
  1097. pinctrl-names = "default";
  1098. pinctrl-0 = <&pinctrl_uart1>;
  1099. status = "okay";
  1100. };
  1101. &uart2 { /* TPS - GPS - DEBUG */
  1102. pinctrl-names = "default";
  1103. pinctrl-0 = <&pinctrl_uart2>;
  1104. status = "okay";
  1105. gnss {
  1106. compatible = "globaltop,pa6h";
  1107. vcc-supply = <&reg_gnss>;
  1108. current-speed = <9600>;
  1109. };
  1110. };
  1111. &uart3 { /* SMC */
  1112. pinctrl-names = "default";
  1113. pinctrl-0 = <&pinctrl_uart3>;
  1114. status = "okay";
  1115. };
  1116. &uart4 { /* BT */
  1117. pinctrl-names = "default";
  1118. pinctrl-0 = <&pinctrl_uart4>;
  1119. uart-has-rtscts;
  1120. status = "okay";
  1121. };
  1122. &usb3_phy0 {
  1123. status = "okay";
  1124. };
  1125. &usb3_phy1 {
  1126. vbus-supply = <&reg_hub>;
  1127. status = "okay";
  1128. };
  1129. &usb_dwc3_0 {
  1130. #address-cells = <1>;
  1131. #size-cells = <0>;
  1132. dr_mode = "otg";
  1133. usb-role-switch;
  1134. status = "okay";
  1135. port@0 {
  1136. reg = <0>;
  1137. typec_hs: endpoint {
  1138. remote-endpoint = <&usb_con_hs>;
  1139. };
  1140. };
  1141. port@1 {
  1142. reg = <1>;
  1143. typec_ss: endpoint {
  1144. remote-endpoint = <&usb_con_ss>;
  1145. };
  1146. };
  1147. };
  1148. &usb_dwc3_1 {
  1149. dr_mode = "host";
  1150. status = "okay";
  1151. #address-cells = <1>;
  1152. #size-cells = <0>;
  1153. /* Microchip USB2642 */
  1154. hub@1 {
  1155. compatible = "usb424,2640";
  1156. reg = <1>;
  1157. #address-cells = <1>;
  1158. #size-cells = <0>;
  1159. mass-storage@1 {
  1160. compatible = "usb424,4041";
  1161. reg = <1>;
  1162. };
  1163. };
  1164. };
  1165. &usdhc1 {
  1166. assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
  1167. assigned-clock-rates = <400000000>;
  1168. pinctrl-names = "default", "state_100mhz", "state_200mhz";
  1169. pinctrl-0 = <&pinctrl_usdhc1>;
  1170. pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
  1171. pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
  1172. bus-width = <8>;
  1173. vmmc-supply = <&reg_vdd_3v3>;
  1174. power-supply = <&reg_vdd_1v8>;
  1175. non-removable;
  1176. status = "okay";
  1177. };
  1178. &usdhc2 {
  1179. assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
  1180. assigned-clock-rates = <200000000>;
  1181. pinctrl-names = "default", "state_100mhz", "state_200mhz";
  1182. pinctrl-0 = <&pinctrl_usdhc2>;
  1183. pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
  1184. pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
  1185. bus-width = <4>;
  1186. vmmc-supply = <&reg_wifi_3v3>;
  1187. mmc-pwrseq = <&usdhc2_pwrseq>;
  1188. post-power-on-delay-ms = <1000>;
  1189. cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
  1190. max-frequency = <50000000>;
  1191. disable-wp;
  1192. cap-sdio-irq;
  1193. keep-power-in-suspend;
  1194. wakeup-source;
  1195. status = "okay";
  1196. };
  1197. &wdog1 {
  1198. pinctrl-names = "default";
  1199. pinctrl-0 = <&pinctrl_wdog>;
  1200. fsl,ext-reset-output;
  1201. status = "okay";
  1202. };