[Letux-kernel] twl gpios / headset detect on gta04a5

H. Nikolaus Schaller hns at goldelico.com
Mon Sep 24 22:31:49 CEST 2018


> Am 24.09.2018 um 20:35 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> 
> 
>> Am 24.09.2018 um 19:22 schrieb Andreas Kemnade <andreas at kemnade.info>:
>> 
>> On Mon, 24 Sep 2018 12:56:21 +0200
>> Andreas Kemnade <andreas at kemnade.info> wrote:
>> 
>>> On Sun, 23 Sep 2018 21:23:50 +0200
>>> "H. Nikolaus Schaller" <hns at goldelico.com> wrote:
>>> 
>>> 
>>>>> 
>>>>> we are failing here:
>>>>> sound/soc/soc-jack.c:
>>>>>              ret = request_any_context_irq(gpiod_to_irq(gpios[i].desc),
>>>>>                                            gpio_handler,
>>>>>                                            IRQF_TRIGGER_RISING |
>>>>>                                            IRQF_TRIGGER_FALLING,
>>>>>                                            gpios[i].name,
>>>>>                                            &gpios[i]);
>>>>> 
>>>>> Maybe irq does not work for twl gpio.    
>>>> 
>>>> It should...
>>>> AFAIR, there are card-detect gpios (which we do not use in GTA04) but other OMAP3 devices use them.
>>>> But I don't know if they are edge triggered?
>>>> 
>>> well, we need to compile twl4030-gpio statically
>>>       /* maybe setup IRQs */
>>>       if (is_module()) {
>>>               dev_err(&pdev->dev, "can't dispatch IRQs from modules\n");
>>>               goto no_irqs;
>>>       }
>>> 
>> 
>> # evtest /dev/input/event7 
>> Input driver version is 1.0.1
>> Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
>> Input device name: "gta04 Headset Jack"
>> Supported events:
>> Event type 0 (EV_SYN)
>> Event type 5 (EV_SW)
>>   Event code 2 (SW_HEADPHONE_INSERT)
>>   Event code 4 (SW_MICROPHONE_INSERT)
>> Properties:
>> Testing ... (interrupt to exit)
>> Event: time 1537809620.799621, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 0
>> Event: time 1537809620.799621, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 0
>> Event: time 1537809620.799621, -------------- EV_SYN ------------
>> Event: time 1537809624.390625, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 1
>> Event: time 1537809624.390625, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 1
>> Event: time 1537809624.390625, -------------- EV_SYN ------------
>> Event: time 1537809625.699829, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 0
>> Event: time 1537809625.699829, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 0
>> Event: time 1537809625.699829, -------------- EV_SYN ------------
>> Event: time 1537809626.770538, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 1
>> Event: time 1537809626.770538, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 1
>> Event: time 1537809626.770538, -------------- EV_SYN ------------
>> Event: time 1537809627.611450, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 0
>> Event: time 1537809627.611450, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 0
>> Event: time 1537809627.611450, -------------- EV_SYN ------------
> 
> Cool!
> 
> I'll test asap.

Yes, I can reproduce it on GTA04A5 :)

root at letux:~# evtest /dev/input/event7
Input driver version is 1.0.1
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
Input device name: "gta04 Headset Jack"
Supported events:
  Event type 0 (EV_SYN)
  Event type 5 (EV_SW)
    Event code 2 (SW_HEADPHONE_INSERT)
    Event code 4 (SW_MICROPHONE_INSERT)
Properties:
Testing ... (interrupt to exit)
Event: time 946684970.648135, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 1
Event: time 946684970.648135, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 1
Event: time 946684970.648135, -------------- EV_SYN ------------
Event: time 946684975.188089, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 0
Event: time 946684975.188089, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 0
Event: time 946684975.188089, -------------- EV_SYN ------------
^C
root at letux:~#

Now we are just missing a fix/addition for the /etc/udev/rules.d/input.rules so that
there is a stable device name.

BR,
Nikolaus



More information about the Letux-kernel mailing list