I’m using 24.2.1 and hoped that it would work.
The hardware uses two different I2C channels whereas e3333 uses same with I2C switch. Other than this all are same.
I’m pasting relevant device tree entries, please let me know where I’m having issues.
vi {
compatible = “nvidia,tegra210-vi”, “simple-bus”;
power-domains = <0x6f>;
reg = <0x0 0x54080000 0x0 0x40000>;
interrupts = <0x0 0x45 0x4>;
iommus = <0x46 0x12>;
status = “okay”;
clocks = <0x70 0x14 0x70 0x34 0x70 0xf3 0x70 0x90 0x70 0x91 0x70 0x92>;
clock-names = “vi”, “csi”, “pll_d”, “cilab”, “cilcd”, “cile”;
resets = <0x70 0x14>;
reset-names = “vi”;
#address-cells = <0x1>;
#size-cells = <0x0>;
avdd_dsi_csi-supply = <&cti_buck>;
num-channels = <0x2>;
linux,phandle = <0xc7>;
phandle = <0xc7>;
ports {
#address-cells = <0x1>;
#size-cells = <0x0>;
port@0 {
reg = <0x0>;
status = "okay";
linux,phandle = <0xc8>;
phandle = <0xc8>;
endpoint {
csi-port = <0x0>;
bus-width = <0x2>;
remote-endpoint = <&AS2_OV5693_01>;
status = "okay";
linux,phandle = <0x85>;
phandle = <0x85>;
};
};
port@1 {
reg = <0x1>;
status = "okay";
linux,phandle = <0xd2>;
phandle = <0xd2>;
endpoint {
csi-port = <0x1>;
bus-width = <0x2>;
remote-endpoint = <&AS2_OV5693_02>;
status = "okay";
linux,phandle = <0x88>;
phandle = <0x88>;
};
};
...................
i2c@546c0000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
compatible = "nvidia,tegra210-vii2c";
reg = <0x0 0x546c0000 0x0 0x34000>;
iommus = <0x46 0x12>;
interrupts = <0x0 0x11 0x4>;
scl-gpio = <0x6a 0x92 0x0>;
sda-gpio = <0x6a 0x93 0x0>;
status = "okay";
clock-frequency = <0x61a80>;
bus-pullup-supply = <0x56>;
avdd_dsi_csi-supply = <0x56>;
linux,phandle = <0xc2>;
phandle = <0xc2>;
e3326_cam0: ov5693_a@36{
compatible = "nvidia,ov5693";
reg = <0x36>;
devnode = "video0";
physical_w = "3.674";
physical_h = "2.738";
avdd-reg = "vana";
iovdd-reg = "vif";
clocks = <0x70 0x135>;
post_crop_frame_drop = [30 00];
clock-names = "mclk";
sensor_model = "ov5693";
clock-frequency = <0x16e3600>;
mclk = "cam_mclk1";
reset-gpios = <0x6a 0x94 0x0>;
pwdn-gpios = <0x6a 0x97 0x0>;
vana-supply = <&cti_buck>;
vif-supply = <&cti_buck>;
status = "okay";
mode0 {
mclk_khz = "24000";
num_lanes = [32 00];
tegra_sinterface = "serial_a";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = [30 00];
active_w = "2592";
active_h = "1944";
pixel_t = "bayer_bggr";
readout_orientation = "90";
line_length = "2688";
inherent_gain = [31 00];
mclk_multiplier = "17.0";
pix_clk_hz = "160000000";
min_gain_val = "1.0";
max_gain_val = "16";
min_hdr_ratio = [31 00];
max_hdr_ratio = "64";
min_framerate = "1.816577";
max_framerate = "30";
min_exp_time = "34";
max_exp_time = "550385";
};
mode1 {
mclk_khz = "24000";
num_lanes = [32 00];
tegra_sinterface = "serial_a";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = [30 00];
active_w = "2592";
active_h = "1458";
pixel_t = "bayer_bggr";
readout_orientation = "90";
line_length = "2688";
inherent_gain = [31 00];
mclk_multiplier = "17.0";
pix_clk_hz = "160000000";
min_gain_val = "1.0";
max_gain_val = "16";
min_hdr_ratio = [31 00];
max_hdr_ratio = "64";
min_framerate = "1.816577";
max_framerate = "30";
min_exp_time = "34";
max_exp_time = "550385";
};
mode2 {
mclk_khz = "24000";
num_lanes = [32 00];
tegra_sinterface = "serial_a";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = [30 00];
active_w = "1280";
active_h = "720";
pixel_t = "bayer_bggr";
readout_orientation = "90";
line_length = "1752";
inherent_gain = [31 00];
mclk_multiplier = "17.0";
pix_clk_hz = "160000000";
min_gain_val = "1.0";
max_gain_val = "16";
min_hdr_ratio = [31 00];
max_hdr_ratio = "64";
min_framerate = "2.787078";
max_framerate = "120";
min_exp_time = "22";
max_exp_time = "358733";
};
mode3 {
mclk_khz = "24000";
num_lanes = [32 00];
tegra_sinterface = "serial_a";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = [30 00];
active_w = "2592";
active_h = "1944";
pixel_t = "hdr_bggr";
readout_orientation = "90";
line_length = "3696";
inherent_gain = [31 00];
mclk_multiplier = "19.0";
pix_clk_hz = "176000000";
min_gain_val = "1.0";
max_gain_val = "16";
min_hdr_ratio = [31 00];
max_hdr_ratio = "64";
min_framerate = "1.453262";
max_framerate = "24";
min_exp_time = "42";
max_exp_time = "687981";
};
ports {
#address-cells = <0x1>;
#size-cells = <0x0>;
port@0 {
reg = <0x0>;
AS2_OV5693_01: endpoint {
csi-port = <0x0>;
bus-width = <0x2>;
remote-endpoint = <0x85>;
};
};
};
};
…
i2c@7000c000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
compatible = “nvidia,tegra210-i2c”;
reg = <0x0 0x7000c000 0x0 0x100>;
interrupts = <0x0 0x26 0x4>;
iommus = <0x46 0xe>;
status = “okay”;
clock-frequency = <0x61a80>;
nvidia,clock-always-on;
linux,phandle = <0xbf>;
phandle = <0xbf>;
ov5693_b@36 {
compatible = "nvidia,ov5693";
reg = <0x36>;
devnode = "video1";
physical_w = "3.674";
physical_h = "2.738";
avdd-reg = "vana";
iovdd-reg = "vif";
clocks = <0x70 0x135>;
post_crop_frame_drop = [30 00];
clock-names = "mclk";
clock-frequency = <0x16e3600>;
sensor_model = "ov5693";
mclk = "cam_mclk1";
reset-gpios = <0x6a 0x95 0x0>;
pwdn-gpios = <0x6a 0x98 0x0>;
vana-supply = <&cti_buck>;
vif-supply = <&cti_buck>;
status = "okay";
mode0 {
mclk_khz = "24000";
num_lanes = [32 00];
tegra_sinterface = "serial_b";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = [30 00];
active_w = "2592";
active_h = "1944";
pixel_t = "bayer_bggr";
readout_orientation = "90";
line_length = "2688";
inherent_gain = [31 00];
mclk_multiplier = "17.0";
pix_clk_hz = "160000000";
min_gain_val = "1.0";
max_gain_val = "16";
min_hdr_ratio = [31 00];
max_hdr_ratio = "64";
min_framerate = "1.816577";
max_framerate = "30";
min_exp_time = "34";
max_exp_time = "550385";
};
mode1 {
mclk_khz = "24000";
num_lanes = [32 00];
tegra_sinterface = "serial_b";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = [30 00];
active_w = "2592";
active_h = "1458";
pixel_t = "bayer_bggr";
readout_orientation = "90";
line_length = "2688";
inherent_gain = [31 00];
mclk_multiplier = "17.0";
pix_clk_hz = "160000000";
min_gain_val = "1.0";
max_gain_val = "16";
min_hdr_ratio = [31 00];
max_hdr_ratio = "64";
min_framerate = "1.816577";
max_framerate = "30";
min_exp_time = "34";
max_exp_time = "550385";
};
mode2 {
mclk_khz = "24000";
num_lanes = [32 00];
tegra_sinterface = "serial_b";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = [30 00];
active_w = "1280";
active_h = "720";
pixel_t = "bayer_bggr";
readout_orientation = "90";
line_length = "1752";
inherent_gain = [31 00];
mclk_multiplier = "17.0";
pix_clk_hz = "160000000";
min_gain_val = "1.0";
max_gain_val = "16";
min_hdr_ratio = [31 00];
max_hdr_ratio = "64";
min_framerate = "2.787078";
max_framerate = "120";
min_exp_time = "22";
max_exp_time = "358733";
};
mode3 {
mclk_khz = "24000";
num_lanes = [32 00];
tegra_sinterface = "serial_b";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = [30 00];
active_w = "2592";
active_h = "1944";
pixel_t = "hdr_bggr";
readout_orientation = "90";
line_length = "3696";
inherent_gain = [31 00];
mclk_multiplier = "19.0";
pix_clk_hz = "176000000";
min_gain_val = "1.0";
max_gain_val = "16";
min_hdr_ratio = [31 00];
max_hdr_ratio = "64";
min_framerate = "1.453262";
max_framerate = "24";
min_exp_time = "42";
max_exp_time = "687981";
};
ports {
#address-cells = <0x1>;
#size-cells = <0x0>;
port@0 {
reg = <0x0>;
AS2_OV5693_02: endpoint {
csi-port = <0x1>;
bus-width = <0x2>;
remote-endpoint = <0x88>;
};
};
};
};
…
tegra-camera-platform {
compatible = “nvidia, tegra-camera-platform”;
num_csi_lanes = <0x2>;
max_lane_speed = <0x16e360>;
min_bits_per_pixel = <0xa>;
vi_peak_byte_per_pixel = <0x2>;
vi_bw_margin_pct = <0x19>;
max_pixel_rate = <0x639c0>;
isp_peak_byte_per_pixel = <0x2>;
isp_bw_margin_pct = <0x19>;
linux,phandle = <0xc9>;
phandle = <0xc9>;
modules {
module0 {
badge = "e3326_front_P5V27C";
position = "front";
orientation = [31 00];
status = "okay";
linux,phandle = <0xc4>;
phandle = <0xc4>;
drivernode0 {
pcl_id = "v4l2_sensor";
devname = "ov5693 6-0036";
proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/ov5693_a@36";
status = "okay";
linux,phandle = <0xc5>;
phandle = <0xc5>;
};
drivernode1 {
pcl_id = "v4l2_focuser_stub";
devname = "lc898212 6-0072";
proc-device-tree = [00];
status = "okay";
linux,phandle = <0xc6>;
phandle = <0xc6>;
};
};
module1 {
badge = "e3326_rear_P5V27C";
position = "rear";
orientation = [33 00];
status = "okay";
linux,phandle = <0xcc>;
phandle = <0xcc>;
drivernode0 {
pcl_id = "v4l2_sensor";
devname = "ov5693 0-0036";
proc-device-tree = "/proc/device-tree/i2c@7000c000/ov5693_b@36";
status = "okay";
linux,phandle = <0xcd>;
phandle = <0xcd>;
};
drivernode1 {
pcl_id = "v4l2_focuser_stub";
devname = "lc898212 0-0072";
proc-device-tree = [00];
status = "okay";
linux,phandle = <0xd0>;
phandle = <0xd0>;
};
};