12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- ==================
- Device connections
- ==================
- Introduction
- ------------
- Devices often have connections to other devices that are outside of the direct
- child/parent relationship. A serial or network communication controller, which
- could be a PCI device, may need to be able to get a reference to its PHY
- component, which could be attached for example to the I2C bus. Some device
- drivers need to be able to control the clocks or the GPIOs for their devices,
- and so on.
- Device connections are generic descriptions of any type of connection between
- two separate devices.
- Device connections alone do not create a dependency between the two devices.
- They are only descriptions which are not tied to either of the devices directly.
- A dependency between the two devices exists only if one of the two endpoint
- devices requests a reference to the other. The descriptions themselves can be
- defined in firmware (not yet supported) or they can be built-in.
- Usage
- -----
- Device connections should exist before device ``->probe`` callback is called for
- either endpoint device in the description. If the connections are defined in
- firmware, this is not a problem. It should be considered if the connection
- descriptions are "built-in", and need to be added separately.
- The connection description consists of the names of the two devices with the
- connection, i.e. the endpoints, and unique identifier for the connection which
- is needed if there are multiple connections between the two devices.
- After a description exists, the devices in it can request reference to the other
- endpoint device, or they can request the description itself.
- API
- ---
- .. kernel-doc:: drivers/base/devcon.c
- :functions: device_connection_find_match device_connection_find device_connection_add device_connection_remove
|