Re: [PATCH v3 2/4] regulator: sun20i: Add support for Allwinner D1 LDOs
From: Heiko Stübner
Date: Mon Aug 15 2022 - 13:00:28 EST
Am Montag, 15. August 2022, 06:34:33 CEST schrieb Samuel Holland:
> D1 contains two pairs of LDOs. Since they have similar bindings, and
> they always exist together, put them in a single driver.
>
> The analog LDOs are relatively boring, with a single linear range. Their
> one quirk is that a bandgap reference must be calibrated for them to
> produce the correct voltage.
>
> The system LDOs have the complication that their voltage step is not an
> integer, so a custom .list_voltage is needed to get the rounding right.
>
> Signed-off-by: Samuel Holland <samuel@xxxxxxxxxxxx>
> ---
>
> Changes in v3:
> - Adjust control flow in sun20i_regulator_get_regmap() for clarity
>
> Changes in v2:
> - Use decimal numbers for .n_voltages instead of field widths
> - Get the regmap from the parent device instead of a property/phandle
>
> drivers/regulator/Kconfig | 8 +
> drivers/regulator/Makefile | 1 +
> drivers/regulator/sun20i-regulator.c | 232 +++++++++++++++++++++++++++
> 3 files changed, 241 insertions(+)
> create mode 100644 drivers/regulator/sun20i-regulator.c
>
> diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
> index 23e3e4a35cc9..0c5727173fa0 100644
> --- a/drivers/regulator/Kconfig
> +++ b/drivers/regulator/Kconfig
> @@ -1262,6 +1262,14 @@ config REGULATOR_STW481X_VMMC
> This driver supports the internal VMMC regulator in the STw481x
> PMIC chips.
>
> +config REGULATOR_SUN20I
> + tristate "Allwinner D1 internal LDOs"
> + depends on ARCH_SUNXI || COMPILE_TEST
> + depends on MFD_SYSCON && NVMEM
> + default ARCH_SUNXI
> + help
> + This driver supports the internal LDOs in the Allwinner D1 SoC.
> +
> config REGULATOR_SY7636A
> tristate "Silergy SY7636A voltage regulator"
> help
> diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile
> index fa49bb6cc544..5dff112eb015 100644
> --- a/drivers/regulator/Makefile
> +++ b/drivers/regulator/Makefile
> @@ -148,6 +148,7 @@ obj-$(CONFIG_REGULATOR_STM32_VREFBUF) += stm32-vrefbuf.o
> obj-$(CONFIG_REGULATOR_STM32_PWR) += stm32-pwr.o
> obj-$(CONFIG_REGULATOR_STPMIC1) += stpmic1_regulator.o
> obj-$(CONFIG_REGULATOR_STW481X_VMMC) += stw481x-vmmc.o
> +obj-$(CONFIG_REGULATOR_SUN20I) += sun20i-regulator.o
> obj-$(CONFIG_REGULATOR_SY7636A) += sy7636a-regulator.o
> obj-$(CONFIG_REGULATOR_SY8106A) += sy8106a-regulator.o
> obj-$(CONFIG_REGULATOR_SY8824X) += sy8824x.o
> diff --git a/drivers/regulator/sun20i-regulator.c b/drivers/regulator/sun20i-regulator.c
> new file mode 100644
> index 000000000000..46f3927d7d10
> --- /dev/null
> +++ b/drivers/regulator/sun20i-regulator.c
> @@ -0,0 +1,232 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +//
> +// Copyright (c) 2021-2022 Samuel Holland <samuel@xxxxxxxxxxxx>
> +//
nit: shouldn't the comment look like
/*
* Copyright (c) 2021-2022 Samuel Holland <samuel@xxxxxxxxxxxx>
*/
otherwise looks great
Reviewed-by: Heiko Stuebner <heiko@xxxxxxxxx>
Tested-by: Heiko Stuebner <heiko@xxxxxxxxx>