UP Board: issue adding touchscreen device support via ACPI overlay

wangyafei
wangyafei New Member Posts: 3
edited July 2017 in UP Board Linux
Hi,
I want to add a touchscreen driver to ublinux. I want to add my touchscreen device under the i2c1 bus and do the following things:
1. Extract ACPI tables cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
2. Decompile: iasl -d dsdt.dat
3. Add the following ASL code to dsdt.dsl
Device (I2C2)                                                           
   {                                                                       
            Name (_HID, "808622C1")  // _HID: Hardware ID                       
            Name (_CID, "808622C1")  // _CID: Compatible ID  
            ...
            ...
            Device (TCS0)          /* add my touchscreen device here*/                                             
            {                                                                   
                Name (_ADR, Zero)  // _ADR: Address                             
                Name (_HID, "GDIX1001")  // _HID: Hardware ID                   
                Name (_CID, "GDIX1001")  // _CID: Compatible ID                 
                Name (_S0W, Zero)  // _S0W: S0 Device Wake State                
                Method (_PS3, 0, Serialized)  // _PS3: Power State 3            
                {                                                               
                }                                                               
                                                                                
                Method (_PS0, 0, Serialized)  // _PS0: Power State 0            
                {                                                               
                }                                                               
                                                                                
                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {                                                               
                    Name (WBUF, ResourceTemplate ()                             
                    {                                                           
                        I2cSerialBus (0x0014, ControllerInitiated, 0x00061A80,  
                            AddressingMode7Bit, "\\_SB.I2C2",                   
                            0x00, ResourceConsumer, ,                           
                            )                                                   
                        GpioInt (Edge, ActiveLow, Shared, PullDefault, 0x0000,  
                            "\\_SB.GPO2", 0x00, ResourceConsumer, ,             
                            )                                                   
                            {   // Pin list                                     
                                0x0000                                          
                            }                                                   
                        GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                            "\\_SB.GPO2", 0x00, ResourceConsumer, ,             
                            )                                                   
                            {   // Pin list                                     
                                0x0001                                          
                            }                                                   
                    })                                                 
                    Return (WBUF) /* \_SB_.PCI0.I2C2.TCS0._CRS.WBUF */          
                }                                                               
                                                                                
                Method (_STA, 0, NotSerialized)  // _STA: Status                
                {                                                               
                    Return (0x0F)                                               
                }                                                               
                                                                                
                Method (INTI, 0, Serialized)                                    
                {                                                               
                }                                                               
                                                                                
                Method (INTO, 1, Serialized)                                    
                {                                                               
                }                                                               
                                                                                
                Method (INTS, 0, Serialized)                                    
                {                                                               
                }                                                               
            }                                                                   
        }
4. Recompile: iasl -tc dsdt.dsl

And now I have some questions about this,
1. Can I add my touchscreen device by the above steps?
2. If can, There have two gpio pins used by touchscreen device, one is irq-pin and another is reset-pin, they may described like following with ASL code:
GpioInt (Edge, ActiveLow, Shared, PullDefault, 0x0000,   "\\_SB.GPO2", 0x00, ResourceConsumer, , )                                                   
     {                                      
           0x0000                                   
     }                                                   
     GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, "\\_SB.GPO2", 0x00, ResourceConsumer, ,  )                                                   
      {                                     
            0x0001
      }
I want to use GPIO4 as irq-pin and GPIO5 as reset-pin in the "up-board 40-pin", can anyone tell me how to modify the above ASL code?

Comments