Firefly开源社区

打印 上一主题 下一主题

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

55

积分

0

威望

0

贡献

技术小白

积分
55

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

发表于 2016-8-3 14:59:35      浏览:7697 | 回复:3        打印      只看该作者   [复制链接] 楼主


我看 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.c  rk_headset_irq_hook_adc.c 发现 hook key的实现是通过 mic pin直接连向ADC转换,然后cpu轮询ADC channel 2,得知有无key 按下。

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

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

回复

使用道具 举报

2918

积分

56

威望

46

贡献

高级创客

Rank: 6Rank: 6

积分
2918

优秀版主论坛元老

发表于 2016-8-3 16:02:44        只看该作者  沙发
跟硬件了解过了,开发板硬件上不支持线控功能
回复

使用道具 举报

2918

积分

56

威望

46

贡献

高级创客

Rank: 6Rank: 6

积分
2918

优秀版主论坛元老

发表于 2016-8-3 16:03:06        只看该作者  板凳
本身跟codec没关系,只要按键驱动上就可以
回复

使用道具 举报

55

积分

0

威望

0

贡献

技术小白

积分
55
发表于 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实现,大家可以讨论下,谢谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表