light-beagle.dts 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (C) 2021 Alibaba Group Holding Limited.
  4. */
  5. /dts-v1/;
  6. #include "light-beagle-ref.dts"
  7. &vvcam_sensor4 { // beagle board J5 CSI0 connector
  8. sensor_name = "IMX219";
  9. sensor_pdn = <&gpio2_porta 23 0>; //powerdown pin / shutdown pin
  10. sensor_pdn_delay_us = <2000>; //powerdown pin / shutdown pin actived till I2C ready
  11. i2c_addr = /bits/ 8 <0x10>;
  12. i2c_bus = /bits/ 8 <1>;
  13. i2c_reg_width = /bits/ 8 <2>;
  14. i2c_data_width = /bits/ 8 <1>;
  15. status = "okay";
  16. };
  17. &vvcam_sensor5 { // beagle board J4 CSI1 connector
  18. sensor_name = "IMX219";
  19. sensor_pdn = <&gpio2_porta 24 0>; //powerdown pin / shutdown pin
  20. sensor_pdn_delay_us = <2000>; //powerdown pin / shutdown pin actived till I2C ready
  21. i2c_addr = /bits/ 8 <0x10>;
  22. i2c_bus = /bits/ 8 <3>;
  23. i2c_reg_width = /bits/ 8 <2>;
  24. i2c_data_width = /bits/ 8 <1>;
  25. status = "okay";
  26. };
  27. /*
  28. sensor imx219 mounted on beagle board J4 CSI1 (=light CSI2X2_A+CSI2X2_B / CSI2X2_A only)
  29. video0: sensor-vipre-isp0
  30. video1: sensor-vipre-isp0-dw
  31. video7: sensor-vipre-isp0-dsp1-ry-dw
  32. video10: tuningtool
  33. sensor imx219 mounted on beagle board J5 CSI0 (=light CSI2)
  34. video2: sensor-vipre-isp1
  35. video3: sensor-vipre-isp1-dw
  36. video4: sensor-vipre-isp1-dsp0-ry
  37. video5: sensor-vipre-isp1-dsp0-ry-dw
  38. video12: tuningtool
  39. */
  40. &video0{
  41. vi_mem_pool_region = <0xFFFFFFFF>; // vi_mem: framebuffer, region[2]
  42. channel0 {
  43. sensor0 {
  44. subdev_name = "vivcam";
  45. idx = <5>; // imx219
  46. csi_idx = <2>; //<2>=CSI2X2_A
  47. mode_idx = <0>;
  48. path_type = "SENSOR_1080P_RAW10_LINER";
  49. };
  50. sensor1 {
  51. subdev_name = "vivcam";
  52. idx = <0xff>; // invalid
  53. csi_idx = <0xff>;
  54. path_type = "SENSOR_VGA_RAW10_LINER";
  55. };
  56. dma {
  57. subdev_name = "vipre";
  58. idx = <0>;
  59. path_type = "VIPRE_CSI2_ISP0";
  60. };
  61. isp {
  62. subdev_name = "isp";
  63. idx = <0>;
  64. path_type = "ISP_MI_PATH_MP";
  65. output {
  66. max_width = <1920>;
  67. max_height = <1088>;
  68. bit_per_pixel = <16>;
  69. frame_count = <3>;
  70. };
  71. };
  72. };
  73. channel1 {
  74. sensor0 {
  75. subdev_name = "vivcam";
  76. idx = <5>; // imx219
  77. csi_idx = <2>; //<2>=CSI2X2_A
  78. mode_idx = <0>;
  79. path_type = "SENSOR_1080P_RAW10_LINER";
  80. };
  81. sensor1 {
  82. subdev_name = "vivcam";
  83. idx = <0xff>; // invalid
  84. csi_idx = <0xff>;
  85. path_type = "SENSOR_VGA_RAW10_LINER";
  86. };
  87. dma {
  88. subdev_name = "vipre";
  89. idx = <0>;
  90. path_type = "VIPRE_CSI2_ISP0";
  91. };
  92. isp {
  93. subdev_name = "isp";
  94. idx = <0>;
  95. path_type = "ISP_MI_PATH_SP";
  96. output {
  97. max_width = <1920>;
  98. max_height = <1088>;
  99. bit_per_pixel = <16>;
  100. frame_count = <3>;
  101. };
  102. };
  103. };
  104. channel2 {
  105. sensor0 {
  106. subdev_name = "vivcam";
  107. idx = <5>; // imx219
  108. csi_idx = <2>; //<2>=CSI2X2_A
  109. mode_idx = <0>;
  110. path_type = "SENSOR_1080P_RAW10_LINER";
  111. };
  112. sensor1 {
  113. subdev_name = "vivcam";
  114. idx = <0xff>; // invalid
  115. csi_idx = <0xff>;
  116. path_type = "SENSOR_VGA_RAW10_LINER";
  117. };
  118. dma {
  119. subdev_name = "vipre";
  120. idx = <0>;
  121. path_type = "VIPRE_CSI2_ISP0";
  122. };
  123. isp {
  124. subdev_name = "isp";
  125. idx = <0>;
  126. path_type = "ISP_MI_PATH_SP2_BP";
  127. output {
  128. max_width = <1920>;
  129. max_height = <1088>;
  130. bit_per_pixel = <16>;
  131. frame_count = <3>;
  132. };
  133. };
  134. };
  135. };
  136. &video2 {
  137. vi_mem_pool_region = <0>; // vi_mem: framebuffer, region[0]
  138. status = "okay";
  139. channel0 {
  140. channel_id = <0>;
  141. status = "okay";
  142. sensor0 {
  143. subdev_name = "vivcam";
  144. idx = <4>; // imx219
  145. csi_idx = <0>; //<0>=CSI2
  146. mode_idx = <0>;
  147. path_type = "SENSOR_1080P_RAW10_LINER";
  148. };
  149. sensor1 {
  150. subdev_name = "vivcam";
  151. idx = <0xff>; // invalid
  152. csi_idx = <0xff>;
  153. path_type = "SENSOR_VGA_RAW10_LINER";
  154. };
  155. dma {
  156. subdev_name = "vipre";
  157. idx = <0>;
  158. path_type = "VIPRE_CSI0_ISP1";
  159. };
  160. isp {
  161. subdev_name = "isp";
  162. idx = <1>;
  163. path_type = "ISP_MI_PATH_MP";
  164. output {
  165. max_width = <1920>;
  166. max_height = <1088>;
  167. bit_per_pixel = <16>;
  168. frame_count = <3>;
  169. };
  170. };
  171. };
  172. channel1 {
  173. channel_id = <1>;
  174. status = "okay";
  175. sensor0 {
  176. subdev_name = "vivcam";
  177. idx = <4>; // imx219
  178. csi_idx = <0>; //<0>=CSI2
  179. mode_idx = <0>;
  180. path_type = "SENSOR_1080P_RAW10_LINER";
  181. };
  182. sensor1 {
  183. subdev_name = "vivcam";
  184. idx = <0xff>; // invalid
  185. csi_idx = <0xff>;
  186. path_type = "SENSOR_VGA_RAW10_LINER";
  187. };
  188. dma {
  189. subdev_name = "vipre";
  190. idx = <0>;
  191. path_type = "VIPRE_CSI0_ISP1";
  192. };
  193. isp {
  194. subdev_name = "isp";
  195. idx = <1>;
  196. path_type = "ISP_MI_PATH_SP";
  197. output {
  198. max_width = <1920>;
  199. max_height = <1088>;
  200. bit_per_pixel = <16>;
  201. frame_count = <3>;
  202. };
  203. };
  204. };
  205. channel2 {
  206. channel_id = <2>;
  207. status = "okay";
  208. sensor0 {
  209. subdev_name = "vivcam";
  210. idx = <4>; // imx219
  211. csi_idx = <0>; //<0>=CSI2
  212. mode_idx = <0>;
  213. path_type = "SENSOR_1080P_RAW10_LINER";
  214. };
  215. sensor1 {
  216. subdev_name = "vivcam";
  217. idx = <0xff>; // invalid
  218. csi_idx = <0xff>;
  219. path_type = "SENSOR_VGA_RAW10_LINER";
  220. };
  221. dma {
  222. subdev_name = "vipre";
  223. idx = <0>;
  224. path_type = "VIPRE_CSI0_ISP1";
  225. };
  226. isp {
  227. subdev_name = "isp";
  228. idx = <1>;
  229. path_type = "ISP_MI_PATH_SP2_BP";
  230. output {
  231. max_width = <1920>;
  232. max_height = <1088>;
  233. bit_per_pixel = <16>;
  234. frame_count = <3>;
  235. };
  236. };
  237. };
  238. };
  239. &video3{
  240. vi_mem_pool_region = <0>; // vi_mem: framebuffer, region[0]
  241. channel0 {
  242. sensor0 {
  243. subdev_name = "vivcam";
  244. idx = <4>; // imx219
  245. csi_idx = <0>; //<0>=CSI2
  246. mode_idx = <0>;
  247. path_type = "SENSOR_1080P_RAW10_LINER";
  248. };
  249. sensor1 {
  250. subdev_name = "vivcam";
  251. idx = <0xff>; // invalid
  252. csi_idx = <0xff>;
  253. path_type = "SENSOR_VGA_RAW10_LINER";
  254. };
  255. dma {
  256. subdev_name = "vipre";
  257. idx = <0>;
  258. path_type = "VIPRE_CSI0_ISP1";
  259. };
  260. isp {
  261. subdev_name = "isp";
  262. idx = <1>;
  263. path_type = "ISP_MI_PATH_MP";
  264. output {
  265. max_width = <1920>;
  266. max_height = <1088>;
  267. bit_per_pixel = <12>;
  268. frame_count = <3>;
  269. };
  270. };
  271. dw {
  272. subdev_name = "dw";
  273. idx = <0>;
  274. path_type = "DW_DWE_VSE0";
  275. dw_dst_depth = <2>;
  276. };
  277. };
  278. channel1 {
  279. sensor0 {
  280. subdev_name = "vivcam";
  281. idx = <4>; // imx219
  282. csi_idx = <0>; //<0>=CSI2
  283. mode_idx = <0>;
  284. path_type = "SENSOR_1080P_RAW10_LINER";
  285. };
  286. sensor1 {
  287. subdev_name = "vivcam";
  288. idx = <0xff>; // invalid
  289. csi_idx = <0xff>;
  290. path_type = "SENSOR_VGA_RAW10_LINER";
  291. };
  292. dma {
  293. subdev_name = "vipre";
  294. idx = <0>;
  295. path_type = "VIPRE_CSI0_ISP1";
  296. };
  297. isp {
  298. subdev_name = "isp";
  299. idx = <1>;
  300. path_type = "ISP_MI_PATH_MP";
  301. output {
  302. max_width = <1920>;
  303. max_height = <1088>;
  304. bit_per_pixel = <12>;
  305. frame_count = <3>;
  306. };
  307. };
  308. dw {
  309. subdev_name = "dw";
  310. idx = <0>;
  311. path_type = "DW_DWE_VSE1";
  312. dw_dst_depth = <2>;
  313. };
  314. };
  315. channel2 {
  316. sensor0 {
  317. subdev_name = "vivcam";
  318. idx = <4>; // imx219
  319. csi_idx = <0>; //<0>=CSI2
  320. mode_idx = <0>;
  321. path_type = "SENSOR_1080P_RAW10_LINER";
  322. };
  323. sensor1 {
  324. subdev_name = "vivcam";
  325. idx = <0xff>; // invalid
  326. csi_idx = <0xff>;
  327. path_type = "SENSOR_VGA_RAW10_LINER";
  328. };
  329. dma {
  330. subdev_name = "vipre";
  331. idx = <0>;
  332. path_type = "VIPRE_CSI0_ISP1";
  333. };
  334. isp {
  335. subdev_name = "isp";
  336. idx = <1>;
  337. path_type = "ISP_MI_PATH_MP";
  338. output {
  339. max_width = <1920>;
  340. max_height = <1088>;
  341. bit_per_pixel = <12>;
  342. frame_count = <3>;
  343. };
  344. };
  345. dw {
  346. subdev_name = "dw";
  347. idx = <0>;
  348. path_type = "DW_DWE_VSE2";
  349. dw_dst_depth = <2>;
  350. };
  351. };
  352. };
  353. &video4{
  354. vi_mem_pool_region = <0>; // vi_mem: framebuffer, region[0]
  355. channel0 {
  356. sensor0 {
  357. subdev_name = "vivcam";
  358. idx = <4>; // imx219
  359. csi_idx = <0>; //<0>=CSI2
  360. mode_idx = <0>;
  361. path_type = "SENSOR_1080P_RAW10_LINER";
  362. };
  363. sensor1 {
  364. subdev_name = "vivcam";
  365. idx = <0xff>; // invalid
  366. csi_idx = <0xff>;
  367. path_type = "SENSOR_VGA_RAW10_LINER";
  368. };
  369. dma {
  370. subdev_name = "vipre";
  371. idx = <0>;
  372. path_type = "VIPRE_CSI0_ISP1";
  373. };
  374. isp {
  375. subdev_name = "isp";
  376. idx = <1>;
  377. path_type = "ISP_MI_PATH_PP";
  378. output {
  379. max_width = <1920>;
  380. max_height = <1088>;
  381. bit_per_pixel = <12>;
  382. frame_count = <3>;
  383. };
  384. };
  385. dsp {
  386. subdev_name = "dsp";
  387. idx = <0>;
  388. path_type = "DSP_PATH_ISP_RY";
  389. output {
  390. max_width = <1920>;
  391. max_height = <1088>;
  392. bit_per_pixel = <12>;
  393. frame_count = <3>;
  394. };
  395. };
  396. ry {
  397. subdev_name = "ry";
  398. idx = <0>;
  399. path_type = "ISP_RY_MI_PATH_MP";
  400. output {
  401. max_width = <1920>;
  402. max_height = <1088>;
  403. bit_per_pixel = <12>;
  404. frame_count = <3>;
  405. };
  406. };
  407. };
  408. channel1 {
  409. sensor0 {
  410. subdev_name = "vivcam";
  411. idx = <4>; // imx219
  412. csi_idx = <0>; //<0>=CSI2
  413. mode_idx = <0>;
  414. path_type = "SENSOR_1080P_RAW10_LINER";
  415. };
  416. sensor1 {
  417. subdev_name = "vivcam";
  418. idx = <0xff>; // invalid
  419. csi_idx = <0xff>;
  420. path_type = "SENSOR_VGA_RAW10_LINER";
  421. };
  422. dma {
  423. subdev_name = "vipre";
  424. idx = <0>;
  425. path_type = "VIPRE_CSI0_ISP1";
  426. };
  427. isp {
  428. subdev_name = "isp";
  429. idx = <1>;
  430. path_type = "ISP_MI_PATH_PP";
  431. output {
  432. max_width = <1920>;
  433. max_height = <1088>;
  434. bit_per_pixel = <12>;
  435. frame_count = <3>;
  436. };
  437. };
  438. dsp {
  439. subdev_name = "dsp";
  440. idx = <0>;
  441. path_type = "DSP_PATH_ISP_RY";
  442. output {
  443. max_width = <1920>;
  444. max_height = <1088>;
  445. bit_per_pixel = <12>;
  446. frame_count = <3>;
  447. };
  448. };
  449. ry {
  450. subdev_name = "ry";
  451. idx = <0>;
  452. path_type = "ISP_RY_MI_PATH_SP";
  453. output {
  454. max_width = <1920>;
  455. max_height = <1088>;
  456. bit_per_pixel = <12>;
  457. frame_count = <3>;
  458. };
  459. };
  460. };
  461. channel2 {
  462. sensor0 {
  463. subdev_name = "vivcam";
  464. idx = <4>; // imx219
  465. csi_idx = <0>; //<0>=CSI2
  466. mode_idx = <0>;
  467. path_type = "SENSOR_1080P_RAW10_LINER";
  468. };
  469. sensor1 {
  470. subdev_name = "vivcam";
  471. idx = <0xff>; // invalid
  472. csi_idx = <0xff>;
  473. path_type = "SENSOR_VGA_RAW10_LINER";
  474. };
  475. dma {
  476. subdev_name = "vipre";
  477. idx = <0>;
  478. path_type = "VIPRE_CSI0_ISP1";
  479. };
  480. isp {
  481. subdev_name = "isp";
  482. idx = <1>;
  483. path_type = "ISP_MI_PATH_PP";
  484. output {
  485. max_width = <1920>;
  486. max_height = <1088>;
  487. bit_per_pixel = <12>;
  488. frame_count = <3>;
  489. };
  490. };
  491. dsp {
  492. subdev_name = "dsp";
  493. idx = <0>;
  494. path_type = "DSP_PATH_ISP_RY";
  495. output {
  496. max_width = <1920>;
  497. max_height = <1088>;
  498. bit_per_pixel = <12>;
  499. frame_count = <3>;
  500. };
  501. };
  502. ry {
  503. subdev_name = "ry";
  504. idx = <0>;
  505. path_type = "ISP_RY_MI_PATH_SP2_BP";
  506. output {
  507. max_width = <1920>;
  508. max_height = <1088>;
  509. bit_per_pixel = <12>;
  510. frame_count = <3>;
  511. };
  512. };
  513. };
  514. };
  515. &video5{
  516. vi_mem_pool_region = <0>; // vi_mem: framebuffer, region[0]
  517. channel0 {
  518. sensor0 {
  519. subdev_name = "vivcam";
  520. idx = <4>; // imx219
  521. csi_idx = <0>; //<0>=CSI2
  522. mode_idx = <0>;
  523. path_type = "SENSOR_1080P_RAW10_LINER";
  524. };
  525. sensor1 {
  526. subdev_name = "vivcam";
  527. idx = <0xff>; // invalid
  528. csi_idx = <0xff>;
  529. path_type = "SENSOR_VGA_RAW10_LINER";
  530. };
  531. dma {
  532. subdev_name = "vipre";
  533. idx = <0>;
  534. path_type = "VIPRE_CSI0_ISP1";
  535. };
  536. isp {
  537. subdev_name = "isp";
  538. idx = <1>;
  539. path_type = "ISP_MI_PATH_PP";
  540. output {
  541. max_width = <1920>;
  542. max_height = <1088>;
  543. bit_per_pixel = <12>;
  544. frame_count = <3>;
  545. };
  546. };
  547. dsp {
  548. subdev_name = "dsp";
  549. idx = <0>;
  550. path_type = "DSP_PATH_ISP_RY";
  551. output {
  552. max_width = <1920>;
  553. max_height = <1088>;
  554. bit_per_pixel = <12>;
  555. frame_count = <3>;
  556. };
  557. };
  558. ry {
  559. subdev_name = "ry";
  560. idx = <0>;
  561. path_type = "ISP_RY_MI_PATH_MP";
  562. output {
  563. max_width = <1920>;
  564. max_height = <1088>;
  565. bit_per_pixel = <12>;
  566. frame_count = <3>;
  567. };
  568. };
  569. dw {
  570. subdev_name = "dw";
  571. idx = <0>;
  572. path_type = "DW_DWE_VSE0";
  573. dw_dst_depth = <2>;
  574. };
  575. };
  576. channel1 {
  577. sensor0 {
  578. subdev_name = "vivcam";
  579. idx = <4>; // imx219
  580. csi_idx = <0>; //<0>=CSI2
  581. mode_idx = <0>;
  582. path_type = "SENSOR_1080P_RAW10_LINER";
  583. };
  584. sensor1 {
  585. subdev_name = "vivcam";
  586. idx = <0xff>; // invalid
  587. csi_idx = <0xff>;
  588. path_type = "SENSOR_VGA_RAW10_LINER";
  589. };
  590. dma {
  591. subdev_name = "vipre";
  592. idx = <0>;
  593. path_type = "VIPRE_CSI0_ISP1";
  594. };
  595. isp {
  596. subdev_name = "isp";
  597. idx = <1>;
  598. path_type = "ISP_MI_PATH_PP";
  599. output {
  600. max_width = <1920>;
  601. max_height = <1088>;
  602. bit_per_pixel = <12>;
  603. frame_count = <3>;
  604. };
  605. };
  606. dsp {
  607. subdev_name = "dsp";
  608. idx = <0>;
  609. path_type = "DSP_PATH_ISP_RY";
  610. output {
  611. max_width = <1920>;
  612. max_height = <1088>;
  613. bit_per_pixel = <12>;
  614. frame_count = <3>;
  615. };
  616. };
  617. ry {
  618. subdev_name = "ry";
  619. idx = <0>;
  620. path_type = "ISP_RY_MI_PATH_MP";
  621. output {
  622. max_width = <1920>;
  623. max_height = <1088>;
  624. bit_per_pixel = <12>;
  625. frame_count = <3>;
  626. };
  627. };
  628. dw {
  629. subdev_name = "dw";
  630. idx = <0>;
  631. path_type = "DW_DWE_VSE1";
  632. dw_dst_depth = <2>;
  633. };
  634. };
  635. channel2 {
  636. sensor0 {
  637. subdev_name = "vivcam";
  638. idx = <4>; // imx219
  639. csi_idx = <0>; //<0>=CSI2
  640. mode_idx = <0>;
  641. path_type = "SENSOR_1080P_RAW10_LINER";
  642. };
  643. sensor1 {
  644. subdev_name = "vivcam";
  645. idx = <0xff>; // invalid
  646. csi_idx = <0xff>;
  647. path_type = "SENSOR_VGA_RAW10_LINER";
  648. };
  649. dma {
  650. subdev_name = "vipre";
  651. idx = <0>;
  652. path_type = "VIPRE_CSI0_ISP1";
  653. };
  654. isp {
  655. subdev_name = "isp";
  656. idx = <1>;
  657. path_type = "ISP_MI_PATH_PP";
  658. output {
  659. max_width = <1920>;
  660. max_height = <1088>;
  661. bit_per_pixel = <12>;
  662. frame_count = <3>;
  663. };
  664. };
  665. dsp {
  666. subdev_name = "dsp";
  667. idx = <0>;
  668. path_type = "DSP_PATH_ISP_RY";
  669. output {
  670. max_width = <1920>;
  671. max_height = <1088>;
  672. bit_per_pixel = <12>;
  673. frame_count = <3>;
  674. };
  675. };
  676. ry {
  677. subdev_name = "ry";
  678. idx = <0>;
  679. path_type = "ISP_RY_MI_PATH_MP";
  680. output {
  681. max_width = <1920>;
  682. max_height = <1088>;
  683. bit_per_pixel = <12>;
  684. frame_count = <3>;
  685. };
  686. };
  687. dw {
  688. subdev_name = "dw";
  689. idx = <0>;
  690. path_type = "DW_DWE_VSE2";
  691. dw_dst_depth = <2>;
  692. };
  693. };
  694. };