Advertisement
Guest User

Untitled

a guest
Jan 26th, 2022
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.00 KB | None | 0 0
  1. /*
  2. * Copyright (c) 2018-2019, NVIDIA CORPORATION. All rights reserved.
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License as published by
  6. * the Free Software Foundation; either version 2 of the License, or
  7. * (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful, but WITHOUT
  10. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  12. * more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. */
  17.  
  18. #include <dt-bindings/media/camera.h>
  19. #include <dt-bindings/platform/t210/t210.h>
  20.  
  21. / {
  22. host1x {
  23. vi_base: vi {
  24. num-channels = <2>;
  25. status = "okay";
  26. ports {
  27. #address-cells = <1>;
  28. #size-cells = <0>;
  29. vi_port0: port@0 {
  30. status = "okay";
  31. reg = <0>;
  32. rbpcv2_imx219_vi_in0: endpoint {
  33. port-index = <0>;
  34. bus-width = <1>;
  35. remote-endpoint = <&rbpcv2_imx219_csi_out0>;
  36. };
  37. };
  38. vi_port1: port@1 {
  39. status = "okay";
  40. reg = <1>;
  41. rbpcv2_imx219_vi_in1: endpoint {
  42. port-index = <2>;
  43. bus-width = <1>;
  44. remote-endpoint = <&rbpcv2_imx219_csi_out1>;
  45. };
  46. };
  47. };
  48. };
  49.  
  50. csi_base: nvcsi {
  51. num-channels = <2>;
  52. status = "okay";
  53. #address-cells = <1>;
  54. #size-cells = <0>;
  55. csi_chan0: channel@0 {
  56. status = "okay";
  57. reg = <0>;
  58. discontinuous_clk = "no";
  59. ports {
  60. #address-cells = <1>;
  61. #size-cells = <0>;
  62. csi_chan0_port0: port@0 {
  63. status = "okay";
  64. reg = <0>;
  65. rbpcv2_imx219_csi_in0: endpoint@0 {
  66. port-index = <0>;
  67. bus-width = <1>;
  68. remote-endpoint = <&rbpcv2_imx219_dual_out0>;
  69. };
  70. };
  71. csi_chan0_port1: port@1 {
  72. status = "okay";
  73. reg = <1>;
  74. rbpcv2_imx219_csi_out0: endpoint@1 {
  75. remote-endpoint = <&rbpcv2_imx219_vi_in0>;
  76. };
  77. };
  78. };
  79. };
  80. csi_chan1: channel@1 {
  81. status = "okay";
  82. reg = <1>;
  83. discontinuous_clk = "no";
  84. ports {
  85. #address-cells = <1>;
  86. #size-cells = <0>;
  87. csi_chan1_port0: port@2 {
  88. status = "okay";
  89. reg = <0>;
  90. rbpcv2_imx219_csi_in1: endpoint@2 {
  91. port-index = <2>;
  92. bus-width = <1>;
  93. remote-endpoint = <&rbpcv2_imx219_out1>;
  94. };
  95. };
  96. csi_chan1_port1: port@3 {
  97. status = "okay";
  98. reg = <1>;
  99. rbpcv2_imx219_csi_out1: endpoint@3 {
  100. remote-endpoint = <&rbpcv2_imx219_vi_in1>;
  101. };
  102. };
  103. };
  104. };
  105. };
  106. };
  107.  
  108. cam_i2cmux {
  109. i2c_0: i2c@0 {
  110. status = "okay";
  111. imx219_cam0: rbpcv2_imx219_a@10 {
  112. compatible = "adi,adv7280-m";
  113. /* I2C device address */
  114. reg = <0x21>;
  115.  
  116. /* V4L2 device node location */
  117. devnode = "video0";
  118.  
  119. /* Physical dimensions of sensor */
  120. physical_w = "4.713";
  121. physical_h = "3.494";
  122.  
  123. sensor_model = "adv7280-m";
  124.  
  125. use_sensor_mode_id = "false";
  126.  
  127. // mclk = "extperiph1";
  128. // refclk_hz = <28636363>;
  129. // linux,phandle = <0x118>;
  130. // phandle = <0x118>;
  131.  
  132. ports {
  133. #address-cells = <1>;
  134. #size-cells = <0>;
  135.  
  136. port@0 {
  137. reg = <0>;
  138. rbpcv2_imx219_dual_out0: endpoint {
  139. port-index = <0>;
  140. bus-width = <1>;
  141. remote-endpoint = <&rbpcv2_imx219_csi_in0>;
  142. };
  143. };
  144. };
  145. };
  146. };
  147. i2c_1: i2c@1 {
  148. status = "okay";
  149. imx219_cam1: rbpcv2_imx219_e@10 {
  150. compatible = "adi,adv7280-m";
  151. /* I2C device address */
  152. reg = <0x21>;
  153.  
  154. /* V4L2 device node location */
  155. devnode = "video1";
  156.  
  157. /* Physical dimensions of sensor */
  158. physical_w = "4.713";
  159. physical_h = "3.494";
  160.  
  161. sensor_model = "adv7280-m";
  162.  
  163. use_sensor_mode_id = "false";
  164.  
  165. // mclk = "extperiph1";
  166. // refclk_hz = <28636363>;
  167. // linux,phandle = <0x118>;
  168. // phandle = <0x118>;
  169.  
  170. ports {
  171. #address-cells = <1>;
  172. #size-cells = <0>;
  173.  
  174. port@0 {
  175. reg = <0>;
  176. rbpcv2_imx219_out1: endpoint {
  177. port-index = <2>;
  178. bus-width = <1>;
  179. remote-endpoint = <&rbpcv2_imx219_csi_in1>;
  180. };
  181. };
  182. };
  183. };
  184. };
  185. };
  186.  
  187. lens_imx219@RBPCV2 {
  188. min_focus_distance = "0.0";
  189. hyper_focal = "0.0";
  190. focal_length = "3.04";
  191. f_number = "2.0";
  192. aperture = "0.0";
  193. };
  194. };
  195.  
  196. / {
  197. tcp: tegra-camera-platform {
  198. compatible = "nvidia, tegra-camera-platform";
  199.  
  200. /**
  201. * Physical settings to calculate max ISO BW
  202. *
  203. * num_csi_lanes = <>;
  204. * Total number of CSI lanes when all cameras are active
  205. *
  206. * max_lane_speed = <>;
  207. * Max lane speed in Kbit/s
  208. *
  209. * min_bits_per_pixel = <>;
  210. * Min bits per pixel
  211. *
  212. * vi_peak_byte_per_pixel = <>;
  213. * Max byte per pixel for the VI ISO case
  214. *
  215. * vi_bw_margin_pct = <>;
  216. * Vi bandwidth margin in percentage
  217. *
  218. * max_pixel_rate = <>;
  219. * Max pixel rate in Kpixel/s for the ISP ISO case
  220. *
  221. * isp_peak_byte_per_pixel = <>;
  222. * Max byte per pixel for the ISP ISO case
  223. *
  224. * isp_bw_margin_pct = <>;
  225. * Isp bandwidth margin in percentage
  226. */
  227. num_csi_lanes = <2>;
  228. max_lane_speed = <1500000>;
  229. min_bits_per_pixel = <10>;
  230. vi_peak_byte_per_pixel = <2>;
  231. vi_bw_margin_pct = <25>;
  232. max_pixel_rate = <240000>;
  233. isp_peak_byte_per_pixel = <5>;
  234. isp_bw_margin_pct = <25>;
  235.  
  236. /**
  237. * The general guideline for naming badge_info contains 3 parts, and is as follows,
  238. * The first part is the camera_board_id for the module; if the module is in a FFD
  239. * platform, then use the platform name for this part.
  240. * The second part contains the position of the module, ex. "rear" or "front".
  241. * The third part contains the last 6 characters of a part number which is found
  242. * in the module's specsheet from the vendor.
  243. */
  244. modules {
  245. cam_module0: module0 {
  246. badge = "porg_front_RBPCV2";
  247. position = "front";
  248. orientation = "1";
  249. cam_module0_drivernode0: drivernode0 {
  250. pcl_id = "v4l2_sensor";
  251. devname = "adv7280 7-0021";
  252. proc-device-tree = "/proc/device-tree/cam_i2cmux/i2c@0/rbpcv2_imx219_a@10";
  253. };
  254. cam_module0_drivernode1: drivernode1 {
  255. pcl_id = "v4l2_lens";
  256. proc-device-tree = "/proc/device-tree/lens_imx219@RBPCV2/";
  257. };
  258. };
  259. cam_module1: module1 {
  260. badge = "porg_rear_RBPCV2";
  261. position = "rear";
  262. orientation = "1";
  263. cam_module1_drivernode0: drivernode0 {
  264. pcl_id = "v4l2_sensor";
  265. devname = "adv7280 8-0021";
  266. proc-device-tree = "/proc/device-tree/cam_i2cmux/i2c@1/rbpcv2_imx219_e@10";
  267. };
  268. cam_module1_drivernode1: drivernode1 {
  269. pcl_id = "v4l2_lens";
  270. proc-device-tree = "/proc/device-tree/lens_imx219@RBPCV2/";
  271. };
  272. };
  273. };
  274. };
  275. };
  276.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement