我想知道是否可以为 3.5mm 插孔编写 Linux 驱动程序以将其用于非音频目的。 Linux内核如何识别设备插入3.5mm插槽?我可以使用 Linux 内核中的哪些接口来实现此目的?
答案1
该插孔是(可能是集成的)声卡的一部分,因此您必须为声卡编写一个驱动程序,将其视为声卡以外的东西。
答案2
并非所有 3.5 毫米插孔都能够检测插入的内容。插孔中需要一个额外的硬件触点(设计为在插入插头时接地)、一个上拉电阻以及与合适的 GPIO 输入引脚的连接然后可以用于检测。
ALSA 包含用于此类检测的编程接口,因为大多数 3.5 毫米插孔往往连接到声卡。如果您将此类插孔用于其他目的(例如作为替代串行端口连接器)并且它具有插头检测触点,您可以将其连接到硬件中任何合适的 GPIO(通用输入/输出)输入引脚。然后,如果插头检测引脚所连接的芯片尚未具有 GPIO 驱动程序,您可以首先为其编写一个通用 GPIO 驱动程序,然后在其之上编写特定于设计的插头检测驱动程序。