diff mbox

I2C: MV64XYZ: Add Device Tree support

Message ID 20120723200359.GB31645@pengutronix.de (mailing list archive)
State New, archived
Headers show

Commit Message

Wolfram Sang July 23, 2012, 8:03 p.m. UTC
On Sun, Jul 22, 2012 at 12:51:35PM +0200, Andrew Lunn wrote:
> Extends the driver to get properties from device tree. Rather than
> pass the N & M factors in DT, use the more standard clock-frequency
> property. Calculate N & M at run time. In order to do this, we need to
> know tclk. So the driver uses clk_get() etc in order to get the clock
> and clk_get_rate() to determine the tclk rate. Not all platforms
> however have CLK, so some #ifdefery is needed to ensure the driver
> still compiles when CLK is not available.
> 
> Signed-off-by: Andrew Lunn <andrew@lunn.ch>

Sparse complained about this:

drivers/i2c/busses/i2c-mv64xxx.c:584:54: warning: incorrect type in argument 3 (different signedness)
drivers/i2c/busses/i2c-mv64xxx.c:584:54:    expected unsigned int [usertype] *out_value
drivers/i2c/busses/i2c-mv64xxx.c:584:54:    got int *<noident>
drivers/i2c/busses/i2c-mv64xxx.c:586:41: warning: incorrect type in argument 3 (different signedness)
drivers/i2c/busses/i2c-mv64xxx.c:586:41:    expected int *best_n
drivers/i2c/busses/i2c-mv64xxx.c:586:41:    got unsigned int *<noident>
drivers/i2c/busses/i2c-mv64xxx.c:586:60: warning: incorrect type in argument 4 (different signedness)
drivers/i2c/busses/i2c-mv64xxx.c:586:60:    expected int *best_m
drivers/i2c/busses/i2c-mv64xxx.c:586:60:    got unsigned int *<noident>

I applied your patch with the following fix to -next. Let me know if you agree
with that.

Regards,

   Wolfram

Comments

Andrew Lunn July 24, 2012, 6:42 a.m. UTC | #1
On Mon, Jul 23, 2012 at 10:03:59PM +0200, Wolfram Sang wrote:
> On Sun, Jul 22, 2012 at 12:51:35PM +0200, Andrew Lunn wrote:
> > Extends the driver to get properties from device tree. Rather than
> > pass the N & M factors in DT, use the more standard clock-frequency
> > property. Calculate N & M at run time. In order to do this, we need to
> > know tclk. So the driver uses clk_get() etc in order to get the clock
> > and clk_get_rate() to determine the tclk rate. Not all platforms
> > however have CLK, so some #ifdefery is needed to ensure the driver
> > still compiles when CLK is not available.
> > 
> > Signed-off-by: Andrew Lunn <andrew@lunn.ch>
> 
> Sparse complained about this:
> 
> drivers/i2c/busses/i2c-mv64xxx.c:584:54: warning: incorrect type in argument 3 (different signedness)
> drivers/i2c/busses/i2c-mv64xxx.c:584:54:    expected unsigned int [usertype] *out_value
> drivers/i2c/busses/i2c-mv64xxx.c:584:54:    got int *<noident>
> drivers/i2c/busses/i2c-mv64xxx.c:586:41: warning: incorrect type in argument 3 (different signedness)
> drivers/i2c/busses/i2c-mv64xxx.c:586:41:    expected int *best_n
> drivers/i2c/busses/i2c-mv64xxx.c:586:41:    got unsigned int *<noident>
> drivers/i2c/busses/i2c-mv64xxx.c:586:60: warning: incorrect type in argument 4 (different signedness)
> drivers/i2c/busses/i2c-mv64xxx.c:586:60:    expected int *best_m
> drivers/i2c/busses/i2c-mv64xxx.c:586:60:    got unsigned int *<noident>
> 
> I applied your patch with the following fix to -next. Let me know if you agree
> with that.

Hi Wolfram

Looks good, thanks for the fix.

      Andrew
diff mbox

Patch

--- a/drivers/i2c/busses/i2c-mv64xxx.c
+++ b/drivers/i2c/busses/i2c-mv64xxx.c
@@ -537,8 +537,8 @@  mv64xxx_calc_freq(const int tclk, const int n, const int m)
 }
 
 static bool __devinit
-mv64xxx_find_baud_factors(const int req_freq, const int tclk, int *best_n,
-                         int *best_m)
+mv64xxx_find_baud_factors(const u32 req_freq, const u32 tclk, u32 *best_n,
+                         u32 *best_m)
 {
        int freq, delta, best_delta = INT_MAX;
        int m, n;
@@ -564,8 +564,7 @@  static int __devinit
 mv64xxx_of_config(struct mv64xxx_i2c_data *drv_data,
                  struct device_node *np)
 {
-       int bus_freq;
-       int tclk;
+       u32 bus_freq, tclk;
        int rc = 0;
 
        /* CLK is mandatory when using DT to describe the i2c bus. We