ark1668ed_devb_emmc.dts 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477
  1. // SPDX-License-Identifier: GPL-2.0
  2. /dts-v1/;
  3. /include/ "skeleton.dtsi"
  4. #include "ark1668ed.dtsi"
  5. #include "ark1668ed-pinctrl.dtsi"
  6. / {
  7. i2c-gpio-0 {
  8. #address-cells = <1>;
  9. #size-cells = <0>;
  10. compatible = "i2c-gpio";
  11. gpios = <&gportc 13 0 /* SDA */
  12. &gportc 12 0 /* SCL */
  13. >;
  14. i2c-gpio,delay-us = <2>; /* clk freq = 500/delay KHz */
  15. i2c-gpio,scl-output-only;
  16. //i2c-gpio,sda-open-drain;
  17. //i2c-gpio,scl-open-drain;
  18. //status = "disabled";
  19. };
  20. i2c-gpio-1 {
  21. #address-cells = <1>;
  22. #size-cells = <0>;
  23. compatible = "i2c-gpio";
  24. gpios = <&gportd 20 0 /* SDA */
  25. &gportd 19 0 /* SCL */
  26. >;
  27. i2c-gpio,delay-us = <2>; /* clk freq = 500/delay KHz */
  28. i2c-gpio,scl-output-only;
  29. //i2c-gpio,sda-open-drain;
  30. //i2c-gpio,scl-open-drain;
  31. //status = "disabled";
  32. };
  33. i2c-gpio-2 {
  34. #address-cells = <1>;
  35. #size-cells = <0>;
  36. compatible = "i2c-gpio";
  37. gpios = <&gportf 31 0 /* SDA */
  38. &gportf 30 0 /* SCL */
  39. >;
  40. i2c-gpio,delay-us = <5>; /* clk freq = 100/delay KHz */
  41. i2c-gpio,scl-output-only;
  42. i2c-gpio,sda-open-drain;
  43. i2c-gpio,scl-open-drain;
  44. //pinctrl-names = "default";
  45. //pinctrl-0 = <&i2c_gpio_pins>;
  46. ark_codec: ark-codec@74 {
  47. compatible = "arkmicro,ark-audio-codec";
  48. reg = <0x74>;/* i2c address(7 bits) */
  49. #sound-dai-cells = <0>;
  50. };
  51. };
  52. i2c-gpio-3 {
  53. #address-cells = <1>;
  54. #size-cells = <0>;
  55. compatible = "i2c-gpio";
  56. gpios = <&gportd 27 0 /* SDA */
  57. &gportd 28 0 /* SCL */
  58. >;
  59. i2c-gpio,delay-us = <5>; /* clk freq = 500/delay KHz */
  60. i2c-gpio,scl-output-only;
  61. //i2c-gpio,sda-open-drain;
  62. //i2c-gpio,scl-open-drain;
  63. codec_ak7604: codec_ak7604@1c {
  64. status = "okay";
  65. compatible = "akm,ak7604";
  66. reg = <0x1c>;/* i2c address(7 bits) */
  67. pinctrl-names = "default";
  68. ak7604,pdn-gpio = <&gportd 29 GPIO_ACTIVE_HIGH>;
  69. #sound-dai-cells = <1>;
  70. };
  71. ak4436_codec: ak4436@13 {
  72. compatible = "asahi-kasei,ak4436";
  73. reg = <0x13>;/* i2c address(7 bits) */
  74. pinctrl-names = "default";
  75. #sound-dai-cells = <0>;
  76. //AVDD-supply = <&vdd_3v3_audio>;
  77. //DVDD-supply = <&vdd_1v8>;
  78. };
  79. es7210_codec: es7210@40 {
  80. compatible = "arkmicro,es7210";
  81. reg = <0x40>;/* i2c address(7 bits) */
  82. pinctrl-names = "default";
  83. #sound-dai-cells = <0>;
  84. };
  85. };
  86. //ark-audio
  87. sound0 {
  88. compatible = "simple-audio-card";
  89. simple-audio-card,name = "ark1668ed devb audio";
  90. simple-audio-card,format = "i2s";
  91. simple-audio-card,dai-link@0 { /* ARK - audio - codec */
  92. format = "i2s";
  93. bitclock-master = <&cpu_master>;
  94. frame-master = <&cpu_master>;
  95. cpu_master: cpu {
  96. sound-dai = <&i2s_audio>;//i2s_audio
  97. };
  98. codec_master: codec {
  99. sound-dai = <&ark_codec>;//External(ADC): ; Internal:ark_codec
  100. };
  101. };
  102. };
  103. //i2s0
  104. sound1 {
  105. compatible = "simple-audio-card";
  106. simple-audio-card,name = "SoundCard1";
  107. simple-audio-card,format = "i2s";
  108. // simple-audio-card,dai-link@0 { /* ARK - audio - codec */
  109. // format = "i2s";
  110. // bitclock-master = <&playback_cpu>;
  111. // frame-master = <&playback_cpu>;
  112. // playback_cpu: cpu {
  113. // sound-dai = <&i2s0_adac>;
  114. // };
  115. // playback_codec: codec {
  116. // sound-dai = <&ak4436_codec>;//External(ADC): ; Internal:ark_codec
  117. // };
  118. // };
  119. simple-audio-card,dai-link@0 { /* ARK - audio - codec */
  120. format = "i2s";
  121. bitclock-master = <&codec_master2>;
  122. frame-master = <&codec_master2>;
  123. cpu_master2: cpu {
  124. sound-dai = <&i2s0_adac>;
  125. };
  126. codec_master2: codec {
  127. sound-dai = <&codec_ak7604 0>;//External(ADC): ; Internal:ark_codec
  128. };
  129. };
  130. };
  131. //i2s1
  132. sound2 {
  133. compatible = "simple-audio-card";
  134. simple-audio-card,name = "SoundCard2";
  135. simple-audio-card,format = "i2s";
  136. simple-audio-card,dai-link@0 { /* ARK - audio - codec */
  137. format = "i2s";
  138. bitclock-master = <&capture_cpu>;
  139. frame-master = <&capture_cpu>;
  140. capture_cpu: cpu {
  141. sound-dai = <&i2s1_adac>;
  142. };
  143. capture_codec: codec {
  144. sound-dai = <&es7210_codec>;//External(ADC): ; Internal:ark_codec
  145. };
  146. };
  147. // simple-audio-card,dai-link@0 { /* ARK - audio - codec */
  148. // format = "i2s";
  149. // bitclock-master = <&codec_master2>;
  150. // frame-master = <&codec_master2>;
  151. // cpu_master2: cpu {
  152. // sound-dai = <&i2s1_adac>;
  153. // };
  154. // codec_master2: codec {
  155. // sound-dai = <&codec_ak7604 0>;//External(ADC): ; Internal:ark_codec
  156. // };
  157. // };
  158. };
  159. carback: carback@0 {
  160. compatible = "arkmicro,ark1668ed-carback";
  161. interrupt-parent = <&gportb>;
  162. interrupts = <6 IRQ_TYPE_EDGE_BOTH>;
  163. detect-gpios = <&gportb 6 GPIO_ACTIVE_HIGH>;
  164. debounce-detect = <0>;
  165. reg = <0x7C800000 0x500000>;
  166. };
  167. vind0:vind@0 {
  168. compatible = "arkmicro,ark-vin-media", "simple-bus";
  169. #address-cells = <1>;
  170. #size-cells = <1>;
  171. ranges;
  172. reg = <0x50000000 0x1000>;
  173. multi_channel_input = <1>;
  174. select_channel = <0>;
  175. device_id = <0>;
  176. status = "okay";
  177. sensor0:sensor@0 {
  178. device_type = "sensor0";
  179. compatible = "arkmicro,ark-sensor";
  180. sensor0_mname = "rn6854m_mipi";
  181. sensor0_twi_cci_id = <1>; /*i2c slect*/
  182. sensor0_twi_addr = <0x58>; /*i2c addr*/
  183. sensor0_twi_cci_spi = <0>; /*init mode*/
  184. sensor0_reset = <&gportb 17 0>; /*reset gpio set*/
  185. device_id = <0>;
  186. status = "okay";
  187. };
  188. sensor1:sensor@1 {
  189. device_type = "sensor1";
  190. compatible = "arkmicro,ark-sensor";
  191. sensor1_mname = "ark7116_bt656";
  192. sensor1_twi_cci_id = <2>; /*i2c slect*/
  193. sensor1_twi_addr = <0xb2>; /*i2c addr*/
  194. sensor1_twi_cci_spi = <0>; /*init mode*/
  195. sensor1_reset = <&gportd 18 0>; /*reset gpio set*/
  196. device_id = <1>;
  197. status = "okay";
  198. };
  199. sensor2:sensor@2 {
  200. device_type = "sensor2";
  201. compatible = "arkmicro,ark-sensor";
  202. sensor2_mname = "tp2815_mipi";
  203. sensor2_twi_cci_id = <1>; /*i2c slect*/
  204. sensor2_twi_addr = <0x88>; /*i2c addr*/
  205. sensor2_twi_cci_spi = <0>; /*init mode*/
  206. sensor2_reset = <&gportd 18 0>; /*reset gpio set*/
  207. device_id = <2>;
  208. status = "okay";
  209. };
  210. csi0:csi@0 {
  211. device_type = "csi0";
  212. compatible = "arkmicro,ark-csi";
  213. interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
  214. reg = <0x51a00000 0x200>;
  215. clocks = <&csi0_pixclk>;
  216. clock-names = "vin_csi_clk";
  217. device_id = <0>;
  218. csi0_use = <1>;
  219. status = "okay";
  220. };
  221. csi1:csi@1 {
  222. device_type = "csi1";
  223. compatible = "arkmicro,ark-csi";
  224. reg = <0x51a01000 0x200>;
  225. clocks = <&csi1_pixclk>;
  226. clock-names = "vin_csi_clk";
  227. device_id = <1>;
  228. csi1_use = <0>;
  229. status = "okay";
  230. };
  231. csi2:csi@2 {
  232. device_type = "csi2";
  233. compatible = "arkmicro,ark-csi";
  234. reg = <0x51a02000 0x200>;
  235. clocks = <&csi2_pixclk>;
  236. clock-names = "vin_csi_clk";
  237. device_id = <2>;
  238. csi2_use = <0>;
  239. status = "okay";
  240. };
  241. csi3:csi@3 {
  242. device_type = "csi3";
  243. compatible = "arkmicro,ark-csi";
  244. reg = <0x51a03000 0x200>;
  245. clocks = <&csi3_pixclk>;
  246. clock-names = "vin_csi_clk";
  247. device_id = <3>;
  248. csi3_use = <0>;
  249. status = "okay";
  250. };
  251. vinc0:vinc@0 {
  252. device_type = "vinc0";
  253. compatible = "arkmicro,ark-vin-core";
  254. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
  255. reg = <0x40800000 0x100
  256. 0x41100000 0x1000>;
  257. clocks = <&itu_scale_clk>;
  258. clock-names = "vinc_scale_clk";
  259. clock-frequency = <250000000>;
  260. vinc0_csi_sel = <0>;
  261. #if 1
  262. vinc0_sensor_sel = <0>;
  263. vinc0_pad_sel = <0>;
  264. #else
  265. vinc0_sensor_sel = <1>;
  266. vinc0_pad_sel = <1>; /**use sensor1 ark7116 deinterlace**/
  267. #endif
  268. vinc0_use_deinterlace = <1>;
  269. vinc0_use_carback = <1>;
  270. device_id = <0>;
  271. status = "okay";
  272. };
  273. vinc1:vinc@1 {
  274. device_type = "vinc1";
  275. compatible = "arkmicro,ark-vin-core";
  276. interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
  277. reg = <0x40800400 0x100
  278. 0x41100000 0x1000>;
  279. clocks = <&itu_scale_clk>;
  280. clock-names = "vinc_scale_clk";
  281. clock-frequency = <250000000>;
  282. vinc1_csi_sel = <1>;
  283. vinc1_sensor_sel = <0>;
  284. vinc1_pad_sel = <0>;
  285. vinc1_use_deinterlace = <0>;
  286. vinc1_use_carback = <1>;
  287. device_id = <1>;
  288. status = "okay";
  289. };
  290. vinc2:vinc@2 {
  291. device_type = "vinc2";
  292. compatible = "arkmicro,ark-vin-core";
  293. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
  294. reg = <0x40800800 0x100
  295. 0x41100000 0x1000>;
  296. clocks = <&itu_scale_clk>;
  297. clock-names = "vinc_scale_clk";
  298. clock-frequency = <250000000>;
  299. vinc2_csi_sel = <2>;
  300. vinc2_sensor_sel = <0>;
  301. vinc2_pad_sel = <0>;
  302. vinc2_use_deinterlace = <0>;
  303. vinc2_use_carback = <1>;
  304. device_id = <2>;
  305. status = "okay";
  306. };
  307. vinc3:vinc@3 {
  308. device_type = "vinc3";
  309. compatible = "arkmicro,ark-vin-core";
  310. interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
  311. reg = <0x40800c00 0x100
  312. 0x41100000 0x1000>;
  313. clocks = <&itu_scale_clk>;
  314. clock-names = "vinc_scale_clk";
  315. clock-frequency = <250000000>;
  316. vinc3_csi_sel = <3>;
  317. vinc3_sensor_sel = <0>;
  318. vinc3_pad_sel = <0>;
  319. vinc3_use_deinterlace = <0>;
  320. vinc3_use_carback = <1>;
  321. device_id = <3>;
  322. status = "okay";
  323. };
  324. };
  325. };
  326. &lcdc {
  327. //display = <&display0>; //ttl
  328. display = <&display1>; //lvds
  329. //display = <&display2>; //mipi
  330. pinctrl-names = "default";
  331. pinctrl-0 = <&pinctrl_lcd_rgb888>;
  332. power-control-gpio = <&gporte 16 GPIO_ACTIVE_HIGH>;
  333. lcdcon-backlight;
  334. pwms = <&pwm0 4 50000 0>;
  335. pwm-names = "backlight";
  336. backlight-value = <20>;
  337. backlight-delay = <200>;
  338. display0: display@0 {
  339. interface-type = "TTL";
  340. bits-per-pixel = <32>;
  341. lcd-wiring-mode = "BGR";
  342. display-timings {
  343. native-mode = <&timing0>;
  344. timing0: timing0 {
  345. clock-frequency = <36000000>;
  346. hactive = <1024>;
  347. vactive = <600>;
  348. hback-porch = <64>;
  349. hfront-porch = <21>;
  350. vback-porch = <16>;
  351. vfront-porch = <24>;
  352. //hsync-len = <21>;
  353. hsync-len = <96>;
  354. //vsync-len = <80>;
  355. vsync-len = <9>;
  356. hsync-active = <1>;
  357. vsync-active = <1>;
  358. de-active = <0>;
  359. pixelclk-active = <0>;
  360. };
  361. };
  362. };
  363. display1: display@1 {
  364. interface-type = "DLVDS";
  365. lvds-con = <0xc7470008>;
  366. lvds-con2 = <0x00397ca4>;
  367. bits-per-pixel = <32>;
  368. fb-buffer-nums = <3>;
  369. lcd-wiring-mode = "RGB";
  370. display-timings {
  371. native-mode = <&timing1>;
  372. timing1: timing1 {
  373. clock-frequency = <120000000>;
  374. hactive = <1920>;
  375. vactive = <720>;
  376. hback-porch = <300>;
  377. hfront-porch = <240>;
  378. vback-porch = <80>;
  379. vfront-porch = <80>;
  380. hsync-len = <36>;
  381. vsync-len = <18>;
  382. hsync-active = <1>;
  383. vsync-active = <1>;
  384. de-active = <0>;
  385. pixelclk-active = <0>;
  386. };
  387. };
  388. };
  389. display2: display@2 {
  390. interface-type = "MIPI";
  391. bits-per-pixel = <32>;
  392. fb-buffer-nums = <3>;
  393. lcd-wiring-mode = "RGB";
  394. display-timings {
  395. native-mode = <&timing2>;
  396. timing2: timing2 {
  397. clock-frequency = <50000000>;
  398. hactive = <480>;
  399. vactive = <1280>;
  400. hback-porch = <16>;
  401. hfront-porch = <36>;
  402. vback-porch = <6>;
  403. vfront-porch = <6>;
  404. hsync-len = <26>;
  405. vsync-len = <16>;
  406. hsync-active = <1>;
  407. vsync-active = <1>;
  408. de-active = <0>;
  409. pixelclk-active = <0>;
  410. };
  411. };
  412. };
  413. };
  414. &i2c0 {
  415. gt911: touchscreen@5d {
  416. compatible = "goodix,gt911";
  417. reg = <0x5d>;
  418. interrupt-parent = <&gportb>;
  419. interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
  420. irq-gpios = <&gportb 18 GPIO_ACTIVE_HIGH>;
  421. reset-gpios = <&gportd 14 GPIO_ACTIVE_HIGH>;
  422. //touchscreen-inverted-x;
  423. };
  424. };
  425. &usb0 {
  426. status = "okay";
  427. reset-gpio = <&gporte 12 GPIO_ACTIVE_LOW>;
  428. };
  429. &usb1 {
  430. status = "okay";
  431. reset-gpio = <&gporte 13 GPIO_ACTIVE_LOW>;
  432. };
  433. &nfc {
  434. status = "disabled";
  435. };
  436. &dwssi {
  437. status = "disabled";
  438. };