i.MX6 max11801 touchscreen can't work

cancel
Showing results for 
Search instead for 
Did you mean: 

i.MX6 max11801 touchscreen can't work

Jump to solution
2,884 Views
seanchen
Contributor III

Dear All,

I'm used i.MX28 LCD module(Seiko 4.3" WVGA) on I.MX6 EVK connect to DISP0(J504).

The LCD is work but the seiko touchscreen didn't work.

The driver of max11801 default is enable.

The function max11801_ts_interrupt of max11801_ts.c is enter when I touch the seiko touch screen.


Could you tell me what are we need to modify of code to enable max11801.


Sean

Labels (2)
1 Solution
668 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello,Sean,

     Please check 2 files :

(1)Open linux/arch/arm/mach-mx6/board-mx6dl_sabresd.h

Check if there are these 2 lines in static iomux_v3_cfg_t mx6dl_sabresd_pads[]:

/* TS_INT - MAX11801 */

MX6DL_PAD_EIM_D26__GPIO_3_26,

(2)Open linux/arch/arm/mach-mx6/board-mx6q_sabresd.h

Check if there are these 2 lines in static iomux_v3_cfg_t mx6q_sabresd_pads[]

/* TS_INT - MAX11801 */

MX6DL_PAD_EIM_D26__GPIO_3_26,

Note, From i.mx6q BSP file board-mx6q_sabresd.c, we can see IOMUX pins in function "static void __init mx6_sabresd_board_init(void)"

.....

if (cpu_is_mx6q())

  mxc_iomux_v3_setup_multiple_pads(mx6q_sabresd_pads,

   ARRAY_SIZE(mx6q_sabresd_pads));

else if (cpu_is_mx6dl()) {

  mxc_iomux_v3_setup_multiple_pads(mx6dl_sabresd_pads,

   ARRAY_SIZE(mx6dl_sabresd_pads));

}

......

So your questions should be generated by IOMUX of EIM_D26  .

If you find no IOMUX for this pin , add it please !

Regards,

Weidong

View solution in original post

12 Replies
668 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello,Sean,

     Did you add "calibration" parameter in u-boot environment ?

Regards,

Weidong

0 Kudos
668 Views
seanchen
Contributor III

Dear Weidong Sun,

I tried same max11801_ts.c code for i.MX6Q is work.

But for i.MX6DL isn't work.

I can't understand what's different between this two EVK(6DL and 6Q)

0 Kudos
668 Views
Jiandong_li
Contributor I

Hello sean,

It'seemed you have solved this problem on MX6Q board, what's code you changed,Could you tell me?Thanks

I tried same max11801_ts.c code for i.MX6Q is work.

But for i.MX6DL isn't work.

I can't understand what's different between this two EVK(6DL and 6Q)

0 Kudos
668 Views
seanchen
Contributor III

Dear Jiandong,

For this issue I'm still trying.

My Seiko 4.3 LCD is broke, I'm waiting for neq Seiko LCD.

Do you have any idea's?

Sean

0 Kudos
668 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello,Sean,

      Freescale released 3 types of EVK, they are SDB,SDP & AI board, but they are all based on i.MX6Q, Where did you buy EVK board based on i.MX6DL ? Would you like to share it's schematic with me ? Let me see !

Regards,

Weidong

0 Kudos
668 Views
seanchen
Contributor III

Hi Weidong Sun,

The board name is MCIMX6DL-SDP.

You could find schematic in the FSL website.

Sean

0 Kudos
668 Views
weidong_sun
NXP TechSupport
NXP TechSupport


Hello,Sean,

     Sorry ! Because I focus on i.mx6Q , I didn't notice this SDP board. Yes, I checked touch circuit and compared it with mx6q-SDP board, they are same .

     When you use touch screen on i.mx6dl-sdp board, could you find if CPU responses interrupt from MAX11801 ?

Regards,

Weidong

0 Kudos
668 Views
seanchen
Contributor III

Dear Weidong Sun,

I'm very appreciate your help,

I checked there is no interrupt generate form MAX11801 when I touch touchscreen.

The XP XN YP YN has signal output form touchscree when I touch.

But MAX11801 no interrupt generate.

Sean

0 Kudos
669 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello,Sean,

     Please check 2 files :

(1)Open linux/arch/arm/mach-mx6/board-mx6dl_sabresd.h

Check if there are these 2 lines in static iomux_v3_cfg_t mx6dl_sabresd_pads[]:

/* TS_INT - MAX11801 */

MX6DL_PAD_EIM_D26__GPIO_3_26,

(2)Open linux/arch/arm/mach-mx6/board-mx6q_sabresd.h

Check if there are these 2 lines in static iomux_v3_cfg_t mx6q_sabresd_pads[]

/* TS_INT - MAX11801 */

MX6DL_PAD_EIM_D26__GPIO_3_26,

Note, From i.mx6q BSP file board-mx6q_sabresd.c, we can see IOMUX pins in function "static void __init mx6_sabresd_board_init(void)"

.....

if (cpu_is_mx6q())

  mxc_iomux_v3_setup_multiple_pads(mx6q_sabresd_pads,

   ARRAY_SIZE(mx6q_sabresd_pads));

else if (cpu_is_mx6dl()) {

  mxc_iomux_v3_setup_multiple_pads(mx6dl_sabresd_pads,

   ARRAY_SIZE(mx6dl_sabresd_pads));

}

......

So your questions should be generated by IOMUX of EIM_D26  .

If you find no IOMUX for this pin , add it please !

Regards,

Weidong

668 Views
Raana
Contributor III

Hi Weidong,

I am also working on MX6Duallite / solo SabreSD based customer board

I have some problem in Touch screen (max11801)

Touch screen is working fine in in 7" LCD (WVGA 600 x 480)

but the same driver is not working proper in 10" LVDS (SVGA 800 x 600)

NOTE:

Touch is working but it's not proper.

when i touch the left corner of the LVDS, it's not showing (0,0) some other values are coming

If i touch anywhere of the LVDS, the cursor is taking place in the touching part.

when i left the touch, the cursor is going back to the center of the LVDS

What is the issue ???

Thanks in Advance

Regards,

J.P.Raja

0 Kudos
668 Views
bellzhong
Contributor II

Hi Raana,

I have experienced the same problem on MX6Q-SDB Board. Max11801 was configured as Autonomous mode.

If i touch anywhere of the LVDS, the cursor is taking place in the touching part.

when i left the touch, the cursor is going back to the center of the LVDS.

I spent a few time to identify the problem and fixed it by increasing Rough and Fine pullup time.

/* Rough pullup time (5mS), Fine pullup time (5ms)  */

  max11801_write_reg(client, TOUCH_DETECT_PULLUP_CONF_REG, 0xAA);

Hope that help you.

0 Kudos
668 Views
Jiandong_li
Contributor I

Hello,

I have experience same problem on MX6Q-SDB Board and Seiko 4.3" WVGA panel,and add the following code in the linux/arch/arm/mach-mx6/board-mx6q_sabresd.h

* TS_INT - MAX11801 */

MX6Q_PAD_EIM_D26__GPIO_3_26,

The touchscreen  still not work. Could you help on this case?

0 Kudos