This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

EDT-FT5x06 and I2C problem



Hi there. I'm having lots of trouble when I want to use a capacitive touchscreen with my beaglebone black. I use this device tree overlay:

/dts-v1/;
/plugin/;
/ {
        compatible = "ti,beaglebone", "ti,beaglebone-black";
        part-number = "BB-BONE-TOUCH";
        version = "00A0";

        exclusive-use =
                /* the pin header uses */
                "P9.17",        /* i2c1_scl */
                "P9.18",        /* i2c1_sda */
                "P9.21",         /*wake up from host am33  to slave ft5x"
                "P8.18",         /*interrupt, def state mcasp0_ahclkx    , change to input pin gpio3_21*/

                /* the hardware ip uses */
                "i2c1";

        fragment@0 {
                target = <&am33xx_pinmux>;
                __overlay__
                   {
                      bb_i2c1_pins: pinmux_bb_i2c1_pins
                       {
                        pinctrl-single,pins = <
                        0x15c 0x72      /* i2c1_scl */
                        0x158 0x72      /* i2c1_sda*/
                        >;
                       } ;

                      edt_ft5x06_pins: pinmux_edt_ft5x06_pins
                      {
                       pinctrl-single,pins = <
                       0x08C 0x37 /* pin interrupt P8.18 (GPIO2_1) mode7 as gpio, enable input, enable input pullup*/
                       0x044 0x17 /* wake up pin control to slave from host: pullup,mode7 p9.23,gpio1_17 */
                       >;
                      };
                 };
                };

        fragment@1 {
                  target = <&i2c1>;       /* i2c1 is numbered correctly */
                __overlay__
                     {
                        status = "okay";
                        pinctrl-names = "default";
                        pinctrl-0 = <&bb_i2c1_pins>;
                        clock-frequency = <400000>;
                        #address-cells = <1>;
                        #size-cells = <0>;

                        edt-ft5x06@38
                        {
                        status =  "okay";
                        compatible = "edt,edt-ft5x06","edt,edt-ft5206";
                        pinctrl-names="default";
                        pinctrl-0=<&edt_ft5x06_pins>;
                        reg = <0x38>;
                        interrupt-parent = <&gpio2>;
                        interrupts = <1 1>;
                        wake-gpios = <&gpio1 17 0>; //3rd para:0 - active hig, 1-active low
			reset-gpios = <&gpio1 17 1>;
                        touchscreen-size-x = <800>;
                        touchscreen-size-y = <480>;
                        };

                     };
                  };
};

When I load it into the capemanager I get the following error:

"edt_ft5x06 1-0038: no platform data?"

When I cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pingroups it shows me the i2c pins but not the two gpio pins I want to use as interrupt and wake pin.

When I use i2cdetect -l, the i2c1 bus is listed and when i use i2cdetect -r 1 there is no device shown in the table. But when I touch the screen while I use i2cdetect -r 1 the something crashes and it gives me this error:

omap_i2c 4802a000.i2c: controller timed out

Does anyone have an idea what is going wrong?

Im using a debian image and 3.8.13 kernel version.

Thanks