AnsweredAssumed Answered

imx6q-sabrelite (bdsl) dtb i2c

Question asked by shlomi perlman on Dec 21, 2015
Latest reply on Dec 24, 2015 by shlomi perlman

HI,

 

im trying to register an i2c camera sensor and when i set the device in the dtb like this:

 

gc0309: gc0309@21 {

        compatible = "fsl,gc0309";

        reg = <0x21>;

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_gc0309>;

        clocks = <&clks 147>;

        clock-names = "csi_mclk";

        ipu_id = <1>;

        csi_id = <0>;

        mclk = <24000000>;

        mclk_source = <0>;

        clock-frequency = <100000>;

    };

 

the device doesnt send i2c ACK.

 

if i don’t register the device then i can use the linux i2cset tool and get an ACK (successfully talk to the device).

 

also i'm setting :

 

pinctrl_gc0309: pinctrl_gc0309 {

            fsl,pins = <           

                MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20     0x00000000     /* P3 - should always be 0 - enable gc0309 camera sensor on I2C1*/

                MX6QDL_PAD_SD1_DAT0__GPIO1_IO16         0x000b0     /* disable gc0309 camera sensor LED on I2C1.*/

                MX6QDL_PAD_GPIO_8__GPIO1_IO08         0x000b0     /*R5 - turn to 0(reset) -> turn to 1(normal)*/

            >;

        };

 

I need to know how to select the ipu and csi properly, where is the clocks' list defined (currently 147 based on ov5642) and how to access these gpio's from the driver after they are initialized?

(as if to pull the reset up and down).

 

thanks !

Outcomes