Analog (ADC/DAC) Drivers
The NuttX analog drivers are split into two parts:
- An “upper half”, generic driver that provides the common analog interface to application level code, and 
- A “lower half”, platform-specific driver that implements the low-level controls to implement the analog functionality. 
- General header files for the NuttX analog drivers reside in - include/nuttx/analog/. These header files includes both the application level interface to the analog driver as well as the interface between the “upper half” and “lower half” drivers.
- Common analog logic and share-able analog drivers reside in the - drivers/analog/.
- Platform-specific drivers reside in - arch/<architecture>- /src/<hardware> directory for the specific processor <architecture> and for the specific <chip> analog peripheral devices.
ADC Drivers
- include/nuttx/analog/adc.h. All structures and APIs needed to work with ADC drivers are provided in this header file. This header file includes:- Structures and interface descriptions needed to develop a low-level, architecture-specific, ADC driver. 
- To register the ADC driver with a common ADC character driver. 
- Interfaces needed for interfacing user programs with the common ADC character driver. 
 
- drivers/analog/adc.c. The implementation of the common ADC character driver.
DAC Drivers
- include/nuttx/analog/dac.h. All structures and APIs needed to work with DAC drivers are provided in this header file. This header file includes:- Structures and interface descriptions needed to develop a low-level, architecture-specific, DAC driver. 
- To register the DAC driver with a common DAC character driver. 
- Interfaces needed for interfacing user programs with the common DAC character driver. 
 
- drivers/analog/dac.c. The implementation of the common DAC character driver.