I can get the raw image via v4l2, but the camera is not detected via Argus

Hi, I recently used camera sensor imx307 on agx xavier. I can get raw image by command like below.

v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=RG12 --stream-mmap --set-ctrl=sensor_mode=0 --stream-count=1 --stream-to=img.raw -d /dev/video0

If I use gstream as below,

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! ‘video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1, format=NV12’ ! nvoverlaysink -ev

I will get error “no cameras available”

When I use argus, I get error as below.(log enabled)

Thread 1 getting next capture
Thread 1 is waiting
Thread 2 getting next capture
Thread 3 getting next capture
Thread 2 is waiting
Thread 3 is waiting
Thread 4 getting next capture
Thread 4 is waiting
Thread 5 getting next capture
Thread 5 is waiting
Thread 6 getting next capture
Thread 6 is waiting
Thread 7 getting next capture
Thread 7 is waiting
Thread 8 getting next capture
Thread 8 is waiting
Thread 9 getting next capture
Thread 10 getting next capture
Thread 9 is waiting
Thread 11 getting next capture
Thread 12 getting next capture
Thread 10 is waiting
Thread 11 is waiting
Thread 12 is waiting
Starting services...
Worker thread IspHw statsComplete start
Worker thread IspHw frameComplete start
Worker thread CaptureScheduler checkFramePending start
Worker thread CaptureScheduler frameStart start
Worker thread V4L2CaptureScheduler checkCaptureComplete start
Worker thread V4L2CaptureScheduler issueCaptures start
Worker thread PS handleRequests start
getInstance: s_instance(0x558645a610)
getInstance: s_instance(0x558645a610)
subscribe: SensorType(gyroscope)
subscribe: create SensorType(gyroscope) sensor(0x558645cb30)
subscribe: SensorType(accelerometer)
subscribe: create SensorType(accelerometer) sensor(0x5586462090)
AC plugin not present: dlopen "acplugin.so", acplugin.so: cannot open shared object file: No such file or directory
Services are started
NvPclSetHotplugCallback: ++++++++++++++++++++++
---- Imager: Calibration blob file handling supported in this build ----
NvPclHwGetModuleList: OFParserListModules Succeeded
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module1
NvPclHwMatchPartNum: Found calibration Part#: A6V26:"A6V26"
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition -- Name: imx307_bottom_A6V26
NvPclHwPrintModuleDefinition -- Position: 0
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_lens
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: 
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].DevName: imx307 30-001a
NvPclHwMatchPartNum: Found calibration Part#: A6V26:"A6V26"
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition -- Name: imx307_top_A6V26
NvPclHwPrintModuleDefinition -- Position: 1
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_lens
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: 
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].DevName: imx307 31-001b
NvPclHwGetModuleList: OFParserListModules Succeeded
NvPclModuleListInitialize: NvPclModule list[0]: imx307_bottom_A6V26 position0
NvPclModuleListInitialize: NvPclModule list[1]: imx307_top_A6V26 position1
NvPclHwScanExternalCameras -- adding video0 to discover list
NvPclHwScanExternalCameras -- adding video0 to discover list
NvPclHwScanExternalCameras -- adding video0 to discover list
getHotplugMonitor: Getting hotplug monitor instance
 initializeHotplug++
 hotPlugfunc ++  addWatch: Watch added wd='1'

CheckProcDTExists: INFO: accessing /proc/device-tree/tegra-virtual-camera-platform/modules/module0/drivernode1; No such file or directory
OFParserGetVirtualDevice: virtual device driver node not found in proc device-tree: /proc/device-tree/tegra-virtual-camera-platform/modules/module0/drivernode1
CheckProcDTExists: INFO: accessing /proc/device-tree/tegra-virtual-camera-platform/modules/module1/drivernode0; No such file or directory
OFParserGetVirtualDevice: virtual device driver node not found in proc device-tree: /proc/device-tree/tegra-virtual-camera-platform/modules/module1/drivernode0
setHotplugCallback: Registered new callback client
NvPclSetHotplugCallback: ----------------------
 hotPlugfunc: reading from inotify FD, Thread waiting 
NvPclOpen: ++++++++++++++++++++++
NvPclStateControllerOpen: Found GUID 0 match at index[0]
NvPclHwInitializeModule: allocate overrides pathname @ 0x558633a6b0
NvPclHwInitializeModule: allocate overrides pathname @ 0x5586381db0
NvPclHwInitializeModule: allocate overrides pathname @ 0x5586344a80
NvPclHwInitializeModule: allocate overrides pathname @ 0x5585ea2080
NvPclHwInitializeModule: allocate overrides pathname @ 0x55864b9580
NvPclHwInitializeModule: allocate overrides pathname @ 0x55864be070
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16
CheckOverridesPermissions: stat(/Calib/camera_override.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/settings/camera_overrides.isp] 2/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16
CheckOverridesPermissions: stat(/opt/nvidia/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16
CheckOverridesPermissions: stat(/var/nvidia/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/camera_overrides.isp] 5/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/settings/imx307_bottom_A6V26.isp] 6/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/settings/imx307_bottom_A6V26.isp) call failed
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/imx307_bottom_A6V26.isp] 7/16
CheckOverridesPermissions: stat(/opt/nvidia/nvcam/settings/imx307_bottom_A6V26.isp) call failed
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/imx307_bottom_A6V26.isp] 8/16
CheckOverridesPermissions: stat(/var/nvidia/nvcam/settings/imx307_bottom_A6V26.isp) call failed
---- imager: No override file found. ----
Imager: looking for override file [/mnt/factory/camera/factory.bin] 1/16
Imager: looking for override file [/Calib/factory.bin] 2/16
Imager: looking for override file [/Calib/calibration.bin] 3/16
Imager: looking for override file [(null)] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
Imager: looking for override file [/data/vendor/nvcam/settings/factory.bin] 1/16
Imager: looking for override file [/data/vendor/nvcam/settings/imx307_bottom_A6V26.bin] 2/16
Imager: looking for override file [/opt/nvidia/nvcam/settings/imx307_bottom_A6V26.bin] 3/16
Imager: looking for override file [/var/nvidia/nvcam/settings/imx307_bottom_A6V26.bin] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
NvPclCreateDriver: Found NvPcl Driver Hal dev_name match (v4l2_lens)
NvPclCreateDriver: Found a Driver name match (v4l2_lens)
NvPclCreateDriver: Found NvPcl Driver Hal dev_name match (v4l2_sensor)
NvPclCreateDriver: Found a Driver name match (v4l2_sensor)
NvPclConnectDrivers: hImager was NULL, creating new imager
NvPclInitializeDrivers: v4l2_lens ++++++++++++++++++
initialize WARNING: No focuser object, allocating for lens
OFDPropertyCopyToLong: could not read property [maxslewrate]
loadLensMetadata: maxslewrate not set in driver
NvPclInitializeDrivers: NvOdmLensStub ------------------
NvPclInitializeDrivers: v4l2_sensor ++++++++++++++++++
OFDPropertyGetString: could not read property [devnode-bus]
(NvCamV4l2) Error ModuleNotPresent: V4L2Device not available (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function findDevice(), line 256)
(NvCamV4l2) Error ModuleNotPresent:  (propagating from /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function initialize(), line 60)
(NvOdmDevice) Error ModuleNotPresent:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function initialize(), line 106)
NvPclDriverInitializeData: Unable to initialize driver v4l2_sensor
NvPclInitializeDrivers: error: Failed to init camera sub module v4l2_sensor
NvPclStartPlatformDrivers: Failed to start module drivers
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x5585ea2080
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x55864b9580
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x55864be070
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x558633a6b0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x5586381db0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x5586344a80
NvPclStateControllerOpen: Failed ImagerGUID 0. (error 0xA000E)
NvPclStateControllerClose: Module imx307_bottom_A6V26 closed
NvPclOpen: PCL Open Failed. Error: 0xf
NvPclClose: ++++++++++++++++++++++
NvPclClose: ----------------------
NvPclOpen: ----------------------
SCF: Error BadParameter: Sensor could not be opened. (in src/services/capture/CaptureServiceDeviceSensor.cpp, function getSourceFromGuid(), line 582)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureService.cpp, function addSourceByGuid(), line 437)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function addSourceByIndex(), line 295)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function getSource(), line 458)
Acquiring SCF Camera device source via index 0 has failed. NvPclOpen: ++++++++++++++++++++++
NvPclStateControllerOpen: Found GUID 1 match at index[1]
NvPclHwInitializeModule: allocate overrides pathname @ 0x55864b87e0
NvPclHwInitializeModule: allocate overrides pathname @ 0x5586344a80
NvPclHwInitializeModule: allocate overrides pathname @ 0x5586381db0
NvPclHwInitializeModule: allocate overrides pathname @ 0x558633a6b0
NvPclHwInitializeModule: allocate overrides pathname @ 0x55864be070
NvPclHwInitializeModule: allocate overrides pathname @ 0x55864b9580
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16
CheckOverridesPermissions: stat(/Calib/camera_override.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/settings/camera_overrides.isp] 2/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16
CheckOverridesPermissions: stat(/opt/nvidia/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16
CheckOverridesPermissions: stat(/var/nvidia/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/camera_overrides.isp] 5/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/settings/imx307_top_A6V26.isp] 6/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/settings/imx307_top_A6V26.isp) call failed
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/imx307_top_A6V26.isp] 7/16
CheckOverridesPermissions: stat(/opt/nvidia/nvcam/settings/imx307_top_A6V26.isp) call failed
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/imx307_top_A6V26.isp] 8/16
CheckOverridesPermissions: stat(/var/nvidia/nvcam/settings/imx307_top_A6V26.isp) call failed
---- imager: No override file found. ----
Imager: looking for override file [/mnt/factory/camera/factory.bin] 1/16
Imager: looking for override file [/Calib/factory.bin] 2/16
Imager: looking for override file [/Calib/calibration.bin] 3/16
Imager: looking for override file [(null)] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
Imager: looking for override file [/data/vendor/nvcam/settings/factory.bin] 1/16
Imager: looking for override file [/data/vendor/nvcam/settings/imx307_top_A6V26.bin] 2/16
Imager: looking for override file [/opt/nvidia/nvcam/settings/imx307_top_A6V26.bin] 3/16
Imager: looking for override file [/var/nvidia/nvcam/settings/imx307_top_A6V26.bin] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
NvPclCreateDriver: Found NvPcl Driver Hal dev_name match (v4l2_lens)
NvPclCreateDriver: Found a Driver name match (v4l2_lens)
NvPclCreateDriver: Found NvPcl Driver Hal dev_name match (v4l2_sensor)
NvPclCreateDriver: Found a Driver name match (v4l2_sensor)
NvPclConnectDrivers: hImager was NULL, creating new imager
NvPclInitializeDrivers: v4l2_lens ++++++++++++++++++
initialize WARNING: No focuser object, allocating for lens
OFDPropertyCopyToLong: could not read property [maxslewrate]
loadLensMetadata: maxslewrate not set in driver
NvPclInitializeDrivers: NvOdmLensStub ------------------
NvPclInitializeDrivers: v4l2_sensor ++++++++++++++++++
OFDPropertyGetString: could not read property [devnode-bus]
(NvCamV4l2) Error ModuleNotPresent: V4L2Device not available (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function findDevice(), line 256)
(NvCamV4l2) Error ModuleNotPresent:  (propagating from /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function initialize(), line 60)
(NvOdmDevice) Error ModuleNotPresent:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function initialize(), line 106)
NvPclDriverInitializeData: Unable to initialize driver v4l2_sensor
NvPclInitializeDrivers: error: Failed to init camera sub module v4l2_sensor
NvPclStartPlatformDrivers: Failed to start module drivers
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x558633a6b0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x55864be070
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x55864b9580
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x55864b87e0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x5586344a80
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x5586381db0
NvPclStateControllerOpen: Failed ImagerGUID 1. (error 0xA000E)
NvPclStateControllerClose: Module imx307_top_A6V26 closed
NvPclOpen: PCL Open Failed. Error: 0xf
NvPclClose: ++++++++++++++++++++++
NvPclClose: ----------------------
NvPclOpen: ----------------------
SCF: Error BadParameter: Sensor could not be opened. (in src/services/capture/CaptureServiceDeviceSensor.cpp, function getSourceFromGuid(), line 582)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureService.cpp, function addSourceByGuid(), line 437)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function addSourceByIndex(), line 295)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function getSource(), line 458)
Acquiring SCF Camera device source via index 1 has failed. 

Argus Version: 0.97.3 (single-process)
No cameras found
Stopping services...
Worker thread CaptureScheduler frameStart stop
Worker thread CaptureScheduler checkFramePending stop
Worker thread IspHw statsComplete stop
Worker thread IspHw frameComplete stop
Worker thread V4L2CaptureScheduler issueCaptures stop
Worker thread V4L2CaptureScheduler checkCaptureComplete stop
NvPclShutdown: ++++++++++++++++++++++
NvPclModuleListShutdown: Client still conntected, skipping shutdown
NvPclShutdown: ----------------------
Worker thread PS handleRequests stop
unsubscribe: SensorType(gyroscope)
unsubscribe: gyroscope sensor(0x558645cb30)
unsubscribe: SensorType(accelerometer)
unsubscribe: accelerometer sensor(0x5586462090)
Services are stopped
closeInstance: ms_instance((nil))
NvPclRemoveHotplugCallback: ++++++++++++++++++++++
getHotplugMonitor: Getting hotplug monitor instance
 shutdownHotplug: Requesting thread exit
 hotPlugfunc: Read 16 bytes from inotify FD
 hotPlugfunc: A File was Modified 00008000 NAME :  CREATE : 00000100, DELETE : 00000200 IGNORED : 00008000 CLOSE_WRITE : 00000008
 hotPlugfunc: Exit thread
 hotPlugfunc: close failure error: 'Bad file descriptor' (9)
 hotPlugfunc -- 
 shutdownHotplug -- : shutdown of hotplug is complete 
Removed callback client
NvPclRemoveHotplugCallback: ----------------------
FiberScheduler: shutting down; 0 fibers still in map

FiberScheduler: thread 9 exiting
FiberScheduler: thread 1 exiting
FiberScheduler: thread 5 exiting
FiberScheduler: thread 7 exiting
FiberScheduler: thread 2 exiting
FiberScheduler: thread 4 exiting
FiberScheduler: thread 3 exiting
FiberScheduler: thread 11 exiting
FiberScheduler: thread 8 exiting
FiberScheduler: thread 10 exiting
FiberScheduler: thread 12 exiting
FiberScheduler: thread 6 exiting
FiberScheduler: thread 12 has been joined
FiberScheduler: thread 11 has been joined
FiberScheduler: thread 10 has been joined
FiberScheduler: thread 9 has been joined
FiberScheduler: thread 8 has been joined
FiberScheduler: thread 7 has been joined
FiberScheduler: thread 6 has been joined
FiberScheduler: thread 5 has been joined
FiberScheduler: thread 4 has been joined
FiberScheduler: thread 3 has been joined
FiberScheduler: thread 2 has been joined
FiberScheduler: thread 1 has been joined

Here is my device tree, modified from tegra194-camera-imx274-dual.dtsi, all properties are preserved

/*
 * Copyright (c) 2017-2019, NVIDIA CORPORATION.  All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

/ {
	host1x {
		vi@15c10000 {
			num-channels = <2>;
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
					reg = <0>;
					imx307_vi_in0: endpoint {
						port-index = <0>;
						bus-width = <4>;
						remote-endpoint = <&imx307_csi_out0>;
					};
				};
				port@1 {
					reg = <1>;
					imx307_vi_in1: endpoint {
						port-index = <2>;
						bus-width = <4>;
						remote-endpoint = <&imx307_csi_out1>;
					};
				};
			};
		};

		nvcsi@15a00000 {
			num-channels = <2>;
			#address-cells = <1>;
			#size-cells = <0>;
			channel@0 {
				reg = <0>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						imx307_csi_in0: endpoint@0 {
							port-index = <0>;
							bus-width = <4>;
							remote-endpoint = <&imx307_imx307_out0>;
						};
					};
					port@1 {
						reg = <1>;
						imx307_csi_out0: endpoint@1 {
							remote-endpoint = <&imx307_vi_in0>;
						};
					};
				};
			};
			channel@1 {
				reg = <1>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						imx307_csi_in1: endpoint@2 {
							port-index = <2>;
							bus-width = <4>;
							remote-endpoint = <&imx307_imx307_out1>;
						};
					};
					port@1 {
						reg = <1>;
						imx307_csi_out1: endpoint@3 {
							remote-endpoint = <&imx307_vi_in1>;
						};
					};
				};
			};
		};
	};

	i2c@3180000 {
			imx307_a@1a {
				compatible = "nvidia,imx307";
				/* I2C device address */
				reg = <0x1a>;

				/* V4L2 device node location */
				devnode = "video0";

				/* Physical dimensions of sensor */
				physical_w = "3.674";
				physical_h = "2.738";

				sensor_model = "imx307";

				/* Define any required hw resources needed by driver */
				/* ie. clocks, io pins, power sources */
				avdd-reg = "vana";
				iovdd-reg = "vif";
				/*btk modify here*/
				// dvdd-reg = "vdig";
				// vcmvdd-reg = "vvcm";
				/*end*/

				/* Defines number of frames to be dropped by driver internally after applying */
				/* sensor crop settings. Some sensors send corrupt frames after applying */
				/* crop co-ordinates */
				/*post_crop_frame_drop = "0";*/

				/* if true, delay gain setting by one frame to be in sync with exposure */
				delayed_gain = "true";

				/* enable CID_SENSOR_MODE_ID for sensor modes selection */
				use_sensor_mode_id = "true";

				/**
				* ==== Modes ====
				* A modeX node is required to support v4l2 driver
				* implementation with NVIDIA camera software stack
				*
				* == Signal properties ==
				*
				* phy_mode = "";
				* PHY mode used by the MIPI lanes for this device
				*
				* tegra_sinterface = "";
				* CSI Serial interface connected to tegra
				* Incase of virtual HW devices, use virtual
				* For SW emulated devices, use host
				*
				* pix_clk_hz = "";
				* Sensor pixel clock used for calculations like exposure and framerate
				*
				* readout_orientation = "0";
				* Based on camera module orientation.
				* Only change readout_orientation if you specifically
				* Program a different readout order for this mode
				*
				* == Image format Properties ==
				*
				* active_w = "";
				* Pixel active region width
				*
				* active_h = "";
				* Pixel active region height
				*
				* pixel_t = "";
				* The sensor readout pixel pattern
				*
				* line_length = "";
				* Pixel line length (width) for sensor mode.
				*
				* == Source Control Settings ==
				*
				* Gain factor used to convert fixed point integer to float
				* Gain range [min_gain/gain_factor, max_gain/gain_factor]
				* Gain step [step_gain/gain_factor is the smallest step that can be configured]
				* Default gain [Default gain to be initialized for the control.
                                       *     use min_gain_val as default for optimal results]
				* Framerate factor used to convert fixed point integer to float
				* Framerate range [min_framerate/framerate_factor, max_framerate/framerate_factor]
				* Framerate step [step_framerate/framerate_factor is the smallest step that can be configured]
				* Default Framerate [Default framerate to be initialized for the control.
                                       *     use max_framerate to get required performance]
				* Exposure factor used to convert fixed point integer to float
				* For convenience use 1 sec = 1000000us as conversion factor
				* Exposure range [min_exp_time/exposure_factor, max_exp_time/exposure_factor]
				* Exposure step [step_exp_time/exposure_factor is the smallest step that can be configured]
				* Default Exposure Time [Default exposure to be initialized for the control.
                                       *     Set default exposure based on the default_framerate for optimal exposure settings]
				* For convenience use 1 sec = 1000000us as conversion factor
				*
				* gain_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_gain_val = ""; (ceil to integer)
				* max_gain_val = ""; (ceil to integer)
				* step_gain_val = ""; (ceil to integer)
				* default_gain = ""; (ceil to integer)
				* Gain limits for mode
				*
				* exposure_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_exp_time = ""; (ceil to integer)
				* max_exp_time = ""; (ceil to integer)
				* step_exp_time = ""; (ceil to integer)
				* default_exp_time = ""; (ceil to integer)
				* Exposure Time limits for mode (sec)
				*
				* framerate_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_framerate = ""; (ceil to integer)
				* max_framerate = ""; (ceil to integer)
				* step_framerate = ""; (ceil to integer)
				* default_framerate = ""; (ceil to integer)
				* Framerate limits for mode (fps)
				*
				* embedded_metadata_height = "";
				* Sensor embedded metadata height in units of rows.
				* If sensor does not support embedded metadata value should be 0.

				* num_of_exposure = "";
				* Digital overlap(Dol) frames
				*
				* num_of_ignored_lines = "";
				* Used for cropping, eg. OB lines + Ignored area of effective pixel lines
				*
				* num_of_lines_offset_0 = "";
				* Used for cropping, vertical blanking in front of short exposure data
				* If more Dol frames are used, it can be extended, eg. num_of_lines_offset_1
				*
				* num_of_ignored_pixels = "";
				* Used for cropping, The length of line info(pixels)
				*
				* num_of_left_margin_pixels = "";
				* Used for cropping, the size of the left edge margin before
				* the active pixel area (after ignored pixels)
				*
				* num_of_right_margin_pixels = "";
				* Used for cropping, the size of the right edge margin after
				* the active pixel area
				*
				*/
				mode0 { // IMX307_MODE_1920X1080
					mclk_khz = "37125";
					num_lanes = "4";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "yes";//btk modify from no
					dpcm_enable = "false";
					cil_settletime = "0";
					dynamic_pixel_bit_depth = "12";
					csi_pixel_bit_depth = "12";
					mode_type = "bayer";
					pixel_phase = "rggb";

					active_w = "1920";//btk modify
					active_h = "1080";//btk
					// active_w = "960";
					// active_h = "1097";
					readout_orientation = "0";
					line_length = "1945";
					inherent_gain = "1";
					mclk_multiplier = "2";
					pix_clk_hz = "74250000";

					gain_factor = "10";
					min_gain_val = "1.0"; //btk modify from 0
					max_gain_val = "480";
					step_gain_val = "1";
					default_gain = "0";
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					framerate_factor = "1000000";
					min_framerate = "1500000";
					max_framerate = "30000000";
					step_framerate = "1";
					default_framerate= "30000000";
					exposure_factor = "1000000";
					min_exp_time = "30";
					max_exp_time = "660000";
					step_exp_time = "1";
					default_exp_time = "33334";/* us */
					embedded_metadata_height = "1";
				};
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						imx307_imx307_out0: endpoint {
							port-index = <0>;
							bus-width = <4>;
							remote-endpoint = <&imx307_csi_in0>;
							};
						};
					};
			};
			
			imx307_c@1b {
				compatible = "nvidia,imx307";
				/* I2C device address */
				reg = <0x1b>;

				/* V4L2 device node location */
				devnode = "video1";

				/* Physical dimensions of sensor */
				physical_w = "3.674";
				physical_h = "2.738";

				sensor_model = "imx307";

				/* Define any required hw resources needed by driver */
				/* ie. clocks, io pins, power sources */
				avdd-reg = "vana";
				iovdd-reg = "vif";

				/* Defines number of frames to be dropped by driver internally after applying */
				/* sensor crop settings. Some sensors send corrupt frames after applying */
				/* crop co-ordinates */
				/*post_crop_frame_drop = "0";*/

				/* if true, delay gain setting by one frame to be in sync with exposure */
				delayed_gain = "true";

				has-eeprom;
				fuse_id_start_addr = <91>;

				/**
				* ==== Modes ====
				* A modeX node is required to support v4l2 driver
				* implementation with NVIDIA camera software stack
				*
				* == Signal properties ==
				*
				* phy_mode = "";
				* PHY mode used by the MIPI lanes for this device
				*
				* tegra_sinterface = "";
				* CSI Serial interface connected to tegra
				* Incase of virtual HW devices, use virtual
				* For SW emulated devices, use host
				*
				* pix_clk_hz = "";
				* Sensor pixel clock used for calculations like exposure and framerate
				*
				* readout_orientation = "0";
				* Based on camera module orientation.
				* Only change readout_orientation if you specifically
				* Program a different readout order for this mode
				*
				* == Image format Properties ==
				*
				* active_w = "";
				* Pixel active region width
				*
				* active_h = "";
				* Pixel active region height
				*
				* pixel_t = "";
				* The sensor readout pixel pattern
				*
				* line_length = "";
				* Pixel line length (width) for sensor mode.
				*
				* == Source Control Settings ==
				*
				* Gain factor used to convert fixed point integer to float
				* Gain range [min_gain/gain_factor, max_gain/gain_factor]
				* Gain step [step_gain/gain_factor is the smallest step that can be configured]
				* Default gain [Default gain to be initialized for the control.
                                       *     use min_gain_val as default for optimal results]
				* Framerate factor used to convert fixed point integer to float
				* Framerate range [min_framerate/framerate_factor, max_framerate/framerate_factor]
				* Framerate step [step_framerate/framerate_factor is the smallest step that can be configured]
				* Default Framerate [Default framerate to be initialized for the control.
                                       *     use max_framerate to get required performance]
				* Exposure factor used to convert fixed point integer to float
				* For convenience use 1 sec = 1000000us as conversion factor
				* Exposure range [min_exp_time/exposure_factor, max_exp_time/exposure_factor]
				* Exposure step [step_exp_time/exposure_factor is the smallest step that can be configured]
				* Default Exposure Time [Default exposure to be initialized for the control.
                                       *     Set default exposure based on the default_framerate for optimal exposure settings]
				* For convenience use 1 sec = 1000000us as conversion factor
				*
				* gain_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_gain_val = ""; (ceil to integer)
				* max_gain_val = ""; (ceil to integer)
				* step_gain_val = ""; (ceil to integer)
				* default_gain = ""; (ceil to integer)
				* Gain limits for mode
				*
				* exposure_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_exp_time = ""; (ceil to integer)
				* max_exp_time = ""; (ceil to integer)
				* step_exp_time = ""; (ceil to integer)
				* default_exp_time = ""; (ceil to integer)
				* Exposure Time limits for mode (sec)
				*
				* framerate_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_framerate = ""; (ceil to integer)
				* max_framerate = ""; (ceil to integer)
				* step_framerate = ""; (ceil to integer)
				* default_framerate = ""; (ceil to integer)
				* Framerate limits for mode (fps)
				*
				* embedded_metadata_height = "";
				* Sensor embedded metadata height in units of rows.
				* If sensor does not support embedded metadata value should be 0.

				* num_of_exposure = "";
				* Digital overlap(Dol) frames
				*
				* num_of_ignored_lines = "";
				* Used for cropping, eg. OB lines + Ignored area of effective pixel lines
				*
				* num_of_lines_offset_0 = "";
				* Used for cropping, vertical blanking in front of short exposure data
				* If more Dol frames are used, it can be extended, eg. num_of_lines_offset_1
				*
				* num_of_ignored_pixels = "";
				* Used for cropping, The length of line info(pixels)
				*
				* num_of_left_margin_pixels = "";
				* Used for cropping, the size of the left edge margin before
				* the active pixel area (after ignored pixels)
				*
				* num_of_right_margin_pixels = "";
				* Used for cropping, the size of the right edge margin after
				* the active pixel area
				*
				*/
				mode0 { // IMX274_MODE_3840X2160
					mclk_khz = "24000";
					num_lanes = "4";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "yes";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "3840";
					active_h = "2160";
					mode_type = "bayer";
					pixel_phase = "rggb";
					csi_pixel_bit_depth = "10";
					readout_orientation = "0";
					line_length = "4208";
					inherent_gain = "1";
					mclk_multiplier = "24";
					pix_clk_hz = "576000000";

					gain_factor = "1000000";
					min_gain_val = "1000000";
					max_gain_val = "44400000";
					step_gain_val = "1";
					default_gain = "1000000";
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					framerate_factor = "1000000";
					min_framerate = "1500000";
					max_framerate = "60000000";
					step_framerate = "1";
					default_framerate= "60000000";
					exposure_factor = "1000000";
					min_exp_time = "44";
					max_exp_time = "478696";
					step_exp_time = "1";
					default_exp_time = "16667";/* us */
					embedded_metadata_height = "1";
				};
				mode1 { // IMX274_MODE_1920X1080
					mclk_khz = "24000";
					num_lanes = "4";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "yes";
					dpcm_enable = "false";
					cil_settletime = "0";
					dynamic_pixel_bit_depth = "10";
					csi_pixel_bit_depth = "10";
					mode_type = "bayer";
					pixel_phase = "rggb";

					active_w = "1920";
					active_h = "1080";
					readout_orientation = "0";
					line_length = "4160";
					inherent_gain = "1";
					mclk_multiplier = "24";
					pix_clk_hz = "576000000";

					gain_factor = "1000000";
					min_gain_val = "1000000";
					max_gain_val = "177000000";
					step_gain_val = "1";
					default_gain = "1000000";
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					framerate_factor = "1000000";
					min_framerate = "1500000";
					max_framerate = "60000000";
					step_framerate = "1";
					default_framerate= "60000000";
					exposure_factor = "1000000";
					min_exp_time = "58";
					max_exp_time = "184611";
					step_exp_time = "1";
					default_exp_time = "16667";/* us */
					embedded_metadata_height = "1";
				};
				mode2 { // IMX274_MODE_3840X2160_DOL_30FPS
					mclk_khz = "24000";
					num_lanes = "4";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "yes";
					dpcm_enable = "false";
					cil_settletime = "0";
					dynamic_pixel_bit_depth = "10";
					csi_pixel_bit_depth = "10";
					mode_type = "bayer_wdr_dol";
					pixel_phase = "rggb";

					active_w = "3856";
					active_h = "4448";
					readout_orientation = "0";
					line_length = "4208";
					inherent_gain = "1";
					mclk_multiplier = "24";
					pix_clk_hz = "576000000";

					gain_factor = "1000000";
					min_gain_val = "1000000";
					max_gain_val = "30000000";
					step_gain_val = "1";
					default_gain = "1000000";
					min_hdr_ratio = "32";
					max_hdr_ratio = "32";
					framerate_factor = "1000000";
					min_framerate = "1500000";
					max_framerate = "30000000";
					step_framerate = "1";
					default_framerate= "30000000";
					exposure_factor = "1000000";
					min_exp_time = "864";
					max_exp_time = "20480";
					step_exp_time = "1";
					default_exp_time = "20480";/* us */
					embedded_metadata_height = "1";

					num_of_exposure = "2";
					num_of_ignored_lines = "14";
					num_of_lines_offset_0 = "50";
					num_of_ignored_pixels = "4";
					num_of_left_margin_pixels = "12";
					num_of_right_margin_pixels = "0";
				};
				mode3 { // IMX274_MODE_1920X1080_DOL_60FPS
					mclk_khz = "24000";
					num_lanes = "4";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "yes";
					dpcm_enable = "false";
					cil_settletime = "0";
					dynamic_pixel_bit_depth = "10";
					csi_pixel_bit_depth = "10";
					mode_type = "bayer_wdr_dol";
					pixel_phase = "rggb";

					active_w = "1936";
					active_h = "2264";
					readout_orientation = "0";
					line_length = "4160";
					inherent_gain = "1";
					mclk_multiplier = "24";
					pix_clk_hz = "576000000";

					gain_factor = "1000000";
					min_gain_val = "1000000";
					max_gain_val = "177000000";
					step_gain_val = "1";
					default_gain = "1000000";
					min_hdr_ratio = "32";
					max_hdr_ratio = "32";
					framerate_factor = "1000000";
					min_framerate = "1500000";
					max_framerate = "60000000";
					step_framerate = "1";
					default_framerate= "60000000";
					exposure_factor = "1000000";
					min_exp_time = "859";
					max_exp_time = "15649";
					step_exp_time = "1";
					default_exp_time = "15649";/* us */
					embedded_metadata_height = "1";

					/* WDR related settings */
					num_of_exposure = "2";
					num_of_ignored_lines = "14";
					num_of_lines_offset_0 = "38";
					num_of_ignored_pixels = "4";
					num_of_left_margin_pixels = "6";
					num_of_right_margin_pixels = "6";
				};
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						imx307_imx307_out1: endpoint {
							port-index = <2>;
							bus-width = <4>;
							remote-endpoint = <&imx307_csi_in1>;
							};
						};
					};
			};
		};
	lens_imx307@A6V26 {
		min_focus_distance = "0.0";
		hyper_focal = "0.0";
		focal_length = "5.00";
		f_number = "2.0";
		aperture = "2.2";
	};
};



/ {

	tegra-camera-platform {
		compatible = "nvidia, tegra-camera-platform";
		/**
		* Physical settings to calculate max ISO BW
		*
		* num_csi_lanes = <>;
		* Total number of CSI lanes when all cameras are active
		*
		* max_lane_speed = <>;
		* Max lane speed in Kbit/s
		*
		* min_bits_per_pixel = <>;
		* Min bits per pixel
		*
		* vi_peak_byte_per_pixel = <>;
		* Max byte per pixel for the VI ISO case
		*
		* vi_bw_margin_pct = <>;
		* Vi bandwidth margin in percentage
		*
		* max_pixel_rate = <>;
		* Max pixel rate in Kpixel/s for the ISP ISO case
		*
		* isp_peak_byte_per_pixel = <>;
		* Max byte per pixel for the ISP ISO case
		*
		* isp_bw_margin_pct = <>;
		* Isp bandwidth margin in percentage
		*/
		num_csi_lanes = <8>;
		max_lane_speed = <1500000>;
		min_bits_per_pixel = <10>;
		vi_peak_byte_per_pixel = <2>;
		vi_bw_margin_pct = <25>;
		max_pixel_rate = <750000>;
		isp_peak_byte_per_pixel = <5>;
		isp_bw_margin_pct = <25>;

		/**
		 * The general guideline for naming badge_info contains 3 parts, and is as follows,
		 * The first part is the camera_board_id for the module; if the module is in a FFD
		 * platform, then use the platform name for this part.
		 * The second part contains the position of the module, ex. "rear" or "front".
		 * The third part contains the last 6 characters of a part number which is found
		 * in the module's specsheet from the vender.
		 */
		modules {
			module0 {
				badge = "imx307_bottom_A6V26";
				position = "bottom";
				orientation = "1";
				drivernode0 {
					/* Declare PCL support driver (classically known as guid)  */
					pcl_id = "v4l2_sensor";
					/* Driver v4l2 device name */
					devname = "imx307 30-001a";
					/* Declare the device-tree hierarchy to driver instance */
					proc-device-tree = "/proc/device-tree/i2c@3180000/imx307_a@1a";
				};
				drivernode1 {
					/* Declare PCL support driver (classically known as guid)  */
					pcl_id = "v4l2_lens";
					proc-device-tree = "/proc/device-tree/lens_imx307@A6V26/";
				};
			};
			module1 {
				badge = "imx307_top_A6V26";
				position = "top";
				orientation = "1";
				drivernode0 {
					/* Declare PCL support driver (classically known as guid)  */
					pcl_id = "v4l2_sensor";
					/* Driver v4l2 device name */
					devname = "imx307 30-001b";
					/* Declare the device-tree hierarchy to driver instance */
					proc-device-tree = "/proc/device-tree/i2c@3180000/imx307_c@1b";
				};
				drivernode1 {
					/* Declare PCL support driver (classically known as guid)  */
					pcl_id = "v4l2_lens";
					proc-device-tree = "/proc/device-tree/lens_imx307@A6V26/";
				};
			};

		};
	};
};

I will add more documents if needed, thanks.

The devname is incorrect the bus number should be 2 instead of 30,
Confirm by the v4l2-ctl --all

I get the image, thanks!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.