| # Copyright (c) 2018, Endre Karlson |
| # Copyright (c) 2018, Song Qiang <songqiang1304521@gmail.com> |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| description: ST STM32 family ADC |
| |
| compatible: "st,stm32-adc" |
| |
| include: [adc-controller.yaml, pinctrl-device.yaml] |
| |
| properties: |
| reg: |
| required: true |
| |
| clocks: |
| required: true |
| |
| interrupts: |
| required: true |
| |
| "#io-channel-cells": |
| const: 1 |
| |
| st,adc-clock-source: |
| type: int |
| required: true |
| enum: |
| - 1 # SYNC for synchronous ADC clock source |
| - 2 # ASYNC for asynchronous ADC clock source |
| description: | |
| Type of ADC clock source : |
| - <SYNC>: derived from the bus clock. |
| - <ASYNC> : independent and asynchronous with the bus clock |
| One of the two values may not apply to some series. Refer to the RefMan. |
| If an asynchronous clock is selected, a domain clock in the clock property |
| has to be defined explicitly. |
| |
| st,adc-prescaler: |
| type: int |
| required: true |
| enum: |
| - 1 # not divided |
| - 2 |
| - 4 |
| - 6 |
| - 8 |
| - 10 |
| - 12 |
| - 16 |
| - 32 |
| - 64 |
| - 128 |
| - 256 |
| description: | |
| Clock prescaler at the input of the ADC: |
| Apply to synchronous or asynchronous clock depending on the STM32 |
| st,adc-clock-source. |
| Some of the values may not apply to some series, and may depend on the |
| selected clock source. Refer to the RefMan. |
| On STM32F3x (except STM32F37x), this configures only the synchronous |
| prescaler (see properties adcXX-prescaler in st,stm32f3-rcc bindings to |
| set asynchronous prescaler). |
| |
| vref-mv: |
| type: int |
| default: 3300 |
| description: Indicates the reference voltage of the ADC in mV (on the target board). |
| |
| resolutions: |
| type: array |
| required: true |
| description: | |
| List of the resolutions supported by the ADC instance. They should be |
| values created with STM32_ADC_RES macro or similar. Their order is not |
| important. For example for STM32F4: |
| <STM32_ADC_RES(12, 0x00) STM32_ADC_RES(10, 0x01) |
| STM32_ADC_RES(8, 0x02) STM32_ADC_RES(6, 0x03)> |
| The two parameters are the resolution (for example 10 bits) and the |
| corresponding register value (0x01 for a 10-bit resolution). |
| By design, these macros also contains all register information (address, |
| field offset and field mask) necessary to properly set the resolution. |
| |
| sampling-times: |
| type: array |
| required: true |
| description: | |
| List all the sampling times supported by the ADC instance. |
| Rounded up if needed. Order is important: their index matches their binary |
| value in the register. |
| |
| num-sampling-time-common-channels: |
| type: int |
| description: | |
| Number of sampling time common channels for this ADC instance, if any. |
| |
| st,adc-sequencer: |
| type: int |
| required: true |
| enum: |
| - 0 # NOT_FULLY_CONFIGURABLE |
| - 1 # FULLY_CONFIGURABLE |
| description: | |
| Type of ADC sequencer: |
| - <NOT_FULLY_CONFIGURABLE>: Not fully configurable sequencer |
| - <FULLY_CONFIGURABLE>: Fully configurable sequencer |
| |
| io-channel-cells: |
| - input |