diff --git a/hardware/nvidia/platform/t19x/galen/kernel-dts/Makefile b/hardware/nvidia/platform/t19x/galen/kernel-dts/Makefile index 4d6eaf212..c57c244c3 100644 --- a/hardware/nvidia/platform/t19x/galen/kernel-dts/Makefile +++ b/hardware/nvidia/platform/t19x/galen/kernel-dts/Makefile @@ -16,6 +16,7 @@ dtb-$(CONFIG_ARCH_TEGRA_19x_SOC) += tegra194-p2888-as-p3668-p2822-0000.dtb dtbo-$(CONFIG_ARCH_TEGRA_18x_SOC) += tegra194-p2888-0001-p2822-0000-hdr40.dtbo dtbo-$(CONFIG_ARCH_TEGRA_18x_SOC) += tegra194-p2888-0001-p2822-0000-adafruit-sph0645lm4h.dtbo dtbo-$(CONFIG_ARCH_TEGRA_18x_SOC) += tegra194-p2888-0001-p2822-0000-fe-pi-audio-z-v2.dtbo +dtb-$(CONFIG_ARCH_TEGRA_19x_SOC) += tegra194-p2888-0001-p2822-0000-nilecam25_two_lane.dtb ifneq ($(dtb-y),) dtb-y := $(addprefix $(makefile-path)/,$(dtb-y)) diff --git a/hardware/nvidia/platform/t19x/galen/kernel-dts/common/nilecam25_cuxvr_mode.dtsi b/hardware/nvidia/platform/t19x/galen/kernel-dts/common/nilecam25_cuxvr_mode.dtsi new file mode 100644 index 000000000..b28e57d2e --- /dev/null +++ b/hardware/nvidia/platform/t19x/galen/kernel-dts/common/nilecam25_cuxvr_mode.dtsi @@ -0,0 +1,99 @@ + mode0 { // MODE_1280X720 + mclk_khz = "24000"; + num_lanes = CAM_LANES_STRING; + tegra_sinterface = TEGRA_SINTERFACE; + phy_mode = "DPHY"; + discontinuous_clk = "no"; + dpcm_enable = "false"; + cil_settletime = "0"; + dynamic_pixel_bit_depth = "16"; + csi_pixel_bit_depth = "16"; + mode_type = "yuv"; + pixel_phase = "uyvy"; + + + active_w = "1280"; + active_h = "720"; + readout_orientation = "0"; + deskew_initial_enable = "false"; + pix_clk_hz = "1152000000"; + /* Below mode parameter not used for econ UYVY camera sensor */ + line_length = "640"; + inherent_gain = "1"; + mclk_multiplier = "6.67"; + + min_gain_val = "1"; + max_gain_val = "8"; + min_hdr_ratio = "1"; + max_hdr_ratio = "1"; + min_framerate = "1"; + max_framerate = "58"; + min_exp_time = "10"; /* 1ms */ + max_exp_time = "5000"; /* 500ms */ + }; + mode1 { // MODE_1920X1080 + mclk_khz = "24000"; + num_lanes = CAM_LANES_STRING; + tegra_sinterface = TEGRA_SINTERFACE; + phy_mode = "DPHY"; + discontinuous_clk = "no"; + dpcm_enable = "false"; + cil_settletime = "0"; + dynamic_pixel_bit_depth = "16"; + csi_pixel_bit_depth = "16"; + mode_type = "yuv"; + pixel_phase = "uyvy"; + + + active_w = "1920"; + active_h = "1080"; + readout_orientation = "0"; + deskew_initial_enable = "false"; + pix_clk_hz = "1152000000"; + /* Below mode parameter not used for econ UYVY camera sensor */ + line_length = "640"; + inherent_gain = "1"; + mclk_multiplier = "6.67"; + + min_gain_val = "1"; + max_gain_val = "8"; + min_hdr_ratio = "1"; + max_hdr_ratio = "1"; + min_framerate = "1"; + max_framerate = "45"; + min_exp_time = "10"; /* 1ms */ + max_exp_time = "5000"; /* 500ms */ + }; + mode2 { // MODE_1920X1200 + mclk_khz = "24000"; + num_lanes = CAM_LANES_STRING; + tegra_sinterface = TEGRA_SINTERFACE; + phy_mode = "DPHY"; + discontinuous_clk = "no"; + dpcm_enable = "false"; + cil_settletime = "0"; + dynamic_pixel_bit_depth = "16"; + csi_pixel_bit_depth = "16"; + mode_type = "yuv"; + pixel_phase = "uyvy"; + + + active_w = "1920"; + active_h = "1200"; + readout_orientation = "0"; + deskew_initial_enable = "false"; + pix_clk_hz = "1152000000"; + /* Below mode parameter not used for econ UYVY camera sensor */ + line_length = "640"; + inherent_gain = "1"; + mclk_multiplier = "6.67"; + + min_gain_val = "1"; + max_gain_val = "8"; + min_hdr_ratio = "1"; + max_hdr_ratio = "1"; + min_framerate = "1"; + max_framerate = "58"; + min_exp_time = "10"; /* 1ms */ + max_exp_time = "5000"; /* 500ms */ + }; diff --git a/hardware/nvidia/platform/t19x/galen/kernel-dts/common/tegra194-p2822-nilecam25_two_lane.dtsi b/hardware/nvidia/platform/t19x/galen/kernel-dts/common/tegra194-p2822-nilecam25_two_lane.dtsi new file mode 100644 index 000000000..b97967280 --- /dev/null +++ b/hardware/nvidia/platform/t19x/galen/kernel-dts/common/tegra194-p2822-nilecam25_two_lane.dtsi @@ -0,0 +1,685 @@ +/* Econ device tree for AR0234 support */ +#include "dt-bindings/clock/tegra194-clock.h" +#define PWM_CALIB_GPIO TEGRA194_MAIN_GPIO(H, 6) +#define TRIGGER_SEL TEGRA194_MAIN_GPIO(H, 3) +#define RST_IO_EXP TEGRA194_MAIN_GPIO(T, 6) + +#define CAM_LANES 2 +#define CAM_LANES_STRING "2" + +/* Enable Six overlays in Jetson Xavier */ +&head0 { + win-mask = <0x3f>; +}; + +/ { + gpio@2200000 { + camera-control-output-high { + status = "okay"; + gpio-hog; + gpios = ; + output-high; + label = "rst-io-expender"; + }; + camera-control-output-low { + status = "okay"; + gpio-hog; + gpios = ; + output-low; + label = "trigger_sel"; + }; + }; + + host1x { + vi@15c10000 { + num-channels = <6>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + status = "okay"; + ecam_vi_in0: endpoint { + status = "okay"; + port-index = <0>; + bus-width = ; + remote-endpoint = <&ecam_csi_out0>; + }; + }; + port@1 { + reg = <1>; + status = "okay"; + ecam_vi_in1: endpoint { + status = "okay"; + port-index = <1>; + bus-width = ; + remote-endpoint = <&ecam_csi_out1>; + }; + }; + port@2 { + reg = <2>; + status = "okay"; + ecam_vi_in2: endpoint { + status = "okay"; + port-index = <2>; + bus-width = ; + remote-endpoint = <&ecam_csi_out2>; + }; + }; + port@3 { + reg = <3>; + status = "okay"; + ecam_vi_in3: endpoint { + status = "okay"; + port-index = <3>; + bus-width = ; + remote-endpoint = <&ecam_csi_out3>; + }; + }; + port@4 { + reg = <4>; + status = "okay"; + ecam_vi_in4: endpoint { + status = "okay"; + port-index = <4>; + bus-width = ; + remote-endpoint = <&ecam_csi_out4>; + }; + }; + port@5 { + reg = <5>; + status = "okay"; + ecam_vi_in5: endpoint { + status = "okay"; + port-index = <5>; + bus-width = ; + remote-endpoint = <&ecam_csi_out5>; + }; + }; + }; + }; + + nvcsi@15a00000 { + num-channels = <6>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + channel@0 { + reg = <0>; + status = "okay"; + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + status = "okay"; + ecam_csi_in0: endpoint@0 { + status = "okay"; + port-index = <0>; + bus-width = ; + remote-endpoint = <&ecam_ar0234_out0>; + }; + }; + port@1 { + reg = <1>; + status = "okay"; + ecam_csi_out0: endpoint@1 { + status = "okay"; + remote-endpoint = <&ecam_vi_in0>; + }; + }; + }; + }; + channel@1 { + reg = <1>; + status = "okay"; + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + status = "okay"; + ecam_csi_in1: endpoint@2 { + status = "okay"; + port-index = <1>; + bus-width = ; + remote-endpoint = <&ecam_ar0234_out1>; + }; + }; + port@1 { + reg = <1>; + status = "okay"; + ecam_csi_out1: endpoint@3 { + status = "okay"; + remote-endpoint = <&ecam_vi_in1>; + }; + }; + }; + }; + channel@2 { + reg = <2>; + status = "okay"; + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + status = "okay"; + ecam_csi_in2: endpoint@4 { + status = "okay"; + port-index = <2>; + bus-width = ; + remote-endpoint = <&ecam_ar0234_out2>; + }; + }; + port@1 { + reg = <1>; + status = "okay"; + ecam_csi_out2: endpoint@5 { + status = "okay"; + remote-endpoint = <&ecam_vi_in2>; + }; + }; + }; + }; + channel@3 { + reg = <3>; + status = "okay"; + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + status = "okay"; + ecam_csi_in3: endpoint@6 { + status = "okay"; + port-index = <3>; + bus-width = ; + remote-endpoint = <&ecam_ar0234_out3>; + }; + }; + port@1 { + reg = <1>; + status = "okay"; + ecam_csi_out3: endpoint@7 { + status = "okay"; + remote-endpoint = <&ecam_vi_in3>; + }; + }; + }; + }; + channel@4 { + reg = <4>; + status = "okay"; + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + status = "okay"; + ecam_csi_in4: endpoint@8 { + status = "okay"; + port-index = <4>; + bus-width = ; + remote-endpoint = <&ecam_ar0234_out4>; + }; + }; + port@1 { + reg = <1>; + status = "okay"; + ecam_csi_out4: endpoint@9 { + status = "okay"; + remote-endpoint = <&ecam_vi_in4>; + }; + }; + }; + }; + channel@5 { + reg = <5>; + status = "okay"; + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + status = "okay"; + ecam_csi_in5: endpoint@10 { + status = "okay"; + port-index = <6>; + bus-width = ; + remote-endpoint = <&ecam_ar0234_out5>; + }; + }; + port@1 { + reg = <1>; + status = "okay"; + ecam_csi_out5: endpoint@11 { + status = "okay"; + remote-endpoint = <&ecam_vi_in5>; + }; + }; + }; + }; + }; + }; + + i2c@c250000{ + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + tca6424_22: tca6424@22 { + compatible = "ti,tca6424"; + gpio-controller; + #gpio-cells = <2>; + reg = <0x22>; + vcc-supply = <&p2822_vdd_1v8_cvb>; + reset-gpios = <&tegra_main_gpio RST_IO_EXP GPIO_ACTIVE_HIGH>; + status = "okay"; + tca6424_22_outlow { + /* + * GPIO-0 : RST_CAM1 + * GPIO-1 : RST_CAM2 + * GPIO-2 : RST_CAM3 + * GPIO-3 : RST_CAM4 + * GPIO-4 : RST_CAM5 + * GPIO-5 : RST_CAM6 + * GPIO-7 : PWDN_CAM2 + * GPIO-8 : PWDN_CAM3 + * GPIO-9 : PWDN_CAM4 + * GPIO-10 : PWDN_CAM5 + * GPIO-11 : PWDN_CAM6 + */ + + gpio-hog; + gpios = <0 0 1 0 2 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 19 0 20 0 21 0 22 0 23 0>; + output-low; + label = "tca6424_22_outlow_0", + "tca6424_22_outlow_1", + "tca6424_22_outlow_2", + "tca6424_22_outlow_3", + "tca6424_22_outlow_4", + "tca6424_22_outlow_5", + "tca6424_22_outlow_7", + "tca6424_22_outlow_8", + "tca6424_22_outlow_9", + "tca6424_22_outlow_10", + "tca6424_22_outlow_11", + "tca6424_22_outlow_12", + "tca6424_22_outlow_13"; + }; + tca6424_22_outhigh { + gpio-hog; + gpios = < 3 0 4 0 5 0 16 0 17 0 18 0>; + output-high; + label = "tca6424_22_outhigh_3", + "tca6424_22_outhigh_4", + "tca6424_22_outhigh_5", + "tca6424_22_outhigh_16", + "tca6424_22_outhigh_17", + "tca6424_22_outhigh_18"; + }; + tca6424_22_input { + status = "disabled"; + }; + }; + + }; + /* i2c-2 - 3180000 for e-con camera */ + i2c@3180000 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + tca9548@70 { + compatible = "nxp,pca9548"; + reg = <0x70>; + #address-cells = <1>; + #size-cells = <0>; + vcc-supply = <&p2822_vdd_1v8_cvb>; + skip_mux_detect; + force_bus_start = <0x1e>; + i2c@0 { + reg = <0>; + i2c-mux,deselect-on-exit; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + ar0234_a@43 { + status = "okay"; + compatible = "nvidia,ar0234"; + reg = <0x43>; + sensor_model ="ar0234"; + avdd-reg = "vana"; + iovdd-reg = "vif"; + clocks = <&bpmp_clks TEGRA194_CLK_EXTPERIPH1>, + <&bpmp_clks TEGRA194_CLK_PLLP_OUT0>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + clock-frequency = <24000000>; + boot-gpios = <&tca6424_22 0 GPIO_ACTIVE_HIGH>; + reset-gpios = <&tca6424_22 3 GPIO_ACTIVE_HIGH>; + vana-supply = <&p2822_avdd_cam_2v8>; + vif-supply = <&p2822_vdd_1v8_cvb>; + use_sensor_mode_id = "false"; + camera_mipi_lanes = <2>; + camera-mipi-clk = <1200>; + sio-port = "A"; + pwm-invert= <1>; + pwm-duty_ns = <0x1CBC720>; + pwm-period_ns = <0x2037FE7>; + pwm-calib-gpio = <&tegra_main_gpio PWM_CALIB_GPIO GPIO_ACTIVE_HIGH>; + pwm-name = "ecam-trigger"; +#define TEGRA_SINTERFACE "serial_a" +#include "nilecam25_cuxvr_mode.dtsi" + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + ecam_ar0234_out0: endpoint { + port-index = <0>; + bus-width = ; + remote-endpoint = <&ecam_csi_in0>; + }; + }; + }; + }; + ar0234_b@44 { + status = "okay"; + compatible = "nvidia,ar0234"; + reg = <0x44>; + sensor_model ="ar0234"; + avdd-reg = "vana"; + iovdd-reg = "vif"; + clocks = <&bpmp_clks TEGRA194_CLK_EXTPERIPH1>, + <&bpmp_clks TEGRA194_CLK_PLLP_OUT0>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + clock-frequency = <24000000>; + boot-gpios = <&tca6424_22 0 GPIO_ACTIVE_HIGH>; + reset-gpios = <&tca6424_22 3 GPIO_ACTIVE_HIGH>; + vana-supply = <&p2822_avdd_cam_2v8>; + vif-supply = <&p2822_vdd_1v8_cvb>; + use_sensor_mode_id = "false"; + camera_mipi_lanes = <2>; + camera-mipi-clk = <1200>; + sio-port = "B"; + pwm-invert= <1>; + pwm-duty_ns = <0x1CBC720>; + pwm-period_ns = <0x2037FE7>; + pwm-calib-gpio = <&tegra_main_gpio PWM_CALIB_GPIO GPIO_ACTIVE_HIGH>; + pwm-name = "ecam-trigger"; +#undef TEGRA_SINTERFACE +#define TEGRA_SINTERFACE "serial_b" +#include "nilecam25_cuxvr_mode.dtsi" + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + ecam_ar0234_out1: endpoint { + port-index = <1>; + bus-width = ; + remote-endpoint = <&ecam_csi_in1>; + }; + }; + }; + }; + }; + i2c@1 { + reg = <1>; + i2c-mux,deselect-on-exit; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + ar0234_c@43 { + status = "okay"; + compatible = "nvidia,ar0234"; + reg = <0x43>; + sensor_model ="ar0234"; + avdd-reg = "vana"; + iovdd-reg = "vif"; + clocks = <&bpmp_clks TEGRA194_CLK_EXTPERIPH1>, + <&bpmp_clks TEGRA194_CLK_PLLP_OUT0>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + clock-frequency = <24000000>; + boot-gpios = <&tca6424_22 1 GPIO_ACTIVE_HIGH>; + reset-gpios = <&tca6424_22 4 GPIO_ACTIVE_HIGH>; + vana-supply = <&p2822_avdd_cam_2v8>; + vif-supply = <&p2822_vdd_1v8_cvb>; + use_sensor_mode_id = "false"; + camera_mipi_lanes = <2>; + camera-mipi-clk = <1200>; + sio-port = "A"; + pwm-invert= <1>; + pwm-duty_ns = <0x1CBC720>; + pwm-period_ns = <0x2037FE7>; + pwm-calib-gpio = <&tegra_main_gpio PWM_CALIB_GPIO GPIO_ACTIVE_HIGH>; + pwm-name = "ecam-trigger"; +#undef TEGRA_SINTERFACE +#define TEGRA_SINTERFACE "serial_c" +#include "nilecam25_cuxvr_mode.dtsi" + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + ecam_ar0234_out2: endpoint { + port-index = <2>; + bus-width = ; + remote-endpoint = <&ecam_csi_in2>; + }; + }; + }; + }; + ar0234_d@44 { + status = "okay"; + compatible = "nvidia,ar0234"; + reg = <0x44>; + sensor_model ="ar0234"; + avdd-reg = "vana"; + iovdd-reg = "vif"; + clocks = <&bpmp_clks TEGRA194_CLK_EXTPERIPH1>, + <&bpmp_clks TEGRA194_CLK_PLLP_OUT0>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + clock-frequency = <24000000>; + boot-gpios = <&tca6424_22 1 GPIO_ACTIVE_HIGH>; + reset-gpios = <&tca6424_22 4 GPIO_ACTIVE_HIGH>; + vana-supply = <&p2822_avdd_cam_2v8>; + vif-supply = <&p2822_vdd_1v8_cvb>; + use_sensor_mode_id = "false"; + camera_mipi_lanes = <2>; + camera-mipi-clk = <1200>; + sio-port = "B"; + pwm-invert= <1>; + pwm-duty_ns = <0x1CBC720>; + pwm-period_ns = <0x2037FE7>; + pwm-calib-gpio = <&tegra_main_gpio PWM_CALIB_GPIO GPIO_ACTIVE_HIGH>; + pwm-name = "ecam-trigger"; +#undef TEGRA_SINTERFACE +#define TEGRA_SINTERFACE "serial_d" +#include "nilecam25_cuxvr_mode.dtsi" + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + ecam_ar0234_out3: endpoint { + port-index = <3>; + bus-width = ; + remote-endpoint = <&ecam_csi_in3>; + }; + }; + }; + }; + }; + i2c@2 { + reg = <2>; + i2c-mux,deselect-on-exit; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + ar0234_e@43 { + status = "okay"; + compatible = "nvidia,ar0234"; + reg = <0x43>; + sensor_model ="ar0234"; + avdd-reg = "vana"; + iovdd-reg = "vif"; + clocks = <&bpmp_clks TEGRA194_CLK_EXTPERIPH1>, + <&bpmp_clks TEGRA194_CLK_PLLP_OUT0>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + clock-frequency = <24000000>; + boot-gpios = <&tca6424_22 2 GPIO_ACTIVE_HIGH>; + reset-gpios = <&tca6424_22 5 GPIO_ACTIVE_HIGH>; + vana-supply = <&p2822_avdd_cam_2v8>; + vif-supply = <&p2822_vdd_1v8_cvb>; + use_sensor_mode_id = "false"; + camera_mipi_lanes = <2>; + camera-mipi-clk = <1200>; + sio-port = "A"; + pwm-invert= <1>; + pwm-duty_ns = <0x1CBC720>; + pwm-period_ns = <0x2037FE7>; + pwm-calib-gpio = <&tegra_main_gpio PWM_CALIB_GPIO GPIO_ACTIVE_HIGH>; + pwm-name = "ecam-trigger"; +#undef TEGRA_SINTERFACE +#define TEGRA_SINTERFACE "serial_e" +#include "nilecam25_cuxvr_mode.dtsi" + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + ecam_ar0234_out4: endpoint { + port-index = <4>; + bus-width = ; + remote-endpoint = <&ecam_csi_in4>; + }; + }; + }; + }; + ar0234_f@44 { + status = "okay"; + compatible = "nvidia,ar0234"; + reg = <0x44>; + sensor_model ="ar0234"; + avdd-reg = "vana"; + iovdd-reg = "vif"; + clocks = <&bpmp_clks TEGRA194_CLK_EXTPERIPH1>, + <&bpmp_clks TEGRA194_CLK_PLLP_OUT0>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + clock-frequency = <24000000>; + boot-gpios = <&tca6424_22 2 GPIO_ACTIVE_HIGH>; + reset-gpios = <&tca6424_22 5 GPIO_ACTIVE_HIGH>; + vana-supply = <&p2822_avdd_cam_2v8>; + vif-supply = <&p2822_vdd_1v8_cvb>; + use_sensor_mode_id = "false"; + camera_mipi_lanes = <2>; + camera-mipi-clk = <1200>; + sio-port = "B"; + pwm-invert= <1>; + pwm-duty_ns = <0x1CBC720>; + pwm-period_ns = <0x2037FE7>; + pwm-calib-gpio = <&tegra_main_gpio PWM_CALIB_GPIO GPIO_ACTIVE_HIGH>; + pwm-name = "ecam-trigger"; +#undef TEGRA_SINTERFACE +#define TEGRA_SINTERFACE "serial_f" +#include "nilecam25_cuxvr_mode.dtsi" + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + ecam_ar0234_out5: endpoint { + port-index = <6>; + bus-width = ; + remote-endpoint = <&ecam_csi_in5>; + }; + }; + }; + }; + }; + }; + }; + tegra-camera-platform { + compatible = "nvidia, tegra-camera-platform"; + modules { + module0 { + badge = "nilecam25_cuxvr"; + position = "bottomleft"; + orientation = "1"; + drivernode0 { + pcl_id = "v4l2_sensor"; + devname = "ar0234 30-0043"; + proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@0/ar0234_a@43"; + status = "okay"; + }; + }; + module1 { + badge = "nilecam25_cuxvr"; + position = "bottomright"; + orientation = "1"; + drivernode0 { + pcl_id = "v4l2_sensor"; + devname = "ar0234 30-0044"; + proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@0/ar0234_b@44"; + status = "okay"; + }; + }; + module2 { + badge = "nilecam25_cuxvr"; + position = "centerleft"; + orientation = "1"; + drivernode0 { + pcl_id = "v4l2_sensor"; + devname = "ar0234 31-0043"; + proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@1/ar0234_c@43"; + status = "okay"; + }; + }; + module3 { + badge = "nilecam25_cuxvr"; + position = "centerright"; + orientation = "1"; + drivernode0 { + pcl_id = "v4l2_sensor"; + devname = "ar0234 31-0044"; + proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@1/ar0234_d@44"; + status = "okay"; + }; + }; + module4 { + badge = "nilecam25_cuxvr"; + position = "topleft"; + orientation = "1"; + drivernode0 { + pcl_id = "v4l2_sensor"; + devname = "ar0234 32-0043"; + proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@2/ar0234_e@43"; + status = "okay"; + }; + }; + module5 { + badge = "nilecam25_cuxvr"; + position = "topright"; + orientation = "1"; + drivernode0 { + pcl_id = "v4l2_sensor"; + devname = "ar0234 32-0044"; + proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@2/ar0234_f@44"; + status = "okay"; + }; + }; + }; + }; +}; + + + diff --git a/hardware/nvidia/platform/t19x/galen/kernel-dts/tegra194-p2888-0001-p2822-0000-nilecam25_two_lane.dts b/hardware/nvidia/platform/t19x/galen/kernel-dts/tegra194-p2888-0001-p2822-0000-nilecam25_two_lane.dts new file mode 100644 index 000000000..28b7db8ca --- /dev/null +++ b/hardware/nvidia/platform/t19x/galen/kernel-dts/tegra194-p2888-0001-p2822-0000-nilecam25_two_lane.dts @@ -0,0 +1,25 @@ +/* + * tegra194-p2888-0001-p2822-0000-nilecam25_two_lane.dts : DTS file for Jetson AGX Xavier + * to enable e-con systems ar0230 camera modules. + * + * Copyright (c) 2016, 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; version 2 of the License. + * + * 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. + * + */ + +#include "tegra194-p2888-0001-p2822-0000.dts" +#include "common/tegra194-p2822-nilecam25_two_lane.dtsi" + +/ { + nvidia,dtsfilename = __FILE__; + +}; +