
On 1/24/23 07:00, Simon Glass wrote:
This driver is not used. Drop it and the entire fuel_gauge directory, since there is nothing left.
Signed-off-by: Simon Glass sjg@chromium.org
Reviewed-by: Jaehoon Chung jh80.chung@samsung.com
Best Regards, Jaehoon Chung
drivers/power/Makefile | 1 - drivers/power/fuel_gauge/Makefile | 6 - drivers/power/fuel_gauge/fg_max17042.c | 287 ------------------------- include/power/fg_battery_cell_params.h | 73 ------- 4 files changed, 367 deletions(-) delete mode 100644 drivers/power/fuel_gauge/Makefile delete mode 100644 drivers/power/fuel_gauge/fg_max17042.c delete mode 100644 include/power/fg_battery_cell_params.h
diff --git a/drivers/power/Makefile b/drivers/power/Makefile index efdae3655ac..93003e97e01 100644 --- a/drivers/power/Makefile +++ b/drivers/power/Makefile @@ -5,7 +5,6 @@
obj-$(CONFIG_$(SPL_TPL_)ACPI_PMC) += acpi_pmc/ obj-$(CONFIG_$(SPL_TPL_)POWER_DOMAIN) += domain/ -obj-y += fuel_gauge/ obj-y += mfd/ obj-y += pmic/ obj-y += regulator/ diff --git a/drivers/power/fuel_gauge/Makefile b/drivers/power/fuel_gauge/Makefile deleted file mode 100644 index ca2df947585..00000000000 --- a/drivers/power/fuel_gauge/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0+ -# -# Copyright (C) 2012 Samsung Electronics -# Lukasz Majewski l.majewski@samsung.com
-obj-$(CONFIG_POWER_FG_MAX17042) += fg_max17042.o diff --git a/drivers/power/fuel_gauge/fg_max17042.c b/drivers/power/fuel_gauge/fg_max17042.c deleted file mode 100644 index a395d587a86..00000000000 --- a/drivers/power/fuel_gauge/fg_max17042.c +++ /dev/null @@ -1,287 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/*
- Copyright (C) 2012 Samsung Electronics
- Lukasz Majewski l.majewski@samsung.com
- */
-#include <common.h> -#include <log.h> -#include <linux/delay.h> -#include <power/pmic.h> -#include <power/max17042_fg.h> -#include <i2c.h> -#include <power/max8997_pmic.h> -#include <power/power_chrg.h> -#include <power/battery.h> -#include <power/fg_battery_cell_params.h> -#include <errno.h>
-static int fg_write_regs(struct pmic *p, u8 addr, u16 *data, int num) -{
- int ret = 0;
- int i;
- for (i = 0; i < num; i++, addr++) {
ret = pmic_reg_write(p, addr, *(data + i));
if (ret)
return ret;
- }
- return 0;
-}
-static int fg_read_regs(struct pmic *p, u8 addr, u16 *data, int num) -{
- unsigned int dat;
- int ret = 0;
- int i;
- for (i = 0; i < num; i++, addr++) {
ret = pmic_reg_read(p, addr, &dat);
if (ret)
return ret;
*(data + i) = (u16)dat;
- }
- return 0;
-}
-static int fg_write_and_verify(struct pmic *p, u8 addr, u16 data) -{
- unsigned int val = data;
- int ret = 0;
- ret |= pmic_reg_write(p, addr, val);
- ret |= pmic_reg_read(p, addr, &val);
- if (ret)
return ret;
- if (((u16) val) == data)
return 0;
- return -1;
-}
-static void por_fuelgauge_init(struct pmic *p) -{
- u16 r_data0[16], r_data1[16], r_data2[16];
- u32 rewrite_count = 5;
- u32 check_count;
- u32 lock_count;
- u32 i = 0;
- u32 val;
- s32 ret = 0;
- char *status_msg;
- /* Delay 500 ms */
- mdelay(500);
- /* Initilize Configuration */
- pmic_reg_write(p, MAX17042_CONFIG, 0x2310);
-rewrite_model:
- check_count = 5;
- lock_count = 5;
- if (!rewrite_count--) {
status_msg = "init failed!";
goto error;
- }
- /* Unlock Model Access */
- pmic_reg_write(p, MAX17042_MLOCKReg1, MODEL_UNLOCK1);
- pmic_reg_write(p, MAX17042_MLOCKReg2, MODEL_UNLOCK2);
- /* Write/Read/Verify the Custom Model */
- ret = fg_write_regs(p, MAX17042_MODEL1, cell_character0,
ARRAY_SIZE(cell_character0));
- if (ret)
goto rewrite_model;
- ret = fg_write_regs(p, MAX17042_MODEL2, cell_character1,
ARRAY_SIZE(cell_character1));
- if (ret)
goto rewrite_model;
- ret = fg_write_regs(p, MAX17042_MODEL3, cell_character2,
ARRAY_SIZE(cell_character2));
- if (ret)
goto rewrite_model;
-check_model:
- if (!check_count--) {
if (rewrite_count)
goto rewrite_model;
else
status_msg = "check failed!";
goto error;
- }
- ret = fg_read_regs(p, MAX17042_MODEL1, r_data0, ARRAY_SIZE(r_data0));
- if (ret)
goto check_model;
- ret = fg_read_regs(p, MAX17042_MODEL2, r_data1, ARRAY_SIZE(r_data1));
- if (ret)
goto check_model;
- ret = fg_read_regs(p, MAX17042_MODEL3, r_data2, ARRAY_SIZE(r_data2));
- if (ret)
goto check_model;
- for (i = 0; i < 16; i++) {
if ((cell_character0[i] != r_data0[i])
|| (cell_character1[i] != r_data1[i])
|| (cell_character2[i] != r_data2[i]))
goto rewrite_model;
}
-lock_model:
- if (!lock_count--) {
if (rewrite_count)
goto rewrite_model;
else
status_msg = "lock failed!";
goto error;
- }
- /* Lock model access */
- pmic_reg_write(p, MAX17042_MLOCKReg1, MODEL_LOCK1);
- pmic_reg_write(p, MAX17042_MLOCKReg2, MODEL_LOCK2);
- /* Verify the model access is locked */
- ret = fg_read_regs(p, MAX17042_MODEL1, r_data0, ARRAY_SIZE(r_data0));
- if (ret)
goto lock_model;
- ret = fg_read_regs(p, MAX17042_MODEL2, r_data1, ARRAY_SIZE(r_data1));
- if (ret)
goto lock_model;
- ret = fg_read_regs(p, MAX17042_MODEL3, r_data2, ARRAY_SIZE(r_data2));
- if (ret)
goto lock_model;
- for (i = 0; i < ARRAY_SIZE(r_data0); i++) {
/* Check if model locked */
if (r_data0[i] || r_data1[i] || r_data2[i])
goto lock_model;
- }
- /* Write Custom Parameters */
- fg_write_and_verify(p, MAX17042_RCOMP0, RCOMP0);
- fg_write_and_verify(p, MAX17042_TEMPCO, TempCo);
- /* Delay at least 350mS */
- mdelay(350);
- /* Initialization Complete */
- pmic_reg_read(p, MAX17042_STATUS, &val);
- /* Write and Verify Status with POR bit Cleared */
- fg_write_and_verify(p, MAX17042_STATUS, val & ~MAX17042_POR);
- /* Delay at least 350 ms */
- mdelay(350);
- status_msg = "OK!";
-error:
- debug("%s: model init status: %s\n", p->name, status_msg);
- return;
-}
-static int power_update_battery(struct pmic *p, struct pmic *bat) -{
- struct power_battery *pb = bat->pbat;
- unsigned int val;
- int ret = 0;
- if (pmic_probe(p)) {
puts("Can't find max17042 fuel gauge\n");
return -ENODEV;
- }
- ret |= pmic_reg_read(p, MAX17042_VFSOC, &val);
- pb->bat->state_of_chrg = (val >> 8);
- pmic_reg_read(p, MAX17042_VCELL, &val);
- debug("vfsoc: 0x%x\n", val);
- pb->bat->voltage_uV = ((val & 0xFFUL) >> 3) + ((val & 0xFF00) >> 3);
- pb->bat->voltage_uV = (pb->bat->voltage_uV * 625);
- pmic_reg_read(p, 0x05, &val);
- pb->bat->capacity = val >> 2;
- return ret;
-}
-static int power_check_battery(struct pmic *p, struct pmic *bat) -{
- struct power_battery *pb = bat->pbat;
- unsigned int val;
- int ret = 0;
- if (pmic_probe(p)) {
puts("Can't find max17042 fuel gauge\n");
return -ENODEV;
- }
- ret |= pmic_reg_read(p, MAX17042_STATUS, &val);
- debug("fg status: 0x%x\n", val);
- if (val & MAX17042_POR)
por_fuelgauge_init(p);
- ret |= pmic_reg_read(p, MAX17042_VERSION, &val);
- pb->bat->version = val;
- power_update_battery(p, bat);
- debug("fg ver: 0x%x\n", pb->bat->version);
- printf("BAT: state_of_charge(SOC):%d%%\n",
pb->bat->state_of_chrg);
- printf(" voltage: %d.%6.6d [V] (expected to be %d [mAh])\n",
pb->bat->voltage_uV / 1000000,
pb->bat->voltage_uV % 1000000,
pb->bat->capacity);
- if (pb->bat->voltage_uV > 3850000)
pb->bat->state = EXT_SOURCE;
- else if (pb->bat->voltage_uV < 3600000 || pb->bat->state_of_chrg < 5)
pb->bat->state = CHARGE;
- else
pb->bat->state = NORMAL;
- return ret;
-}
-static struct power_fg power_fg_ops = {
- .fg_battery_check = power_check_battery,
- .fg_battery_update = power_update_battery,
-};
-int power_fg_init(unsigned char bus) -{
- static const char name[] = "MAX17042_FG";
- struct pmic *p = pmic_alloc();
- if (!p) {
printf("%s: POWER allocation error!\n", __func__);
return -ENOMEM;
- }
- debug("Board Fuel Gauge init\n");
- p->name = name;
- p->interface = PMIC_I2C;
- p->number_of_regs = FG_NUM_OF_REGS;
- p->hw.i2c.addr = MAX17042_I2C_ADDR;
- p->hw.i2c.tx_num = 2;
- p->sensor_byte_order = PMIC_SENSOR_BYTE_ORDER_BIG;
- p->bus = bus;
- p->fg = &power_fg_ops;
- return 0;
-} diff --git a/include/power/fg_battery_cell_params.h b/include/power/fg_battery_cell_params.h deleted file mode 100644 index 500c8ea7174..00000000000 --- a/include/power/fg_battery_cell_params.h +++ /dev/null @@ -1,73 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -/*
- Copyright (C) 2012 Samsung Electronics
- Lukasz Majewski l.majewski@samsung.com
- */
-#ifndef __FG_BATTERY_CELL_PARAMS_H_ -#define __FG_BATTERY_CELL_PARAMS_H_
-#if defined(CONFIG_POWER_FG_MAX17042) && defined(CONFIG_TARGET_TRATS)
-/* Cell characteristics - Exynos4 TRATS development board */ -/* Shall be written to addr 0x80h */ -u16 cell_character0[16] = {
- 0xA2A0,
- 0xB6E0,
- 0xB850,
- 0xBAD0,
- 0xBB20,
- 0xBB70,
- 0xBBC0,
- 0xBC20,
- 0xBC80,
- 0xBCE0,
- 0xBD80,
- 0xBE20,
- 0xC090,
- 0xC420,
- 0xC910,
- 0xD070
-};
-/* Shall be written to addr 0x90h */ -u16 cell_character1[16] = {
- 0x0090,
- 0x1A50,
- 0x02F0,
- 0x2060,
- 0x2060,
- 0x2E60,
- 0x26A0,
- 0x2DB0,
- 0x2DB0,
- 0x1870,
- 0x2A20,
- 0x16F0,
- 0x08F0,
- 0x0D40,
- 0x08C0,
- 0x08C0
-};
-/* Shall be written to addr 0xA0h */ -u16 cell_character2[16] = {
- 0x0100,
- 0x0100,
- 0x0100,
- 0x0100,
- 0x0100,
- 0x0100,
- 0x0100,
- 0x0100,
- 0x0100,
- 0x0100,
- 0x0100,
- 0x0100,
- 0x0100,
- 0x0100,
- 0x0100,
- 0x0100
-}; -#endif -#endif /* __FG_BATTERY_CELL_PARAMS_H_ */