| # Drivers rubric |
| |
| Caution: This page may contain information that is specific to the legacy |
| version of the driver framework (DFv1). Also the workflows documented on |
| this page may only be specific to the Fuchsia source checkout |
| (`fuchsia.git`) environment. |
| |
| ## Overview |
| |
| This document describes the rules for writing new drivers. |
| |
| ## Location |
| |
| Many drivers are located under /src/devices in folders named |
| according to the driver type. For instance |
| [/src/devices/clock/drivers](/src/devices/clock/drivers), |
| [/src/devices/usb/drivers](/src/devices/usb/drivers), etc. Some |
| functional areas include their drivers within their own directories, |
| for instance [/src/media/audio/drivers](/src/media/audio/drivers), |
| [/src/graphics/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](/src/devices), |
| named appropriately and include a drivers folder under it. |
| |
| ## OWNERS |
| |
| 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. |
| |
| ## Driver Info |
| |
| 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 = meta/<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](/build/drivers/areas.txt). For example, |
| [aml-g12-tdm-dai-info.json](/src/media/audio/drivers/aml-g12-tdm/meta/aml-g12-tdm-dai-info.json) |
| includes: |
| |
| ```json |
| { |
| "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][creating-a-new-drider]. |
| |
| |
| <!-- xrefs --> |
| |
| [creating-a-new-drider]: /docs/development/drivers/developer_guide/driver-development.md#creating_a_new_driver |