From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laxman Dewangan Subject: Re: [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators Date: Thu, 20 Jun 2013 19:33:01 +0530 Message-ID: <51C30B95.4010406@nvidia.com> References: <1371717458-10307-1-git-send-email-kishon@ti.com> <1371717458-10307-3-git-send-email-kishon@ti.com> <51C2DEEB.9090600@nvidia.com> <51C3089F.5030003@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <51C3089F.5030003@ti.com> Sender: linux-doc-owner@vger.kernel.org To: Kishon Vijay Abraham I Cc: "broonie@kernel.org" , "grant.likely@linaro.org" , "rob.herring@calxeda.com" , "rob@landley.net" , "lgirdwood@gmail.com" , Stephen Warren , "gg@slimlogic.co.uk" , "sameo@linux.intel.com" , "ian@slimlogic.co.uk" , "devicetree-discuss@lists.ozlabs.org" , "linux-doc@vger.kernel.org" , "linux-kernel@vger.kernel.org" List-Id: devicetree@vger.kernel.org On Thursday 20 June 2013 07:20 PM, Kishon Vijay Abraham I wrote: > Hi, > > On Thursday 20 June 2013 04:22 PM, Laxman Dewangan wrote: >> On Thursday 20 June 2013 02:07 PM, Kishon Vijay Abraham I wrote: >>> SMPS10 has two outputs OUT1 and OUT2 and have one input IN1. >>> SMPS10-OUT2 is connected to SMPS10-IN1 and can be configured either >>> in BOOST mode or BYPASS mode. regulator_enable of SMPS10-OUT2 configures >>> it in BOOST mode. For BYPASS mode regulator_allow_bypass() API can be >>> used. SMPS10-OUT1 is connected to SMPS10-OUT2 and can be enabled using >>> regulator_enable(). >>> >>> Cc: Laxman Dewangan >>> Signed-off-by: Kishon Vijay Abraham I >>> --- >>> drivers/regulator/palmas-regulator.c | 39 ++++++++++++++++++++++++++++++---- >>> include/linux/mfd/palmas.h | 9 ++++---- >>> 2 files changed, 40 insertions(+), 8 deletions(-) >>> >>> diff --git a/drivers/regulator/palmas-regulator.c >>> b/drivers/regulator/palmas-regulator.c >>> index 3ae44ac..7004bab 100644 >>> --- a/drivers/regulator/palmas-regulator.c >>> +++ b/drivers/regulator/palmas-regulator.c >>> @@ -97,7 +97,12 @@ static const struct regs_info palmas_regs_info[] = { >>> .ctrl_addr = PALMAS_SMPS9_CTRL, >>> }, >>> { >>> - .name = "SMPS10", >>> + .name = "SMPS10_OUT1", >>> + .sname = "smps10-out2", >>> + .ctrl_addr = PALMAS_SMPS10_CTRL, >>> + }, >>> + { >>> + .name = "SMPS10_OUT2", >>> .sname = "smps10-in", >>> >> This sequence can create regulator to be never register. >> In probe, we register regulator from 0 to max_id. >> Here smps10-out1 comes first and see the supply as smps10-out2 which is not >> registered yet and so will fail with PROBE_DEFER >> When again it tries, the same issue. > hmm.. But I was able to get (regulator_get) *SMPS10_OUT1* without any issue > during my testing. From looking at the code, I couldn't see *sname* being used > anywhere. We used the sname as pmic->desc[id].supply_name = palmas_regs_info[id].sname; However, how you have populated your dt? Have you added like smps10-out2-supply = <&SMPS10_OUT2> for the palmas regualtor -dt.