Make INPUT_CURRENT a macro taking arguments
This commit is contained in:
@ -63,11 +63,11 @@
|
|||||||
#define INPUT_CURRENT_MASK 0x1F80
|
#define INPUT_CURRENT_MASK 0x1F80
|
||||||
|
|
||||||
#if CHARGER_ADAPTER_RSENSE == 5
|
#if CHARGER_ADAPTER_RSENSE == 5
|
||||||
#define INPUT_CURRENT (MIN((CHARGER_INPUT_CURRENT >> 1), INPUT_CURRENT_MASK) & INPUT_CURRENT_MASK)
|
#define INPUT_CURRENT(X) (MIN(((X) >> 1), INPUT_CURRENT_MASK) & INPUT_CURRENT_MASK)
|
||||||
#elif CHARGER_ADAPTER_RSENSE == 10
|
#elif CHARGER_ADAPTER_RSENSE == 10
|
||||||
#define INPUT_CURRENT (MIN(CHARGER_INPUT_CURRENT, INPUT_CURRENT_MASK) & INPUT_CURRENT_MASK)
|
#define INPUT_CURRENT(X) (MIN((X), INPUT_CURRENT_MASK) & INPUT_CURRENT_MASK)
|
||||||
#elif CHARGER_ADAPTER_RSENSE == 20
|
#elif CHARGER_ADAPTER_RSENSE == 20
|
||||||
#define INPUT_CURRENT (MIN((CHARGER_INPUT_CURRENT << 1), INPUT_CURRENT_MASK) & INPUT_CURRENT_MASK)
|
#define INPUT_CURRENT(X) (MIN(((X) << 1), INPUT_CURRENT_MASK) & INPUT_CURRENT_MASK)
|
||||||
#else
|
#else
|
||||||
#error Invalid adapter RSENSE value
|
#error Invalid adapter RSENSE value
|
||||||
#endif
|
#endif
|
||||||
@ -145,7 +145,7 @@ int16_t battery_charger_enable(void) {
|
|||||||
return res;
|
return res;
|
||||||
|
|
||||||
// Set input current in mA
|
// Set input current in mA
|
||||||
res = smbus_write(CHARGER_ADDRESS, REG_INPUT_CURRENT, INPUT_CURRENT);
|
res = smbus_write(CHARGER_ADDRESS, REG_INPUT_CURRENT, INPUT_CURRENT(CHARGER_INPUT_CURRENT));
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
|
@ -44,13 +44,13 @@
|
|||||||
#define INPUT_CURRENT_MASK 0x0F80
|
#define INPUT_CURRENT_MASK 0x0F80
|
||||||
|
|
||||||
#if CHARGER_ADAPTER_RSENSE == 5
|
#if CHARGER_ADAPTER_RSENSE == 5
|
||||||
#define INPUT_CURRENT (MIN((CHARGER_INPUT_CURRENT >> 2), INPUT_CURRENT_MASK) & INPUT_CURRENT_MASK)
|
#define INPUT_CURRENT(X) (MIN(((X) >> 2), INPUT_CURRENT_MASK) & INPUT_CURRENT_MASK)
|
||||||
#define ADAPTER_RSENSE RSENSE_5
|
#define ADAPTER_RSENSE RSENSE_5
|
||||||
#elif CHARGER_ADAPTER_RSENSE == 10
|
#elif CHARGER_ADAPTER_RSENSE == 10
|
||||||
#define INPUT_CURRENT (MIN((CHARGER_INPUT_CURRENT >> 1), INPUT_CURRENT_MASK) & INPUT_CURRENT_MASK)
|
#define INPUT_CURRENT(X) (MIN(((X) >> 1), INPUT_CURRENT_MASK) & INPUT_CURRENT_MASK)
|
||||||
#define ADAPTER_RSENSE RSENSE_10
|
#define ADAPTER_RSENSE RSENSE_10
|
||||||
#elif CHARGER_ADAPTER_RSENSE == 20
|
#elif CHARGER_ADAPTER_RSENSE == 20
|
||||||
#define INPUT_CURRENT (MIN(CHARGER_INPUT_CURRENT, INPUT_CURRENT_MASK) & INPUT_CURRENT_MASK)
|
#define INPUT_CURRENT(X) (MIN((X), INPUT_CURRENT_MASK) & INPUT_CURRENT_MASK)
|
||||||
#define ADAPTER_RSENSE RSENSE_20
|
#define ADAPTER_RSENSE RSENSE_20
|
||||||
#else
|
#else
|
||||||
#error Invalid adapter RSENSE value
|
#error Invalid adapter RSENSE value
|
||||||
@ -100,9 +100,8 @@ int16_t battery_charger_disable(void) {
|
|||||||
if (res < 0)
|
if (res < 0)
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
// Set input current in mA
|
// Disable input current
|
||||||
//TODO: needed when charging disabled?
|
res = smbus_write(CHARGER_ADDRESS, REG_ADAPTER_CURRENT, 0);
|
||||||
res = smbus_write(CHARGER_ADDRESS, REG_ADAPTER_CURRENT, INPUT_CURRENT);
|
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
@ -146,7 +145,7 @@ int16_t battery_charger_enable(void) {
|
|||||||
return res;
|
return res;
|
||||||
|
|
||||||
// Set input current in mA
|
// Set input current in mA
|
||||||
res = smbus_write(CHARGER_ADDRESS, REG_ADAPTER_CURRENT, INPUT_CURRENT);
|
res = smbus_write(CHARGER_ADDRESS, REG_ADAPTER_CURRENT, INPUT_CURRENT(CHARGER_INPUT_CURRENT));
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user