mirror of
git://nv-tegra.nvidia.com/device/hardware/nvidia/t23x-public-dts.git
synced 2025-12-22 09:12:02 +03:00
concord: configure camera sensor using jetson-io
Add camera sensor overlay for auto detection
and selection using jetson-io tool.
Sensor enabled in this gerrit:
IMX274
IMX318
E3333
IMX185
Bug 4191790
Change-Id: I6b5aba39828d5bc3ffba216edc49370781def9c8
Signed-off-by: Ankur Pawar <ankurp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/device/hardware/nvidia/t23x-public-dts/+/2902663
(cherry picked from commit 11e6f4528d)
Reviewed-on: https://git-master.nvidia.com/r/c/device/hardware/nvidia/t23x-public-dts/+/2971627
Reviewed-by: Praveen AC <pac@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
67aec33442
commit
7ab4f383f1
@@ -37,6 +37,10 @@ dtbo-y += tegra234-p3767-0000+p3768-0000-csi.dtbo
|
||||
dtbo-y += tegra234-p3740-0002+p3701-0008-hdr20.dtbo
|
||||
dtbo-y += tegra234-p3740-0002+p3701-0008-m2ke.dtbo
|
||||
dtbo-y += tegra234-p3740-0002+p3701-0008-m2kb.dtbo
|
||||
dtbo-y += tegra234-p3737-camera-dual-imx274-overlay.dtbo
|
||||
dtbo-y += tegra234-p3737-camera-e3331-overlay.dtbo
|
||||
dtbo-y += tegra234-p3737-camera-e3333-overlay.dtbo
|
||||
dtbo-y += tegra234-p3737-camera-imx185-overlay.dtbo
|
||||
|
||||
ifneq ($(dtb-y),)
|
||||
dtb-y := $(addprefix $(makefile-path)/,$(dtb-y))
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#include "tegra234-p3737-0000-camera-imx274-dual.dtsi"
|
||||
#include "tegra234-p3701-0000.dtsi"
|
||||
#include "tegra234-dcb-p3737-0000-p3701-0000.dtsi"
|
||||
|
||||
#include "tegra234-p3737-camera-modules.dtsi"
|
||||
/ {
|
||||
compatible = "nvidia,p3737-0000+p3701-0000";
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
// Copyright (c) 2017-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
// Copyright (c) 2017-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
|
||||
#include "tegra234-camera-imx185-a00.dtsi"
|
||||
#include <dt-bindings/clock/tegra234-clock.h>
|
||||
@@ -58,27 +58,4 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
fragment-camera-imx185@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
eeprom-manager {
|
||||
bus@1 {
|
||||
i2c-bus = <&cam_i2c>;
|
||||
eeprom@0 {
|
||||
slave-address = <0x54>;
|
||||
label = "sensor0";
|
||||
};
|
||||
eeprom@1 {
|
||||
slave-address = <0x57>;
|
||||
label = "sensor1";
|
||||
};
|
||||
eeprom@2 {
|
||||
slave-address = <0x52>;
|
||||
label = "sensor2";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
// Copyright (c) 2017-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
// Copyright (c) 2017-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
|
||||
#include "tegra234-camera-imx274-dual.dtsi"
|
||||
#include <dt-bindings/clock/tegra234-clock.h>
|
||||
@@ -65,27 +65,4 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
fragment-camera-dual-imx274@1 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
eeprom-manager {
|
||||
bus@1 {
|
||||
i2c-bus = <&cam_i2c>;
|
||||
eeprom@0 {
|
||||
slave-address = <0x54>;
|
||||
label = "sensor0";
|
||||
};
|
||||
eeprom@1 {
|
||||
slave-address = <0x57>;
|
||||
label = "sensor1";
|
||||
};
|
||||
eeprom@2 {
|
||||
slave-address = <0x52>;
|
||||
label = "sensor2";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
// Copyright (c) 2018-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
// Copyright (c) 2018-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
|
||||
#include "tegra234-camera-imx390-a00.dtsi"
|
||||
#include <dt-bindings/clock/tegra234-clock.h>
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
/* camera control gpio definitions */
|
||||
/ {
|
||||
fragment-camera-imx318@0 {
|
||||
fragment-camera-imx390@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
bus@0{
|
||||
|
||||
@@ -109,6 +109,21 @@
|
||||
label = "cvb";
|
||||
};
|
||||
};
|
||||
bus@1 {
|
||||
i2c-bus = <&cam_i2c>;
|
||||
eeprom@0 {
|
||||
slave-address = <0x54>;
|
||||
label = "sensor0";
|
||||
};
|
||||
eeprom@1 {
|
||||
slave-address = <0x57>;
|
||||
label = "sensor1";
|
||||
};
|
||||
eeprom@2 {
|
||||
slave-address = <0x52>;
|
||||
label = "sensor2";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
342
overlay/tegra234-p3737-camera-dual-imx274-overlay.dts
Normal file
342
overlay/tegra234-p3737-camera-dual-imx274-overlay.dts
Normal file
@@ -0,0 +1,342 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Jetson Device-tree overlay for Camera Dual-IMX274 on t23x platforms
|
||||
*
|
||||
* Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
overlay-name = "Jetson Camera Dual-IMX274";
|
||||
jetson-header-name = "Jetson AGX CSI Connector";
|
||||
compatible = "nvidia,p3737-0000+p3701-0000", "nvidia,p3737-0000+p3701-0004", "nvidia,p3737-0000+p3701-0005";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@0/imx274_a@1a";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@1 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@0/imx274_a@1a/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&liimx274_csi_in0>;
|
||||
};
|
||||
};
|
||||
fragment@2 {
|
||||
target-path = "/tegra-camera-platform/modules/module0";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
badge = "imx274_bottom_A6V26";
|
||||
position = "bottom";
|
||||
orientation = "0";
|
||||
};
|
||||
};
|
||||
fragment@3 {
|
||||
target-path = "/tegra-camera-platform/modules/module0/drivernode0";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_sensor";
|
||||
devname = "imx274 30-001a";
|
||||
proc-device-tree = "/proc/device-tree/bus@0/i2c@3180000/tca9546@70/i2c@0/imx274_a@1a";
|
||||
};
|
||||
};
|
||||
fragment@4 {
|
||||
target-path = "/tegra-camera-platform/modules/module0/drivernode1";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_lens";
|
||||
proc-device-tree = "/proc/device-tree/bus@0/lens_imx274@A6V26/";
|
||||
};
|
||||
};
|
||||
fragment@5 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@1/imx274_c@1a";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@6 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@1/imx274_c@1a/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&liimx274_csi_in1>;
|
||||
};
|
||||
};
|
||||
fragment@7 {
|
||||
target-path = "/tegra-camera-platform/modules/module1";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
badge = "imx274_top_A6V26";
|
||||
position = "top";
|
||||
orientation = "0";
|
||||
};
|
||||
};
|
||||
fragment@8 {
|
||||
target-path = "/tegra-camera-platform/modules/module1/drivernode0";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_sensor";
|
||||
devname = "imx274 31-001a";
|
||||
proc-device-tree = "/proc/device-tree/bus@0/i2c@3180000/tca9546@70/i2c@1/imx274_c@1a";
|
||||
};
|
||||
};
|
||||
fragment@9 {
|
||||
target-path = "/tegra-camera-platform/modules/module1/drivernode1";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_lens";
|
||||
proc-device-tree = "/proc/device-tree/bus@0/lens_imx274@A6V26/";
|
||||
};
|
||||
};
|
||||
/* Enable VI ports - capture_vi_base, */
|
||||
fragment@10 {
|
||||
target-path = "/tegra-capture-vi";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
num-channels=<2>;
|
||||
};
|
||||
};
|
||||
fragment@11 {
|
||||
target-path = "/tegra-capture-vi/ports/port@0";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@12 {
|
||||
target-path = "/tegra-capture-vi/ports/port@1";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@13 {
|
||||
target-path = "/tegra-capture-vi/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <0>;
|
||||
bus-width = <4>;
|
||||
remote-endpoint = <&liimx274_csi_out0>;
|
||||
|
||||
};
|
||||
};
|
||||
fragment@14 {
|
||||
target-path = "/tegra-capture-vi/ports/port@1/endpoint";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <2>;
|
||||
bus-width = <4>;
|
||||
remote-endpoint = <&liimx274_csi_out1>;
|
||||
};
|
||||
};
|
||||
/* Enable CSI ports */
|
||||
fragment@15 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
num-channels=<2>;
|
||||
};
|
||||
};
|
||||
fragment@16 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@17 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@0";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@18 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@0/endpoint@0";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <0>;
|
||||
bus-width = <4>;
|
||||
remote-endpoint = <&liimx274_imx274_out0>;
|
||||
};
|
||||
};
|
||||
fragment@19 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@1";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@20 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@1/endpoint@1";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&liimx274_vi_in0>;
|
||||
};
|
||||
};
|
||||
fragment@21 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@22 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1/ports/port@0";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@23 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1/ports/port@0/endpoint@2";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <2>;
|
||||
bus-width = <4>;
|
||||
remote-endpoint = <&liimx274_imx274_out1>;
|
||||
};
|
||||
};
|
||||
fragment@24 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1/ports/port@1";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@25 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1/ports/port@1/endpoint@3";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&liimx274_vi_in1>;
|
||||
};
|
||||
};
|
||||
/* tegra-camera-platform settings */
|
||||
fragment@26 {
|
||||
target-path = "/tegra-camera-platform";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
num_csi_lanes = <8>;
|
||||
max_lane_speed = <1500000>;
|
||||
min_bits_per_pixel = <10>;
|
||||
vi_peak_byte_per_pixel = <2>;
|
||||
vi_bw_margin_pct = <25>;
|
||||
isp_peak_byte_per_pixel = <5>;
|
||||
isp_bw_margin_pct = <25>;
|
||||
};
|
||||
};
|
||||
/* pca9646 i2c mux */
|
||||
fragment@27 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70";
|
||||
board_config {
|
||||
ids = "LPRD-dual-imx274-002";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
239
overlay/tegra234-p3737-camera-e3331-overlay.dts
Normal file
239
overlay/tegra234-p3737-camera-e3331-overlay.dts
Normal file
@@ -0,0 +1,239 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Jetson Device-tree overlay for Camera E3331 on t23x platforms
|
||||
*
|
||||
* Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/tegra234-gpio.h>
|
||||
|
||||
#define CAM0_RST_L TEGRA234_MAIN_GPIO(H, 3)
|
||||
#define CAM0_PWDN TEGRA234_MAIN_GPIO(H, 6)
|
||||
#define CAM1_RST_L TEGRA234_MAIN_GPIO(AC, 1)
|
||||
#define CAM1_PWDN TEGRA234_MAIN_GPIO(AC, 0)
|
||||
|
||||
/ {
|
||||
overlay-name = "Jetson Camera E3331 module";
|
||||
jetson-header-name = "Jetson AGX CSI Connector";
|
||||
compatible = "nvidia,p3737-0000+p3701-0000", "nvidia,p3737-0000+p3701-0004", "nvidia,p3737-0000+p3701-0005";
|
||||
|
||||
/* E3331 camera board */
|
||||
|
||||
/* VI number of channels */
|
||||
fragment@0 {
|
||||
target-path = "/tegra-capture-vi";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
num-channels=<1>; /* TODO change to 3 */
|
||||
};
|
||||
};
|
||||
/* CSI number of channels */
|
||||
fragment@1 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
num-channels=<1>; /* TODO change to 3 */
|
||||
};
|
||||
};
|
||||
/* tegra-camera-platform settings */
|
||||
fragment@2 {
|
||||
target-path = "/tegra-camera-platform";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
num_csi_lanes = <3>;
|
||||
max_lane_speed = <1500000>;
|
||||
min_bits_per_pixel = <10>;
|
||||
vi_peak_byte_per_pixel = <2>;
|
||||
vi_bw_margin_pct = <25>;
|
||||
max_pixel_rate = <160000>;
|
||||
isp_peak_byte_per_pixel = <5>;
|
||||
isp_bw_margin_pct = <25>;
|
||||
};
|
||||
};
|
||||
/* Camera 0: Module */
|
||||
fragment@3 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@0/imx318_a@10";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@4 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@0/imx318_a@10/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3331_csi_in0>;
|
||||
};
|
||||
};
|
||||
fragment@5 {
|
||||
target-path = "/tegra-camera-platform/modules/module0";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
badge = "e3331_rear_22N02A";
|
||||
position = "rear";
|
||||
orientation = "1";
|
||||
};
|
||||
};
|
||||
fragment@6 {
|
||||
target-path = "/tegra-camera-platform/modules/module0/drivernode0";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_sensor";
|
||||
devname = "imx318 30-0010";
|
||||
proc-device-tree = "/proc/device-tree/bus@0/i2c@3180000/tca9546@70/i2c@0/imx318_a@10";
|
||||
};
|
||||
};
|
||||
/* Camera 0: VI */
|
||||
fragment@7 {
|
||||
target-path = "/tegra-capture-vi/ports/port@0";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@8 {
|
||||
target-path = "/tegra-capture-vi/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <0>;
|
||||
bus-width = <3>;
|
||||
remote-endpoint = <&e3331_csi_out0>;
|
||||
};
|
||||
};
|
||||
/* Camera 0: CSI */
|
||||
fragment@9 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@10 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@0";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@11 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@0/endpoint@0";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <0>;
|
||||
bus-width = <3>;
|
||||
remote-endpoint = <&e3331_imx318_out0>;
|
||||
};
|
||||
};
|
||||
fragment@12 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@1";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@13 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@1/endpoint@1";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3331_vi_in0>;
|
||||
};
|
||||
};
|
||||
/* GPIO */
|
||||
fragment@14 {
|
||||
target-path = "/bus@0/gpio@2200000";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
camera-control-input {
|
||||
status = "disabled";
|
||||
};
|
||||
camera-control-output-low {
|
||||
gpio-hog;
|
||||
gpios = <CAM0_RST_L 0>;
|
||||
/*<CAM1_RST_L 0> <CAM2_RST_L 0>*/
|
||||
label = "cam0-rst";
|
||||
/*"cam1-rst", "cam2-rst";*/
|
||||
output-low;
|
||||
status = "okay";
|
||||
};
|
||||
camera-control-output-high {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
fragment@15 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@0/imx318_a@10/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3331_csi_in0>;
|
||||
};
|
||||
};
|
||||
fragment@16 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70";
|
||||
board_config {
|
||||
ids = "3331-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
967
overlay/tegra234-p3737-camera-e3333-overlay.dts
Normal file
967
overlay/tegra234-p3737-camera-e3333-overlay.dts
Normal file
@@ -0,0 +1,967 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Jetson Device-tree overlay for Camera E3333 module on t23x platforms
|
||||
*
|
||||
* Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/tegra234-gpio.h>
|
||||
|
||||
#define CAM0_RST_L TEGRA234_MAIN_GPIO(H, 3)
|
||||
#define CAM0_PWDN TEGRA234_MAIN_GPIO(H, 6)
|
||||
#define CAM1_RST_L TEGRA234_MAIN_GPIO(AC, 1)
|
||||
#define CAM1_PWDN TEGRA234_MAIN_GPIO(AC, 0)
|
||||
|
||||
/ {
|
||||
overlay-name = "Jetson Camera E3333 module";
|
||||
jetson-header-name = "Jetson AGX CSI Connector";
|
||||
compatible = "nvidia,p3737-0000+p3701-0000", "nvidia,p3737-0000+p3701-0004", "nvidia,p3737-0000+p3701-0005";
|
||||
|
||||
/* Use either odm-data or eeprom-ids for sensor detection */
|
||||
|
||||
/* E3333 camera board */
|
||||
/* VI number of channels */
|
||||
fragment@0 {
|
||||
target-path = "/tegra-capture-vi";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
num-channels=<6>;
|
||||
};
|
||||
};
|
||||
/* CSI number of channels */
|
||||
fragment@1 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
num-channels=<6>;
|
||||
};
|
||||
};
|
||||
/* tegra-camera-platform settings */
|
||||
fragment@2 {
|
||||
target-path = "/tegra-camera-platform";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
num_csi_lanes = <12>;
|
||||
max_lane_speed = <1500000>;
|
||||
min_bits_per_pixel = <10>;
|
||||
vi_peak_byte_per_pixel = <2>;
|
||||
vi_bw_margin_pct = <25>;
|
||||
max_pixel_rate = <200000>;
|
||||
isp_peak_byte_per_pixel = <5>;
|
||||
isp_bw_margin_pct = <25>;
|
||||
};
|
||||
};
|
||||
/* TCA6408 */
|
||||
fragment@3 {
|
||||
target-path = "/bus@0/i2c@3180000/tca6408@21";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
/* TCA9548 */
|
||||
fragment@4 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9548@77";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
/* Camera 0: Module */
|
||||
fragment@5 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9548@77/i2c@0/ov5693_a@36";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@6 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9548@77/i2c@0/ov5693_a@36/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3333_csi_in0>;
|
||||
};
|
||||
};
|
||||
fragment@7 {
|
||||
target-path = "/tegra-camera-platform/modules/module0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
badge = "e3333_bottomleft_P5V27C";
|
||||
position = "bottomleft";
|
||||
orientation = "1";
|
||||
};
|
||||
};
|
||||
fragment@8 {
|
||||
target-path = "/tegra-camera-platform/modules/module0/drivernode0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_sensor";
|
||||
devname = "ov5693 30-0036";
|
||||
proc-device-tree = "/proc/device-tree/bus@0/i2c@3180000/tca9548@77/i2c@0/ov5693_a@36";
|
||||
};
|
||||
};
|
||||
fragment@9 {
|
||||
target-path = "/tegra-camera-platform/modules/module0/drivernode1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_lens";
|
||||
proc-device-tree = "/proc/device-tree/e3333_lens_ov5693@P5V27C/";
|
||||
};
|
||||
};
|
||||
/* Camera 0: VI */
|
||||
fragment@10 {
|
||||
target-path = "/tegra-capture-vi/ports/port@0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@11 {
|
||||
target-path = "/tegra-capture-vi/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <0>;
|
||||
bus-width = <2>;
|
||||
remote-endpoint = <&e3333_csi_out0>;
|
||||
};
|
||||
};
|
||||
/* Camera 0: CSI */
|
||||
fragment@12 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@13 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@14 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@0/endpoint@0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <0>;
|
||||
bus-width = <2>;
|
||||
remote-endpoint = <&e3333_ov5693_out0>;
|
||||
};
|
||||
};
|
||||
fragment@15 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@16 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@1/endpoint@1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3333_vi_in0>;
|
||||
};
|
||||
};
|
||||
/* Camera 1: Module */
|
||||
fragment@17 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9548@77/i2c@1/ov5693_b@36";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@18 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9548@77/i2c@1/ov5693_b@36/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3333_csi_in1>;
|
||||
};
|
||||
};
|
||||
fragment@19 {
|
||||
target-path = "/tegra-camera-platform/modules/module1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
badge = "e3333_centerleft_P5V27C";
|
||||
position = "centerleft";
|
||||
orientation = "1";
|
||||
};
|
||||
};
|
||||
fragment@20 {
|
||||
target-path = "/tegra-camera-platform/modules/module1/drivernode0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_sensor";
|
||||
devname = "ov5693 31-0036";
|
||||
proc-device-tree = "/proc/device-tree/bus@0/i2c@3180000/tca9548@77/i2c@1/ov5693_b@36";
|
||||
};
|
||||
};
|
||||
fragment@21 {
|
||||
target-path = "/tegra-camera-platform/modules/module1/drivernode1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_lens";
|
||||
proc-device-tree = "/proc/device-tree/e3333_lens_ov5693@P5V27C/";
|
||||
};
|
||||
};
|
||||
/* Camera 1: VI */
|
||||
fragment@22 {
|
||||
target-path = "/tegra-capture-vi/ports/port@1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@23 {
|
||||
target-path = "/tegra-capture-vi/ports/port@1/endpoint";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <1>;
|
||||
bus-width = <2>;
|
||||
remote-endpoint = <&e3333_csi_out1>;
|
||||
};
|
||||
};
|
||||
/* Camera 1: CSI */
|
||||
fragment@24 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@25 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1/ports/port@0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@26 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1/ports/port@0/endpoint@2";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <1>;
|
||||
bus-width = <2>;
|
||||
remote-endpoint = <&e3333_ov5693_out1>;
|
||||
};
|
||||
};
|
||||
fragment@27 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1/ports/port@1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@28 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1/ports/port@1/endpoint@3";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3333_vi_in1>;
|
||||
};
|
||||
};
|
||||
/* Camera 2: Module */
|
||||
fragment@29 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9548@77/i2c@2/ov5693_c@36";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@30 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9548@77/i2c@2/ov5693_c@36/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3333_csi_in2>;
|
||||
};
|
||||
};
|
||||
fragment@31 {
|
||||
target-path = "/tegra-camera-platform/modules/module2";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
badge = "e3333_centerright_P5V27C";
|
||||
position = "centerright";
|
||||
orientation = "1";
|
||||
};
|
||||
};
|
||||
fragment@32 {
|
||||
target-path = "/tegra-camera-platform/modules/module2/drivernode0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_sensor";
|
||||
devname = "ov5693 32-0036";
|
||||
proc-device-tree = "/proc/device-tree/bus@0/i2c@3180000/tca9548@77/i2c@2/ov5693_c@36";
|
||||
};
|
||||
};
|
||||
fragment@33 {
|
||||
target-path = "/tegra-camera-platform/modules/module2/drivernode1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_lens";
|
||||
proc-device-tree = "/proc/device-tree/e3333_lens_ov5693@P5V27C/";
|
||||
};
|
||||
};
|
||||
/* Camera 2: VI */
|
||||
fragment@34 {
|
||||
target-path = "/tegra-capture-vi/ports/port@2";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@35 {
|
||||
target-path = "/tegra-capture-vi/ports/port@2/endpoint";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <2>;
|
||||
bus-width = <2>;
|
||||
remote-endpoint = <&e3333_csi_out2>;
|
||||
};
|
||||
};
|
||||
/* Camera 2: CSI */
|
||||
fragment@36 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@2";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@37 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@2/ports/port@0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@38 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@2/ports/port@0/endpoint@4";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <2>;
|
||||
bus-width = <2>;
|
||||
remote-endpoint = <&e3333_ov5693_out2>;
|
||||
};
|
||||
};
|
||||
fragment@39 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@2/ports/port@1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@40 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@2/ports/port@1/endpoint@5";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3333_vi_in2>;
|
||||
};
|
||||
};
|
||||
/* Camera 3: Module */
|
||||
fragment@41 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9548@77/i2c@3/ov5693_d@36";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@42 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9548@77/i2c@3/ov5693_d@36/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3333_csi_in3>;
|
||||
};
|
||||
};
|
||||
fragment@43 {
|
||||
target-path = "/tegra-camera-platform/modules/module3";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
badge = "e3333_topleft_P5V27C";
|
||||
position = "topleft";
|
||||
orientation = "1";
|
||||
};
|
||||
};
|
||||
fragment@44 {
|
||||
target-path = "/tegra-camera-platform/modules/module3/drivernode0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_sensor";
|
||||
devname = "ov5693 33-0036";
|
||||
proc-device-tree = "/proc/device-tree/bus@0/i2c@3180000/tca9548@77/i2c@3/ov5693_d@36";
|
||||
};
|
||||
};
|
||||
fragment@45 {
|
||||
target-path = "/tegra-camera-platform/modules/module3/drivernode1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_lens";
|
||||
proc-device-tree = "/proc/device-tree/e3333_lens_ov5693@P5V27C/";
|
||||
};
|
||||
};
|
||||
/* Camera 3: VI */
|
||||
fragment@46 {
|
||||
target-path = "/tegra-capture-vi/ports/port@3";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@47 {
|
||||
target-path = "/tegra-capture-vi/ports/port@3/endpoint";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <3>;
|
||||
bus-width = <2>;
|
||||
remote-endpoint = <&e3333_csi_out3>;
|
||||
};
|
||||
};
|
||||
/* Camera 3: CSI */
|
||||
fragment@48 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@3";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@49 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@3/ports/port@0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@50 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@3/ports/port@0/endpoint@6";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <3>;
|
||||
bus-width = <2>;
|
||||
remote-endpoint = <&e3333_ov5693_out3>;
|
||||
};
|
||||
};
|
||||
fragment@51 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@3/ports/port@1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@52 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@3/ports/port@1/endpoint@7";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3333_vi_in3>;
|
||||
};
|
||||
};
|
||||
/* Camera 4: Module */
|
||||
fragment@53 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9548@77/i2c@4/ov5693_e@36";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@54 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9548@77/i2c@4/ov5693_e@36/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3333_csi_in4>;
|
||||
};
|
||||
};
|
||||
fragment@55 {
|
||||
target-path = "/tegra-camera-platform/modules/module4";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
badge = "e3333_bottomright_P5V27C";
|
||||
position = "bottomright";
|
||||
orientation = "1";
|
||||
};
|
||||
};
|
||||
fragment@56 {
|
||||
target-path = "/tegra-camera-platform/modules/module4/drivernode0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_sensor";
|
||||
devname = "ov5693 34-0036";
|
||||
proc-device-tree = "/proc/device-tree/bus@0/i2c@3180000/tca9548@77/i2c@4/ov5693_e@36";
|
||||
};
|
||||
};
|
||||
fragment@57 {
|
||||
target-path = "/tegra-camera-platform/modules/module4/drivernode1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_lens";
|
||||
proc-device-tree = "/proc/device-tree/e3333_lens_ov5693@P5V27C/";
|
||||
};
|
||||
};
|
||||
/* Camera 4: VI */
|
||||
fragment@58 {
|
||||
target-path = "/tegra-capture-vi/ports/port@4";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@59 {
|
||||
target-path = "/tegra-capture-vi/ports/port@4/endpoint";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <4>;
|
||||
bus-width = <2>;
|
||||
remote-endpoint = <&e3333_csi_out4>;
|
||||
};
|
||||
};
|
||||
/* Camera 4: CSI */
|
||||
fragment@60 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@4";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@61 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@4/ports/port@0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@62 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@4/ports/port@0/endpoint@8";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <4>;
|
||||
bus-width = <2>;
|
||||
remote-endpoint = <&e3333_ov5693_out4>;
|
||||
};
|
||||
};
|
||||
fragment@63 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@4/ports/port@1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@64 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@4/ports/port@1/endpoint@9";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3333_vi_in4>;
|
||||
};
|
||||
};
|
||||
/* Camera 5: Module */
|
||||
fragment@65 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9548@77/i2c@5/ov5693_g@36";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@66 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9548@77/i2c@5/ov5693_g@36/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3333_csi_in5>;
|
||||
};
|
||||
};
|
||||
fragment@67 {
|
||||
target-path = "/tegra-camera-platform/modules/module5";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
badge = "e3333_topright_P5V27C";
|
||||
position = "topright";
|
||||
orientation = "1";
|
||||
};
|
||||
};
|
||||
fragment@68 {
|
||||
target-path = "/tegra-camera-platform/modules/module5/drivernode0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_sensor";
|
||||
devname = "ov5693 35-0036";
|
||||
proc-device-tree = "/proc/device-tree/bus@0/i2c@3180000/tca9548@77/i2c@5/ov5693_g@36";
|
||||
};
|
||||
};
|
||||
fragment@69 {
|
||||
target-path = "/tegra-camera-platform/modules/module5/drivernode1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_lens";
|
||||
proc-device-tree = "/proc/device-tree/e3333_lens_ov5693@P5V27C/";
|
||||
};
|
||||
};
|
||||
/* Camera 5: VI */
|
||||
fragment@70 {
|
||||
target-path = "/tegra-capture-vi/ports/port@5";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@71 {
|
||||
target-path = "/tegra-capture-vi/ports/port@5/endpoint";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <5>;
|
||||
bus-width = <2>;
|
||||
remote-endpoint = <&e3333_csi_out5>;
|
||||
};
|
||||
};
|
||||
/* Camera 5: CSI */
|
||||
fragment@72 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@5";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@73 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@5/ports/port@0";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@74 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@5/ports/port@0/endpoint@10";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <6>;
|
||||
bus-width = <2>;
|
||||
remote-endpoint = <&e3333_ov5693_out5>;
|
||||
};
|
||||
};
|
||||
fragment@75 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@5/ports/port@1";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@76 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@5/ports/port@1/endpoint@11";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&e3333_vi_in5>;
|
||||
};
|
||||
};
|
||||
/* GPIO */
|
||||
fragment@77 {
|
||||
target-path = "/bus@0/gpio@2200000";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
camera-control-output-low {
|
||||
gpio-hog;
|
||||
gpios = <CAM0_RST_L 0 CAM0_PWDN 0
|
||||
CAM1_RST_L 0 CAM1_PWDN 0>;
|
||||
label = "cam0-rst", "cam0-pwdn",
|
||||
"cam1-rst", "cam1-pwdn";
|
||||
output-low;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
/* TCA6408 default */
|
||||
fragment@78 {
|
||||
target-path = "/bus@0/i2c@3180000/tca6408@21";
|
||||
board_config {
|
||||
ids = "3333-*";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
tca6408_21_outlow {
|
||||
gpio-hog;
|
||||
gpios = <0 0 1 0 2 0 3 0 4 0
|
||||
5 0 6 0 7 0>;
|
||||
output-low;
|
||||
label = "tca6408_21_outlow_0",
|
||||
"tca6408_21_outlow_1",
|
||||
"tca6408_21_outlow_2",
|
||||
"tca6408_21_outlow_3",
|
||||
"tca6408_21_outlow_4",
|
||||
"tca6408_21_outlow_5",
|
||||
"tca6408_21_outlow_6",
|
||||
"tca6408_21_outlow_7";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
224
overlay/tegra234-p3737-camera-imx185-overlay.dts
Normal file
224
overlay/tegra234-p3737-camera-imx185-overlay.dts
Normal file
@@ -0,0 +1,224 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Jetson Device-tree overlay for Camera IMX185 on t23x platforms
|
||||
*
|
||||
* Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
overlay-name = "Jetson Camera IMX185";
|
||||
jetson-header-name = "Jetson AGX CSI Connector";
|
||||
compatible = "nvidia,p3737-0000+p3701-0000", "nvidia,p3737-0000+p3701-0004", "nvidia,p3737-0000+p3701-0005";
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@0/imx185_a@1a";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@2 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@0/imx185_a@1a/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&liimx185_csi_in0>;
|
||||
};
|
||||
};
|
||||
fragment@3 {
|
||||
target-path = "/tegra-camera-platform/modules/module0";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
badge = "imx185_bottom_liimx185";
|
||||
position = "bottom";
|
||||
orientation = "0";
|
||||
};
|
||||
};
|
||||
fragment@4 {
|
||||
target-path = "/tegra-camera-platform/modules/module0/drivernode0";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_sensor";
|
||||
devname = "imx185 30-001a";
|
||||
proc-device-tree = "/proc/device-tree/bus@0/i2c@3180000/tca9546@70/i2c@0/imx185_a@1a";
|
||||
};
|
||||
};
|
||||
fragment@5 {
|
||||
target-path = "/tegra-camera-platform/modules/module0/drivernode1";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
pcl_id = "v4l2_lens";
|
||||
};
|
||||
};
|
||||
/* Enable VI ports */
|
||||
fragment@6 {
|
||||
target-path = "/tegra-capture-vi";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
num-channels=<1>;
|
||||
};
|
||||
};
|
||||
fragment@7 {
|
||||
target-path = "/tegra-capture-vi/ports/port@0";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@8 {
|
||||
target-path = "/tegra-capture-vi/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <0>;
|
||||
bus-width = <4>;
|
||||
remote-endpoint = <&liimx185_csi_out0>;
|
||||
};
|
||||
};
|
||||
/* Enable CSI ports */
|
||||
fragment@9 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
num-channels=<1>;
|
||||
};
|
||||
};
|
||||
fragment@10 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@11 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@0";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@12 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@0/endpoint@0";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
port-index = <0>;
|
||||
bus-width = <4>;
|
||||
remote-endpoint = <&liimx185_imx185_out0>;
|
||||
};
|
||||
};
|
||||
fragment@13 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@1";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@14 {
|
||||
target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@1/endpoint@1";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&liimx185_vi_in0>;
|
||||
};
|
||||
};
|
||||
/* tegra-camera-platform settings */
|
||||
fragment@15 {
|
||||
target-path = "/tegra-camera-platform";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
num_csi_lanes = <4>;
|
||||
max_lane_speed = <1500000>;
|
||||
min_bits_per_pixel = <10>;
|
||||
vi_peak_byte_per_pixel = <2>;
|
||||
vi_bw_margin_pct = <25>;
|
||||
isp_peak_byte_per_pixel = <5>;
|
||||
isp_bw_margin_pct = <25>;
|
||||
};
|
||||
};
|
||||
/* pca9646 i2c mux */
|
||||
fragment@30 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
/* GPIO expander */
|
||||
fragment@16 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@0/pca9570_a@24";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@17 {
|
||||
target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@0/imx185_a@1a/ports/port@0/endpoint";
|
||||
board_config {
|
||||
ids = "LPRD-002001", "LPRD-002", "LPRD-001";
|
||||
sw-modules = "kernel";
|
||||
};
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
remote-endpoint = <&liimx185_csi_in0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
351
overlay/tegra234-p3737-camera-modules.dtsi
Normal file
351
overlay/tegra234-p3737-camera-modules.dtsi
Normal file
@@ -0,0 +1,351 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
*/
|
||||
|
||||
#include "tegra234-p3737-0000-camera-e3331-a00.dtsi"
|
||||
#include "tegra234-p3737-0000-camera-e3333-a00.dtsi"
|
||||
#include "tegra234-p3737-0000-camera-imx185-a00.dtsi"
|
||||
#include "tegra234-p3737-0000-camera-imx390-a00.dtsi"
|
||||
#include "tegra234-p3737-0000-camera-imx274-dual.dtsi"
|
||||
|
||||
#define CAM0_RST_L TEGRA234_MAIN_GPIO(H, 3)
|
||||
#define CAM0_PWDN TEGRA234_MAIN_GPIO(H, 6)
|
||||
#define CAM1_RST_L TEGRA234_MAIN_GPIO(AC, 1)
|
||||
#define CAM1_PWDN TEGRA234_MAIN_GPIO(AC, 0)
|
||||
|
||||
/ {
|
||||
fragment-camera-module@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
/* all cameras are disabled by default */
|
||||
capture_vi_base: tegra-capture-vi {
|
||||
ports {
|
||||
vi_port0: port@0 {
|
||||
status = "disabled";
|
||||
vi_in0: endpoint {
|
||||
vc-id = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
vi_port1: port@1 {
|
||||
status = "disabled";
|
||||
vi_in1: endpoint {
|
||||
vc-id = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
vi_port2: port@2 {
|
||||
status = "disabled";
|
||||
vi_in2: endpoint {
|
||||
vc-id = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
vi_port3: port@3 {
|
||||
status = "disabled";
|
||||
vi_in3: endpoint {
|
||||
vc-id = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
vi_port4: port@4 {
|
||||
status = "disabled";
|
||||
vi_in4: endpoint {
|
||||
vc-id = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
vi_port5: port@5 {
|
||||
status = "disabled";
|
||||
vi_in5: endpoint {
|
||||
vc-id = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
tcp: tegra-camera-platform {
|
||||
compatible = "nvidia, tegra-camera-platform";
|
||||
/**
|
||||
* tpg_max_iso = <>;
|
||||
* Max iso bw for 6 streams of tpg
|
||||
* streams * nvcsi_freq * PG_bitrate / RG10 * BPP
|
||||
* 6 * 102Mhz * 32 bits/ 10 bits * 2 Bps
|
||||
* = 3916.8 MBps
|
||||
*/
|
||||
tpg_max_iso = <3916800>;
|
||||
modules {
|
||||
cam_module0: module0 {
|
||||
status = "disabled";
|
||||
cam_module0_drivernode0: drivernode0 {
|
||||
status = "disabled";
|
||||
};
|
||||
cam_module0_drivernode1: drivernode1 {
|
||||
status = "disabled";
|
||||
pcl_id = "v4l2_lens";
|
||||
};
|
||||
};
|
||||
cam_module1: module1 {
|
||||
status = "disabled";
|
||||
cam_module1_drivernode0: drivernode0 {
|
||||
status = "disabled";
|
||||
};
|
||||
cam_module1_drivernode1: drivernode1 {
|
||||
status = "disabled";
|
||||
pcl_id = "v4l2_lens";
|
||||
};
|
||||
};
|
||||
cam_module2: module2 {
|
||||
status = "disabled";
|
||||
cam_module2_drivernode0: drivernode0 {
|
||||
status = "disabled";
|
||||
};
|
||||
cam_module2_drivernode1: drivernode1 {
|
||||
status = "disabled";
|
||||
pcl_id = "v4l2_lens";
|
||||
};
|
||||
};
|
||||
cam_module3: module3 {
|
||||
status = "disabled";
|
||||
cam_module3_drivernode0: drivernode0 {
|
||||
status = "disabled";
|
||||
};
|
||||
cam_module3_drivernode1: drivernode1 {
|
||||
status = "disabled";
|
||||
pcl_id = "v4l2_lens";
|
||||
};
|
||||
};
|
||||
cam_module4: module4 {
|
||||
status = "disabled";
|
||||
cam_module4_drivernode0: drivernode0 {
|
||||
status = "disabled";
|
||||
};
|
||||
cam_module4_drivernode1: drivernode1 {
|
||||
status = "disabled";
|
||||
pcl_id = "v4l2_lens";
|
||||
};
|
||||
};
|
||||
cam_module5: module5 {
|
||||
status = "disabled";
|
||||
cam_module5_drivernode0: drivernode0 {
|
||||
status = "disabled";
|
||||
};
|
||||
cam_module5_drivernode1: drivernode1 {
|
||||
status = "disabled";
|
||||
pcl_id = "v4l2_lens";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
bus@0 {
|
||||
/* set camera gpio direction to output */
|
||||
gpio@2200000 {
|
||||
camera-control-output-low {
|
||||
gpio-hog;
|
||||
output-low;
|
||||
gpios = <CAM0_RST_L 0 CAM0_PWDN 0
|
||||
CAM1_RST_L 0 CAM1_PWDN 0>;
|
||||
label = "cam0-rst", "cam0-pwdn",
|
||||
"cam1-rst", "cam1-pwdn";
|
||||
};
|
||||
};
|
||||
|
||||
host1x@13e00000 {
|
||||
csi_base: nvcsi@15a00000 {
|
||||
num-tpg-channels = <36>;
|
||||
csi_chan0: channel@0 {
|
||||
status = "disabled";
|
||||
ports {
|
||||
csi_chan0_port0: port@0 {
|
||||
status = "disabled";
|
||||
csi_in0: endpoint@0 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
csi_chan0_port1: port@1 {
|
||||
status = "disabled";
|
||||
csi_out0: endpoint@1 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
csi_chan1: channel@1 {
|
||||
status = "disabled";
|
||||
ports {
|
||||
csi_chan1_port0: port@0 {
|
||||
status = "disabled";
|
||||
csi_in1: endpoint@2 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
csi_chan1_port1: port@1 {
|
||||
status = "disabled";
|
||||
csi_out1: endpoint@3 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
csi_chan2: channel@2 {
|
||||
status = "disabled";
|
||||
ports {
|
||||
csi_chan2_port0: port@0 {
|
||||
status = "disabled";
|
||||
csi_in2: endpoint@4 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
csi_chan2_port1: port@1 {
|
||||
status = "disabled";
|
||||
csi_out2: endpoint@5 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
csi_chan3: channel@3 {
|
||||
status = "disabled";
|
||||
ports {
|
||||
csi_chan3_port0: port@0 {
|
||||
status = "disabled";
|
||||
csi_in3: endpoint@6 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
csi_chan3_port1: port@1 {
|
||||
status = "disabled";
|
||||
csi_out3: endpoint@7 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
csi_chan4: channel@4 {
|
||||
status = "disabled";
|
||||
ports {
|
||||
csi_chan4_port0: port@0 {
|
||||
status = "disabled";
|
||||
csi_in4: endpoint@8 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
csi_chan4_port1: port@1 {
|
||||
status = "disabled";
|
||||
csi_out4: endpoint@9 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
csi_chan5: channel@5 {
|
||||
status = "disabled";
|
||||
ports {
|
||||
csi_chan5_port0: port@0 {
|
||||
status = "disabled";
|
||||
csi_in5: endpoint@10 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
csi_chan5_port1: port@1 {
|
||||
status = "disabled";
|
||||
csi_out5: endpoint@11 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
i2c@3180000 {
|
||||
e3326_cam0: ov5693_c@36 {
|
||||
status = "disabled";
|
||||
};
|
||||
e2832_cam0: e2832@2b {
|
||||
status = "disabled";
|
||||
};
|
||||
tca6408@21 {
|
||||
status = "disabled";
|
||||
};
|
||||
tca9548@77 {
|
||||
status = "disabled";
|
||||
i2c@0 {
|
||||
e3333_cam0: ov5693_a@36 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
i2c@1 {
|
||||
e3333_cam1: ov5693_b@36 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
i2c@2 {
|
||||
e3333_cam2: ov5693_c@36 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
i2c@3 {
|
||||
e3333_cam3: ov5693_d@36 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
i2c@4 {
|
||||
e3333_cam4: ov5693_e@36 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
i2c@5 {
|
||||
e3333_cam5: ov5693_g@36 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
tca9546@70 {
|
||||
status = "disabled";
|
||||
i2c@0 {
|
||||
pca9570_a_24: pca9570_a@24 {
|
||||
status = "disabled";
|
||||
};
|
||||
imx274_cam0: imx274_a@1a {
|
||||
status = "disabled";
|
||||
};
|
||||
imx185_cam0: imx185_a@1a {
|
||||
status = "disabled";
|
||||
};
|
||||
e3331_cam0: imx318_a@10 {
|
||||
status = "disable"
|
||||
};
|
||||
max9296_dser: max9296@48 {
|
||||
status = "disabled";
|
||||
};
|
||||
max9295_prim: max9295_prim@62 {
|
||||
status = "disabled";
|
||||
};
|
||||
max9295_ser0: max9295_a@40 {
|
||||
status = "disabled";
|
||||
};
|
||||
max9295_ser1: max9295_b@60 {
|
||||
status = "disabled";
|
||||
};
|
||||
imx390_cam0: imx390_a@1b {
|
||||
status = "disabled";
|
||||
};
|
||||
imx390_cam1: imx390_b@1c {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
i2c@1 {
|
||||
imx274_cam1: imx274_c@1a {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user