mx28 2.6.35 touch can not interrupt??

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

mx28 2.6.35 touch can not interrupt??

Jump to solution
854 Views
HaohuaQIN
Contributor III

Hi all,

I'm use L2.6.35,use the EVK CONFIG.Use the mxs-ts touchscreen driver.

Below is the console:

[root@qhh /]#cat /proc/bus/input/devices

I: Bus=0000 Vendor=0000 Product=0000 Version=0000

N: Name="MXS touchscreen"

P: Phys=

S: Sysfs=/devices/virtual/input/input0

U: Uniq=

H: Handlers=event0 evbug

B: EV=b

B: KEY=0

B: ABS=1000003

[root@qhh /]#cat /proc/interrupts

           CPU0

  6:          0           -  pswitch

10:          0           -  mxs_ts_touch

21:          0           -  mxs_ts_dev

38:          0           -  fb_irq

39:          0           -  mxs-pxp

41:          0           -  GPMI NFC BCH Interrupt

47:        125           -  DebugUART

48:       5692           -  i.MX/mxs Timer Tick

52:          0           -  dcp

53:          6           -  dcp

68:          2           -  mxs-i2c

69:          0           -  mxs-i2c

82:          0           -  mxs-mmc dma

85:          0           -  mxs-spi.0

88:       3090           -  GPMI NFC DMA Interrupt

92:         29           -  fsl ehci pre interrupt, ehci_hcd:usb2

93:          0           -  fsl-usb2-otg, fsl ehci pre interrupt, ehci_hcd:usb1, fsl-usb2-udc

94:          0           -  usb_wakeup

95:          0           -  usb_wakeup

96:          0           -  mxs-mmc error

99:          0           -  mxs-spi.0

101:       4492           -  fec

102:          0           -  fec

110:          0           -  mxs-i2c

111:          3           -  mxs-i2c

Err:          0

when I touch the screen,and cat the event0

[root@qhh /]#cat /dev/input/event0

nothing print.

So. I use printk function to print the value of mxs-ts.c(the values of ts_handler(),and mxs_ts_probe())

I print the info->touch_irq,info->device_irq,and HW_LRADC register use the following function:

printk("info->touch_irq=%x\n",info->touch_irq);

printk("info->device_irq=%x\n",info->device_irq);

for(i=0;i<0x180;i+=0x10)

{

  printk("info->base3 addr=%x,=%x\n",info->base+i,__raw_readl(info->base+i));

}

I also add printk("ts_handler1\n") at the begging of ts_handler().

The console print:

input: MXS touchscreen as /devices/virtual/input/input0

info->touch_irq=a (is right )

info->device_irq=15(right)

info->base3 addr=f0050000,=800000   

info->base3 addr=f0050010,=1200000

info->base3 addr=f0050020,=8000

info->base3 addr=f0050030,=0

info->base3 addr=f0050040,=1fff0001   (RADC Status Register,the bit "0" ia always 1,I think there is someing is wrong,because I do not touch the thouscreen)

info->base3 addr=f0050050,=0

info->base3 addr=f0050060,=0

info->base3 addr=f0050070,=0

info->base3 addr=f0050080,=0

info->base3 addr=f0050090,=0

info->base3 addr=f00500a0,=0

info->base3 addr=f00500b0,=0

info->base3 addr=f00500c0,=0

info->base3 addr=f00500d0,=0

info->base3 addr=f00500e0,=0

info->base3 addr=f00500f0,=3c000008

info->base3 addr=f0050100,=0

info->base3 addr=f0050110,=43210000

info->base3 addr=f0050120,=0

info->base3 addr=f0050130,=80

info->base3 addr=f0050140,=7a543210

info->base3 addr=f0050150,=0

info->base3 addr=f0050160,=0

info->base3 addr=f0050170,=1030000

I find that in function mxs_ts_probe(),when the function enter_state_touch_detect(info) is executed,and then  the RADC Status Register is always 1fff0001,

The function ts_handler() is never be executed in linux boot time,and I touch the touchscreen when cat /dev/input/event0 ,it is also never be executed.

The touchscreen hardware is absolutely ok.

Thanks !!

Labels (1)
Tags (2)
0 Kudos
1 Solution
531 Views
HaohuaQIN
Contributor III

The problem is solved.

The problem is SPI3.

in struct resource ssp3_resources[] ,must be disable this

  {

  .start = MXS_DMA_CHANNEL_AHB_APBH_SSP3,

  .end = MXS_DMA_CHANNEL_AHB_APBH_SSP3,

  .flags = IORESOURCE_DMA,

  },

I don't know why??

View solution in original post

0 Kudos
2 Replies
532 Views
HaohuaQIN
Contributor III

The problem is solved.

The problem is SPI3.

in struct resource ssp3_resources[] ,must be disable this

  {

  .start = MXS_DMA_CHANNEL_AHB_APBH_SSP3,

  .end = MXS_DMA_CHANNEL_AHB_APBH_SSP3,

  .flags = IORESOURCE_DMA,

  },

I don't know why??

0 Kudos
531 Views
HaohuaQIN
Contributor III

On the same hardware board,I used the old 2.6.35 kernel,the touch is ok.,and uboot use the same one.

I use 5V only supply,

0 Kudos