From: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Lee Jones <lee.jones@linaro.org>,
Alessandro Zummo <a.zummo@towertech.it>,
Krzysztof Kozlowski <k.kozlowski@samsung.com>,
Kukjin Kim <kgene.kim@samsung.com>,
Mike Turquette <mturquette@linaro.org>,
Tomeu Vizoso <tomeu.vizoso@collabora.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Yadwinder Singh Brar <yadi.brar01@gmail.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Doug Anderson <dianders@chromium.org>,
Tushar Behera <trblinux@gmail.com>,
Mark Brown <broonie@kernel.org>,
linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
Olof Johansson <olof@lixom.net>,
Andreas Farber <afaerber@suse.de>,
Alexandre Courbot <gnurou@gmail.com>,
Rob Jones <rob.jones@codethink.co.uk>
Subject: Re: [PATCH v7 08/24] mfd: max77686: Add Dynamic Voltage Scaling (DVS) support
Date: Fri, 11 Jul 2014 02:51:40 +0200 [thread overview]
Message-ID: <53BF351C.8060008@collabora.co.uk> (raw)
In-Reply-To: <CACRpkdYs93snBFYZMKN6kd==b9jZehnp1eHV5bHaBNsNRt62pQ@mail.gmail.com>
Hello Linus,
On 07/10/2014 11:46 AM, Linus Walleij wrote:
> On Fri, Jul 4, 2014 at 10:24 PM, Javier Martinez Canillas
> <javier.martinez@collabora.co.uk> wrote:
>
>> Some regulators on the MAX77686 PMIC have Dynamic Voltage Scaling
>> (DVS) support that allows output voltage to change dynamically.
>>
>> For MAX77686, these regulators are Buck regulators 2, 3 and 4.
>>
>> Each Buck output voltage is selected using a set of external
>> inputs: DVS1-3 and SELB2-4.
>>
>> DVS registers can be used to configure the output voltages for each
>> Buck regulator and which one is active is controled by DVSx lines.
>>
>> SELBx lines are used to control if individual Buck lines are ON or OFF.
>>
>> This patch adds support to configure the DVSx and SELBx lines
>> from DT and to setup and read the GPIO lines connected to them.
>>
>> Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
>> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
>
> (...)
>> +#include <linux/gpio/consumer.h>
>
> THANKS for using modern interfaces!
>
Thanks to you and Alexandre for keep improving the GPIO subsystem!
>> +static void max77686_dt_parse_dvs_gpio(struct device *dev)
>> +{
>> + struct max77686_platform_data *pd = dev_get_platdata(dev);
>> + int i;
>> +
>> + /*
>> + * NOTE: we don't consider GPIO errors fatal; board may have some lines
>> + * directly pulled high or low and thus doesn't specify them.
>> + */
>> + for (i = 0; i < ARRAY_SIZE(pd->buck_gpio_dvs); i++)
>> + pd->buck_gpio_dvs[i] =
>> + devm_gpiod_get_index(dev, "max77686,pmic-buck-dvs", i);
>> +
>> + for (i = 0; i < ARRAY_SIZE(pd->buck_gpio_selb); i++)
>> + pd->buck_gpio_selb[i] =
>> + devm_gpiod_get_index(dev, "max77686,pmic-buck-selb", i);
>> +}
>
> Rob Jones has a patch cooking that adds gpio_get_array() so this thing
> merits also adding devm_gpiod_get_array() I think?
>
Yes, I just asked [0] Rob on the other thread if he is already implementing the
descriptor-based version of his devm_request_gpio_array() or if I should go and
implement it.
Now, I wonder if that can be done in a follow-up patch (e.g: use the new
devm_gpiod_get_array once it lands in Torvalds tree) since this series already
touches several subsystems (mfd, regulators, clk and rtc) so if possible I would
prefer to not add another cross-subsystem dependency :)
>> +/**
>> + * max77686_setup_gpios() - init DVS-related GPIOs
>> + * @dev: device whose platform data contains the dvs GPIOs information
>> + *
>> + * This function claims / initalizations GPIOs related to DVS if they are
>> + * defined. This may have the effect of switching voltages if the
>> + * pdata->buck_default_idx does not match the boot time state of pins.
>> + */
>> +int max77686_setup_gpios(struct device *dev)
>> +{
>> + struct max77686_platform_data *pd = dev_get_platdata(dev);
>> + int buck_default_idx = pd->buck_default_idx;
>> + int ret;
>> + int i;
>> +
>> + /* Set all SELB high to avoid glitching while DVS is changing */
>> + for (i = 0; i < ARRAY_SIZE(pd->buck_gpio_selb); i++) {
>> + struct gpio_desc *gpio = pd->buck_gpio_selb[i];
>> +
>> + /* OK if some GPIOs aren't defined */
>> + if (IS_ERR(gpio))
>> + continue;
>> +
>> + ret = gpiod_direction_output_raw(gpio, 1);
>
> Why does this have to be raw? Usually that is not to be used.
>
Right, I can't think of a good reason why this has to be raw and not just use
gpiod_direction_output() which will check the active-low flag and set the value
accordingly. I'll change it on the next revision.
> Apart from this it looks OK.
>
Great, thanks a lot for your feedback.
> Yours,
> Linus Walleij
>
Best regards,
Javier
[0]: https://lkml.org/lkml/2014/7/10/722
next prev parent reply other threads:[~2014-07-11 0:51 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-04 20:24 [PATCH v7 00/24] Add Maxim 77802 PMIC support Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 01/24] mfd: max77686: Convert to use regmap_irq Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-18 8:17 ` Lee Jones
2014-07-18 8:17 ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 02/24] mfd: max77686: Add power management support Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-09 14:44 ` Lee Jones
2014-07-09 14:44 ` Lee Jones
2014-07-18 8:17 ` Lee Jones
2014-07-18 8:17 ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 03/24] mfd: max77686: Don't define dummy function if OF isn't enabled Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-09 14:50 ` Lee Jones
2014-07-09 14:50 ` Lee Jones
[not found] ` <1404505467-26526-4-git-send-email-javier.martinez-ZGY8ohtN/8pPYcu2f3hruQ@public.gmane.org>
2014-07-18 8:17 ` Lee Jones
2014-07-18 8:17 ` Lee Jones
2014-07-18 8:17 ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 04/24] mfd: max77686: Make platform data over-rule DT Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-09 14:52 ` Lee Jones
2014-07-09 14:52 ` Lee Jones
2014-07-09 18:15 ` Javier Martinez Canillas
2014-07-09 18:15 ` Javier Martinez Canillas
2014-07-18 8:17 ` Lee Jones
2014-07-18 8:17 ` Lee Jones
2014-07-18 8:17 ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 05/24] mfd: max77686: Return correct error when pdata isn't found Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-09 14:53 ` Lee Jones
2014-07-09 14:53 ` Lee Jones
2014-07-18 8:18 ` Lee Jones
2014-07-18 8:18 ` Lee Jones
2014-07-18 8:18 ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 06/24] mfd: max77686: Make error checking consistent Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-09 14:54 ` Lee Jones
2014-07-09 14:54 ` Lee Jones
2014-07-18 8:18 ` Lee Jones
2014-07-18 8:18 ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 07/24] mfd: max77686: Remove unneeded OOM error message Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
[not found] ` <1404505467-26526-8-git-send-email-javier.martinez-ZGY8ohtN/8pPYcu2f3hruQ@public.gmane.org>
2014-07-18 8:18 ` Lee Jones
2014-07-18 8:18 ` Lee Jones
2014-07-18 8:18 ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 08/24] mfd: max77686: Add Dynamic Voltage Scaling (DVS) support Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-09 15:13 ` Lee Jones
2014-07-09 15:13 ` Lee Jones
2014-07-09 18:40 ` Javier Martinez Canillas
2014-07-09 18:40 ` Javier Martinez Canillas
[not found] ` <1404505467-26526-9-git-send-email-javier.martinez-ZGY8ohtN/8pPYcu2f3hruQ@public.gmane.org>
2014-07-10 9:46 ` Linus Walleij
2014-07-10 9:46 ` Linus Walleij
2014-07-11 0:51 ` Javier Martinez Canillas [this message]
2014-07-10 9:59 ` amit daniel kachhap
2014-07-10 9:59 ` amit daniel kachhap
2014-07-11 1:45 ` Javier Martinez Canillas
2014-07-11 1:45 ` Javier Martinez Canillas
2014-07-11 4:02 ` Doug Anderson
2014-07-11 4:02 ` Doug Anderson
2014-07-11 9:37 ` amit daniel kachhap
2014-07-11 9:37 ` amit daniel kachhap
2014-07-11 9:43 ` Tomasz Figa
2014-07-11 9:43 ` Tomasz Figa
2014-07-11 10:15 ` Javier Martinez Canillas
2014-07-11 10:15 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 09/24] rtc: max77686: Allow the max77686 rtc to wakeup the system Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 10/24] rtc: max77686: Remove dead code for SMPL and WTSR Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-07 6:09 ` Krzysztof Kozlowski
2014-07-07 6:09 ` Krzysztof Kozlowski
2014-07-04 20:24 ` [PATCH v7 11/24] clk: max77686: Add DT include for MAX77686 PMIC clock Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 12/24] clk: Add generic driver for Maxim PMIC clocks Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 13/24] clk: max77686: Convert to the generic max clock driver Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 14/24] clk: max77686: Improve Maxim 77686 PMIC clocks binding Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 15/24] regmap: Add regmap_reg_copy function Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 16/24] regulator: max77686: Setup DVS-related GPIOs on probe Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 17/24] mfd: max77686: Add documentation for DVS bindings Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 18/24] mfd: max77686: Add Maxim 77802 PMIC support Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-09 15:31 ` Lee Jones
2014-07-09 15:31 ` Lee Jones
2014-07-09 18:43 ` Javier Martinez Canillas
2014-07-09 18:43 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 19/24] mfd: max77802: Add DT binding documentation Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 20/24] regulator: Add driver for Maxim 77802 PMIC regulators Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 21/24] clk: Add driver for Maxim 77802 PMIC clocks Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 22/24] clk: max77802: Add DT binding documentation Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 23/24] rtc: Add driver for Maxim 77802 PMIC Real-Time-Clock Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-07 6:06 ` Krzysztof Kozlowski
2014-07-07 6:06 ` Krzysztof Kozlowski
2014-07-07 6:57 ` Javier Martinez Canillas
2014-07-07 6:57 ` Javier Martinez Canillas
2014-07-07 6:57 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 24/24] ARM: dts: Add max77802 to exynos5420-peach-pit and exynos5800-peach-pi Javier Martinez Canillas
2014-07-04 20:24 ` 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=53BF351C.8060008@collabora.co.uk \
--to=javier.martinez@collabora.co.uk \
--cc=a.zummo@towertech.it \
--cc=afaerber@suse.de \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=gnurou@gmail.com \
--cc=k.kozlowski@samsung.com \
--cc=kgene.kim@samsung.com \
--cc=lee.jones@linaro.org \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=mturquette@linaro.org \
--cc=olof@lixom.net \
--cc=rob.jones@codethink.co.uk \
--cc=tomeu.vizoso@collabora.com \
--cc=trblinux@gmail.com \
--cc=yadi.brar01@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.