[v6 00/11] Add support for ast2600 ADC

From: Billy Tsai
Date: Mon Sep 13 2021 - 03:53:07 EST


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

Change since v5:
aspeed_adc.c:
- Use devm_clk_hw_register_divider()
- Enabling and setting the ADC to normal mode is a necessary flow, so
take it out of the condition.

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 (11):
iio: adc: aspeed: Keep model data to driver data.
iio: adc: aspeed: Restructure the model data
iio: adc: aspeed: Add vref config function
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.

drivers/iio/adc/aspeed_adc.c | 554 +++++++++++++++++++++++++++++------
1 file changed, 459 insertions(+), 95 deletions(-)

--
2.25.1