[PATCH v3 0/4] Add support for the Renesas RZ/N1 ADC

Herve Codina (Schneider Electric) posted 4 patches 1 month, 2 weeks ago
.../bindings/iio/adc/renesas,rzn1-adc.yaml    | 111 ++++
MAINTAINERS                                   |   7 +
arch/arm/boot/dts/renesas/r9a06g032.dtsi      |  10 +
drivers/iio/adc/Kconfig                       |  10 +
drivers/iio/adc/Makefile                      |   1 +
drivers/iio/adc/rzn1-adc.c                    | 490 ++++++++++++++++++
6 files changed, 629 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/adc/renesas,rzn1-adc.yaml
create mode 100644 drivers/iio/adc/rzn1-adc.c
[PATCH v3 0/4] Add support for the Renesas RZ/N1 ADC
Posted by Herve Codina (Schneider Electric) 1 month, 2 weeks ago
Hi,

The Renesas RZ/N1 ADC controller is the ADC controller available in the
Renesas RZ/N1 SoCs family.

It can use up to two internal ADC cores (ADC1 and ADC2) those internal
cores are handled through ADC controller virtual channels.

Best regards,
Herve Codina

Changes v2 -> v3:

v2: https://lore.kernel.org/lkml/20251029144644.667561-1-herve.codina@bootlin.com/

  Patch 1:
    - Add 'Reviewed-by: Rob Herring'.

  Patch 2:
    - Add missing header files.
    - Use fixed-width values for register definitions.
    - Split comments and remove a redundant 'else'.
    - Return the error in the 'switch case' default statement.
    - Leave a trailing comma in struct iio_info.
    - Move *_vref_mv to *_vref_mV.
    - Split the DEFINE_RUNTIME_DEV_PM_OPS().
    - Update error code handling in rzn1_adc_core_get_regulators().
    - Pass rzn1_adc in platform_set_drvdata(), update suspend/resume
      function accordingly.
    - Add 'Reviewed-by: Nuno Sá'

  Patches 3 and 4:
    No change.

Changes v1 -> v2:

v1: https://lore.kernel.org/lkml/20251015142816.1274605-1-herve.codina@bootlin.com/

  Rebase on top of v6.18-rc3 to have commit db82b8dbf5f0 ("PM: runtime:
  Fix conditional guard definitions")

  Patch 1:
    - Remove unneeded 'dependencies' part.
    - Rename "adc-clk" clock to "adc".
    - Move 'additionalProperties: false' just before the example.
    - Use const instead of enum for the "renesas,r9a06g032-adc"
      compatible string.
    - Fix the ACD typo.

  Patch 2:
    - Fix the ACD typo.
    - Rename "adc-clk" clock to "adc".
    - Update included headers and sort them.
    - Align register definitions at the same column.
    - Inline the FIELD_GET() instead of having macros.
    - Introduce RZN1_ADC_NO_CHANNEL
    - Get Vref voltage value at probe().
    - Remove the bitmap in rzn1_adc_set_iio_dev_channels().
    - Use dev_err_probe() in rzn1_adc_set_iio_dev_channels().
    - Use auto-cleanup variant for PM runtime "resume and get".
    - Use scoped_guard() for mutex.
    - Use devm_mutex_init().
    - Use the fixed "rzn1-adc" string for indio_dev->name.
    - Use DEFINE_RUNTIME_DEV_PM_OPS().
    - Fix rzn1_adc_of_match table and remove of_match_ptr().
    - Add a comment related to decoupling between IIO chans and ADC1 or
      ADC2 core chans
    - Update and add several comments related to ADC core usage and the
      relationship with ADC core regulator presence.
    - Remove clocks and regulators handling from PM runtime
      suspend()/remove().
    - Simplify the driver removing the no more relevant struct
      rzn1_adc_core.

  Patch 3:
    - Rename "adc-clk" clock to "adc".
    - Add 'Reviewed-by: Wolfram Sang'

  Patch 4
    - Removed the linux-iio list

Herve Codina (Schneider Electric) (4):
  dt-bindings: iio: adc: Add the Renesas RZ/N1 ADC
  iio: adc: Add support for the Renesas RZ/N1 ADC
  ARM: dts: renesas: r9a06g032: Add the ADC device
  MAINTAINERS: Add the Renesas RZ/N1 ADC driver entry

 .../bindings/iio/adc/renesas,rzn1-adc.yaml    | 111 ++++
 MAINTAINERS                                   |   7 +
 arch/arm/boot/dts/renesas/r9a06g032.dtsi      |  10 +
 drivers/iio/adc/Kconfig                       |  10 +
 drivers/iio/adc/Makefile                      |   1 +
 drivers/iio/adc/rzn1-adc.c                    | 490 ++++++++++++++++++
 6 files changed, 629 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/adc/renesas,rzn1-adc.yaml
 create mode 100644 drivers/iio/adc/rzn1-adc.c

-- 
2.51.0

Re: [PATCH v3 0/4] Add support for the Renesas RZ/N1 ADC
Posted by Jonathan Cameron 1 month, 1 week ago
On Mon,  3 Nov 2025 15:18:30 +0100
"Herve Codina (Schneider Electric)" <herve.codina@bootlin.com> wrote:

> Hi,
> 
> The Renesas RZ/N1 ADC controller is the ADC controller available in the
> Renesas RZ/N1 SoCs family.
> 
> It can use up to two internal ADC cores (ADC1 and ADC2) those internal
> cores are handled through ADC controller virtual channels.
> 
> Best regards,
> Herve Codina
> 
> Changes v2 -> v3:
> 
Applied 1-2,4 to the togreg branch of iio.git.
A little bit of merge noise due to another Renesas ADC driver being
added recently, but only in Makefile / Kconfig so hopefully I didn't mess
up merging them.


> v2: https://lore.kernel.org/lkml/20251029144644.667561-1-herve.codina@bootlin.com/
> 
>   Patch 1:
>     - Add 'Reviewed-by: Rob Herring'.
> 
>   Patch 2:
>     - Add missing header files.
>     - Use fixed-width values for register definitions.
>     - Split comments and remove a redundant 'else'.
>     - Return the error in the 'switch case' default statement.
>     - Leave a trailing comma in struct iio_info.
>     - Move *_vref_mv to *_vref_mV.
>     - Split the DEFINE_RUNTIME_DEV_PM_OPS().
>     - Update error code handling in rzn1_adc_core_get_regulators().
>     - Pass rzn1_adc in platform_set_drvdata(), update suspend/resume
>       function accordingly.
>     - Add 'Reviewed-by: Nuno Sá'
> 
>   Patches 3 and 4:
>     No change.
> 
> Changes v1 -> v2:
> 
> v1: https://lore.kernel.org/lkml/20251015142816.1274605-1-herve.codina@bootlin.com/
> 
>   Rebase on top of v6.18-rc3 to have commit db82b8dbf5f0 ("PM: runtime:
>   Fix conditional guard definitions")
> 
>   Patch 1:
>     - Remove unneeded 'dependencies' part.
>     - Rename "adc-clk" clock to "adc".
>     - Move 'additionalProperties: false' just before the example.
>     - Use const instead of enum for the "renesas,r9a06g032-adc"
>       compatible string.
>     - Fix the ACD typo.
> 
>   Patch 2:
>     - Fix the ACD typo.
>     - Rename "adc-clk" clock to "adc".
>     - Update included headers and sort them.
>     - Align register definitions at the same column.
>     - Inline the FIELD_GET() instead of having macros.
>     - Introduce RZN1_ADC_NO_CHANNEL
>     - Get Vref voltage value at probe().
>     - Remove the bitmap in rzn1_adc_set_iio_dev_channels().
>     - Use dev_err_probe() in rzn1_adc_set_iio_dev_channels().
>     - Use auto-cleanup variant for PM runtime "resume and get".
>     - Use scoped_guard() for mutex.
>     - Use devm_mutex_init().
>     - Use the fixed "rzn1-adc" string for indio_dev->name.
>     - Use DEFINE_RUNTIME_DEV_PM_OPS().
>     - Fix rzn1_adc_of_match table and remove of_match_ptr().
>     - Add a comment related to decoupling between IIO chans and ADC1 or
>       ADC2 core chans
>     - Update and add several comments related to ADC core usage and the
>       relationship with ADC core regulator presence.
>     - Remove clocks and regulators handling from PM runtime
>       suspend()/remove().
>     - Simplify the driver removing the no more relevant struct
>       rzn1_adc_core.
> 
>   Patch 3:
>     - Rename "adc-clk" clock to "adc".
>     - Add 'Reviewed-by: Wolfram Sang'
> 
>   Patch 4
>     - Removed the linux-iio list
> 
> Herve Codina (Schneider Electric) (4):
>   dt-bindings: iio: adc: Add the Renesas RZ/N1 ADC
>   iio: adc: Add support for the Renesas RZ/N1 ADC
>   ARM: dts: renesas: r9a06g032: Add the ADC device
>   MAINTAINERS: Add the Renesas RZ/N1 ADC driver entry
> 
>  .../bindings/iio/adc/renesas,rzn1-adc.yaml    | 111 ++++
>  MAINTAINERS                                   |   7 +
>  arch/arm/boot/dts/renesas/r9a06g032.dtsi      |  10 +
>  drivers/iio/adc/Kconfig                       |  10 +
>  drivers/iio/adc/Makefile                      |   1 +
>  drivers/iio/adc/rzn1-adc.c                    | 490 ++++++++++++++++++
>  6 files changed, 629 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/iio/adc/renesas,rzn1-adc.yaml
>  create mode 100644 drivers/iio/adc/rzn1-adc.c
>