Touchscreen driver for LVDS screen

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Touchscreen driver for LVDS screen

2,665 次查看
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

标签 (4)
0 项奖励
回复
3 回复数

1,608 次查看
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 项奖励
回复

1,608 次查看
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 项奖励
回复

1,608 次查看
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 项奖励
回复