Touchscreen driver for LVDS screen

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Touchscreen driver for LVDS screen

2,230 Views
prathameshghane
Contributor II

Hello,

I am working on Freescale i.MX6 SABRE AUTO board. I am using the L3.35.0_4.1.0 BSP.

Can you let us know which driver is to be used for eGALAX LVDS touchscreen.

Also I would like to know the corresponding settings in the xorg configuration files.

Xorg server version is Xorg 13.0.

Thanks and regards.

Prathamesh

Labels (4)
0 Kudos
3 Replies

1,173 Views
edelm
Contributor III

As far as i know, the LVDS and Touchscreen is two separate instances.

You need to compile the kernel with eGALAX Touchscreen support.

If you don't have it - then add it.

To do this you need to read how to add new hardware on i2c bus in board.c file and get the driver from the manufacturer (or use from another 3.0.x kernel)

0 Kudos

1,173 Views
prathameshghane
Contributor II

Hi Max,

Thanks for your response.

>You need to compile the kernel with eGALAX Touchscreen support

It is already enabled in the kernel.

CONFIG_TOUCHSCREEN_EGALAX=y

CONFIG_TOUCHSCREEN_EGALAX_SINGLE_TOUCH=y

Also, I have enabled following options in my xorg.conf file.

Section "InputClass"

        Identifier "evdev touchscreen catchall"

        MatchIsTouchScreen "on"

        MatchDevicePath "/dev/input/event*"

        Driver "evdevmultitouch"

        Option "MultiTouch"    "3"

We, also tried using Driver "evdev" instead of "evdevmultitouch", but no success.

The pointer appears on the screen, but its integration is not proper,we are not able to open anything in the menu screen with it.

Any idea why this could be happening?

Regards,

Prathamesh

0 Kudos

1,173 Views
edelm
Contributor III

Well, you forgot to add to the board init file (board_yourboardname.c) your i2c device.

The touchscreen has driver ic, the ic has it's i2c address.

Thus you have to check if your ic has the same address with the address in the i2c_board_info of the board-mx6q_sabreauto.c file of your kernel.

And make sure you have connected the touchscreen to the correct i2c bus, because as far as i see there are two of them in your board.

static struct i2c_board_info mxc_i2c2_board_info[] __initdata = {

        {

                I2C_BOARD_INFO("max7310", 0x30),

                .platform_data = &max7310_platdata,

        }, {

                I2C_BOARD_INFO("max7310", 0x32),

                .platform_data = &max7310_u39_platdata,

        }, {

                I2C_BOARD_INFO("max7310", 0x34),

                .platform_data = &max7310_u43_platdata,

        }, {

                I2C_BOARD_INFO("adv7180", 0x21),

                .platform_data = (void *)&adv7180_data,

        }, {

                I2C_BOARD_INFO("ov3640", 0x3c),

                .platform_data = (void *)&camera_data,

        },

        {

                I2C_BOARD_INFO("isl29023", 0x44),

                .irq  = gpio_to_irq(SABREAUTO_ALS_INT),

                .platform_data = &ls_data,

        },

        {

                I2C_BOARD_INFO("mma8451", 0x1c),

                .platform_data = (void *)&mma8451_position,

        },

};

static struct i2c_board_info mxc_i2c1_board_info[] __initdata = {

        {

                I2C_BOARD_INFO("egalax_ts", 0x04),

                .irq = gpio_to_irq(SABREAUTO_CAP_TCH_INT),

        }, {

                I2C_BOARD_INFO("mxc_hdmi_i2c", 0x50),

        }, {

                I2C_BOARD_INFO("ov5640_mipi", 0x3c),

                .platform_data = (void *)&ov5640_mipi_data,

        }, {

                I2C_BOARD_INFO("cs42888", 0x48),

                .platform_data = (void *)&cs42888_data,

        },

        {

                I2C_BOARD_INFO("si4763_i2c", 0x63),

        },

};

0 Kudos