I’m trying to get the tegra210-jetson-cv-camera-imx274-a00.dtsi integrated into my Nano device tree. I’ve added additional regulators to satisfy the supplies and have updated the names of the supplies to comply with the latest imx274.c driver. But I am not getting the following error message on Linux boot:
[ 3.708540] imx274 30-001a: probing v4l2 sensor.
[ 3.709337] imx274 30-001a: tegracam sensor driver:imx274_v2.0.6
[ 3.709478] imx274 30-001a: devnode not in DT
[ 3.709481] imx274 30-001a: error creating debugfs interface
[ 3.709638] imx274: probe of 30-001a failed with error -22
Looking at the code it is looking for the devnode property to be located here:
err = of_property_read_string(client->dev.of_node, "devnode", &devnode);
if (err) {
dev_err(&client->dev, "devnode not in DT\n");
return err;
}
Below is what I’ve tried for my device tree:
#include "tegra210-camera-imx274-a00.dtsi"
#define CAM0_RST_L TEGRA_GPIO(S, 4)
#define CAMERA_I2C_MUX_BUS(x) (0x1E + x)
/* camera control gpio definitions */
/ {
en_vdd_cam_hv_2v8_maza: regulator@11 {
compatible = "regulator-fixed-sync";
reg = <11>;
regulator-name = "en-vdd-cam-hv-2v8_maza";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
en_vdd_cam_1v2_maza: regulator@12 {
compatible = "regulator-fixed-sync";
reg = <12>;
regulator-name = "en-vdd-cam-1v2_maza";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
en_vdd_cam_maza: regulator@13 {
compatible = "regulator-fixed-sync";
reg = <13>;
regulator-name = "en-vdd-cam-maza";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
host1x {
i2c@546c0000 {
tca9546@70 {
compatible = "nxp,pca9546";
reg = <0x70>;
#address-cells = <1>;
#size-cells = <0>;
skip_mux_detect = "yes";
vcc-supply = <&en_vdd_cam_maza>;
vcc_lp = "vcc";
force_bus_start = <CAMERA_I2C_MUX_BUS(0)>;
i2c@0 {
reg = <0>;
i2c-mux,deselect-on-exit;
#address-cells = <1>;
#size-cells = <0>;
pca9570_a@24 {
compatible = "nvidia,pca9570";
reg = <0x24>;
channel = "a";
drive_ic = "DRV8838";
};
imx274_a@1a {
/* Define any required hw resources needed by driver */
/* ie. clocks, io pins, power sources */
clocks = <&tegra_car TEGRA210_CLK_CLK_OUT_3>;
clock-names = "clk_out_3";
clock-frequency = <24000000>;
mclk = "clk_out_3";
reset-gpios = <&gpio CAM0_RST_L GPIO_ACTIVE_HIGH>;
vana-supply = <&en_vdd_cam_hv_2v8_maza>;
vif-supply = <&en_vdd_cam_maza>;
vdig-supply = <&en_vdd_cam_1v2_maza>;
devnode = "video2";
};
};
};
};
};
};
I suspect the client->dev.of_node part needs to be defined, but I’m not sure where to define it.