RE: [Patch V1] 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: Saturday, January 07, 2017 5:20 AM
> To: Pandy Gao <pandy.gao@xxxxxxx>; wsa@xxxxxxxxxxxxx; wsa-
> dev@xxxxxxxxxxxxxxxxxxxx
> Cc: linux-i2c@xxxxxxxxxxxxxxx; Frank Li <frank.li@xxxxxxx>; Andy Duan
> <fugang.duan@xxxxxxx>
> Subject: Re: [Patch V1] i2c: imx-lpi2c: add VLLS mode support
> 
> Hi,
> 
> On 01/04/2017 11:20 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>
> > ---
> >  drivers/i2c/busses/i2c-imx-lpi2c.c | 22 ++++++++++++++++++++++
> >  1 file changed, 22 insertions(+)
> >
> > diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c
> > b/drivers/i2c/busses/i2c-imx-lpi2c.c
> > index c62b7cd..e528c1d1 100644
> > --- a/drivers/i2c/busses/i2c-imx-lpi2c.c
> > +++ b/drivers/i2c/busses/i2c-imx-lpi2c.c
> > @@ -636,12 +636,34 @@ 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);
> > +#define IMX_LPI2C_PM	(&imx_lpi2c_pm)
> > +#else
> > +#define IMX_LPI2C_PM	NULL
> 
> Please drop #else branch and IMX_LPI2C_PM completely.

Thanks,  will change it in next version. 

> > +#endif
> > +
> >  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,
> > +		.pm = IMX_LPI2C_PM,
> 
> Here it should be:
> 
> 		.pm = &imx_lpi2c_pm,

Thanks, will change it in next version.  As the above "#else branch" is removed, the following condition is necessary.
#ifdef CONFIG_PM_SLEEP
                .pm = &imx_lpi2c_pm,
#endif

Best Regards
Pandy
��.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