This document describes the rules for writing new drivers.
Many drivers are located under /src/devices in folders named according to the driver type. For instance /src/devices/clock/drivers, /src/devices/usb/drivers, etc. Some functional areas include their drivers within their own directories, for instance /src/media/audio/drivers, /src/graphics/drivers, etc. New drivers must be located alongside other drivers of the same type. If there is no existing folder were a new driver should be logically placed under, then a new folder needs to be added to /src/devices, named appropriately and include a drivers folder under it.
As with any other code in Fuchsia an OWNER must approve the addition of a new driver. The OWNERS file to check for approval depends on the location where the driver is added.
When adding a driver to the Fuchsia tree, a driver info file must be created, and the fuchsia_driver_component
target must include an info = <some-driver-info.json>
entry. The JSON file listed in info
must include at least a short_description
text and an areas
list with entries from areas. For example, aml-g12-tdm-dai-info.json includes:
{ "short_description": "AMLogic g12 audio subsystem DAI TDM driver", "manufacturer": "AMLogic", "families": [ "g12" ], "models": [ "S905D2", "T931", "S905D3" ], "areas": [ "Media", "Audio" ] }
Note that this file automatically created by fx create driver
, see Creating a new driver.