Re: [PATCH 4/4] power_supply: bq24261 charger driver
From: Pavel Machek
Date: Tue Jan 28 2014 - 09:15:15 EST
Hi!
> +#define BQ24261_ICHRG_MASK (0x1F << 3)
> +#define BQ24261_ICHRG_100ma (0x01 << 3)
> +#define BQ24261_ICHRG_200ma (0x01 << 4)
> +#define BQ24261_ICHRG_400ma (0x01 << 5)
> +#define BQ24261_ICHRG_800ma (0x01 << 6)
> +#define BQ24261_ICHRG_1600ma (0x01 << 7)
First, its mA, not ma.
And second:
> +#define BQ24261_VINDPM_320MV (0x01 << 2)
> +#define BQ24261_VINDPM_160MV (0x01 << 1)
> +#define BQ24261_VINDPM_80MV (0x01 << 0)
(Same here).
> +u16 bq24261_iterm[][2] = {
> + {0, 0x00}
> + ,
> + {50, BQ24261_ITERM_50ma}
> + ,
> + {100, BQ24261_ITERM_100ma}
> + ,
> + {150, BQ24261_ITERM_100ma | BQ24261_ITERM_50ma}
...this is very obscure way to do with table what can be done with
(x/50) << 3, right ?
> +u16 bq24261_cc[][2] = {
> +
> + {500, 0x00}
> + ,
> + {600, BQ24261_ICHRG_100ma}
> + ,
> + {700, BQ24261_ICHRG_200ma}
> + ,
> + {800, BQ24261_ICHRG_100ma | BQ24261_ICHRG_200ma}
> + ,
> + {900, BQ24261_ICHRG_400ma}
I suspect you can get rid of this, too, if you expand macros.
> +static inline bool is_bq24261_enabled(struct bq24261_charger *chip)
> +{
> + if (chip->cable_type == PSY_CHARGER_CABLE_TYPE_NONE)
> + return false;
> + else if (!chip->is_charger_enabled)
> + return false;
No need to do elses if all you do is return...
> + return -EINVAL;
> +
> + ret = psy->get_property(psy, POWER_SUPPLY_PROP_CURRENT_NOW, &val);
> + if (!ret)
> + *cur = val.intval;
> +
> + return ret;
You can merge two very similar functions here, AFAICT.
> + if (verify_recovery) {
> + if ((bat_volt) <= (bat_volt_max_des / 1000 *
> + BQ24261_OVP_RECOVER_MULTIPLIER))
> + return true;
> + else
> + return false;
Do this without if().
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/