This patchset adds initial ADC support for Sophgo SoC. This driver can work with or without interrupt and in "Active" and "No-Die" domains depending on if a clock is provided. Link: https://github.com/sophgo/sophgo-doc/releases/download/sg2002-trm-v1.0/sg2002_trm_en.pdf Signed-off-by: Thomas Bonnefille <thomas.bonnefille@xxxxxxxxxxx> --- Changes in v4: - Lowercase register hexadecimal value in dts - Reorder properties in dts - Use only a const in the compatible property of the device tree bindings - Specify the series of SoC in the driver to avoid confusing with other Sophgo SoCs - Add channel description in the bindings - Use FIELD_PREP in the default configuration - Index channels from 0 - Return PTR_ERR instead of IS_ERR - Link to v3: https://lore.kernel.org/r/20240731-sg2002-adc-v3-0-5ac40a518c0a@xxxxxxxxxxx Changes in v3: - Subdivide default cycle configuration into multiple elementary configurations - Fix formatting in the driver - Use devm_mutex_init - Use devm_clk_get_enabled now because the clock is no more optional - Remove handling of Saradc in No-Die Domain as RTC isn't implemented yet - Use cv1800-saradc as default compatible instead of a wildcard - Link to v2: https://lore.kernel.org/r/20240705-sg2002-adc-v2-0-83428c20a9b2@xxxxxxxxxxx Changes in v2: - Drop modifications in MAINTAINERS file - Rename the ADC from "sophgo-adc" to "sophgo-cv18xx-adc" to avoid conflict with ADCs available in future Sophgo SoCs. - Reorder nodes in DT to match DTS coding style - Switch from including <linux/of.h> to <linux/mod_devicetable.h> - Use scoped_guard instead of mutex_lock/unlock - Check IRQ Status in the handler - Change IIO device name - Use devm_clk_get_optional_enabled instead of a clock variable - Init completion before the IRQ request - Removed unnecessary iio_info structure in the private data of the driver - Use SoC specific compatible in the bindings and device trees - Link to v1: https://lore.kernel.org/r/20240702-sg2002-adc-v1-0-ac66e076a756@xxxxxxxxxxx --- Thomas Bonnefille (3): dt-bindings: iio: adc: sophgo,cv18xx-saradc.yaml: Add Sophgo CV18XX SARADC binding iio: adc: sophgo-saradc: Add driver for Sophgo CV18XX series SARADC riscv: dts: sophgo: Add SARADC description for Sophgo CV18XX .../bindings/iio/adc/sophgo,cv18xx-saradc.yaml | 85 +++++++++ arch/riscv/boot/dts/sophgo/cv18xx.dtsi | 20 ++ drivers/iio/adc/Kconfig | 10 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/sophgo-cv18xx-adc.c | 208 +++++++++++++++++++++ 5 files changed, 324 insertions(+) --- base-commit: 7c626ce4bae1ac14f60076d00eafe71af30450ba change-id: 20240527-sg2002-adc-924b862cd3f2 Best regards, -- Thomas Bonnefille <thomas.bonnefille@xxxxxxxxxxx>