Search code examples
kernelyoctoimx6

ADV7513 on yocto - kernel 4.14


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


Solution

  • 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