[U-Boot] [PATCH 3/4] i2c: cdns: Support different bus speeds
Michal Simek
michal.simek at xilinx.com
Mon Apr 18 13:09:25 CEST 2016
On 18.4.2016 09:08, Heiko Schocher wrote:
> Hello Michal,
>
> Am 14.04.2016 um 14:15 schrieb Michal Simek:
>> 400kHz is maximum freq which can be used on Xilinx ZynqMP.
>> Support it with standard divider calculator.
>> Input freq is hardcoded to 100MHz input freq till we have clock driver
>> which can provide this information for exact configuration.
>>
>> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
>> ---
>>
>> drivers/i2c/i2c-cdns.c | 76
>> +++++++++++++++++++++++++++++++++++++++++++++-----
>> 1 file changed, 69 insertions(+), 7 deletions(-)
>
> just some nitpick, beside of this:
>
> Reviewed-by: Heiko Schocher <hs at denx.de>
>
>> diff --git a/drivers/i2c/i2c-cdns.c b/drivers/i2c/i2c-cdns.c
>> index 0bc6aaaa6f90..5642cd91fe2e 100644
>> --- a/drivers/i2c/i2c-cdns.c
>> +++ b/drivers/i2c/i2c-cdns.c
>> @@ -112,6 +112,7 @@ static void cdns_i2c_debug_status(struct
>> cdns_i2c_regs *cdns_i2c)
>>
>> struct i2c_cdns_bus {
>> int id;
>> + unsigned int input_freq;
>> struct cdns_i2c_regs __iomem *regs; /* register base */
>> };
>>
>> @@ -133,20 +134,79 @@ static u32 cdns_i2c_wait(struct cdns_i2c_regs
>> *cdns_i2c, u32 mask)
>> return int_status & mask;
>> }
>>
>> +#define CDNS_I2C_DIVA_MAX 4
>> +#define CDNS_I2C_DIVB_MAX 64
>> +
>> +static int cdns_i2c_calc_divs(unsigned long *f, unsigned long input_clk,
>> + unsigned int *a, unsigned int *b)
>> +{
>> + unsigned long fscl = *f, best_fscl = *f, actual_fscl, temp;
>> + unsigned int div_a, div_b, calc_div_a = 0, calc_div_b = 0;
>> + unsigned int last_error, current_error;
>> +
>> + /* calculate (divisor_a+1) x (divisor_b+1) */
>
> please add a space before and after the "+"
I have fixed this.
Thanks,
Michal
More information about the U-Boot
mailing list