In the Jetson Quick Start Guide for l4t-281, under the section of SENSOR DRIVING PROGRAMMING GUIDE > DEVICE REGISTERATION > USING MAIN PLATFORM DEVICE TREE
I do not have the following file on my system
…/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dtsi
The problem I am facing is that /dev/video0 is not created when the driver is loaded although the probe function is success. I am wondering if the missing file is the root cause as the driver is not plug in and due to the missing file, the device tree is not correct
Any pointers ?
The path is sources/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts
If you do not have it, I suggest using the ./source_sync.sh to pull the 28.2.1 tags for sources.
Once you do have that file, then you can easily comment out the camera-modules.dtsi and include your device:
#include <t18x-common-platforms/tegra186-quill-common-p3310-1000-a00.dtsi>
#include <t18x-common-platforms/tegra186-quill-power-tree-p3310-1000-a00-00.dtsi>
//#include <t18x-common-platforms/tegra186-quill-camera-modules.dtsi>
#include <t18x-common-modules/tegra186-display-e3320-1000-a00.dtsi>
#include "t18x-common-platforms/tegra186-quill-camera-<YOUR_DEVICE>-a00.dtsi"
I would start here, then work on the next issue(s) if there are any.
Hmm… the document says (I have the dtsi file in step 3, but not the dtsi in step 1
/source_sync.sh did not fetch it.
To register a device using main-platform device tree files
• TX2:
hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dtsi
2. In the DTSI, remove the following line:
• TX2:
#include <t18x-common-plugin-manager/tegra186-quill-camera-plugin-manager.dtsi"
3. Locate and edit the following file:
TX2:
hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts
4. In the DTS file, replace the following line:
• TX2:
#include <t18x-common-platforms/tegra186-quill-camera-modules.dtsi>
The error I am getting is
[ 5.377256] tegra-vi4 15700000.vi: initialized
[ 5.378516] tegra-vi4 15700000.vi: remote of_device is not enabled /host1x/vi@15700000/ports/port@0/endpoint.
[ 5.378519] tegra-vi4 15700000.vi: all channel register failed
Any ideas
Are you sure you’ve added the correct portions to your camera dtsi?
/ {
host1x {
vi@15700000 {
num-channels = <1>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
imx274_vi_in0: endpoint {
csi-port = <0>;
bus-width = <4>;
remote-endpoint = <&liimx274_csi_out0>;
};
};
};
};
The other common item I’ve seen is the devname property being wrong; it should be the name of your sensor with the i2c bus, and the reg. e.g. given:
reg = <0x1a>;
i2c@3180000 {
...
//then your devname would be:
devname = "imx274 2-001a"; //or your sensor
Thank you. Yes, the error was in the devname. The i2c address was not correct.
For others with similar issue the devname is -00