buhui912 发表于 2016-8-3 14:59:35

问下firefly-rk3288 板子硬件上有无实现耳机 hook key(线控按键)功能



我看 Android 4.4 sdk中firefly-rk3288.dts 里提到:

rockchip_headset {
                compatible = "rockchip_headset";
                headset_gpio = <&gpio0 GPIO_C2 GPIO_ACTIVE_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&gpio0_c2>;
                io-channels = <&adc 2>;
       /*
               hook_gpio = ;
               hook_down_type = ; //interrupt hook key down status
                */      
       };

结合 drivers/headset_observe/rockchip_headset_core.crk_headset_irq_hook_adc.c 发现 hook key的实现是通过 mic pin直接连向ADC转换,然后cpu轮询ADC channel 2,得知有无key 按下。

但是我看demo板的硬件图,并没有发现ADC channel2 中接有其他地方引出来的PIN脚,想知道硬件上 耳机 hook key 功能怎么实现啊,应该跟codec没有关系吧。

麻烦谁知道的,回答下,谢谢了。

zhansb 发表于 2016-8-3 16:02:44

跟硬件了解过了,开发板硬件上不支持线控功能

zhansb 发表于 2016-8-3 16:03:06

本身跟codec没关系,只要按键驱动上就可以

buhui912 发表于 2016-8-3 16:29:12

谢谢回复,非常感谢。那如果要是实现hook key的话,软件我已经代码了,读ADC转换的代码部分都可以找到。
硬件方面,如果是轮询的话,是否要把mic pin 脚接到ADC转换器上,然后轮询里面通道。
中断实现的话,因为mic pin是模拟信号,是否还要经过ADC转换,接向CPU,用gpio_to_irq 转换成中断实现啊。
因为耳机线控按键时,应该只有mic pin脚电压端在变化,所以只能处理这个pin脚电压变化,感知key 按下。

谁懂耳机hook key实现,大家可以讨论下,谢谢。
页: [1]
查看完整版本: 问下firefly-rk3288 板子硬件上有无实现耳机 hook key(线控按键)功能