Sure :
<tc358743.dtsi>
#include <dt-bindings/media/camera.h>
#include <dt-bindings/platform/t210/t210.h>
#include <dt-bindings/gpio/gpio.h>
/ {
host1x {
gpio@6000d000 {
camera-control-output-low {
gpio-hog;
output-low;
gpios = < CAM1_PWDN 0 >;
label = "cam1-pwdn";
};
};
vi_base: vi {
num-channels = <2>; // Change 4->2
ports {
#address-cells = <1>;
#size-cells = <0>;
vi_port1: port@1 {
status = "okay";
reg = <1>;
tc358743_vi_in1: endpoint {
status = "okay";
port-index = <1>; /* CSI-B */
bus-width = <4>; /* Use CSI-B only */
remote-endpoint = <&tc358743_csi_out0>;
};
};
};
};
csi_base: nvcsi {
num-channels = <2>;
#address-cells = <1>;
#size-cells = <0>;
csi_chan0: channel@0 {
reg = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
csi_chan0_port0: port@0 {
reg = <0>;
rbpcv2_imx219_csi_in0: endpoint@0 {
port-index = <0>;
bus-width = <2>;
//remote-endpoint = <&rbpcv2_imx219_out0>;
};
};
csi_chan0_port1: port@1 {
reg = <1>;
rbpcv2_imx219_csi_out0: endpoint@1 {
//remote-endpoint = <&rbpcv2_imx219_vi_in0>;
};
};
};
};
channel@1 {
reg = <1>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
status = "okay";
reg = <0>;
tc358743_csi_in0: endpoint@2 {
status = "okay";
port-index = <1>;
bus-width = <2>;
remote-endpoint = <&tc358743_out1>;
};
};
port@1 {
reg = <1>;
status = "okay";
tc358743_csi_out0: endpoint@3 {
status = "okay";
remote-endpoint = <&tc358743_vi_in1>;
};
};
};
};
};
i2c@546c0000 { /* I2C_PM, "adapter" 6 */
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
tc358743@0f {
status = "okay";
compatible = "tc358743";
reg = <0x0f>; /* shifted by 2 */
mclk = "cam_mclk1";
reset-gpios = <&gpio 149 0>;
refclk_hz = <27000000>; // refclk_hz -> regclk
interrupt-parent = <&gpio>;
interrupts = <TEGRA_GPIO(E, 6) GPIO_ACTIVE_HIGH>;
/* Physical dimensions of sensor */
physical_w = "4.713";
physical_h = "3.494";
/* Sensor Model */
sensor_model ="tc358743";
ddc5v_delay = <2>;
enable_hdcp = "false";
lineinitcnt = <0xe80>;
lptxtimecnt = <0x003>;
tclk_headercnt = <0x1403>;
tclk_trailcnt = <0x00>;
ths_headercnt = <0x0103>;
twakeup = <0x4882>;
tclk_postcnt = <0x008>;
ths_trailcnt = <0x02>;
hstxvregcnt = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
tc358743_out1: endpoint {
port-index = <1>; /* CSI B */
bus-width = <4>; /* Use CSI-B only */
data-lanes = <1 2 3 4>;
clock-lanes = <0>;
clock-noncontinuous;
link-frequencies = /bits/ 64 <297000000>;
remote-endpoint = <&tc358743_csi_in0>;
};
};
};
};
};
};
tegra-camera-platform {
status = "okay";
compatible = "nvidia, tegra-camera-platform";
num_csi_lanes = <4>; // Changed 2 -> 4
max_lane_speed = <1500000>;
min_bits_per_pixel = <10>; // Changed 16 -> 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 {
module1 {
status = "okay";
badge = "tc358743_top_i2c6_b";
position = "front";
orientation = "1";
drivernode0 {
status = "okay";
/* Declare PCL support driver (classically known as guid) */
pcl_id = "v4l2_sensor";
/* Driver's v4l2 device name */
devname = "tc358743 6-000f";
/* Declare the device-tree hierarchy to driver instance */
proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tc358743@0f";
};
};
};
};
};