繁体   English   中英

switch_dev_register的用法是什么?

[英]What is the use scenario of switch_dev_register

我想了解fsa9485驱动程序(USB开关)。 我遇到了Dock初始化代码:

switch_dev_register(&switch_dock)

switch_dock是类型的结构switch_dev它用于像附件检测例程和:

switch_set_state(&switch_dock, attached)

我推断如下:有两种类型的底座,一种是车载底座,另一种是桌面底座, switch_dev类用于在它们之间切换。

为什么我们需要switch_dev类? 该类如何区分两个不同的码头?

switch_dev_register函数使用sysfs注册设备并在/sys/创建文件。 Switch_set_state更新正在运行的内核中的一个创建文件中的值( state文件)。 所以在我的内核中,我可以通过读取文件“/ sys / devices / virtual / switch / dock / state”来查看状态。 State是1 deskdock ,2 cardock ,否则为0。 这只是将硬件信息传递给用户空间的简单方法。

必须在sysfs使用switch_dev类进行标准化。 驱动程序通过读取驻留在I2C总线上的fsa9485芯片的寄存器值来区分两个扩展坞。 请参见fsa9480_detect_dev中的fsa9480_detect_dev,其中驱动程序从模数转换器(ADC)和设备类型寄存器读取值以确定停靠类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM