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.

AM335x/AM437x Touchscreen drivers



Hi all:

   I'm helping the customer to port the Resistive touch driver onto AM335.

   By knowing the AM437 is using the Resistive touch driver, so, I want to reference it.

   May you tell me where is the driver path of the AM437?

   Do we have the resistive touch panel driver porting guide for AM335?

   Is the driver/input/touchscreen the path for AM437 as well?

   Since those 2 platforms are using the different touch panel driver, so, I want to know where is the correct driver code for each of them.

   Please comment.

BR Rio

  • Hi Biser:
    #1. I think the resistive TP and the captive TP driver is not the same.
    so, do you mean the "Touch screen / MFD / ADC driver" those 3 parts are the one we need to modify for the resistive TP?

    #2. Do we have a document to address the driver arch difference in between the resistive vs captive TP?
    or, do you think those 2 are having the same arch design in Linux?

    #3. As the wiki mentioned this, do we have the detial document for this? ==> External hardware events can trigger an ADC conversion. However, if the resistive touchscreen is used no hardware event can be used to trigger the start of conversion for the general purpose ADC.

    BR Rio

  • I will ask the software team to comment.
  • Hi,

    NOTE: I refer to AM437x GP EVM & AM335x GP evm in the answers bellow. 

    First of all:

    Rio Chan said:
    By knowing the AM437 is using the Resistive touch driver, so, I want to reference it. May you tell me where is the driver path of the AM437?

    According to AM437x GP EVM Hardware User Guide (http://processors.wiki.ti.com/index.php/AM437x_General_Purpose_EVM_HW_User_Guide#Capacitive_Touch_LCD), the board uses capacitive touch screen, NOT resistive. 

    Now as for your questions: 

    Rio Chan said:
    #1. I think the resistive TP and the captive TP driver is not the same.
    so, do you mean the "Touch screen / MFD / ADC driver" those 3 parts are the one we need to modify for the resistive TP?

    Correct TP drivers are different, the resisitive touch screens on AM335x are controlled by the ti,lcdc driver & the ti tscadc. The paths to those drivers are: 
       Panel timings are handled by ti, lcdc =>  drivers/gpu/drm/tilcdc/tilcdc_panel.c 

       Touchscreen driver is ti,tscadc => drivers/input/touchscreen/ti_am335x_tsc.c

    For AM437x devices: 
        Panel timings are handled by panel-dpi => drivers/video/fbdev/omap2/displays-new/panel-dpi.c

        Touchscreen driver is pixcir_ts => drivers/input/touchscreen/pixcir_i2c_ts.c 

    Rio Chan said:

    #2. Do we have a document to address the the driver arch difference in between the resistive vs captive TP?
    or, do you think those 2 are having the same arch design in Linux?

    They have similar, but not the same architecture. See the bellow wiki links: 
       http://processors.wiki.ti.com/index.php/Processor_Linux_SDK_Graphics_and_Display 

    Hope this helps. 

    Best Regards, 
    Yordan

  • Hi Yordan:

       The section as the below you mentioned is very helpful.

       Do we have more detail document to address how those functions in those drivers to connect with the upper layer?

       Do we have the TRM slide to address those SW arch? Or do we have the detail SW documentation?

    BR Rio

    Correct TP drivers are different, the resisitive touch screens on AM335x are controlled by the ti,lcdc driver & the ti tscadc. The paths to those drivers are: 
       Panel timings are handled by ti, lcdc =>  drivers/gpu/drm/tilcdc/tilcdc_panel.c 

       Touchscreen driver is ti,tscadc => drivers/input/touchscreen/ti_am335x_tsc.c

    For AM437x devices: 
        Panel timings are handled by panel-dpi => drivers/video/fbdev/omap2/displays-new/panel-dpi.c

        Touchscreen driver is pixcir_ts => drivers/input/touchscreen/pixcir_i2c_ts.c 

  • Hi,

       

    Rio Chan said:
       Do we have more detail document to address how those functions in those drivers to connect with the upper layer?
     

     Unfortunately, I don't have anything else besides the wiki link provided in my previous post.  

      

    Rio Chan said:
    Do we have the TRM slide to address those SW arch? Or do we have the detail SW documentation?

    That would be the DSS chapter in the device TRM: 
      for AM437x => Chapter 13 Display Subsystem (DSS) & Chapter 11 ADC0: Touchscreen Controller 

      for AM335x => Chapter 13 LCD Controller & Chapter 12 Touchscreen Controller 

    Best Regards, 
    Yordan

  • Hi Yordan:
    Sorry, I need to confirm again.

    [Yordan]
    the resisitive touch screens on AM335x are controlled by the ti,lcdc driver & the ti tscadc.
    The paths to those drivers are:
    Panel timings are handled by ti, lcdc => drivers/gpu/drm/tilcdc/tilcdc_panel.c
    Touchscreen driver is ti,tscadc => drivers/input/touchscreen/ti_am335x_tsc.c

    [Rio]
    So the tilcdc_panel.c is for the "disaply" panel or "Resisitive" touch panel?

    [[Yordan]
    For AM437x devices:
    Panel timings are handled by panel-dpi => drivers/video/fbdev/omap2/displays-new/panel-dpi.c
    Touchscreen driver is pixcir_ts => drivers/input/touchscreen/pixcir_i2c_ts.c

    [Rio]: The "panel-dpi" you address here is for "display panel" or "resisitive" panel?
    The "pixcir-i2s_ts.c" is for "captive touch panel"? or "Resisitive"?

    Once again, the touch panel we port is the "captive" touch panel on the AM335.
    May you guide us what are the related file we need to modify for "captive touch"?


    Thank you very much.
    BR Rio