/* * Copyright (c) 2017-2019, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ / { tegra-capture-vi { status = "okay"; num-channels = <8>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; status = "okay"; liar0231_vi_in0: endpoint { status = "okay"; vc-id = <0>; port-index = <0>; bus-width = <4>; remote-endpoint = <&liar0231_csi_out0>; }; }; port@1 { reg = <1>; status = "okay"; liar0231_vi_in1: endpoint { status = "okay"; vc-id = <1>; port-index = <0>; bus-width = <4>; remote-endpoint = <&liar0231_csi_out1>; }; }; port@2 { reg = <2>; liar0231_vi_in2: endpoint { status = "okay"; vc-id = <2>; port-index = <0>; bus-width = <4>; remote-endpoint = <&liar0231_csi_out2>; }; }; port@3 { reg = <3>; liar0231_vi_in3: endpoint { status = "okay"; vc-id = <3>; port-index = <0>; bus-width = <4>; remote-endpoint = <&liar0231_csi_out3>; }; }; #if 1 port@4 { reg = <4>; liar0231_vi_in4: endpoint { status = "okay"; vc-id = <0>; port-index = <4>; bus-width = <4>; remote-endpoint = <&liar0231_csi_out4>; }; }; #endif #if 1 port@5 { reg = <5>; liar0231_vi_in5: endpoint { status = "okay"; vc-id = <1>; port-index = <4>; bus-width = <4>; remote-endpoint = <&liar0231_csi_out5>; }; }; #endif #if 1 port@6 { reg = <6>; liar0231_vi_in6: endpoint { status = "okay"; vc-id = <2>; port-index = <4>; bus-width = <4>; remote-endpoint = <&liar0231_csi_out6>; }; }; #endif #if 1 port@7 { reg = <7>; liar0231_vi_in7: endpoint { status = "okay"; vc-id = <3>; port-index = <4>; bus-width = <4>; remote-endpoint = <&liar0231_csi_out7>; }; }; #endif }; }; nvcsi@15a00000 { num-channels = <8>; #address-cells = <1>; #size-cells = <0>; #if 1 channel@0 { reg = <0>; status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; status = "okay"; liar0231_csi_in0: endpoint@0 { status = "okay"; port-index = <0>; bus-width = <4>; remote-endpoint = <&liar0231_ar0231_out0>; }; }; port@1 { reg = <1>; status = "okay"; liar0231_csi_out0: endpoint@1 { status = "okay"; remote-endpoint = <&liar0231_vi_in0>; }; }; }; }; #endif #if 1 channel@1 { reg = <1>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; liar0231_csi_in1: endpoint@2 { port-index = <0>; bus-width = <4>; remote-endpoint = <&liar0231_ar0231_out1>; }; }; port@1 { reg = <1>; liar0231_csi_out1: endpoint@3 { remote-endpoint = <&liar0231_vi_in1>; }; }; }; }; #endif #if 1 channel@2 { reg = <2>; status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; status = "okay"; liar0231_csi_in2: endpoint@0 { status = "okay"; port-index = <0>; bus-width = <4>; remote-endpoint = <&liar0231_ar0231_out2>; }; }; port@1 { reg = <1>; status = "okay"; liar0231_csi_out2: endpoint@1 { status = "okay"; remote-endpoint = <&liar0231_vi_in2>; }; }; }; }; #endif #if 1 channel@3 { reg = <3>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; liar0231_csi_in3: endpoint@2 { port-index = <0>; bus-width = <4>; remote-endpoint = <&liar0231_ar0231_out3>; }; }; port@1 { reg = <1>; liar0231_csi_out3: endpoint@3 { remote-endpoint = <&liar0231_vi_in3>; }; }; }; }; #endif #if 1 channel@4 { reg = <4>; status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; status = "okay"; liar0231_csi_in4: endpoint@0 { status = "okay"; port-index = <4>; bus-width = <4>; remote-endpoint = <&liar0231_ar0231_out4>; }; }; port@1 { reg = <1>; status = "okay"; liar0231_csi_out4: endpoint@1 { status = "okay"; remote-endpoint = <&liar0231_vi_in4>; }; }; }; }; #endif #if 1 channel@5 { reg = <5>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; liar0231_csi_in5: endpoint@2 { port-index = <4>; bus-width = <4>; remote-endpoint = <&liar0231_ar0231_out5>; }; }; port@1 { reg = <1>; liar0231_csi_out5: endpoint@3 { remote-endpoint = <&liar0231_vi_in5>; }; }; }; }; #endif #if 1 channel@6 { reg = <6>; status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; status = "okay"; liar0231_csi_in6: endpoint@0 { status = "okay"; port-index = <4>; bus-width = <4>; remote-endpoint = <&liar0231_ar0231_out6>; }; }; port@1 { reg = <1>; status = "okay"; liar0231_csi_out6: endpoint@1 { status = "okay"; remote-endpoint = <&liar0231_vi_in6>; }; }; }; }; #endif #if 1 channel@7 { reg = <7>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; liar0231_csi_in7: endpoint@2 { port-index = <4>; bus-width = <4>; remote-endpoint = <&liar0231_ar0231_out7>; }; }; port@1 { reg = <1>; liar0231_csi_out7: endpoint@3 { remote-endpoint = <&liar0231_vi_in7>; }; }; }; }; #endif }; i2c@3180000 { #if 1 ar0231_a@61 { compatible = "nvidia,ar0231"; /* I2C device address */ reg = <0x61>; /* V4L2 device node location */ devnode = "video0"; /* Physical dimensions of sensor */ physical_w = "3.674"; physical_h = "2.738"; sensor_model = "ar0231"; /* Define any required hw resources needed by driver */ /* ie. clocks, io pins, power sources */ avdd-reg = "vana"; iovdd-reg = "vif"; /* Defines number of frames to be dropped by driver internally after applying */ /* sensor crop settings. Some sensors send corrupt frames after applying */ /* crop co-ordinates */ /*post_crop_frame_drop = "0";*/ /* if true, delay gain setting by one frame to be in sync with exposure */ delayed_gain = "true"; //has-eeprom; //fuse_id_start_addr = <91>; mode0 { // AR0231_MODE_1928X1208 mclk_khz = "24000"; num_lanes = "4"; tegra_sinterface = "serial_a"; vc_id = "0"; //vc_id = "1"; phy_mode = "DPHY"; discontinuous_clk = "yes"; dpcm_enable = "false"; cil_settletime = "0"; active_w = "1920"; active_h = "1080"; mode_type = "yuv"; pixel_phase = "uyvy"; csi_pixel_bit_depth = "8"; dynamic_pixel_bit_depth = "8"; readout_orientation = "0"; line_length = "1920"; inherent_gain = "1"; mclk_multiplier = "3.453"; pix_clk_hz = "82867200"; serdes_pix_clk_hz = "400000000"; gain_factor = "1000000"; min_gain_val = "1000000"; max_gain_val = "48000000"; step_gain_val = "1"; default_gain = "1000000"; min_hdr_ratio = "1"; max_hdr_ratio = "1"; framerate_factor = "1"; min_framerate = "6"; max_framerate = "30"; step_framerate = "1"; default_framerate= "30"; exposure_factor = "1000000"; min_exp_time = "110"; max_exp_time = "166577"; step_exp_time = "1"; default_exp_time = "16657";/* us */ embedded_metadata_height = "0"; }; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; liar0231_ar0231_out0: endpoint { vc-id = <0>; port-index = <0>; bus-width = <4>; remote-endpoint = <&liar0231_csi_in0>; }; }; }; }; #endif #if 1 ar0231_b@62{ compatible = "nvidia,ar0231"; /* I2C device address */ reg = <0x62>; /* V4L2 device node location */ devnode = "video1"; /* Physical dimensions of sensor */ physical_w = "3.674"; physical_h = "2.738"; sensor_model = "ar0231"; /* Define any required hw resources needed by driver */ /* ie. clocks, io pins, power sources */ avdd-reg = "vana"; iovdd-reg = "vif"; /* Defines number of frames to be dropped by driver internally after applying */ /* sensor crop settings. Some sensors send corrupt frames after applying */ /* crop co-ordinates */ /*post_crop_frame_drop = "0";*/ /* if true, delay gain setting by one frame to be in sync with exposure */ delayed_gain = "true"; //has-eeprom; //fuse_id_start_addr = <91>; mode0 { // AR0231_MODE_1928X1208 mclk_khz = "24000"; num_lanes = "4"; //num_lanes = "2"; tegra_sinterface = "serial_a"; vc_id = "1"; phy_mode = "DPHY"; discontinuous_clk = "yes"; dpcm_enable = "false"; cil_settletime = "0"; active_w = "1920"; active_h = "1080"; mode_type = "yuv"; pixel_phase = "uyvy"; csi_pixel_bit_depth = "8"; dynamic_pixel_bit_depth = "8"; readout_orientation = "0"; line_length = "1920"; inherent_gain = "1"; mclk_multiplier = "3.453"; pix_clk_hz = "82867200"; serdes_pix_clk_hz = "400000000"; gain_factor = "1000000"; min_gain_val = "1000000"; max_gain_val = "48000000"; step_gain_val = "1"; default_gain = "1000000"; min_hdr_ratio = "1"; max_hdr_ratio = "1"; framerate_factor = "1"; min_framerate = "6"; max_framerate = "30"; step_framerate = "1"; default_framerate= "30"; exposure_factor = "1000000"; min_exp_time = "110"; max_exp_time = "166577"; step_exp_time = "1"; default_exp_time = "16657";/* us */ embedded_metadata_height = "0"; }; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; liar0231_ar0231_out1: endpoint { vc-id = <1>; port-index = <0>; bus-width = <4>; remote-endpoint = <&liar0231_csi_in1>; }; }; }; }; #endif #if 1 ar0231_c@63{ compatible = "nvidia,ar0231"; /* I2C device address */ reg = <0x63>; /* V4L2 device node location */ devnode = "video2"; /* Physical dimensions of sensor */ physical_w = "3.674"; physical_h = "2.738"; sensor_model = "ar0231"; /* Define any required hw resources needed by driver */ /* ie. clocks, io pins, power sources */ avdd-reg = "vana"; iovdd-reg = "vif"; /* Defines number of frames to be dropped by driver internally after applying */ /* sensor crop settings. Some sensors send corrupt frames after applying */ /* crop co-ordinates */ /*post_crop_frame_drop = "0";*/ /* if true, delay gain setting by one frame to be in sync with exposure */ delayed_gain = "true"; //has-eeprom; //fuse_id_start_addr = <91>; mode0 { // AR0231_MODE_1928X1208 mclk_khz = "24000"; num_lanes = "4"; //num_lanes = "2"; tegra_sinterface = "serial_a"; vc_id = "2"; phy_mode = "DPHY"; discontinuous_clk = "yes"; dpcm_enable = "false"; cil_settletime = "0"; active_w = "1920"; active_h = "1080"; mode_type = "yuv"; pixel_phase = "uyvy"; csi_pixel_bit_depth = "8"; dynamic_pixel_bit_depth = "8"; readout_orientation = "0"; line_length = "1920"; inherent_gain = "1"; mclk_multiplier = "3.453"; pix_clk_hz = "82867200"; serdes_pix_clk_hz = "400000000"; gain_factor = "1000000"; min_gain_val = "1000000"; max_gain_val = "48000000"; step_gain_val = "1"; default_gain = "1000000"; min_hdr_ratio = "1"; max_hdr_ratio = "1"; framerate_factor = "1"; min_framerate = "6"; max_framerate = "30"; step_framerate = "1"; default_framerate= "30"; exposure_factor = "1000000"; min_exp_time = "110"; max_exp_time = "166577"; step_exp_time = "1"; default_exp_time = "16657";/* us */ embedded_metadata_height = "0"; }; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; liar0231_ar0231_out2: endpoint { vc-id = <2>; port-index = <0>; bus-width = <4>; remote-endpoint = <&liar0231_csi_in2>; }; }; }; }; #endif #if 1 ar0231_d@64{ compatible = "nvidia,ar0231"; /* I2C device address */ reg = <0x64>; /* V4L2 device node location */ devnode = "video3"; /* Physical dimensions of sensor */ physical_w = "3.674"; physical_h = "2.738"; sensor_model = "ar0231"; /* Define any required hw resources needed by driver */ /* ie. clocks, io pins, power sources */ avdd-reg = "vana"; iovdd-reg = "vif"; /* Defines number of frames to be dropped by driver internally after applying */ /* sensor crop settings. Some sensors send corrupt frames after applying */ /* crop co-ordinates */ /*post_crop_frame_drop = "0";*/ /* if true, delay gain setting by one frame to be in sync with exposure */ delayed_gain = "true"; //has-eeprom; //fuse_id_start_addr = <91>; mode0 { // AR0231_MODE_1928X1208 mclk_khz = "24000"; num_lanes = "4"; tegra_sinterface = "serial_a"; vc_id = "3"; phy_mode = "DPHY"; discontinuous_clk = "yes"; dpcm_enable = "false"; cil_settletime = "0"; active_w = "1920"; active_h = "1080"; mode_type = "yuv"; pixel_phase = "uyvy"; csi_pixel_bit_depth = "8"; dynamic_pixel_bit_depth = "8"; readout_orientation = "0"; line_length = "1920"; inherent_gain = "1"; mclk_multiplier = "3.453"; pix_clk_hz = "82867200"; serdes_pix_clk_hz = "400000000"; gain_factor = "1000000"; min_gain_val = "1000000"; max_gain_val = "48000000"; step_gain_val = "1"; default_gain = "1000000"; min_hdr_ratio = "1"; max_hdr_ratio = "1"; framerate_factor = "1"; min_framerate = "6"; max_framerate = "30"; step_framerate = "1"; default_framerate= "30"; exposure_factor = "1000000"; min_exp_time = "110"; max_exp_time = "166577"; step_exp_time = "1"; default_exp_time = "16657";/* us */ embedded_metadata_height = "0"; }; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; liar0231_ar0231_out3: endpoint { vc-id = <3>; port-index = <0>; bus-width = <4>; remote-endpoint = <&liar0231_csi_in3>; }; }; }; }; #endif #if 1 ar0231_e@65 { compatible = "nvidia,ar0231"; /* I2C device address */ reg = <0x65>; /* V4L2 device node location */ devnode = "video4"; /* Physical dimensions of sensor */ physical_w = "3.674"; physical_h = "2.738"; sensor_model = "ar0231"; /* Define any required hw resources needed by driver */ /* ie. clocks, io pins, power sources */ avdd-reg = "vana"; iovdd-reg = "vif"; /* Defines number of frames to be dropped by driver internally after applying */ /* sensor crop settings. Some sensors send corrupt frames after applying */ /* crop co-ordinates */ /*post_crop_frame_drop = "0";*/ /* if true, delay gain setting by one frame to be in sync with exposure */ delayed_gain = "true"; //has-eeprom; //fuse_id_start_addr = <91>; mode0 { // AR0231_MODE_1928X1208 mclk_khz = "24000"; num_lanes = "4"; tegra_sinterface = "serial_e"; vc_id = "0"; phy_mode = "DPHY"; discontinuous_clk = "yes"; dpcm_enable = "false"; cil_settletime = "0"; active_w = "1920"; active_h = "1080"; mode_type = "yuv"; pixel_phase = "uyvy"; csi_pixel_bit_depth = "8"; dynamic_pixel_bit_depth = "8"; readout_orientation = "0"; line_length = "1920"; inherent_gain = "1"; mclk_multiplier = "3.453"; pix_clk_hz = "82867200"; serdes_pix_clk_hz = "400000000"; gain_factor = "1000000"; min_gain_val = "1000000"; max_gain_val = "48000000"; step_gain_val = "1"; default_gain = "1000000"; min_hdr_ratio = "1"; max_hdr_ratio = "1"; framerate_factor = "1"; min_framerate = "6"; max_framerate = "30"; step_framerate = "1"; default_framerate= "30"; exposure_factor = "1000000"; min_exp_time = "110"; max_exp_time = "166577"; step_exp_time = "1"; default_exp_time = "16657";/* us */ embedded_metadata_height = "0"; }; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; liar0231_ar0231_out4: endpoint { vc-id = <0>; port-index = <4>; bus-width = <4>; remote-endpoint = <&liar0231_csi_in4>; }; }; }; }; #endif #if 1 ar0231_f@66 { compatible = "nvidia,ar0231"; /* I2C device address */ reg = <0x66>; /* V4L2 device node location */ devnode = "video5"; /* Physical dimensions of sensor */ physical_w = "3.674"; physical_h = "2.738"; sensor_model = "ar0231"; /* Define any required hw resources needed by driver */ /* ie. clocks, io pins, power sources */ avdd-reg = "vana"; iovdd-reg = "vif"; /* Defines number of frames to be dropped by driver internally after applying */ /* sensor crop settings. Some sensors send corrupt frames after applying */ /* crop co-ordinates */ /*post_crop_frame_drop = "0";*/ /* if true, delay gain setting by one frame to be in sync with exposure */ delayed_gain = "true"; //has-eeprom; //fuse_id_start_addr = <91>; mode0 { // AR0231_MODE_1928X1208 mclk_khz = "24000"; num_lanes = "4"; tegra_sinterface = "serial_e"; vc_id = "1"; phy_mode = "DPHY"; discontinuous_clk = "yes"; dpcm_enable = "false"; cil_settletime = "0"; active_w = "1920"; active_h = "1080"; mode_type = "yuv"; pixel_phase = "uyvy"; csi_pixel_bit_depth = "8"; dynamic_pixel_bit_depth = "8"; readout_orientation = "0"; line_length = "1920"; inherent_gain = "1"; mclk_multiplier = "3.453"; pix_clk_hz = "82867200"; serdes_pix_clk_hz = "400000000"; gain_factor = "1000000"; min_gain_val = "1000000"; max_gain_val = "48000000"; step_gain_val = "1"; default_gain = "1000000"; min_hdr_ratio = "1"; max_hdr_ratio = "1"; framerate_factor = "1"; min_framerate = "6"; max_framerate = "30"; step_framerate = "1"; default_framerate= "30"; exposure_factor = "1000000"; min_exp_time = "110"; max_exp_time = "166577"; step_exp_time = "1"; default_exp_time = "16657";/* us */ embedded_metadata_height = "0"; }; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; liar0231_ar0231_out5: endpoint { vc-id = <1>; port-index = <4>; bus-width = <4>; remote-endpoint = <&liar0231_csi_in5>; }; }; }; }; #endif #if 1 ar0231_g@67 { compatible = "nvidia,ar0231"; /* I2C device address */ reg = <0x67>; /* V4L2 device node location */ devnode = "video6"; /* Physical dimensions of sensor */ physical_w = "3.674"; physical_h = "2.738"; sensor_model = "ar0231"; /* Define any required hw resources needed by driver */ /* ie. clocks, io pins, power sources */ avdd-reg = "vana"; iovdd-reg = "vif"; /* Defines number of frames to be dropped by driver internally after applying */ /* sensor crop settings. Some sensors send corrupt frames after applying */ /* crop co-ordinates */ /*post_crop_frame_drop = "0";*/ /* if true, delay gain setting by one frame to be in sync with exposure */ delayed_gain = "true"; //has-eeprom; //fuse_id_start_addr = <91>; mode0 { // AR0231_MODE_1928X1208 mclk_khz = "24000"; num_lanes = "4"; tegra_sinterface = "serial_e"; vc_id = "2"; phy_mode = "DPHY"; discontinuous_clk = "yes"; dpcm_enable = "false"; cil_settletime = "0"; active_w = "1920"; active_h = "1080"; mode_type = "yuv"; pixel_phase = "uyvy"; csi_pixel_bit_depth = "8"; dynamic_pixel_bit_depth = "8"; readout_orientation = "0"; line_length = "1920"; inherent_gain = "1"; mclk_multiplier = "3.453"; pix_clk_hz = "82867200"; serdes_pix_clk_hz = "400000000"; gain_factor = "1000000"; min_gain_val = "1000000"; max_gain_val = "48000000"; step_gain_val = "1"; default_gain = "1000000"; min_hdr_ratio = "1"; max_hdr_ratio = "1"; framerate_factor = "1"; min_framerate = "6"; max_framerate = "30"; step_framerate = "1"; default_framerate= "30"; exposure_factor = "1000000"; min_exp_time = "110"; max_exp_time = "166577"; step_exp_time = "1"; default_exp_time = "16657";/* us */ embedded_metadata_height = "0"; }; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; liar0231_ar0231_out6: endpoint { vc-id = <2>; port-index = <4>; bus-width = <4>; remote-endpoint = <&liar0231_csi_in6>; }; }; }; }; #endif #if 1 ar0231_h@68 { compatible = "nvidia,ar0231"; /* I2C device address */ reg = <0x68>; /* V4L2 device node location */ devnode = "video7"; /* Physical dimensions of sensor */ physical_w = "3.674"; physical_h = "2.738"; sensor_model = "ar0231"; /* Define any required hw resources needed by driver */ /* ie. clocks, io pins, power sources */ avdd-reg = "vana"; iovdd-reg = "vif"; /* Defines number of frames to be dropped by driver internally after applying */ /* sensor crop settings. Some sensors send corrupt frames after applying */ /* crop co-ordinates */ /*post_crop_frame_drop = "0";*/ /* if true, delay gain setting by one frame to be in sync with exposure */ delayed_gain = "true"; //has-eeprom; //fuse_id_start_addr = <91>; mode0 { // AR0231_MODE_1928X1208 mclk_khz = "24000"; num_lanes = "4"; tegra_sinterface = "serial_e"; vc_id = "3"; phy_mode = "DPHY"; discontinuous_clk = "yes"; dpcm_enable = "false"; cil_settletime = "0"; active_w = "1920"; active_h = "1080"; mode_type = "yuv"; pixel_phase = "uyvy"; csi_pixel_bit_depth = "8"; dynamic_pixel_bit_depth = "8"; readout_orientation = "0"; line_length = "1920"; inherent_gain = "1"; mclk_multiplier = "3.453"; pix_clk_hz = "82867200"; serdes_pix_clk_hz = "400000000"; gain_factor = "1000000"; min_gain_val = "1000000"; max_gain_val = "48000000"; step_gain_val = "1"; default_gain = "1000000"; min_hdr_ratio = "1"; max_hdr_ratio = "1"; framerate_factor = "1"; min_framerate = "6"; max_framerate = "30"; step_framerate = "1"; default_framerate= "30"; exposure_factor = "1000000"; min_exp_time = "110"; max_exp_time = "166577"; step_exp_time = "1"; default_exp_time = "16657";/* us */ embedded_metadata_height = "0"; }; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; liar0231_ar0231_out7: endpoint { vc-id = <3>; port-index = <4>; bus-width = <4>; remote-endpoint = <&liar0231_csi_in7>; }; }; }; }; #endif }; lens_ar0231@A6V26 { min_focus_distance = "0.0"; hyper_focal = "0.0"; focal_length = "5.00"; f_number = "2.0"; aperture = "2.2"; }; }; / { tegra-camera-platform { compatible = "nvidia, tegra-camera-platform"; num_csi_lanes = <8>; max_lane_speed = <1500000>; min_bits_per_pixel = <10>; vi_peak_byte_per_pixel = <2>; vi_bw_margin_pct = <25>; max_pixel_rate = <750000>; isp_peak_byte_per_pixel = <5>; isp_bw_margin_pct = <25>; /** * The general guideline for naming badge_info contains 3 parts, and is as follows, * The first part is the camera_board_id for the module; if the module is in a FFD * platform, then use the platform name for this part. * The second part contains the position of the module, ex. "rear" or "front". * The third part contains the last 6 characters of a part number which is found * in the module's specsheet from the vender. */ modules { module0 { badge = "ar0231_bottom_A6V26"; position = "bottom"; orientation = "1"; drivernode0 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_sensor"; /* Driver v4l2 device name */ devname = "ar0231 2-0061"; /* Declare the device-tree hierarchy to driver instance */ proc-device-tree = "/proc/device-tree/i2c@3180000/ar0231_a@61"; }; drivernode1 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_lens"; proc-device-tree = "/proc/device-tree/lens_ar0231@A6V26/"; }; }; #if 1 module1 { badge = "ar0231_centerleft_A6V26"; position = "centerleft"; orientation = "1"; drivernode0 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_sensor"; /* Driver v4l2 device name */ devname = "ar0231 2-0062"; /* Declare the device-tree hierarchy to driver instance */ proc-device-tree = "/proc/device-tree/i2c@3180000/ar0231_b@62"; }; drivernode1 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_lens"; proc-device-tree = "/proc/device-tree/lens_ar0231@A6V26/"; }; }; #endif #if 1 module2 { badge = "ar0231_left_A6V26"; position = "left"; orientation = "1"; drivernode0 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_sensor"; /* Driver v4l2 device name */ devname = "ar0231 2-0063"; /* Declare the device-tree hierarchy to driver instance */ proc-device-tree = "/proc/device-tree/i2c@3180000/ar0231_c@63"; }; drivernode1 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_lens"; proc-device-tree = "/proc/device-tree/lens_ar0231@A6V26/"; }; }; #endif #if 1 module3 { badge = "ar0231_center_A6V26"; position = "center"; orientation = "1"; drivernode0 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_sensor"; /* Driver v4l2 device name */ devname = "ar0231 2-0064"; /* Declare the device-tree hierarchy to driver instance */ proc-device-tree = "/proc/device-tree/i2c@3180000/ar0231_d@64"; }; drivernode1 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_lens"; proc-device-tree = "/proc/device-tree/lens_ar0231@A6V26/"; }; }; #endif #if 1 module4 { badge = "ar0231_right_A6V26"; position = "right"; orientation = "1"; drivernode0 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_sensor"; /* Driver v4l2 device name */ devname = "ar0231 2-0065"; /* Declare the device-tree hierarchy to driver instance */ proc-device-tree = "/proc/device-tree/i2c@3180000/ar0231_e@65"; }; drivernode1 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_lens"; proc-device-tree = "/proc/device-tree/lens_ar0231@A6V26/"; }; }; #endif #if 1 module5 { badge = "ar0231_bottom_A6V26"; position = "bottom"; orientation = "1"; drivernode0 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_sensor"; /* Driver v4l2 device name */ devname = "ar0231 2-0066"; /* Declare the device-tree hierarchy to driver instance */ proc-device-tree = "/proc/device-tree/i2c@3180000/ar0231_f@66"; }; drivernode1 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_lens"; proc-device-tree = "/proc/device-tree/lens_ar0231@A6V26/"; }; }; #endif #if 1 module6 { badge = "ar0231_bot_A6V26"; position = "bot"; orientation = "1"; drivernode0 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_sensor"; /* Driver v4l2 device name */ devname = "ar0231 2-0067"; /* Declare the device-tree hierarchy to driver instance */ proc-device-tree = "/proc/device-tree/i2c@3180000/ar0231_g@67"; }; drivernode1 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_lens"; proc-device-tree = "/proc/device-tree/lens_ar0231@A6V26/"; }; }; #endif #if 1 module7 { badge = "ar0231_tom_A6V26"; position = "tom"; orientation = "1"; drivernode0 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_sensor"; /* Driver v4l2 device name */ devname = "ar0231 2-0068"; /* Declare the device-tree hierarchy to driver instance */ proc-device-tree = "/proc/device-tree/i2c@3180000/ar0231_h@68"; }; drivernode1 { /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_lens"; proc-device-tree = "/proc/device-tree/lens_ar0231@A6V26/"; }; }; #endif }; }; };