Drivers for Hardware That Cannot Announce Itself
Devices soldered into a board have no bus to enumerate them, so firmware describes them in a device tree: a node giving the hardware's address, its interrupt, and a compatible string naming what it is. A platform driver publishes a table of those strings and is probed when a matching node exists. The Rust interface is deliberately the same shape as the card-bus one, probe, id table, device-managed resources, which is the point: learn one bus and the others are mostly renaming. Most drivers on phones, routers and single-board computers are this kind.
Questions this Concept answers
- Why do devices soldered onto a board need a device tree at all, when card-bus devices do not?
The Device Tree for Describing Non-Discoverable Hardware in Embedded Linux
Video tutorial: The Device Tree for Describing Non-Discoverable Hardware in Embedded Linux