[英]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.