fix battery checking, only print out status for now
parent
cd0e6f0b2f
commit
ee5aa5e375
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (C) 2013 Freescale Semiconductor, Inc. All Rights Reserved.
|
||||
* Copyright (C) 2016 reMarkable AS. All Rights Reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
@ -25,7 +26,8 @@ enum {
|
|||
MX6_PAD_SD1_DAT5__GPIO_5_9 = IOMUX_PAD(0x0550, 0x0248, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_SD1_DAT6__USDHC1_DAT6 = IOMUX_PAD(0x0554, 0x024C, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_SD1_DAT7__USDHC1_DAT7 = IOMUX_PAD(0x0558, 0x0250, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_KEY_ROW7__GPIO_4_7 = IOMUX_PAD(0x04B0, 0x01A8, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_KEY_ROW4__GPIO_4_1 = IOMUX_PAD(0x04A4, 0x019C, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_KEY_ROW7__GPIO_4_7 = IOMUX_PAD(0x04B0, 0x01A8, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_SD2_CLK__USDHC2_CLK = IOMUX_PAD(0x055C, 0x0254, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_SD2_CMD__USDHC2_CMD = IOMUX_PAD(0x0560, 0x0258, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_SD2_DAT0__USDHC2_DAT0 = IOMUX_PAD(0x0564, 0x025C, 0, 0x0000, 0, 0),
|
||||
|
|
|
@ -102,6 +102,11 @@ int dram_init(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static iomux_v3_cfg_t const charger_pads[] = {
|
||||
/* CHRGR_OK */
|
||||
MX6_PAD_KEY_ROW4__GPIO_4_1 | MUX_PAD_CTRL(NO_PAD_CTRL),
|
||||
};
|
||||
|
||||
static iomux_v3_cfg_t const uart1_pads[] = {
|
||||
MX6_PAD_UART1_TXD__UART1_TXD | MUX_PAD_CTRL(UART_PAD_CTRL),
|
||||
MX6_PAD_UART1_RXD__UART1_RXD | MUX_PAD_CTRL(UART_PAD_CTRL),
|
||||
|
@ -341,35 +346,35 @@ static int check_battery(void)
|
|||
|
||||
I2C_SET_BUS(I2C_PMIC);
|
||||
|
||||
ret = i2c_read(CONFIG_POWER_CHARGER_I2C_ADDR, BQ27441_REG_VOLTAGE, 1, message, sizeof(message));
|
||||
ret = i2c_read(BQ27441_I2C_ADDR, BQ27441_REG_VOLTAGE, 1, message, sizeof(message));
|
||||
if (ret) {
|
||||
printf("Failed to read voltage from fuel gauge\n");
|
||||
return -1;
|
||||
}
|
||||
voltage = get_unaligned_le16(message);
|
||||
|
||||
ret = i2c_read(CONFIG_POWER_CHARGER_I2C_ADDR, BQ27441_REG_CHARGE, 1, message, sizeof(message));
|
||||
ret = i2c_read(BQ27441_I2C_ADDR, BQ27441_REG_CHARGE, 1, message, sizeof(message));
|
||||
if (ret) {
|
||||
printf("Failed to read charge from fuel gauge\n");
|
||||
return -1;
|
||||
}
|
||||
charge = get_unaligned_le16(message);
|
||||
|
||||
ret = i2c_read(CONFIG_POWER_CHARGER_I2C_ADDR, BQ27441_REG_FULL_CHARGE, 1, message, sizeof(message));
|
||||
ret = i2c_read(BQ27441_I2C_ADDR, BQ27441_REG_FULL_CHARGE, 1, message, sizeof(message));
|
||||
if (ret) {
|
||||
printf("Failed to read full charge from fuel gauge\n");
|
||||
return -1;
|
||||
}
|
||||
full_charge = get_unaligned_le16(message);
|
||||
|
||||
ret = i2c_read(CONFIG_POWER_CHARGER_I2C_ADDR, BQ27441_REG_PERCENT, 1, message, sizeof(message));
|
||||
ret = i2c_read(BQ27441_I2C_ADDR, BQ27441_REG_PERCENT, 1, message, sizeof(message));
|
||||
if (ret) {
|
||||
printf("Failed to read percent charge from fuel gauge\n");
|
||||
return -1;
|
||||
}
|
||||
percent = get_unaligned_le16(message);
|
||||
|
||||
ret = i2c_read(CONFIG_POWER_CHARGER_I2C_ADDR, BQ27441_REG_FLAGS, 1, message, sizeof(message));
|
||||
ret = i2c_read(BQ27441_I2C_ADDR, BQ27441_REG_FLAGS, 1, message, sizeof(message));
|
||||
if (ret) {
|
||||
printf("Failed to read full charge from fuel gauge\n");
|
||||
return -1;
|
||||
|
@ -401,10 +406,16 @@ static int check_battery(void)
|
|||
printf("Battery full charge: %d mAh\n", full_charge);
|
||||
printf("Battery charge: %d mAh\n", charge);
|
||||
printf("Battery voltage: %d mV\n", voltage);
|
||||
printf("Battery charge: %d%% mV\n", percent);
|
||||
printf("Battery charge: %d%%\n", percent);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int check_charger_status(void)
|
||||
{
|
||||
return gpio_get_value(BQ24133_CHRGR_OK);
|
||||
}
|
||||
|
||||
|
||||
int power_init_board(void)
|
||||
{
|
||||
struct pmic *p;
|
||||
|
@ -413,10 +424,20 @@ int power_init_board(void)
|
|||
int ret;
|
||||
unsigned char offset, i, switch_num;
|
||||
|
||||
/* Set up charger */
|
||||
imx_iomux_v3_setup_multiple_pads(charger_pads, ARRAY_SIZE(charger_pads));
|
||||
gpio_direction_input(BQ24133_CHRGR_OK);
|
||||
if (check_charger_status()) {
|
||||
printf("Charging\n");
|
||||
} else {
|
||||
printf("Not charging\n");
|
||||
}
|
||||
|
||||
ret = power_pfuze100_init(I2C_PMIC);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* Setup PF0100 */
|
||||
p = pmic_get("PFUZE100");
|
||||
ret = pmic_probe(p);
|
||||
if (ret) {
|
||||
|
|
Loading…
Reference in New Issue