So I burnout CAM_I2C porn. Now I have always low level on SCL line (PIN 11 on J3A2). I already try make my own pullup with 1kOhm resistor, but line always low. I need to change i2c-2 bus to another, for example to i2c-0. Can some one tel my how can I do this?
I already try change bus number in device tree and “board-ardbeg-sensors.c” files, but nothing is changed.
hello Leon11t,
may i know had you re-worked your camera board to another i2c bus already ?
also, please share the diff of your device tree to let us confirm the modification.
thanks
I use camera board with breadboard wires, so I can connect camera board to jetson any way you like.
board-ardbeg-sensors.c
static struct soc_camera_link ov2710_iclink = {
.bus_id = 1, /* This must match the .id of tegra_vi01_device */
.board_info = &ardbeg_ov2710_camera_i2c_device,
.module_name = "ov2710_v4l2",
.i2c_adapter_id = 0,
.power = ardbeg_ov2710_power,
.priv = &ardbeg_ov2710_camera_platform_data,
};
tegra124-jetson_tk1-pmic-pm375-0000-c00-00.dtsi
as3722_ldo1: ldo1 {
regulator-name = "vdd-cam";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
consumers {
c1 {
regulator-consumer-supply = "vddio_cam";
regulator-consumer-device = "vi";
};
c2 {
regulator-consumer-supply = "pwrdet_cam";
};
c3 {
regulator-consumer-supply = "vdd_cam_1v8_cam";
};
c4 {
regulator-consumer-supply = "vif";
regulator-consumer-device = "2-0010";
};
c5 {
regulator-consumer-supply = "vif";
regulator-consumer-device = "0-0036";
};
c6 {
regulator-consumer-supply = "vdd_i2c";
regulator-consumer-device = "2-000c";
};
c7 {
regulator-consumer-supply = "vdd_i2c";
regulator-consumer-device = "2-0010";
};
c8 {
regulator-consumer-supply = "vif";
regulator-consumer-device = "2-0018";
};
c9 {
regulator-consumer-supply = "vi2c";
regulator-consumer-device = "2-0030";
};
};
};
as3722_ldo4: ldo4 {
regulator-name = "avdd-cam";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
consumers {
c1 {
regulator-consumer-supply = "vana";
regulator-consumer-device = "0-0036";
};
};
};
tegra124-pm359-camera-a00.dtsi
#include <dt-bindings/media/camera.h>
/ {
camera-pcl {
compatible = "nvidia,tegra124-camera", "simple-bus";
configuration = <0xAA55AA55>;
modules {
module1: module1@modules {
compatible = "sensor,rear";
badge_info = "e1633_rear_camera";
sensor {
profile = <&ov2710_1>;
platformdata = "ardbeg_ov2710_pdata";
};
};
};
profiles {
ov2710_1: ov2710@0_0036 {
index = <1>;
chipname = "pcl_OV2710";
type = "sensor";
guid = "s_OV2710";
position = <1>;
bustype = "i2c";
busnum = <0>;
addr = <0x36>;
datalen = <2>;
pinmuxgrp = <0xFFFF>;
gpios = <3>;
regulators = "vana", "vif";
clocks = "mclk2";
drivername = "ov2710";
detect = <0x0002 0x300A 0xFFFF 0x2710>;
devid = <0x2710>;
poweron = <
CAMERA_IND_CLK_SET(10000)
CAMERA_GPIO_CLR(221)
CAMERA_REGULATOR_ON(0)
CAMERA_REGULATOR_ON(1)
CAMERA_WAITMS(40)
CAMERA_GPIO_SET(221)
CAMERA_WAITMS(10)
CAMERA_END
>;
poweroff = <
CAMERA_IND_CLK_CLR
CAMERA_GPIO_CLR(221)
CAMERA_WAITUS(10)
CAMERA_REGULATOR_OFF(1)
CAMERA_REGULATOR_OFF(0)
CAMERA_END
>;
};
};
};
};
hi Leon11t,
i would suggest you to change the camera position as back camera since you has only 1 camera on board.
please have below modification first.
position = <0>;
clocks = "mclk";
after that, please adding some debug messages to confirm your sensor power_on sequence works correctly.
please share kernel message if you still not able to probe the camera sensor.
thanks,
Jerry