Thursday, 15 April 2010

c - What is the use scenario of switch_dev_register -



c - What is the use scenario of switch_dev_register -

i trying understand fsa9485 driver(usb switch). there in dock initialization code came across:

switch_dev_register(&switch_dock)

switch_dock construction of type switch_dev , in accessory detection routine used like:

switch_set_state(&switch_dock, attached)

i inferring : there 2 types of dock 1 beingness auto dock , other beingness desk dock , switch_dev class switching between them.

why require switch_dev classes??. how class differentiates between 2 different dock?

the switch_dev_register function registers device sysfs , creates files in /sys/. switch_set_state updates value in 1 of created files on running kernel (the state file). in kernel can see state reading file "/sys/devices/virtual/switch/dock/state." state 1 deskdock, 2 cardock, , 0 otherwise. simple way of passing hardware info userspace.

it necessary utilize switch_dev class standardization in sysfs. driver differentiates between 2 docks reading register values fsa9485 chip resides on i2c bus. see fsa9480_detect_dev in fsa9480.c driver reads values analog digital converter (adc) , device type register determine type of dock.

c linux-kernel linux-device-driver

No comments:

Post a Comment