Prev: of: Create asm-generic/of.h and provide default of_node_to_nid()
Next: Small typo in kernel [current source from git] .config option
From: Geert Uytterhoeven on 27 Jul 2010 10:10 On Tue, Jul 27, 2010 at 15:51, Anton Vorontsov <cbouatmailru(a)gmail.com> wrote: > diff --git a/drivers/power/ds2782_battery.c b/drivers/power/ds2782_battery.c > index d762a0c..9b3b4b7 100644 > --- a/drivers/power/ds2782_battery.c > +++ b/drivers/power/ds2782_battery.c > @@ -43,10 +43,9 @@ > struct ds278x_info; > > struct ds278x_battery_ops { > - int (*get_current)(struct ds278x_info *info, int *current_uA); > - int (*get_voltage)(struct ds278x_info *info, int *voltage_uA); > - int (*get_capacity)(struct ds278x_info *info, int *capacity_uA); > - > + int (*get_battery_current)(struct ds278x_info *info, int *current_uA); > + int (*get_battery_voltage)(struct ds278x_info *info, int *voltage_uA); > + int (*get_battery_capacity)(struct ds278x_info *info, int *capacity_uA); What's the meaning of these `uA' namings? At first I thought `micro Ampère', but that can't be correct for voltage (`uV'?) and capacity (`uAh'?). So I had a look at the sources, and noticed: | static int ds2782_get_voltage(struct ds278x_info *info, int *voltage_uA) | { | s16 raw; | int err; | | /* | * Voltage is measured in units of 4.88mV. The voltage is stored as ^^^^ | * a 10-bit number plus sign, in the upper bits of a 16-bit register | */ | err = ds278x_read_reg16(info, DS278x_REG_VOLT_MSB, &raw); | if (err) | return err; | *voltage_uA = (raw / 32) * 4800; ^^^^ These don't match? So the voltage_uA unit is 1 mV? | return 0; | } | | static int ds2786_get_voltage(struct ds278x_info *info, int *voltage_uA) | { | s16 raw; | int err; | | /* | * Voltage is measured in units of 1.22mV. The voltage is stored as | * a 10-bit number plus sign, in the upper bits of a 16-bit register | */ | err = ds278x_read_reg16(info, DS278x_REG_VOLT_MSB, &raw); | if (err) | return err; | *voltage_uA = (raw / 8) * 1220; ^ 32? Or the comments above are wrong. | return 0; | } Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert(a)linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Anton Vorontsov on 27 Jul 2010 10:20
On Tue, Jul 27, 2010 at 04:03:14PM +0200, Geert Uytterhoeven wrote: > On Tue, Jul 27, 2010 at 15:51, Anton Vorontsov <cbouatmailru(a)gmail.com> wrote: > > diff --git a/drivers/power/ds2782_battery.c b/drivers/power/ds2782_battery.c > > index d762a0c..9b3b4b7 100644 > > --- a/drivers/power/ds2782_battery.c > > +++ b/drivers/power/ds2782_battery.c > > @@ -43,10 +43,9 @@ > > struct ds278x_info; > > > > struct ds278x_battery_ops { > > - int (*get_current)(struct ds278x_info *info, int *current_uA); > > - int (*get_voltage)(struct ds278x_info *info, int *voltage_uA); > > - int (*get_capacity)(struct ds278x_info *info, int *capacity_uA); > > - > > + int (*get_battery_current)(struct ds278x_info *info, int *current_uA); > > + int (*get_battery_voltage)(struct ds278x_info *info, int *voltage_uA); > > + int (*get_battery_capacity)(struct ds278x_info *info, int *capacity_uA); > > What's the meaning of these `uA' namings? At first I thought `micro Ampère', but > that can't be correct for voltage (`uV'?) and capacity (`uAh'?). Yeah, the names aren't quite right. But they were wrong before that patch too, so a patch on top to fix these issues will work. Cc'ing driver authors. Thanks Geert! -- Anton Vorontsov email: cbouatmailru(a)gmail.com irc://irc.freenode.net/bd2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |