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