From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7DEBFC636CC for ; Tue, 31 Jan 2023 12:53:40 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id AE7E585A7F; Tue, 31 Jan 2023 13:53:37 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="d87XG3rh"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 9A2DD85A60; Tue, 31 Jan 2023 13:53:35 +0100 (CET) Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com [IPv6:2607:f8b0:4864:20::432]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 098A985A8E for ; Tue, 31 Jan 2023 13:53:28 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jh80.chung@gmail.com Received: by mail-pf1-x432.google.com with SMTP id g9so10142653pfo.5 for ; Tue, 31 Jan 2023 04:53:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=MBUbtmwuG+gs7rIglH90qyGkS3iwPL0SD5o3ABICNT4=; b=d87XG3rhwUg4J1UN2pAUpPNensC6XVsAwI1l7ZgjSZ9DlgSaT10WbU9NfxR4n5hH2K doccodRZtXOLKauI+nlh0sOnfuYbFeEVm3AEX/i7ha2q7POt9NO9z3txLBUfgwAuaK4Z +XWqpAzVW+PxjPM3zAwHcfoQL9asskJ87KeN6hiAsiEoqnSO1u/ZXd6Mz3E2oCBvUWQj z7xo07vxP1UA91nTn+Vk9huKXFcl2UpIeLr8VE1+X9n8bktnDjZt1KntEhePGnJahNe6 gTawnEuM7GaldHGBqZUD0JdySiSN4jNQFt2rm79u9fSoAjxzkMokapKBZi5hzZOYRO5t suOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MBUbtmwuG+gs7rIglH90qyGkS3iwPL0SD5o3ABICNT4=; b=H8lNemFRBiqYTh/xESt2MN3+MGhLvOp5cIMre3uBBPegDVwk3Monihh9RfwMFPvfGO LKiE0qxPc/8gSeu08nd1UJWmnHhCkQ+U7S2ifx0dlncpMu/LAbWtI5BzFs32k4YlSitP Vdra7ibeyAY2n/T7DT043X/hhGZnchW4JMv3sWi6TATc7Cxje2jWlRMz67uwnUn30Ji5 LnjcyKtyb/T4HlQ+riwd+pAx+HhWHHg5axkx5XenCd0jn5kcrvIDuf6MZdNo8UiL0C0V ZHJc4dRPJgHtDhjNvxMCxjJ27mEkg2uqp4ELg8mTdAKm7QZ3zPqxjXyCrkhzuPoX703r /c4w== X-Gm-Message-State: AO0yUKWXF3DydD0k7RMZmsUX80KKy5/qOeORznhIGddduERODQzwVWiW u+caDPyxQLwhmFLjSSn0MaY= X-Google-Smtp-Source: AK7set9c6ADLijUaSkeOOA3L1Z1XfrmZAgOMh6+IWX6hH8Fmt1YueAbzhCNMN3o2TbYWZEwwFq1AVQ== X-Received: by 2002:a05:6a00:1818:b0:592:6313:20fb with SMTP id y24-20020a056a00181800b00592631320fbmr19462250pfa.30.1675169606363; Tue, 31 Jan 2023 04:53:26 -0800 (PST) Received: from [192.168.0.19] ([183.99.112.216]) by smtp.gmail.com with ESMTPSA id k81-20020a628454000000b00589a7824703sm9419303pfd.194.2023.01.31.04.53.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 31 Jan 2023 04:53:25 -0800 (PST) Message-ID: <6257a180-47cd-3d45-0ca3-09ae6398a341@gmail.com> Date: Tue, 31 Jan 2023 21:53:23 +0900 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH 57/88] power: Drop unused fg_max17042 driver and fuel gauge code Content-Language: en-US To: Simon Glass , u-boot@lists.denx.de Cc: Tom Rini , Jaehoon Chung References: <20230123220031.3540724-1-sjg@chromium.org> <20230123220031.3540724-58-sjg@chromium.org> From: Jaehoon Chung In-Reply-To: <20230123220031.3540724-58-sjg@chromium.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean 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 Reviewed-by: Jaehoon Chung 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 > - > -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 > - */ > - > -#include > -#include > -#include > -#include > -#include > -#include > -#include > -#include > -#include > -#include > -#include > - > -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 > - */ > - > -#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_ */