Hello, we're developing a multimedia device based on a Variscite Dart-MX6Q SOM running Android 7 or 8.
The device has to display the input of multiple cvbs camera connected to a video decoder (only onece at a time).
We focused on ADV7181C (or D) as video decoder and use the parallel camera input of MX6, but still looking how to integrate it into device tree and configure the kernel.
Have you any application notes or information to help us do the job? (The decoder can be different from ADV7181)
Thank you, kind regards.
Luca
Problem ha been solved. It was an electrical proble.
Thanks,
Luca
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
Hi Luca
adv7180 is supported on i.MX6Q Sabre AI board
linux/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
imx6qdl-sabreauto.dtsi\dts\boot\arm\arch - linux-imx - i.MX Linux kernel
SABRE|Automotive-Infotainment|i.MX6 | NXP
some other useful links
VAR-SOM-MX6 Camera JehtroR1 - Variscite Wiki
iMX6DQ ISL79985/79987 MIPI CSI2 CVBS camera surround view solution for Linux BSP
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------