RE: [PATCH] i2c: designware: Get selected speed mode sda-hold-time via ACPI

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

 



> On Fri, 2017-02-10 at 19:28 +0800, chin.yew.tan@xxxxxxxxx wrote:
> > From: Tan Chin Yew <chin.yew.tan@xxxxxxxxx>
> >
> > Sda-hold-time is an important parameter for tuning i2c to meet the
> > electrical specification especially for high speed. I2C with incorrect
> > sda-hold-time may cause lost arbitration error. Now, the driver is
> > able to get sda-hold-time for all the speed supported.
> >
> 
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> 
> Couple of nitpicks below.
> 
> > Signed-off-by: Tan Chin Yew <chin.yew.tan@xxxxxxxxx>
> > ---
> >  drivers/i2c/busses/i2c-designware-platdrv.c | 27
> > ++++++++++++++++++++-------
> >  1 file changed, 20 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c
> > b/drivers/i2c/busses/i2c-designware-platdrv.c
> > index 6ce4313..aa33088 100644
> > --- a/drivers/i2c/busses/i2c-designware-platdrv.c
> > +++ b/drivers/i2c/busses/i2c-designware-platdrv.c
> > @@ -101,15 +101,28 @@ static int dw_i2c_acpi_configure(struct
> > platform_device *pdev)
> >  	dev->rx_fifo_depth = 32;
> >
> >  	/*
> > -	 * Try to get SDA hold time and *CNT values from an ACPI
> > method if
> > -	 * it exists for both supported speed modes.
> > +	 * Try to get SDA hold time and *CNT values from an ACPI
> > method for
> > +	 * selected speed modes.
> >  	 */
> > -	dw_i2c_acpi_params(pdev, "SSCN", &dev->ss_hcnt, &dev-
> > >ss_lcnt, NULL);
> > -	dw_i2c_acpi_params(pdev, "FMCN", &dev->fs_hcnt, &dev-
> > >fs_lcnt,
> > +	switch (dev->clk_freq) {
> > +	case 100000:
> > +		dw_i2c_acpi_params(pdev, "SSCN", &dev->ss_hcnt, &dev-
> > >ss_lcnt,
> 
> >  			   &dev->sda_hold_time);
> 
> This indentation should go in a way that & character in the same column as p
> (in "p(s" context above).
I will realign the code according to suggestion.

> 
> > -	dw_i2c_acpi_params(pdev, "FPCN", &dev->fp_hcnt, &dev-
> > >fp_lcnt, NULL);
> > -	dw_i2c_acpi_params(pdev, "HSCN", &dev->hs_hcnt, &dev-
> > >hs_lcnt, NULL);
> > -
> > +		break;
> > +	case 1000000:
> > +		dw_i2c_acpi_params(pdev, "FPCN", &dev->fp_hcnt, &dev-
> > >fp_lcnt,
> > +			   &dev->sda_hold_time);
> > +		break;
> > +	case 3400000:
> > +		dw_i2c_acpi_params(pdev, "HSCN", &dev->hs_hcnt, &dev-
> > >hs_lcnt,
> > +			   &dev->sda_hold_time);
> > +		break;
> 
> Can we prepend default with
> 
> case 400000:
> 
> here?
> 
Yes, you are right, it is best not to load settings for speed mode that is 
not supported.

> > +	default:
> 
> 
> > +		dw_i2c_acpi_params(pdev, "FMCN", &dev->fs_hcnt, &dev-
> > >fs_lcnt,
> > +			   &dev->sda_hold_time);
> > +		break;
> > +	}
> > +
> >  	id = acpi_match_device(pdev->dev.driver->acpi_match_table,
> > &pdev->dev);
> >  	if (id && id->driver_data)
> >  		dev->accessor_flags |= (u32)id->driver_data;
> 
> --
> Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> Intel Finland Oy
��.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