[v5 00/15] Add support for ast2600 ADC

From: Billy Tsai
Date: Tue Aug 31 2021 - 03:15:44 EST


This patch serials make aspeed_adc.c can support ast2600 and backward
compatible.

Change since v4:
dt-bindings:
- Add clocks maxItems.
- Rename the property to meet the property-units.yaml.
- Add the description for the difference between adc0 and adc1.
aspeed_adc.c:
- Use new property name to get internal reference voltage: units from mv to
uv.
- Fix -Wnonnull warning caused by snprintf parameters.
- Add suffix mv to the vref parameters.
- Use ARRAY_SIZE instead of 32.
- Add a reset action for ADC power down and Use devm_iio_device_register.
- Fix typo error.
- Separate the offset interface of ch7 when battery sensing enable

Change since v3:
dt-bindings:
- Fix properties:aspeed,int_vref_mv type error.

Change since v2:
dt-bindings:
- Create a new dt-bindings for ast2600 adc
aspeed_adc.c:
- Splits the patch for more details
- Remove version enum and use the flags in model data to distinguish
hardware feature
- Support trimming data get and set.
- Use devm_add_action_or_reset to simplify probe error handling.

Changes since v1:
dt-bindings:
- Fix the aspeed,adc.yaml check error.
- Add battery-sensing property.
aspeed_adc.c:
- Change the init flow:
Clock and reference voltage setting should be completed before adc
engine enable.
- Change the default sampling rate to meet most user case.
- Add patch #8 to suppoert battery sensing mode.

Billy Tsai (15):
iio: adc: aspeed: set driver data when adc probe.
dt-bindings: iio: adc: Add ast2600-adc bindings
iio: adc: aspeed: completes the bitfield declare.
iio: adc: aspeed: Keep model data to driver data.
iio: adc: aspeed: Refactory model data structure
iio: adc: aspeed: Add vref config function
iio: adc: aspeed: Set num_channels with model data
iio: adc: aspeed: Use model_data to set clk scaler.
iio: adc: aspeed: Use devm_add_action_or_reset.
iio: adc: aspeed: Support ast2600 adc.
iio: adc: aspeed: Fix the calculate error of clock.
iio: adc: aspeed: Add func to set sampling rate.
iio: adc: aspeed: Add compensation phase.
iio: adc: aspeed: Support battery sensing.
iio: adc: aspeed: Get and set trimming data.

.../bindings/iio/adc/aspeed,ast2600-adc.yaml | 100 +++
drivers/iio/adc/aspeed_adc.c | 617 +++++++++++++++---
2 files changed, 619 insertions(+), 98 deletions(-)
create mode 100644 Documentation/devicetree/bindings/iio/adc/aspeed,ast2600-adc.yaml

--
2.25.1