RE: [Patch V2] i2c: imx-lpi2c: add VLLS mode support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 From: Vladimir Zapolskiy <mailto:vz@xxxxxxxxx>  Sent: Tuesday, January 17, 2017 5:10 PM
> To: Pandy Gao <pandy.gao@xxxxxxx>; wsa@xxxxxxxxxxxxx; wsa-
> dev@xxxxxxxxxxxxxxxxxxxx
> Cc: linux-i2c@xxxxxxxxxxxxxxx; Frank Li <frank.li@xxxxxxx>
> Subject: Re: [Patch V2] i2c: imx-lpi2c: add VLLS mode support
> 
> Hello Pandy,
> 
> On 01/17/2017 09:09 AM, Gao Pan wrote:
> > When system enters VLLS mode, module power is turned off. As a
> result,
> > all registers are reset to HW default value. After exiting VLLS mode,
> > registers are still in default mode. As a result, the pinctrl settings
> > are incorrect, which will affect the module function.
> >
> > The patch recovers the pinctrl setting when exit VLLS mode.
> >
> > Signed-off-by: Gao Pan <pandy.gao@xxxxxxx>
> > ---
> > V2:
> >  -drop "#else branch" and IMX_LPI2C_PM completely  -pm =
> &imx_lpi2c_pm
> >
> >  drivers/i2c/busses/i2c-imx-lpi2c.c | 21 +++++++++++++++++++++
> >  1 file changed, 21 insertions(+)
> >
> > diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c
> > b/drivers/i2c/busses/i2c-imx-lpi2c.c
> > index c62b7cd..dbde95d 100644
> > --- a/drivers/i2c/busses/i2c-imx-lpi2c.c
> > +++ b/drivers/i2c/busses/i2c-imx-lpi2c.c
> > @@ -636,12 +636,33 @@ static int lpi2c_imx_remove(struct
> platform_device *pdev)
> >  	return 0;
> >  }
> >
> > +#ifdef CONFIG_PM_SLEEP
> > +static int lpi2c_imx_suspend(struct device *dev) {
> > +	pinctrl_pm_select_sleep_state(dev);
> > +
> > +	return 0;
> > +}
> > +
> > +static int lpi2c_imx_resume(struct device *dev) {
> > +	pinctrl_pm_select_default_state(dev);
> > +
> > +	return 0;
> > +}
> > +
> > +static SIMPLE_DEV_PM_OPS(imx_lpi2c_pm, lpi2c_imx_suspend,
> > +lpi2c_imx_resume); #endif
> 
> in case if I didn't manage to explain what is desirable, please change
> the order of two lines above, you may find that commonly
> SIMPLE_DEV_PM_OPS() macro is used outside #ifdef CONFIG_PM_SLEEP,
> due to the feature that CONFIG_PM_SLEEP token is incorporated into
> SIMPLE_DEV_PM_OPS() internals.
> 
> > +
> >  static struct platform_driver lpi2c_imx_driver = {
> >  	.probe = lpi2c_imx_probe,
> >  	.remove = lpi2c_imx_remove,
> >  	.driver = {
> >  		.name = DRIVER_NAME,
> >  		.of_match_table = lpi2c_imx_of_match,
> > +#ifdef CONFIG_PM_SLEEP
> > +		.pm = &imx_lpi2c_pm,
> > +#endif
> 
> Then this #ifdef won't be needed here.

Yes, you are right. Will change it in next version. Thanks

Best Regards
Gao Pan
��.n��������+%������w��{.n�����{��-��)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥




[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux