Hi,
My custom board setup is like this. iMX8QXP SOC is connected ADv7535 via i2c bus.
I am using iMX based Linux kernel 5.10.72 with ADV7535 linux driver enabled.
kernel defconfig contents related to ADV7535:
CONFIG_MEDIA_SUPPORT=y
CONFIG_DRM=y
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_IMX=y
CONFIG_DRM_IMX_PARALLEL_DISPLAY=y
CONFIG_DRM_IMX_SEC_DSIM=y
CONFIG_DRM_BRIDGE=y
CONFIG_FB_MXC_ADV7535=y
My dts node related to adv7535:
pinctrl_i2c0_mipi_dsi0: mipi0_lpi2c0grp {
fsl,pins = <
IMX8QXP_MIPI_DSI0_I2C0_SCL_MIPI_DSI0_I2C0_SCL 0xc6000020
IMX8QXP_MIPI_DSI0_I2C0_SDA_MIPI_DSI0_I2C0_SDA 0xc6000020
IMX8QXP_MIPI_DSI0_GPIO0_00_LSIO_GPIO1_IO27 0x20000020
IMX8QXP_MIPI_DSI0_GPIO0_01_LSIO_GPIO1_IO28 0x20000020
>;
};
&i2c0 {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c0_mipi_dsi0>;
clock-frequency = <400000>;
status = "okay";
adv_bridge0: adv7535@72 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "adi,adv7535";
reg = <0x72>;
csi_id = <0>;
adi,addr-cec = <0x3b>;
adi,dsi-lanes = <4>;
adi,dsi-channel = <1>;
video-mode = <34>; /* 1920x1080@30HZ */
bpp = <24>;
pd-gpios = <&lsio_gpio1 27 GPIO_ACTIVE_HIGH>;
interrupt-parent = <&lsio_gpio1>;
interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
status = "okay";
port {
adv7535_0_in: endpoint {
remote-endpoint = <&mipi_dsi_bridge0_out>;
};
};
};
};
&mipi0_dphy {
status = "okay";
};
&mipi0_dsi_host {
status = "okay";
ports {
port@1 {
reg = <1>;
mipi_dsi_bridge0_out: endpoint {
remote-endpoint = <&adv7535_0_in>;
};
};
};
};
I am not able to probe the driver, getting this error "i2c i2c-0: ADV7535 not found".
root@imx8dxccu:~# dmesg | grep i2c
[ 1.853342] i2c /dev entries driver
[ 2.327908] imx-lpi2c 5a800000.i2c: can't get the TX DMA channel, error -19!
[ 2.334994] imx-lpi2c 5a800000.i2c: error -ENODEV: dma setup error -19, use pio
[ 5.681370] i2c i2c-0: ADV7535 not found
[ 6.745181] i2c i2c-0: LPI2C adapter registered
But, i2c slave is detected using i2cdetect tool.
root@imx8dxccu:~# i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x08-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30: -- -- -- -- -- -- -- -- 38 39 3a 3b 3c 3d 3e 3f
40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70: 70 71 UU 73 74 75 76 77
root@imx8dxccu:~#
Can you please help me here.