Re: [PATCH v3 2/4] regulator: sun20i: Add support for Allwinner D1 LDOs

From: Samuel Holland
Date: Wed Aug 17 2022 - 04:28:49 EST


On 8/15/22 12:00 PM, Heiko Stübner wrote:
> 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>
> */

I have had multiple requests from maintainers to use the former style because it
is more visually consistent. `git grep '^// Copy' drivers sound` returns over
1500 hits. But it doesn't really matter to me.

Regards,
Samuel