1

我正在尝试了解 fsa9485 驱动程序(USB 开关)。在码头初始化代码中我遇到了:

switch_dev_register(&switch_dock)

switch_dock是一种类型的结构,switch_dev在附件检测例程中使用如下:

switch_set_state(&switch_dock, attached)

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

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

4

1 回答 1

3

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

有必要使用switch_dev该类进行标准化sysfs。驱动程序通过读取驻留在 I2C 总线上的 fsa9485 芯片的寄存器值来区分两个坞站。请参阅fsa9480_detect_devfsa9480.c 中的驱动程序从模数转换器(ADC)和设备类型寄存器读取值以确定坞站的类型。

于 2013-02-15T14:57:26.187 回答