Hi Igor, thanks for your help.
We're doing some experiment with a demo board from Analog EVAL-ADV7280A.
We've connected the IPU2 CSI1 parallel port of dart-mx6 and modfied .dtsi as follow:
v4l2_cap_0 {
compatible = "fsl,imx6q-v4l2-capture";
ipu_id = <1>;
csi_id = <1>;
mclk_source = <0>;
status = "okay";
};
....
&i2c3 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3_3>;
status = "okay";
/* DS1307 RTC module */
rtc@0x68 {
compatible = "dallas,ds1307";
reg = <0x68>;
};
adv7180: adv7180@21 {
compatible = "adv,adv7180";
reg = <0x21>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ipu2>;
clocks = <&clks 201>;
clock-names = "csi_mclk";
DOVDD-supply = <®_3p3v>; /* 3.3v, enabled via 2.8 VGEN6 */
AVDD-supply = <®_3p3v>; /* 1.8v */
DVDD-supply = <®_3p3v>; /* 1.8v */
PVDD-supply = <®_3p3v>; /* 1.8v */
pwn-gpios = <&gpio3 10 0>; /* put on not used pin */
ipu_id = <1>;
csi_id = <1>;
mclk = <24000000>;
mclk_source = <0>;
cvbs = <1>;
};
};
....
pinctrl_ipu2: ipu2grp {
fsl,pins = <
MX6QDL_PAD_EIM_A17__IPU2_CSI1_DATA12 0xb0b1
MX6QDL_PAD_EIM_A18__IPU2_CSI1_DATA13 0xb0b1
MX6QDL_PAD_EIM_A19__IPU2_CSI1_DATA14 0xb0b1
MX6QDL_PAD_EIM_A20__IPU2_CSI1_DATA15 0xb0b1
MX6QDL_PAD_EIM_A21__IPU2_CSI1_DATA16 0xb0b1
MX6QDL_PAD_EIM_A22__IPU2_CSI1_DATA17 0xb0b1
MX6QDL_PAD_EIM_A23__IPU2_CSI1_DATA18 0xb0b1
MX6QDL_PAD_EIM_A24__IPU2_CSI1_DATA19 0xb0b1
// MX6QDL_PAD_EIM_DA10__IPU2_CSI1_DATA_EN 0xb0b1
MX6QDL_PAD_EIM_A16__IPU2_CSI1_PIXCLK 0xb0b1
MX6QDL_PAD_EIM_DA11__IPU2_CSI1_HSYNC 0xb0b1
MX6QDL_PAD_EIM_DA12__IPU2_CSI1_VSYNC 0xb0b1
>;
};
We set the correct value for IOMUXC_GPR1 in file mach-imx6q.c with (regmap_update_bits(gpr, IOMUXC_GPR1, 1 << 20, 1 << 20);
On the debug console using "i2c probe" we see ADV7280 at address 0x21, but can't make camera app of Android Oreo 8 work (always "camera error").
Are there drivers to include in kernel or other particular actions to do?
Is there another way to check if all is ok?
Thank you, kind regards.
Luca