From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7F40DC43334 for ; Tue, 26 Jul 2022 08:20:52 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5AB2884163; Tue, 26 Jul 2022 10:20:50 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="QQU5qjR4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2B0398409F; Tue, 26 Jul 2022 10:20:49 +0200 (CEST) Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id EBE9B84163 for ; Tue, 26 Jul 2022 10:20:39 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jh80.chung@samsung.com Received: from epcas1p1.samsung.com (unknown [182.195.41.45]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20220726082036epoutp025a59e7cf9d75a6986863838bc2f1f990~FU08EmW-x2572725727epoutp02X for ; Tue, 26 Jul 2022 08:20:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20220726082036epoutp025a59e7cf9d75a6986863838bc2f1f990~FU08EmW-x2572725727epoutp02X DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1658823636; bh=cxVdgCq9U4NnGF1wDjeHwpPFGtwxp9Gf+2agzGFM7j8=; h=Date:Subject:To:Cc:From:In-Reply-To:References:From; b=QQU5qjR45H2LFMDat3vPr1AbCb+9ZM8/sXRm6tEwehWF2B488h+O+rAW36eYlOouw eQTDyuokXxx5ndD92R9lcUZOYiCJaIxQfDiIkecfPRjSydBcXZfQddojhpkdp81qe7 HFJmUZc2yG91vBjeYysYvnz3p8DIPXTLgrD1HGLQ= Received: from epsnrtp4.localdomain (unknown [182.195.42.165]) by epcas1p2.samsung.com (KnoxPortal) with ESMTP id 20220726082036epcas1p29900e4d44d8321100cfc1c762bbd9cc2~FU07z1jC_1516315163epcas1p2m; Tue, 26 Jul 2022 08:20:36 +0000 (GMT) Received: from epsmges1p3.samsung.com (unknown [182.195.38.231]) by epsnrtp4.localdomain (Postfix) with ESMTP id 4LsVGV5mxPz4x9Q2; Tue, 26 Jul 2022 08:20:34 +0000 (GMT) Received: from epcas1p2.samsung.com ( [182.195.41.46]) by epsmges1p3.samsung.com (Symantec Messaging Gateway) with SMTP id 84.0A.09661.1D3AFD26; Tue, 26 Jul 2022 17:20:33 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas1p2.samsung.com (KnoxPortal) with ESMTPA id 20220726082032epcas1p2cc28cb27c7791d8a4495325ca0abb268~FU04jrqtu1009910099epcas1p2L; Tue, 26 Jul 2022 08:20:32 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20220726082032epsmtrp19a4def431a7ae02988a4e8d6f7d842bf~FU04i-hhD0537005370epsmtrp1b; Tue, 26 Jul 2022 08:20:32 +0000 (GMT) X-AuditID: b6c32a37-2b9ff700000025bd-6f-62dfa3d14a13 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id F0.6B.08905.0D3AFD26; Tue, 26 Jul 2022 17:20:32 +0900 (KST) Received: from [10.113.113.235] (unknown [10.113.113.235]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20220726082031epsmtip11050793c8f7f0c5aff415f0adff64d8e~FU03jLl2r2459924599epsmtip1e; Tue, 26 Jul 2022 08:20:31 +0000 (GMT) Message-ID: Date: Tue, 26 Jul 2022 17:20:31 +0900 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH] pmic: pca9450: permit config on all bucks and LDOs Content-Language: en-US To: Heiko Thiery , u-boot@lists.denx.de Cc: Marek Vasut , Fabio Estevam , Michael Nazzareno Trimarchi From: Jaehoon Chung In-Reply-To: <20220620034948.646319-1-heiko.thiery@gmail.com> Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupik+LIzCtJLcpLzFFi42LZdlhTT/fi4vtJBm1nhSzmL1jMZvFp52EW izdtjYwWpxpbWSze7u1kd2D1WPvxPqvHvFknWDx2zrrL7nH2zg7GAJaobJuM1MSU1CKF1Lzk /JTMvHRbJe/geOd4UzMDQ11DSwtzJYW8xNxUWyUXnwBdt8wcoMVKCmWJOaVAoYDE4mIlfTub ovzSklSFjPziElul1IKUnALTAr3ixNzi0rx0vbzUEitDAwMjU6DChOyMW1t3MRfM1qjo/fyV pYHxlEIXIyeHhICJxItNs1i6GLk4hAR2MErsbz7LBuF8YpR4tmQDK4TzjVHiUdN5JpiWBzfv sUMk9jJKrJ97C6r/PaPEyv5vjCBVvAJ2Ep07ZoPZLAKqEu2bX7BCxAUlTs58wgJiiwpESqzZ fZYdxBYWcJdonrYYbAOzgLjErSfzwWwRAXuJnjfHgGo4gOL1Eq82SYOE2QR0JLZ/Ow5Wwilg K/FmynqoVnmJ7W/nMEMc+pNdYtstDwjbReJ3WzcLhC0s8er4FnYIW0riZX8b2DMSAs2MEkuX HGSFcHoYJf41XGeDqDKW2L90MhPEEZoS63fpQ4QVJXb+nssIsZhP4t3XHlaQEgkBXomONiGI EhWJS69fMsHsuvvkPyuE7SGx+uUOpgmMirOQQmUWku9nIXlnFsLiBYwsqxjFUguKc9NTiw0L jOGxnZyfu4kRnCi1zHcwTnv7Qe8QIxMH4yFGCQ5mJRHehOj7SUK8KYmVValF+fFFpTmpxYcY TYFxM5FZSjQ5H5iq80riDU0sDUzMjIxNLAzNDJXEeVdNO50oJJCeWJKanZpakFoE08fEwSnV wLRL9bwn5/wpXLPbZjpF/Ou9/GVjVAfb+3222iIrv8+PbxOWFw0yL02u3SW/bcKunZ6vj9gL r50kFGVZ3bYs9aXrLZc8SfkPcluvZT57ckHh6BfmxdPTN5gefq18a++NpdwVHaHMant117e+ ZTBqFmfhUWHOVF1ke3/t5ijRz8vLHk8/m6H4XSk5a73TDdaMyv4/+/OLGTboyDg5ftFMF5dV zgpL5fisXRlfc+qDXMFfqbsMfPevHAqXuMhqFDr5/4wW5fyNV08yhzTpXO7K3i/HZVbQe2W1 S4bJ/u4HLAUeNT+9TrUtWPaVx2L21Icua1dWRfAe3+718+49ieyc9RsXe53bbv5hak9sfUns PyWW4oxEQy3mouJEADw8RoIdBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrGLMWRmVeSWpSXmKPExsWy7bCSnO6FxfeTDJ7v1beYv2Axm8WnnYdZ LN60NTJanGpsZbF4u7eT3YHVY+3H+6we82adYPHYOesuu8fZOzsYA1iiuGxSUnMyy1KL9O0S uDJubd3FXDBbo6L381eWBsZTCl2MnBwSAiYSD27eY+9i5OIQEtjNKPF86QEmiISUxOenU9m6 GDmAbGGJw4eLIWreMkr8633BBlLDK2An0bljNiOIzSKgKtG++QUrRFxQ4uTMJywgtqhApMTD ZU1gM4UF3CWapy0Gs5kFxCVuPZkPZosI2Ev0vDnGDhGvl1g/4yaYLSRgI/Hn+Q1mEJtNQEdi +7fjYPWcArYSb6asZwK5jVlAXWL9PCGIVnmJ7W/nME9gFJqF5IpZSLbNQuiYhaRjASPLKkbJ 1ILi3PTcYsMCw7zUcr3ixNzi0rx0veT83E2M4KjQ0tzBuH3VB71DjEwcjIcYJTiYlUR4E6Lv JwnxpiRWVqUW5ccXleakFh9ilOZgURLnvdB1Ml5IID2xJDU7NbUgtQgmy8TBKdXA1Peov+XQ Vu677emWJt9/HbW2Yv0ekztrVUFq3DeRhrDnudFrp618oipe9PjNh3x2vyfXcj5+s7c8EKTl uVFX+dR211aR44n3xNhWq0h8WmrSqKW1Z3+h+8b7GfOy13pO/fd9bpmx935OA85VcxS2qN6d VXW9gOfaxXtL/mhv1PWO9WpObv9m92x7o8o3/ZQLV9Y/seVy9J4VoPb7wfu5N28sl3qSmJCw Xn1nCtuc87dXZli6y55If14QKcF7Sa/2/V3b4uMLRCyWSepaz+hku7Nwj5Woxq0asUvWEmHz Mtt3Lr+y+ED5hAVfZ/MwPMhZk7ywgD2pcc0ywcieXOWNXo9KRV71Pr2cWfy6fMK1HCWW4oxE Qy3mouJEAC6Dwi/5AgAA X-CMS-MailID: 20220726082032epcas1p2cc28cb27c7791d8a4495325ca0abb268 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-Sendblock-Type: SVC_REQ_APPROVE CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20220726082032epcas1p2cc28cb27c7791d8a4495325ca0abb268 References: <20220620034948.646319-1-heiko.thiery@gmail.com> X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean On 6/20/22 12:49, Heiko Thiery wrote: > In order to have the possibility to configure the regulators at system > startup through DM support, all LDOs and bucks must be able to be > changeable. Currently there is a limitation to change the values when > the output is enabled. Since the driver is based on the ROHM BD71837 and a > comment that describes a limitation about switching while the output is > enabled can also be found there, the limitation probably comes from this type. > > Signed-off-by: Heiko Thiery > Reviewed-by: Fabio Estevam Reviewed-by: Jaehoon Chung Best Regards, Jaehoon Chung > --- > drivers/power/regulator/pca9450.c | 42 ++++++++++--------------------- > 1 file changed, 13 insertions(+), 29 deletions(-) > > diff --git a/drivers/power/regulator/pca9450.c b/drivers/power/regulator/pca9450.c > index 23badaa332..fe1869397c 100644 > --- a/drivers/power/regulator/pca9450.c > +++ b/drivers/power/regulator/pca9450.c > @@ -44,7 +44,6 @@ struct pca9450_vrange { > * @ranges: pointer to ranges of regulator voltages and matching register > * values > * @numranges: number of voltage ranges pointed by ranges > - * @dvs: whether the voltage can be changed when regulator is enabled > */ > struct pca9450_plat { > const char *name; > @@ -54,7 +53,6 @@ struct pca9450_plat { > u8 volt_mask; > struct pca9450_vrange *ranges; > unsigned int numranges; > - bool dvs; > }; > > #define PCA_RANGE(_min, _vstep, _sel_low, _sel_hi) \ > @@ -63,11 +61,11 @@ struct pca9450_plat { > .min_sel = (_sel_low), .max_sel = (_sel_hi), \ > } > > -#define PCA_DATA(_name, enreg, enmask, vreg, vmask, _range, _dvs) \ > +#define PCA_DATA(_name, enreg, enmask, vreg, vmask, _range) \ > { \ > .name = (_name), .enable_reg = (enreg), .enablemask = (enmask), \ > .volt_reg = (vreg), .volt_mask = (vmask), .ranges = (_range), \ > - .numranges = ARRAY_SIZE(_range), .dvs = (_dvs), \ > + .numranges = ARRAY_SIZE(_range) \ > } > > static struct pca9450_vrange pca9450_buck123_vranges[] = { > @@ -107,39 +105,39 @@ static struct pca9450_plat pca9450_reg_data[] = { > /* Bucks 1-3 which support dynamic voltage scaling */ > PCA_DATA("BUCK1", PCA9450_BUCK1CTRL, HW_STATE_CONTROL, > PCA9450_BUCK1OUT_DVS0, PCA9450_DVS_BUCK_RUN_MASK, > - pca9450_buck123_vranges, true), > + pca9450_buck123_vranges), > PCA_DATA("BUCK2", PCA9450_BUCK2CTRL, HW_STATE_CONTROL, > PCA9450_BUCK2OUT_DVS0, PCA9450_DVS_BUCK_RUN_MASK, > - pca9450_buck123_vranges, true), > + pca9450_buck123_vranges), > PCA_DATA("BUCK3", PCA9450_BUCK3CTRL, HW_STATE_CONTROL, > PCA9450_BUCK3OUT_DVS0, PCA9450_DVS_BUCK_RUN_MASK, > - pca9450_buck123_vranges, true), > + pca9450_buck123_vranges), > /* Bucks 4-6 which do not support dynamic voltage scaling */ > PCA_DATA("BUCK4", PCA9450_BUCK4CTRL, HW_STATE_CONTROL, > PCA9450_BUCK4OUT, PCA9450_DVS_BUCK_RUN_MASK, > - pca9450_buck456_vranges, false), > + pca9450_buck456_vranges), > PCA_DATA("BUCK5", PCA9450_BUCK5CTRL, HW_STATE_CONTROL, > PCA9450_BUCK5OUT, PCA9450_DVS_BUCK_RUN_MASK, > - pca9450_buck456_vranges, false), > + pca9450_buck456_vranges), > PCA_DATA("BUCK6", PCA9450_BUCK6CTRL, HW_STATE_CONTROL, > PCA9450_BUCK6OUT, PCA9450_DVS_BUCK_RUN_MASK, > - pca9450_buck456_vranges, false), > + pca9450_buck456_vranges), > /* LDOs */ > PCA_DATA("LDO1", PCA9450_LDO1CTRL, HW_STATE_CONTROL, > PCA9450_LDO1CTRL, PCA9450_LDO12_MASK, > - pca9450_ldo1_vranges, false), > + pca9450_ldo1_vranges), > PCA_DATA("LDO2", PCA9450_LDO2CTRL, HW_STATE_CONTROL, > PCA9450_LDO2CTRL, PCA9450_LDO12_MASK, > - pca9450_ldo2_vranges, false), > + pca9450_ldo2_vranges), > PCA_DATA("LDO3", PCA9450_LDO3CTRL, HW_STATE_CONTROL, > PCA9450_LDO3CTRL, PCA9450_LDO34_MASK, > - pca9450_ldo34_vranges, false), > + pca9450_ldo34_vranges), > PCA_DATA("LDO4", PCA9450_LDO4CTRL, HW_STATE_CONTROL, > PCA9450_LDO4CTRL, PCA9450_LDO34_MASK, > - pca9450_ldo34_vranges, false), > + pca9450_ldo34_vranges), > PCA_DATA("LDO5", PCA9450_LDO5CTRL_H, HW_STATE_CONTROL, > PCA9450_LDO5CTRL_H, PCA9450_LDO5_MASK, > - pca9450_ldo5_vranges, false), > + pca9450_ldo5_vranges), > }; > > static int vrange_find_value(struct pca9450_vrange *r, unsigned int sel, > @@ -246,20 +244,6 @@ static int pca9450_set_value(struct udevice *dev, int uvolt) > unsigned int sel; > int i, found = 0; > > - /* > - * An under/overshooting may occur if voltage is changed for other > - * regulators but buck 1,2,3 or 4 when regulator is enabled. Prevent > - * change to protect the HW > - */ > - if (!plat->dvs) > - if (pca9450_get_enable(dev)) { > - /* If the value is already set, skip the warning. */ > - if (pca9450_get_value(dev) == uvolt) > - return 0; > - pr_err("Only DVS bucks can be changed when enabled\n"); > - return -EINVAL; > - } > - > for (i = 0; i < plat->numranges; i++) { > struct pca9450_vrange *r = &plat->ranges[i]; >