I am working on IMX6QP with yocto rocko / Linux 4.14.24 and I am trying to use the ADV7513. My CPU board is a karo TX6QP.
On my hard : DISP0_output (IPU1) -> adv7513_in -> hdmi connector
Kernel config:
CONFIG_DRM = y
CONFIG_DRM_I2C_ADV7511 = m
dtb : in I2C section :
hdmi@39 {
compatible = "adi,adv7513";
reg = <0x39>;
interrupt-parent = <&gpio4>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
pd-gpio = <&gpio3 18 GPIO_ACTIVE_HIGH>;
adi,input-depth = <8>;
adi,input-colorspace = "rgb";
adi,input-clock = "1x";
adi,input-style = <1>;
adi,input-justification = "evenly";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 { /* DISP out */
reg = <0>;
adv7513_in: endpoint {
remote-endpoint = <&ipu1_di0_disp0>;
};
};
port@1 { /* HDMI out */
reg = <1>;
adv7513_out: endpoint {
remote-endpoint = <&hdmi_con>;
};
};
};
};
In main section:
hdmi-out0 {
status = "okay";
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con: endpoint {
remote-endpoint = <&adv7513_out>;
};
};
};
The ADV7513 does not up because it is not binded : the function "adv7511_bridge_attach" is never called.
What can I do to bind the encoder on DISP output ?
Any idea ?
rBeal
The problem was the binding of ipu1 and adv7511. Solved with :
display: disp0 {
compatible = "fsl,imx-parallel-display";
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_disp0_2>;
interface-pix-fmt = "rgb24";
bits-per-pixel = <32>;
bus-width = <24>;
status = "okay";
port@0 {
reg = <0>;
lcd_in: endpoint {
remote-endpoint = <&ipu1_di0_disp0>;
};
};
port@1 {
reg = <1>;
lcd_out: endpoint {
remote-endpoint = <&adv7511_in>;
};
};
The ipu1 is now binded on adv7511.
Solved