0

我可以使用 alsa API 检测耳机的插入和移除吗?我应该使用哪个 API?我的内核是在 ARM 上运行的 3.0 Linux。

4

1 回答 1

3

正是想要这个功能用于嵌入式项目,我做了一些调查并得出结论(大约 6 个月前)ALSA 中没有任何通用支持插孔插入检测。

有趣的是,我确实在我使用的编解码器驱动程序 (tlv310aic3xxx) 中找到了耳机(和麦克风)检测支持,但似乎没有被插入任何上层。我怀疑存在的原因是Android。

基本上有两种添加这种支持的方法:

  1. 添加对编解码器驱动程序的支持 - 可能会暴露sysfs用户空间中的某些东西可以阻止的节点。

  2. 强制访问挂起编解码器的 I2C 总线(编解码器驱动程序通常“拥有”设备)并从用户空间对相关寄存器进行编程。

您可能会面临一个额外的架构问题,即虽然编解码器可以检测插入事件,但它需要某种方式来中断 CPU。tlv310aic3xxx 器件具有可编程 GPIO 引脚,可以连接到主 CPU 上的中断线(如果在嵌入式平台上,这将是另一条 GPIO 线)。没有这个,你需要轮询它。

于 2013-01-25T16:19:52.097 回答