Jean Delvare wrote:
> Hi Troy,
>
> On Thu, 20 Mar 2008 20:06:07 -0700, Troy Kisky wrote:
>> Ensure psc value gives a clock between 7-12 Mhz
>
> Correct spelling is MHz.
>
>> Signed-off-by: Troy Kisky <[EMAIL PROTECTED]>
>> Signed-off-by: Kevin Hilman <[EMAIL PROTECTED]>
>> ---
>> drivers/i2c/busses/i2c-davinci.c | 19 ++++++++++++-------
>> 1 files changed, 12 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/i2c/busses/i2c-davinci.c
>> b/drivers/i2c/busses/i2c-davinci.c
>> index fde2634..82d4b7f 100755
>> --- a/drivers/i2c/busses/i2c-davinci.c
>> +++ b/drivers/i2c/busses/i2c-davinci.c
>> @@ -142,6 +142,7 @@ static int i2c_davinci_init(struct davinci_i2c_dev *dev)
>> struct davinci_i2c_platform_data *pdata = dev->dev->platform_data;
>> u16 psc;
>> u32 clk;
>> + u32 d;
>> u32 clkh;
>> u32 clkl;
>> u32 input_clock = clk_get_rate(dev->clk);
>> @@ -171,23 +172,29 @@ static int i2c_davinci_init(struct davinci_i2c_dev
>> *dev)
>> * if PSC > 1 , d = 5
>> */
>>
>> - psc = 26; /* To get 1MHz clock */
>> + /* get minimum of 7mHz clock, but max of 12mHz */
>
> Correct spelling is MHz.
Hmm... I seems weird that kHz and MHz are correct, as opposed to
kHz and mHz, or KHz and MHz.
>
>> + psc = (input_clock/7000000)-1;
>
> The usual coding style is to leave spaces around all operators. Same
> problem below.
>
> Note: if input_clock < 7000000, you're in trouble.
>
>> + if ((input_clock/(psc+1)) > 12000000)
>> + psc++;
>
> The only case where this will happen as far as I can see is if
> input_clock is between 12 and 14 MHz. In this case, you'll get a clock
> lower than 7 MHz (worst case is 6 MHz). Is this OK?
Since it was running out of spec at 1 Mhz, I figured running under
spec is better than over.
>
>> + d = (psc >= 2)? 5 : 7 - psc;
>>
>> - clk = ((input_clock / (psc + 1)) / (pdata->bus_freq * 1000)) - 10;
>> - clkh = (50 * clk) / 100;
>> + clk = ((input_clock/(psc+1)) / (pdata->bus_freq * 1000)) - (d<<1);
>> + clkh = clk>>1;
>> clkl = clk - clkh;
>>
>> davinci_i2c_write_reg(dev, DAVINCI_I2C_PSC_REG, psc);
>> davinci_i2c_write_reg(dev, DAVINCI_I2C_CLKH_REG, clkh);
>> davinci_i2c_write_reg(dev, DAVINCI_I2C_CLKL_REG, clkl);
>>
>> - dev_dbg(dev->dev, "CLK = %d\n", clk);
>> + dev_dbg(dev->dev, "input_clock=%d, CLK = %d\n", input_clock, clk);
>
> As I already wrote in my previous review: please come up with
> consistent spacing in this debugging message. Having no space around
> the first "=", but two spaced before and one after the second "=",
> doesn't look good.
Agreed..
But the previous message was
> > + dev_dbg(dev->dev, "input_clock=%d, CLK = %d\n", input_clock,clk);
>
> Please come up with consistent spacing in this debugging message.
> Missing space after comma.
And I interpreted you incorrectly. I didn't ignore you.
>
>> dev_dbg(dev->dev, "PSC = %d\n",
>> davinci_i2c_read_reg(dev, DAVINCI_I2C_PSC_REG));
>> dev_dbg(dev->dev, "CLKL = %d\n",
>> davinci_i2c_read_reg(dev, DAVINCI_I2C_CLKL_REG));
>> dev_dbg(dev->dev, "CLKH = %d\n",
>> davinci_i2c_read_reg(dev, DAVINCI_I2C_CLKH_REG));
>> + dev_dbg(dev->dev, "bus_freq = %dkHz bus_delay = %d\n",
>
> For consistency, you should add a comma after kHz.
>
>> + pdata->bus_freq, pdata->bus_delay);
>>
>> /* Take the I2C module out of reset: */
>> w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG);
>> @@ -338,12 +345,10 @@ i2c_davinci_xfer(struct i2c_adapter *adap, struct
>> i2c_msg msgs[], int num)
>>
>> for (i = 0; i < num; i++) {
>> ret = i2c_davinci_xfer_msg(adap, &msgs[i], (i == (num - 1)));
>> + dev_dbg(dev->dev, "%s ret: %d\n", __func__, ret);
>> if (ret < 0)
>> return ret;
>> }
>> -
>> - dev_dbg(dev->dev, "%s:%d ret: %d\n", __FUNCTION__, __LINE__, ret);
>> -
>> return num;
>> }
>>
>
> Not sure how this last chunk is supposed to belong to this patch?
>
Do you want a separate patch? Or just a comment that a dev_dbg was moved so that
it prints always instead of just on no error?
Troy
_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c