Fix smart charger values
Fix all smart charger values by having boards provide the RSENSE values and perform the register calculations in the code. The galp3-c, galp5, gaze16, and gaze17 do not seem to have the same behavior as the rest of the boards, and further investigation is needed. In the mean time, reduce their charge current values to preserve current behavior. Ref: OZ26786-DS v1.0 Ref: bq24780S Rev. C datasheet Signed-off-by: Tim Crawford <tcrawford@system76.com
This commit is contained in:
committed by
Tim Crawford
parent
20d40f3477
commit
6295f60172
@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
## Charger parameters
|
## Charger parameters
|
||||||
|
|
||||||
- `CHARGER_CHARGE_CURRENT`: Currently the same for all boards (1536).
|
- `CHARGER_ADAPTER_RSENSE`: The adapter RSENSE value in milliohms.
|
||||||
|
- `CHARGER_BATTERY_RSENSE`: The battery RSENSE value in milliohms.
|
||||||
|
- `CHARGER_CHARGE_CURRENT`: The desired charge current in milliamps.
|
||||||
- `CHARGER_CHARGE_VOLTAGE`: On the battery, look for 充电限制电压 (charge limit
|
- `CHARGER_CHARGE_VOLTAGE`: On the battery, look for 充电限制电压 (charge limit
|
||||||
voltage). Convert this from volts to millivolts.
|
voltage). Convert this from volts to millivolts.
|
||||||
- `CHARGER_INPUT_CURRENT`: On the charger, look for DC output. Convert the
|
- `CHARGER_INPUT_CURRENT`: On the charger, look for DC output. Convert the
|
||||||
@ -10,23 +12,28 @@
|
|||||||
|
|
||||||
#### Example
|
#### Example
|
||||||
|
|
||||||
The gaze15 battery has
|
The gaze15 battery has:
|
||||||
|
|
||||||
```
|
```
|
||||||
充电限制电压: 16.8Vdc
|
充电限制电压: 16.8Vdc
|
||||||
```
|
```
|
||||||
|
|
||||||
and its charger has
|
Its charger has:
|
||||||
|
|
||||||
```
|
```
|
||||||
DC OUTPUT (输出/輸出): 19.5V⎓9.23A 180W
|
DC OUTPUT (输出/輸出): 19.5V⎓9.23A 180W
|
||||||
```
|
```
|
||||||
|
|
||||||
This gives
|
The schematics show it uses a 0.005 ohm sense resistor for both the adapter and
|
||||||
|
the battery.
|
||||||
|
|
||||||
|
This gives:
|
||||||
|
|
||||||
```
|
```
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_ADAPTER_RSENSE=5 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=5 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=16800 \
|
-DCHARGER_CHARGE_VOLTAGE=16800 \
|
||||||
-DCHARGER_INPUT_CURRENT=9230
|
-DCHARGER_INPUT_CURRENT=9230
|
||||||
```
|
```
|
||||||
|
@ -19,7 +19,9 @@ CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
|||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_ADAPTER_RSENSE=5 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=12600 \
|
-DCHARGER_CHARGE_VOLTAGE=12600 \
|
||||||
-DCHARGER_INPUT_CURRENT=11800
|
-DCHARGER_INPUT_CURRENT=11800
|
||||||
|
|
||||||
|
@ -19,7 +19,9 @@ CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
|||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_ADAPTER_RSENSE=5 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=12600 \
|
-DCHARGER_CHARGE_VOLTAGE=12600 \
|
||||||
-DCHARGER_INPUT_CURRENT=11800
|
-DCHARGER_INPUT_CURRENT=11800
|
||||||
|
|
||||||
|
@ -19,7 +19,9 @@ CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
|||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_ADAPTER_RSENSE=5 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=16800 \
|
-DCHARGER_CHARGE_VOLTAGE=16800 \
|
||||||
-DCHARGER_INPUT_CURRENT=14000
|
-DCHARGER_INPUT_CURRENT=14000
|
||||||
|
|
||||||
|
@ -8,6 +8,12 @@
|
|||||||
#include <common/macro.h>
|
#include <common/macro.h>
|
||||||
#include <common/debug.h>
|
#include <common/debug.h>
|
||||||
|
|
||||||
|
// Registers
|
||||||
|
#define REG_CHARGE_CURRENT 0x14
|
||||||
|
#define REG_CHARGE_VOLTAGE 0x15
|
||||||
|
#define REG_DISCHARGE_CURRENT 0x39
|
||||||
|
#define REG_INPUT_CURRENT 0x3F
|
||||||
|
|
||||||
// ChargeOption0 flags
|
// ChargeOption0 flags
|
||||||
// Low Power Mode Enable
|
// Low Power Mode Enable
|
||||||
#define SBC_EN_LWPWR ((uint16_t)(BIT(15)))
|
#define SBC_EN_LWPWR ((uint16_t)(BIT(15)))
|
||||||
@ -18,6 +24,36 @@
|
|||||||
// IDCHG Amplifier Gain
|
// IDCHG Amplifier Gain
|
||||||
#define SBC_IDCHC_GAIN ((uint16_t)(BIT(3)))
|
#define SBC_IDCHC_GAIN ((uint16_t)(BIT(3)))
|
||||||
|
|
||||||
|
// Bits 0-5 are ignored. Bits 13-15 must be 0.
|
||||||
|
#define CHARGE_CURRENT_MASK 0x1FC0
|
||||||
|
|
||||||
|
#if CHARGER_BATTERY_RSENSE == 5
|
||||||
|
#define CHARGE_CURRENT ((CHARGER_CHARGE_CURRENT >> 1) & CHARGE_CURRENT_MASK)
|
||||||
|
#elif CHARGER_BATTERY_RSENSE == 10
|
||||||
|
#define CHARGE_CURRENT (CHARGER_CHARGE_CURRENT & CHARGE_CURRENT_MASK)
|
||||||
|
#elif CHARGER_BATTERY_RSENSE == 20
|
||||||
|
#define CHARGE_CURRENT ((CHARGER_CHARGE_CURRENT << 1) & CHARGE_CURRENT_MASK)
|
||||||
|
#else
|
||||||
|
#error Invalid battery RSENSE value
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Bits 0-3, 15 are ignored.
|
||||||
|
#define CHARGE_VOLTAGE_MASK 0x7FF0
|
||||||
|
#define CHARGE_VOLTAGE (CHARGER_CHARGE_VOLTAGE & CHARGE_VOLTAGE_MASK)
|
||||||
|
|
||||||
|
// Bits 0-6 are ignored. Bits 12-15 must be 0.
|
||||||
|
#define INPUT_CURRENT_MASK 0x0F80
|
||||||
|
|
||||||
|
#if CHARGER_ADAPTER_RSENSE == 5
|
||||||
|
#define INPUT_CURRENT ((CHARGER_INPUT_CURRENT >> 1) & INPUT_CURRENT_MASK)
|
||||||
|
#elif CHARGER_ADAPTER_RSENSE == 10
|
||||||
|
#define INPUT_CURRENT (CHARGER_INPUT_CURRENT & INPUT_CURRENT_MASK)
|
||||||
|
#elif CHARGER_ADAPTER_RSENSE == 20
|
||||||
|
#define INPUT_CURRENT ((CHARGER_INPUT_CURRENT << 1) & INPUT_CURRENT_MASK)
|
||||||
|
#else
|
||||||
|
#error Invalid adapter RSENSE value
|
||||||
|
#endif
|
||||||
|
|
||||||
// XXX: Assumption: ac_last is initialized high.
|
// XXX: Assumption: ac_last is initialized high.
|
||||||
static bool charger_enabled = false;
|
static bool charger_enabled = false;
|
||||||
|
|
||||||
@ -37,15 +73,15 @@ int16_t battery_charger_disable(void) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Disable charge current
|
// Disable charge current
|
||||||
res = smbus_write(CHARGER_ADDRESS, 0x14, 0);
|
res = smbus_write(CHARGER_ADDRESS, REG_CHARGE_CURRENT, 0);
|
||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
// Disable charge voltage
|
// Disable charge voltage
|
||||||
res = smbus_write(CHARGER_ADDRESS, 0x15, 0);
|
res = smbus_write(CHARGER_ADDRESS, REG_CHARGE_VOLTAGE, 0);
|
||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
// Disable input current
|
// Disable input current
|
||||||
res = smbus_write(CHARGER_ADDRESS, 0x3F, 0);
|
res = smbus_write(CHARGER_ADDRESS, REG_INPUT_CURRENT, 0);
|
||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
DEBUG("Charger disabled\n");
|
DEBUG("Charger disabled\n");
|
||||||
@ -62,15 +98,15 @@ int16_t battery_charger_enable(void) {
|
|||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
// Set charge current in mA
|
// Set charge current in mA
|
||||||
res = smbus_write(CHARGER_ADDRESS, 0x14, CHARGER_CHARGE_CURRENT);
|
res = smbus_write(CHARGER_ADDRESS, REG_CHARGE_CURRENT, CHARGE_CURRENT);
|
||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
// Set charge voltage in mV
|
// Set charge voltage in mV
|
||||||
res = smbus_write(CHARGER_ADDRESS, 0x15, CHARGER_CHARGE_VOLTAGE);
|
res = smbus_write(CHARGER_ADDRESS, REG_CHARGE_VOLTAGE, CHARGE_VOLTAGE);
|
||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
// Set input current in mA
|
// Set input current in mA
|
||||||
res = smbus_write(CHARGER_ADDRESS, 0x3F, CHARGER_INPUT_CURRENT);
|
res = smbus_write(CHARGER_ADDRESS, REG_INPUT_CURRENT, INPUT_CURRENT);
|
||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
// Set charge option 0 with watchdog disabled
|
// Set charge option 0 with watchdog disabled
|
||||||
@ -117,10 +153,10 @@ void battery_debug(void) {
|
|||||||
command(ChargeOption1, CHARGER_ADDRESS, 0x3B);
|
command(ChargeOption1, CHARGER_ADDRESS, 0x3B);
|
||||||
command(ChargeOption2, CHARGER_ADDRESS, 0x38);
|
command(ChargeOption2, CHARGER_ADDRESS, 0x38);
|
||||||
command(ChargeOption3, CHARGER_ADDRESS, 0x37);
|
command(ChargeOption3, CHARGER_ADDRESS, 0x37);
|
||||||
command(ChargeCurrent, CHARGER_ADDRESS, 0x14);
|
command(ChargeCurrent, CHARGER_ADDRESS, REG_CHARGE_CURRENT);
|
||||||
command(ChargeVoltage, CHARGER_ADDRESS, 0x15);
|
command(ChargeVoltage, CHARGER_ADDRESS, REG_CHARGE_VOLTAGE);
|
||||||
command(DishargeCurrent, CHARGER_ADDRESS, 0x39);
|
command(DishargeCurrent, CHARGER_ADDRESS, REG_DISCHARGE_CURRENT);
|
||||||
command(InputCurrent, CHARGER_ADDRESS, 0x3F);
|
command(InputCurrent, CHARGER_ADDRESS, REG_INPUT_CURRENT);
|
||||||
command(ProchotOption0, CHARGER_ADDRESS, 0x3C);
|
command(ProchotOption0, CHARGER_ADDRESS, 0x3C);
|
||||||
command(ProchotOption1, CHARGER_ADDRESS, 0x3D);
|
command(ProchotOption1, CHARGER_ADDRESS, 0x3D);
|
||||||
command(ProchotStatus, CHARGER_ADDRESS, 0x3A);
|
command(ProchotStatus, CHARGER_ADDRESS, 0x3A);
|
||||||
|
@ -17,6 +17,50 @@
|
|||||||
#define CHARGE_OPTION_2_PSYS_EN BIT(11)
|
#define CHARGE_OPTION_2_PSYS_EN BIT(11)
|
||||||
#define REG_ADAPTER_CURRENT 0x3F
|
#define REG_ADAPTER_CURRENT 0x3F
|
||||||
|
|
||||||
|
// Bits 0-5, 13-15 are ignored.
|
||||||
|
#define CHARGE_CURRENT_MASK 0x1FC0
|
||||||
|
|
||||||
|
#if CHARGER_BATTERY_RSENSE == 5
|
||||||
|
#define CHARGE_CURRENT ((CHARGER_CHARGE_CURRENT >> 1) & CHARGE_CURRENT_MASK)
|
||||||
|
// XXX: According to the datasheet, only 10 and 20 are valid.
|
||||||
|
#define BATTERY_RSENSE (RSENSE_10 << 8)
|
||||||
|
#elif CHARGER_BATTERY_RSENSE == 10
|
||||||
|
#define CHARGE_CURRENT (CHARGER_CHARGE_CURRENT & CHARGE_CURRENT_MASK)
|
||||||
|
#define BATTERY_RSENSE (RSENSE_10 << 8)
|
||||||
|
#elif CHARGER_BATTERY_RSENSE == 20
|
||||||
|
#define CHARGE_CURRENT ((CHARGER_CHARGE_CURRENT << 1) & CHARGE_CURRENT_MASK)
|
||||||
|
#define BATTERY_RSENSE (RSENSE_20 << 8)
|
||||||
|
#else
|
||||||
|
#error Invalid battery RSENSE value
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Bits 0-3, 15 are ignored.
|
||||||
|
#define CHARGE_VOLTAGE_MASK 0x7FF0
|
||||||
|
#define CHARGE_VOLTAGE (CHARGER_CHARGE_VOLTAGE & CHARGE_VOLTAGE_MASK)
|
||||||
|
|
||||||
|
// Bits 0-6 are ignored. Bits 12-15 must be 0.
|
||||||
|
#define INPUT_CURRENT_MASK 0x0F80
|
||||||
|
|
||||||
|
#if CHARGER_ADAPTER_RSENSE == 5
|
||||||
|
#define INPUT_CURRENT ((CHARGER_INPUT_CURRENT >> 2) & INPUT_CURRENT_MASK)
|
||||||
|
#define ADAPTER_RSENSE RSENSE_5
|
||||||
|
#elif CHARGER_ADAPTER_RSENSE == 10
|
||||||
|
#define INPUT_CURRENT ((CHARGER_INPUT_CURRENT >> 1) & INPUT_CURRENT_MASK)
|
||||||
|
#define ADAPTER_RSENSE RSENSE_10
|
||||||
|
#elif CHARGER_ADAPTER_RSENSE == 20
|
||||||
|
#define INPUT_CURRENT (CHARGER_INPUT_CURRENT & INPUT_CURRENT_MASK)
|
||||||
|
#define ADAPTER_RSENSE RSENSE_20
|
||||||
|
#else
|
||||||
|
#error Invalid adapter RSENSE value
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Sense resistor values in milliohms.
|
||||||
|
enum sense_resistor {
|
||||||
|
RSENSE_10 = 0,
|
||||||
|
RSENSE_20 = 1,
|
||||||
|
RSENSE_5 = 2,
|
||||||
|
};
|
||||||
|
|
||||||
// XXX: Assumption: ac_last is initialized high.
|
// XXX: Assumption: ac_last is initialized high.
|
||||||
static bool charger_enabled = false;
|
static bool charger_enabled = false;
|
||||||
|
|
||||||
@ -30,7 +74,7 @@ int16_t battery_charger_disable(void) {
|
|||||||
res = smbus_write(
|
res = smbus_write(
|
||||||
CHARGER_ADDRESS,
|
CHARGER_ADDRESS,
|
||||||
REG_CHARGE_OPTION_1,
|
REG_CHARGE_OPTION_1,
|
||||||
CHARGE_OPTION_1_600KHZ
|
CHARGE_OPTION_1_600KHZ | ADAPTER_RSENSE | BATTERY_RSENSE
|
||||||
);
|
);
|
||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
@ -53,7 +97,7 @@ int16_t battery_charger_disable(void) {
|
|||||||
|
|
||||||
// Set input current in mA
|
// Set input current in mA
|
||||||
//TODO: needed when charging disabled?
|
//TODO: needed when charging disabled?
|
||||||
res = smbus_write(CHARGER_ADDRESS, REG_ADAPTER_CURRENT, CHARGER_INPUT_CURRENT);
|
res = smbus_write(CHARGER_ADDRESS, REG_ADAPTER_CURRENT, INPUT_CURRENT);
|
||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
DEBUG("Charger disabled\n");
|
DEBUG("Charger disabled\n");
|
||||||
@ -73,7 +117,7 @@ int16_t battery_charger_enable(void) {
|
|||||||
res = smbus_write(
|
res = smbus_write(
|
||||||
CHARGER_ADDRESS,
|
CHARGER_ADDRESS,
|
||||||
REG_CHARGE_OPTION_1,
|
REG_CHARGE_OPTION_1,
|
||||||
CHARGE_OPTION_1_600KHZ
|
CHARGE_OPTION_1_600KHZ | ADAPTER_RSENSE | BATTERY_RSENSE
|
||||||
);
|
);
|
||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
@ -86,15 +130,15 @@ int16_t battery_charger_enable(void) {
|
|||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
// Set charge current in mA
|
// Set charge current in mA
|
||||||
res = smbus_write(CHARGER_ADDRESS, REG_CHARGE_CURRENT, CHARGER_CHARGE_CURRENT);
|
res = smbus_write(CHARGER_ADDRESS, REG_CHARGE_CURRENT, CHARGE_CURRENT);
|
||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
// Set charge voltage in mV
|
// Set charge voltage in mV
|
||||||
res = smbus_write(CHARGER_ADDRESS, REG_CHARGE_VOLTAGE, CHARGER_CHARGE_VOLTAGE);
|
res = smbus_write(CHARGER_ADDRESS, REG_CHARGE_VOLTAGE, CHARGE_VOLTAGE);
|
||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
// Set input current in mA
|
// Set input current in mA
|
||||||
res = smbus_write(CHARGER_ADDRESS, REG_ADAPTER_CURRENT, CHARGER_INPUT_CURRENT);
|
res = smbus_write(CHARGER_ADDRESS, REG_ADAPTER_CURRENT, INPUT_CURRENT);
|
||||||
if (res < 0) return res;
|
if (res < 0) return res;
|
||||||
|
|
||||||
DEBUG("Charger enabled\n");
|
DEBUG("Charger enabled\n");
|
||||||
@ -106,7 +150,7 @@ void battery_charger_event(void) {
|
|||||||
// Avoid watchdog timeout
|
// Avoid watchdog timeout
|
||||||
if (charger_enabled) {
|
if (charger_enabled) {
|
||||||
// Set charge voltage in mV
|
// Set charge voltage in mV
|
||||||
smbus_write(CHARGER_ADDRESS, REG_CHARGE_VOLTAGE, CHARGER_CHARGE_VOLTAGE);
|
smbus_write(CHARGER_ADDRESS, REG_CHARGE_VOLTAGE, CHARGE_VOLTAGE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,9 +17,11 @@ CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
|||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_ADAPTER_RSENSE=10 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=17600 \
|
-DCHARGER_CHARGE_VOLTAGE=17600 \
|
||||||
-DCHARGER_INPUT_CURRENT=3200
|
-DCHARGER_INPUT_CURRENT=3420
|
||||||
|
|
||||||
# Add system76 common code
|
# Add system76 common code
|
||||||
include src/board/system76/common/common.mk
|
include src/board/system76/common/common.mk
|
||||||
|
@ -18,11 +18,12 @@ CFLAGS+=-DI2C_SMBUS=I2C_4
|
|||||||
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
#TODO: Find out why input current must by divided by two
|
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_ADAPTER_RSENSE=5 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=5 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=8800 \
|
-DCHARGER_CHARGE_VOLTAGE=8800 \
|
||||||
-DCHARGER_INPUT_CURRENT=1600
|
-DCHARGER_INPUT_CURRENT=3420
|
||||||
|
|
||||||
# Add system76 common code
|
# Add system76 common code
|
||||||
include src/board/system76/common/common.mk
|
include src/board/system76/common/common.mk
|
||||||
|
@ -18,14 +18,13 @@ CFLAGS+=-DI2C_SMBUS=I2C_4
|
|||||||
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
# Adapter input current = 4.74A
|
|
||||||
# PRS1 = 0.010 ohm. Divide adapter input current by 2.
|
|
||||||
# PRS2 = 0.010 ohm. Use desired charge current.
|
|
||||||
CHARGER=oz26786
|
CHARGER=oz26786
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=0xB80 \
|
-DCHARGER_ADAPTER_RSENSE=10 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=8800 \
|
-DCHARGER_CHARGE_VOLTAGE=8800 \
|
||||||
-DCHARGER_INPUT_CURRENT=0x900
|
-DCHARGER_INPUT_CURRENT=4740
|
||||||
|
|
||||||
# Add system76 common code
|
# Add system76 common code
|
||||||
include src/board/system76/common/common.mk
|
include src/board/system76/common/common.mk
|
||||||
|
@ -16,10 +16,13 @@ CFLAGS+=-DI2C_SMBUS=I2C_0
|
|||||||
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
|
# FIXME: Verify parts and values.
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
|
-DCHARGER_ADAPTER_RSENSE=10 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_CHARGE_CURRENT=1536 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=13056 \
|
-DCHARGER_CHARGE_VOLTAGE=13056 \
|
||||||
-DCHARGER_INPUT_CURRENT=1920
|
-DCHARGER_INPUT_CURRENT=2100
|
||||||
|
|
||||||
# Add system76 common code
|
# Add system76 common code
|
||||||
include src/board/system76/common/common.mk
|
include src/board/system76/common/common.mk
|
||||||
|
@ -22,12 +22,14 @@ CFLAGS+=-DI2C_SMBUS=I2C_4
|
|||||||
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
#TODO: Find out why input current must by divided by two
|
# FIXME: Verify parts and values.
|
||||||
CHARGER=oz26786
|
CHARGER=oz26786
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
|
-DCHARGER_ADAPTER_RSENSE=10 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_CHARGE_CURRENT=1536 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=17400 \
|
-DCHARGER_CHARGE_VOLTAGE=17400 \
|
||||||
-DCHARGER_INPUT_CURRENT=1600
|
-DCHARGER_INPUT_CURRENT=3420
|
||||||
|
|
||||||
# Set CPU power limits in watts
|
# Set CPU power limits in watts
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
|
@ -19,7 +19,9 @@ CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
|||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_ADAPTER_RSENSE=5 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=5 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=16800 \
|
-DCHARGER_CHARGE_VOLTAGE=16800 \
|
||||||
-DCHARGER_INPUT_CURRENT=9230
|
-DCHARGER_INPUT_CURRENT=9230
|
||||||
|
|
||||||
|
@ -21,8 +21,11 @@ CFLAGS+=-DI2C_SMBUS=I2C_4
|
|||||||
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
|
# FIXME: Verify parts and values.
|
||||||
CHARGER=oz26786
|
CHARGER=oz26786
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
|
-DCHARGER_ADAPTER_RSENSE=5 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_CHARGE_CURRENT=1536 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=16800 \
|
-DCHARGER_CHARGE_VOLTAGE=16800 \
|
||||||
-DCHARGER_INPUT_CURRENT=7700
|
-DCHARGER_INPUT_CURRENT=7700
|
||||||
|
@ -21,8 +21,11 @@ CFLAGS+=-DI2C_SMBUS=I2C_4
|
|||||||
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
|
# FIXME: Verify parts and values.
|
||||||
CHARGER=oz26786
|
CHARGER=oz26786
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
|
-DCHARGER_ADAPTER_RSENSE=5 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_CHARGE_CURRENT=1536 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=16800 \
|
-DCHARGER_CHARGE_VOLTAGE=16800 \
|
||||||
-DCHARGER_INPUT_CURRENT=9230
|
-DCHARGER_INPUT_CURRENT=9230
|
||||||
|
@ -22,14 +22,14 @@ CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
|||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
# TODO: actually bq24800
|
# TODO: actually bq24800
|
||||||
# Adapter input current = 7.5A
|
# FIXME: Verify parts and values.
|
||||||
# PRS1 = 0.010 ohm. Use exact adapter input current.
|
|
||||||
# PRS2 = 0.010 ohm. Use desired charge current.
|
|
||||||
CHARGER=bq24780s
|
CHARGER=bq24780s
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=0xB80 \
|
-DCHARGER_ADAPTER_RSENSE=10 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=1536 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=17600 \
|
-DCHARGER_CHARGE_VOLTAGE=17600 \
|
||||||
-DCHARGER_INPUT_CURRENT=0x1D00
|
-DCHARGER_INPUT_CURRENT=0x7500
|
||||||
|
|
||||||
# Set CPU power limits in watts
|
# Set CPU power limits in watts
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
|
@ -21,9 +21,12 @@ CFLAGS+=-DI2C_SMBUS=I2C_4
|
|||||||
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
#TODO: actually bq24800
|
# TODO: actually bq24800
|
||||||
|
# FIXME: Verify parts and values.
|
||||||
CHARGER=bq24780s
|
CHARGER=bq24780s
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
|
-DCHARGER_ADAPTER_RSENSE=5 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_CHARGE_CURRENT=1536 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=17600 \
|
-DCHARGER_CHARGE_VOLTAGE=17600 \
|
||||||
-DCHARGER_INPUT_CURRENT=7500
|
-DCHARGER_INPUT_CURRENT=7500
|
||||||
|
@ -19,11 +19,12 @@ CFLAGS+=-DI2C_SMBUS=I2C_4
|
|||||||
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
#TODO: Find out why input current must by divided by two
|
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_ADAPTER_RSENSE=5 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=5 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=8800 \
|
-DCHARGER_CHARGE_VOLTAGE=8800 \
|
||||||
-DCHARGER_INPUT_CURRENT=1600
|
-DCHARGER_INPUT_CURRENT=3420
|
||||||
|
|
||||||
# Add system76 common code
|
# Add system76 common code
|
||||||
include src/board/system76/common/common.mk
|
include src/board/system76/common/common.mk
|
||||||
|
@ -19,14 +19,13 @@ CFLAGS+=-DI2C_SMBUS=I2C_4
|
|||||||
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
# Adapter input current = 3.42A
|
|
||||||
# PRS1 = 0.005 ohm. Divide adapter input current by 4.
|
|
||||||
# PRS2 = 0.005 ohm. Divide charge current by 2.
|
|
||||||
CHARGER=oz26786
|
CHARGER=oz26786
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=0x600 \
|
-DCHARGER_ADAPTER_RSENSE=5 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=5 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=8800 \
|
-DCHARGER_CHARGE_VOLTAGE=8800 \
|
||||||
-DCHARGER_INPUT_CURRENT=0x300
|
-DCHARGER_INPUT_CURRENT=3420
|
||||||
|
|
||||||
# Add system76 common code
|
# Add system76 common code
|
||||||
include src/board/system76/common/common.mk
|
include src/board/system76/common/common.mk
|
||||||
|
@ -16,11 +16,12 @@ CFLAGS+=-DI2C_SMBUS=I2C_4
|
|||||||
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
#TODO: Find out why input current must by divided by two
|
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_ADAPTER_RSENSE=5 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=5 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=8800 \
|
-DCHARGER_CHARGE_VOLTAGE=8800 \
|
||||||
-DCHARGER_INPUT_CURRENT=1600
|
-DCHARGER_INPUT_CURRENT=3420
|
||||||
|
|
||||||
# Add system76 common code
|
# Add system76 common code
|
||||||
include src/board/system76/common/common.mk
|
include src/board/system76/common/common.mk
|
||||||
|
@ -20,7 +20,9 @@ CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
|||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_ADAPTER_RSENSE=10 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=17120 \
|
-DCHARGER_CHARGE_VOLTAGE=17120 \
|
||||||
-DCHARGER_INPUT_CURRENT=9230
|
-DCHARGER_INPUT_CURRENT=9230
|
||||||
|
|
||||||
|
@ -19,7 +19,9 @@ CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
|||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_ADAPTER_RSENSE=10 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=13050 \
|
-DCHARGER_CHARGE_VOLTAGE=13050 \
|
||||||
-DCHARGER_INPUT_CURRENT=9230
|
-DCHARGER_INPUT_CURRENT=9230
|
||||||
|
|
||||||
|
@ -19,7 +19,9 @@ CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
|||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_ADAPTER_RSENSE=10 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=13050 \
|
-DCHARGER_CHARGE_VOLTAGE=13050 \
|
||||||
-DCHARGER_INPUT_CURRENT=9230
|
-DCHARGER_INPUT_CURRENT=9230
|
||||||
|
|
||||||
|
@ -22,7 +22,9 @@ CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
|||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=1536 \
|
-DCHARGER_ADAPTER_RSENSE=10 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=3072 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=13050 \
|
-DCHARGER_CHARGE_VOLTAGE=13050 \
|
||||||
-DCHARGER_INPUT_CURRENT=9230
|
-DCHARGER_INPUT_CURRENT=9230
|
||||||
|
|
||||||
|
@ -22,13 +22,13 @@ CFLAGS+=-DPS2_TOUCHPAD=PS2_3
|
|||||||
|
|
||||||
# Set smart charger parameters
|
# Set smart charger parameters
|
||||||
# TODO: actually bq24800
|
# TODO: actually bq24800
|
||||||
# Adapter input current = 11.5A
|
# FIXME: Verify parts and values.
|
||||||
# PRS1 = 0.005 ohm. Divide adapter input current by 2.
|
|
||||||
# PRS2 = 0.010 ohm. Use desired charge current.
|
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
-DCHARGER_CHARGE_CURRENT=0xB80 \
|
-DCHARGER_ADAPTER_RSENSE=5 \
|
||||||
|
-DCHARGER_BATTERY_RSENSE=10 \
|
||||||
|
-DCHARGER_CHARGE_CURRENT=2048 \
|
||||||
-DCHARGER_CHARGE_VOLTAGE=13050 \
|
-DCHARGER_CHARGE_VOLTAGE=13050 \
|
||||||
-DCHARGER_INPUT_CURRENT=0x1600
|
-DCHARGER_INPUT_CURRENT=11500
|
||||||
|
|
||||||
# Set CPU power limits in watts
|
# Set CPU power limits in watts
|
||||||
CFLAGS+=\
|
CFLAGS+=\
|
||||||
|
Reference in New Issue
Block a user