Re: [PATCH v3 2/4] regulator: sun20i: Add support for Allwinner D1 LDOs
From: Heiko Stübner <heiko@sntech.de>
Date: 2022-08-15 17:00:28
Also in:
linux-devicetree, linux-sunxi, lkml
Am Montag, 15. August 2022, 06:34:33 CEST schrieb Samuel Holland:
quoted hunk ↗ jump to hunk
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@sholland.org> --- 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.cdiff --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" helpdiff --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.odiff --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@sholland.org> +//
nit: shouldn't the comment look like /* * Copyright (c) 2021-2022 Samuel Holland [off-list ref] */ otherwise looks great Reviewed-by: Heiko Stuebner <heiko@sntech.de> Tested-by: Heiko Stuebner <heiko@sntech.de> _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel