From: Jon Hunter <jonathanh@nvidia.com>
To: Thierry Reding <thierry.reding@gmail.com>,
Laxman Dewangan <ldewangan@nvidia.com>
Cc: <linus.walleij@linaro.org>, <robh+dt@kernel.org>,
<mark.rutland@arm.com>, <swarren@wwwdotorg.org>,
<gnurou@gmail.com>, <joe@perches.com>,
<yamada.masahiro@socionext.com>, <linux-gpio@vger.kernel.org>,
<devicetree@vger.kernel.org>, <linux-tegra@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH V4 2/2] pinctrl: tegra: Add driver to configure voltage and power of io pads
Date: Fri, 25 Nov 2016 17:26:40 +0000 [thread overview]
Message-ID: <2a767269-dc64-3639-2e14-7c6f57230dcf@nvidia.com> (raw)
In-Reply-To: <20161125095744.GB11512@ulmo.ba.sec>
On 25/11/16 09:57, Thierry Reding wrote:
> * PGP Signed by an unknown key
>
> On Thu, Nov 24, 2016 at 02:08:54PM +0530, Laxman Dewangan wrote:
>> NVIDIA Tegra124 and later SoCs support the multi-voltage level and
>> low power state of some of its IO pads. The IO pads can work in
>> the voltage of the 1.8V and 3.3V of IO voltage from IO power rail
>> sources. When IO interfaces are not used then IO pads can be
>> configure in low power state to reduce the power consumption from
>> that IO pads.
>>
>> On Tegra124, the voltage level of IO power rail source is auto
>> detected by hardware(SoC) and hence it is only require to configure
>> in low power mode if IO pads are not used.
>>
>> On T210 onwards, the auto-detection of voltage level from IO power
>> rail is removed from SoC and hence SW need to configure the PMC
>> register explicitly to set proper voltage in IO pads based on
>> IO rail power source voltage.
>>
>> This driver adds the IO pad driver to configure the power state and
>> IO pad voltage based on the usage and power tree via pincontrol
>> framework. The configuration can be static and dynamic.
>>
>> Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
>>
>> ---
>> Changes from V1:
>> - Dropped the custom properties to set pad voltage and use regulator.
>> - Added support for regulator to get vottage in boot and configure IO
>> pad voltage.
>> - Add support for callback to handle regulator notification and configure
>> IO pad voltage based on voltage change.
>>
>> Changes from V2:
>> Mostly nit changes per Jon's feedback i.e. use macros for voltage, added
>> comment on macros, reduce the structure and variable name size, optimise
>> number of variables, and allocate memory for regulator info when it needed.
>>
>> Changes from V3:
>> Use the devm_regulator_get() instead of devm_regulator_get_optional().
>>
>> drivers/pinctrl/tegra/Kconfig | 12 +
>> drivers/pinctrl/tegra/Makefile | 1 +
>> drivers/pinctrl/tegra/pinctrl-tegra-io-pad.c | 530 +++++++++++++++++++++++++++
>> 3 files changed, 543 insertions(+)
>> create mode 100644 drivers/pinctrl/tegra/pinctrl-tegra-io-pad.c
...
>> diff --git a/drivers/pinctrl/tegra/pinctrl-tegra-io-pad.c b/drivers/pinctrl/tegra/pinctrl-tegra-io-pad.c
>> new file mode 100644
>> index 0000000..aab02d0
>> --- /dev/null
>> +++ b/drivers/pinctrl/tegra/pinctrl-tegra-io-pad.c
>> @@ -0,0 +1,530 @@
>> +/*
>> + * pinctrl-tegra-io-pad: IO PAD driver for configuration of IO rail and deep
>> + * Power Down mode via pinctrl framework.
>> + *
>> + * Copyright (C) 2016 NVIDIA CORPORATION. All rights reserved.
>> + *
>> + * Author: Laxman Dewangan <ldewangan@nvidia.com>
>> + *
>> + * This program is free software; you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License version 2 as
>> + * published by the Free Software Foundation.
>> + */
>> +
>> +#include <linux/delay.h>
>> +#include <linux/module.h>
>> +#include <linux/of.h>
>> +#include <linux/pinctrl/pinctrl.h>
>> +#include <linux/pinctrl/pinconf-generic.h>
>> +#include <linux/pinctrl/pinconf.h>
>> +#include <linux/pinctrl/pinmux.h>
>> +#include <linux/platform_device.h>
>> +#include <linux/regulator/consumer.h>
>> +#include <soc/tegra/pmc.h>
>
> Have you considered moving this code into the PMC driver? It seems a
> little over the top to go through all of the platform device creation
> and driver registration dance only to call into a public API later on.
I would prefer moving this under driver/soc/tegra as well (even if it is
not in the same source file) so we don't need all this public APIs.
Cheers
Jon
--
nvpublic
next prev parent reply other threads:[~2016-11-25 17:30 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-24 8:38 [PATCH V4 0/2] pinctrl: tegra: Add support for IO pad control Laxman Dewangan
2016-11-24 8:38 ` [PATCH V4 1/2] pinctrl: tegra: Add DT binding for io pads control Laxman Dewangan
2016-11-25 9:13 ` Thierry Reding
2016-11-25 11:40 ` Laxman Dewangan
2016-11-25 17:19 ` Jon Hunter
2016-11-24 8:38 ` [PATCH V4 2/2] pinctrl: tegra: Add driver to configure voltage and power of io pads Laxman Dewangan
2016-11-25 9:57 ` Thierry Reding
2016-11-25 12:04 ` Laxman Dewangan
2016-11-25 17:29 ` Jon Hunter
2016-11-25 17:49 ` Laxman Dewangan
2016-11-28 9:26 ` Jon Hunter
2016-11-28 9:22 ` Laxman Dewangan
2016-11-25 17:26 ` Jon Hunter [this message]
2016-11-25 17:45 ` Laxman Dewangan
2016-11-28 9:31 ` Jon Hunter
2016-12-04 3:31 ` kbuild test robot
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=2a767269-dc64-3639-2e14-7c6f57230dcf@nvidia.com \
--to=jonathanh@nvidia.com \
--cc=devicetree@vger.kernel.org \
--cc=gnurou@gmail.com \
--cc=joe@perches.com \
--cc=ldewangan@nvidia.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=robh+dt@kernel.org \
--cc=swarren@wwwdotorg.org \
--cc=thierry.reding@gmail.com \
--cc=yamada.masahiro@socionext.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
all inboxes | Powered by JetHome®