Template:Linux Core Driver User's Guide Template

Do Not Copy
The real page name for your template should follow a naming convention of Linux_Core__Driver_User's_Guide where  is the IP block you are writing the user's guide for.

These User's Guides are created as a template so that they can be easily consumed by others into their documentation.

Driver Introduction
This section should answer the following questions:
 * 1) A link to the top level kernel user's guide http://processors.wiki.ti.com/index.php/Linux_Kernel_Users_Guide
 * 2) Which driver is being covered
 * 3) General description of the driver
 * 4) Latest release this documentation applies to. i.e. Kernel v3.12 or v3.15, etc

Supported Devices

 * List the
 * Supported Devices
 * Here

Supported Features
Example reference http://processors.wiki.ti.com/index.php/Linux_Core_MUSB_User%27s_Guide#Driver_Features_List. Doesn't contain everything but gives an idea.

Common Features

 * List of
 * Supported
 * Features


 * This should start with v3.12 and will increment from there. So this would be

Kernel Version y

 * List of Added Features
 * For first release there will not be another release
 * This will be a section to highlight just the latest release new features if any. So once a new release comes out what was in this section should be moved to the Common Features section.

This becomes an additive list where adding the common and version specific details will give you a total list of supported features

Unsupported Features/Limitations

 * List of
 * Unsupported
 * Features

The idea is here is that as new releases come out that have fixed features they are removed from the list.

Hardware Architecture

 * As an example see: http://processors.wiki.ti.com/index.php/AM335x_McSPI_Driver%27s_Guide#SPI_H.2FW_Architecture
 * This is currently an optional section. If you do not have this information we will work with HW apps to get it.

Driver Architecture

 * As an example see: http://processors.wiki.ti.com/index.php/AM335x_McSPI_Driver%27s_Guide#SPI_Driver_Architecture
 * This is an optional section

Source Location
This should point to the files that are part of the driver and where they are located in the kernel sources.

Kernel Configuration Options
This section should cover
 * 1) Whether the driver can be built into the kernel as a static module, dynamic module, or both.
 * 2) What configuration options need to be enabled for this driver.  This can be done as a list of configuration items to turn on in a menuconfig.  i.e. Device Drivers -> option -> sub option
 * 3) * Menu Config
 * 4) ** Example at http://processors.wiki.ti.com/index.php/AM335x_McSPI_Driver%27s_Guide#Building_into_Kernel
 * 5) If there are optional configurations (such as DMA vs. PIO for USB) then discuss these options and how/when to use them.

DT Configuration
This section should cover


 * 1) DT fragments for the driver
 * 2) * What pieces need to be defined in the DTS file for this driver to work
 * 3) * What are the fields in the DTS. Which should be modified when porting the driver to your configuration
 * 4) ** For example if there is pin data in the DT info this may need modification when porting

If the data is already documented in the kernel just provide a link to the kernel documentation.

Driver Usage
This section should cover


 * Driver modules to load and any dependencies
 * Sysfs entries and their purpose/usage
 * IOCTLs and their purpose/usage
 * Dev interfaces and their purpose/usage (i.e. IOCTLs or what to expect with read/write). Supported system calls.
 * Pointers to examples for using the driver
 * Some drivers have applications that provide examples on how to interact with the driver in user space

NOTE: Some drivers may not have a an interface that customers are expected to interact with in which case this section is not required. For example some of the PM drivers like AVS.

Additional Information
Links to additional documentation such as in the in kernel documents. If there is already a good place that some of the information above exists then we should just point to it.