From: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
To: Mark Brown <broonie@kernel.org>
Cc: Lee Jones <lee.jones@linaro.org>,
Samuel Ortiz <sameo@linux.intel.com>,
Mike Turquette <mturquette@linaro.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Alessandro Zummo <a.zummo@towertech.it>,
Kukjin Kim <kgene.kim@samsung.com>,
Doug Anderson <dianders@chromium.org>,
Olof Johansson <olof@lixom.net>,
Sjoerd Simons <sjoerd.simons@collabora.co.uk>,
Daniel Stone <daniels@collabora.com>,
Tomeu Vizoso <tomeu.vizoso@collabora.com>,
linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/5] regulator: Add driver for Maxim 77802 PMIC regulators
Date: Tue, 10 Jun 2014 01:29:17 +0200 [thread overview]
Message-ID: <5396434D.3020402@collabora.co.uk> (raw)
In-Reply-To: <20140609193849.GE5099@sirena.org.uk>
Hello Mark,
Thanks a lot for your feedback.
On 06/09/2014 09:38 PM, Mark Brown wrote:
> On Mon, Jun 09, 2014 at 11:37:47AM +0200, Javier Martinez Canillas wrote:
>
>> + case REGULATOR_MODE_STANDBY: /* switch off */
>> + if (id != MAX77802_LDO1 && id != MAX77802_LDO20 &&
>> + id != MAX77802_LDO21 && id != MAX77802_LDO3) {
>> + val = MAX77802_OPMODE_STANDBY;
>> + break;
>> + }
>> + /* no break */
>
> This sounds very broken...
>
The problem is that not all regulators supports the same operational modes. For
instance regulators LDO 1, 20, 21 and 3 does not support REGULATOR_MODE_STANDBY
so if the condition is not met a break is not needed since the default case is
to warn that the mode is not supported.
But I'll rework that logic on v2 to make it cleaner and have a break on each
case and don't rely on case cascading.
>> + /* OK if some GPIOs aren't defined */
>> + if (!gpio_is_valid(gpio))
>> + continue;
>> +
>> + /* If a GPIO is valid, we'd better be able to claim it */
>> + ret = devm_gpio_request_one(dev, gpio, GPIOF_OUT_INIT_HIGH,
>> + "max77802 selb");
>> + if (ret) {
>> + dev_err(dev, "can't claim gpio[%d]: %d\n", i, ret);
>> + return ret;
>> + }
>
> Can this use the GPIO descriptor API?
>
Ok, I'll use gpiod_request() on v2.
>> +static void max77802_copy_reg(struct device *dev, struct regmap *regmap,
>> + int from_reg, int to_reg)
>> +{
>> + int val;
>> + int ret;
>> +
>> + if (from_reg == to_reg)
>> + return;
>> +
>> + ret = regmap_read(regmap, from_reg, &val);
>> + if (!ret)
>> + ret = regmap_write(regmap, to_reg, val);
>> +
>> + if (ret)
>> + dev_warn(dev, "Copy err %d => %d (%d)\n",
>> + from_reg, to_reg, ret);
>> +}
>
> This doesn't look at all device specific, better implement it in generic
> code.
>
Ok, will do.
>> + if (pdata->num_regulators != MAX77802_MAX_REGULATORS) {
>> + dev_err(&pdev->dev,
>> + "Invalid initial data for regulator's initialiation: " \
>> + "expected %d, pdata/dt provided %d\n",
>> + MAX77802_MAX_REGULATORS,
>> + pdata->num_regulators);
>> + return -EINVAL;
>> + }
>
> Don't split log messages over multiple lines so people can find the log
> message in the kernel source with grep, though in any case checking for
> this is a bug - the driver should always be at least able to read the
> current state from the hardware.
>
Ok.
>> +static int __init max77802_pmic_init(void)
>> +{
>> + return platform_driver_register(&max77802_pmic_driver);
>> +}
>> +subsys_initcall(max77802_pmic_init);
>
> module_platform_driver().
>
Ok.
Best regards,
Javier
next prev parent reply other threads:[~2014-06-09 23:29 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-09 9:37 [PATCH 0/5] Add Maxim 77802 PMIC support Javier Martinez Canillas
2014-06-09 9:37 ` [PATCH 1/5] mfd: Add driver for Maxim 77802 Power Management IC Javier Martinez Canillas
2014-06-09 10:22 ` Krzysztof Kozlowski
2014-06-09 11:56 ` Mark Brown
2014-06-09 23:07 ` Javier Martinez Canillas
2014-06-09 19:47 ` Mark Brown
2014-06-09 23:40 ` Javier Martinez Canillas
2014-06-09 9:37 ` [PATCH 2/5] regulator: Add driver for Maxim 77802 PMIC regulators Javier Martinez Canillas
[not found] ` <1402306670-17041-3-git-send-email-javier.martinez-ZGY8ohtN/8pPYcu2f3hruQ@public.gmane.org>
2014-06-09 19:38 ` Mark Brown
2014-06-09 23:29 ` Javier Martinez Canillas [this message]
2014-06-10 10:53 ` Mark Brown
2014-06-09 9:37 ` [PATCH 3/5] clk: Add driver for Maxim 77802 PMIC clocks Javier Martinez Canillas
2014-06-16 8:44 ` Lee Jones
2014-06-16 8:54 ` Javier Martinez Canillas
2014-06-09 9:37 ` [PATCH 4/5] rtc: Add driver for Maxim 77802 PMIC Real-Time-Clock Javier Martinez Canillas
2014-06-09 9:37 ` [PATCH 5/5] ARM: dts: Add max77802 device node for exynos5420-peach-pit Javier Martinez Canillas
2014-06-09 10:16 ` [PATCH 0/5] Add Maxim 77802 PMIC support Krzysztof Kozlowski
2014-06-09 16:04 ` Doug Anderson
2014-06-09 22:55 ` Javier Martinez Canillas
2014-06-09 23:57 ` Doug Anderson
2014-06-10 7:45 ` Krzysztof Kozlowski
2014-06-10 7:32 ` Krzysztof Kozlowski
2014-06-10 7:50 ` Javier Martinez Canillas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5396434D.3020402@collabora.co.uk \
--to=javier.martinez@collabora.co.uk \
--cc=a.zummo@towertech.it \
--cc=broonie@kernel.org \
--cc=daniels@collabora.com \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=kgene.kim@samsung.com \
--cc=lee.jones@linaro.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=mturquette@linaro.org \
--cc=olof@lixom.net \
--cc=sameo@linux.intel.com \
--cc=sjoerd.simons@collabora.co.uk \
--cc=tomeu.vizoso@collabora.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).