|
|
Log in / Subscribe / Register

Add support for ast2600 ADC

From:  Billy Tsai <billy_tsai-AT-aspeedtech.com>
To:  <jic23-AT-kernel.org>, <lars-AT-metafoo.de>, <pmeerw-AT-pmeerw.net>, <robh+dt-AT-kernel.org>, <joel-AT-jms.id.au>, <andrew-AT-aj.id.au>, <p.zabel-AT-pengutronix.de>, <lgirdwood-AT-gmail.com>, <broonie-AT-kernel.org>, <linux-iio-AT-vger.kernel.org>, <devicetree-AT-vger.kernel.org>, <linux-arm-kernel-AT-lists.infradead.org>, <linux-aspeed-AT-lists.ozlabs.org>, <linux-kernel-AT-vger.kernel.org>
Subject:  [v6 00/11] Add support for ast2600 ADC
Date:  Mon, 13 Sep 2021 15:53:26 +0800
Message-ID:  <20210913075337.19991-1-billy_tsai@aspeedtech.com>
Cc:  <BMC-SW-AT-aspeedtech.com>
Archive-link:  Article

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



Copyright © 2021, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds