问下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没有关系吧。
麻烦谁知道的,回答下,谢谢了。
跟硬件了解过了,开发板硬件上不支持线控功能
本身跟codec没关系,只要按键驱动上就可以 谢谢回复,非常感谢。那如果要是实现hook key的话,软件我已经代码了,读ADC转换的代码部分都可以找到。
硬件方面,如果是轮询的话,是否要把mic pin 脚接到ADC转换器上,然后轮询里面通道。
中断实现的话,因为mic pin是模拟信号,是否还要经过ADC转换,接向CPU,用gpio_to_irq 转换成中断实现啊。
因为耳机线控按键时,应该只有mic pin脚电压端在变化,所以只能处理这个pin脚电压变化,感知key 按下。
谁懂耳机hook key实现,大家可以讨论下,谢谢。
页:
[1]