Received: by 2002:a05:6358:4e97:b0:b3:742d:4702 with SMTP id ce23csp2723694rwb; Mon, 15 Aug 2022 10:13:37 -0700 (PDT) X-Google-Smtp-Source: AA6agR57XfoImWj2FeKNp0bJS/SPQxYFl/OMIAK3F8+3bTc8jKRGEL5uITNNZ1AmcIS2SQ7vL931 X-Received: by 2002:a17:90a:c1:b0:1f4:f757:6b48 with SMTP id v1-20020a17090a00c100b001f4f7576b48mr29121549pjd.56.1660583617752; Mon, 15 Aug 2022 10:13:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660583617; cv=none; d=google.com; s=arc-20160816; b=X+F6z6y9NgZ40O5N/4dlTWJ0W76D/R38BmxtsZI87Ne6FK7mGkFHgdTDv13igUVHGS +Qj5TS5MvsPXz89BaDzjXyS+Jf4hazTfPmvzzhb3EfYD2bshFmoN2pi/LPvgvrab79lc fPNP3HuYNriQp2ptsEXt/nHvq/x5A/U7gAwZ345Xd5sBE9nufKkfs2eATFz5gBS2xnBd eF7x+QA0kICIzyANGHUZ+tZUoSNy+E+BueC62Tp3fT/12yEcY07S1F1tDNqo9Pkq4b0u IiF4WOt0Jj9A19SWu3g1ZrZjAG5E7Yok8gkH1hrcmrHff4l7ZOwkBwLfCRzl3Q1d5oyT azyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=jXcWIiY3K8dAtsqQjDOEKYP0PQMD9olGFP0lB3OFyYs=; b=X9jhYKxExXXZ9wp9I/bb2L7Iet7WeAHeSBOVfyBGVsTkSY58uCzMuw0zwYDNiWbqSx wdJ1jVHNy+vLsuApZgAw6LlpbciwgWEypxaxRzCj0DfONS9AksFFCHLixLEIX+e647JL U8N6Idr+WxPy2vTL+d9g1hI3atdiRGylnpwQanxmASCTx7kGm+3pVugQZl2x9LDUUUhb Ed/uKpgp3B7UHSLs0+0hjaw0Ifhyfl2HRscZh3Gi4BfBRl+Atud7tJUHAALP/UZYyEQ+ izTsiVqVrJpUp1WlmHMUli/j6+8NRnagdNS0036rD/dOhK7KnueLqlFFnAzcIyNqwz8C f43Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=sntech.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id pq1-20020a17090b3d8100b001ef8d23ad9csi10496661pjb.182.2022.08.15.10.13.25; Mon, 15 Aug 2022 10:13:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=sntech.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232848AbiHORA0 (ORCPT + 99 others); Mon, 15 Aug 2022 13:00:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49750 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230244AbiHORAX (ORCPT ); Mon, 15 Aug 2022 13:00:23 -0400 Received: from gloria.sntech.de (gloria.sntech.de [185.11.138.130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BFCC8D55; Mon, 15 Aug 2022 10:00:19 -0700 (PDT) Received: from ip5b412258.dynamic.kabel-deutschland.de ([91.65.34.88] helo=diego.localnet) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1oNdRh-00054d-Ba; Mon, 15 Aug 2022 19:00:09 +0200 From: Heiko =?ISO-8859-1?Q?St=FCbner?= To: Liam Girdwood , Mark Brown , Chen-Yu Tsai , Jernej Skrabec , Krzysztof Kozlowski , Rob Herring , linux-arm-kernel@lists.infradead.org Cc: Samuel Holland , Maxime Ripard , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sunxi@lists.linux.dev, Samuel Holland Subject: Re: [PATCH v3 2/4] regulator: sun20i: Add support for Allwinner D1 LDOs Date: Mon, 15 Aug 2022 19:00:08 +0200 Message-ID: <37742446.J2Yia2DhmK@diego> In-Reply-To: <20220815043436.20170-3-samuel@sholland.org> References: <20220815043436.20170-1-samuel@sholland.org> <20220815043436.20170-3-samuel@sholland.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_PASS, T_SCC_BODY_TEXT_LINE,T_SPF_HELO_TEMPERROR autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > --- > > 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 > +// nit: shouldn't the comment look like /* * Copyright (c) 2021-2022 Samuel Holland */ otherwise looks great Reviewed-by: Heiko Stuebner Tested-by: Heiko Stuebner