[<prev] [next>] [day] [month] [year] [list]
Message-ID: <1BAFE6F6C881BF42822005164F1491C33EC22349@DBDE04.ent.ti.com>
Date: Tue, 4 Jun 2013 09:50:49 +0000
From: "Hebbar, Gururaja" <gururaja.hebbar@...com>
To: Kevin Hilman <khilman@...aro.org>
CC: "grant.likely@...aro.org" <grant.likely@...aro.org>,
"linus.walleij@...aro.org" <linus.walleij@...aro.org>,
"rob.herring@...xeda.com" <rob.herring@...xeda.com>,
"davinci-linux-open-source@...ux.davincidsp.com"
<davinci-linux-open-source@...ux.davincidsp.com>,
"devicetree-discuss@...ts.ozlabs.org"
<devicetree-discuss@...ts.ozlabs.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux@....linux.org.uk" <linux@....linux.org.uk>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"Bedia, Vaibhav" <vaibhav.bedia@...com>,
"Rajashekhara, Sudhakar" <sudhakar.raj@...com>,
Tony Lindgren <tony@...mide.com>,
Wolfram Sang <wsa@...-dreams.de>,
"linux-omap@...r.kernel.org" <linux-omap@...r.kernel.org>,
"linux-i2c@...r.kernel.org" <linux-i2c@...r.kernel.org>,
Linus Walleij <linus.walleij@...aro.org>
Subject: RE: [PATCH 11/11] i2c: omap: enhance pinctrl support
On Fri, May 31, 2013 at 23:37:02, Kevin Hilman wrote:
> +Linus Walleij (pinctrl maintainer)
>
> Hebbar Gururaja <gururaja.hebbar@...com> writes:
>
> > Amend the I2C omap pin controller to optionally take a pin control
> > handle and set the state of the pins to:
> >
> > - "default" on boot, resume and before performing an i2c transfer
> > - "idle" after initial default, after resume default, and after each
> > i2c xfer
> > - "sleep" on suspend()
> >
> > By optionally putting the pins into sleep state in the suspend callback
> > we can accomplish two things.
> > - One is to minimize current leakage from pins and thus save power,
> > - second, we can prevent the IP from driving pins output in an
> > uncontrolled manner, which may happen if the power domain drops the
> > domain regulator.
> >
> > Note:
> > A .suspend & .resume callback is added which simply puts the pins to sleep
> > state upon suspend & are moved to default & idle state upon resume.
> >
> > If any of the above pin states are missing in dt, a warning message
> > about the missing state is displayed.
> > If certain pin-states are not available, to remove this warning message
> > pass respective state name with null phandler.
> >
> > (Changes based on i2c-nomadik.c)
> >
> > Signed-off-by: Hebbar Gururaja <gururaja.hebbar@...com>
> > Cc: Tony Lindgren <tony@...mide.com>
> > Cc: Wolfram Sang <wsa@...-dreams.de>
> > Cc: linux-omap@...r.kernel.org
> > Cc: linux-i2c@...r.kernel.org
>
> [...]
>
> > @@ -1123,14 +1138,47 @@ omap_i2c_probe(struct platform_device *pdev)
> > dev->set_mpu_wkup_lat = pdata->set_mpu_wkup_lat;
> > }
> >
> > - dev->pins = devm_pinctrl_get_select_default(&pdev->dev);
> > - if (IS_ERR(dev->pins)) {
> > - if (PTR_ERR(dev->pins) == -EPROBE_DEFER)
> > + dev->pinctrl = devm_pinctrl_get(&pdev->dev);
> > + if (!IS_ERR(dev->pinctrl)) {
> > + dev->pins_default = pinctrl_lookup_state(dev->pinctrl,
> > + PINCTRL_STATE_DEFAULT);
>
> This part is already done by probe in driver core, why does it need to
> be done again. dev->pins->default_state should already have this.
> (c.f. pinctrl_bind_pins() in drivers/base/pinctrl.c)
>
> But that brings up a bigger question about whether or not we should be
> doing the rest of this (idle/sleep) pin management in the drivers or in
> the driver core as well. I would much prefer it be handled by the
> driver core.
>
> In fact, since these are all PM related events, it should probably be
> handled by the PM core and seems pretty straight forward to do so.
Let me pull out some info about these and come back
>
> Kevin
>
Regards,
Gururaja
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists