From patchwork Fri Mar 10 00:27:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liam Breck X-Patchwork-Id: 9614389 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 922CF60417 for ; Fri, 10 Mar 2017 00:27:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 77C122845F for ; Fri, 10 Mar 2017 00:27:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 692E628504; Fri, 10 Mar 2017 00:27:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 013952845F for ; Fri, 10 Mar 2017 00:27:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752157AbdCJA1Z (ORCPT ); Thu, 9 Mar 2017 19:27:25 -0500 Received: from mail-pf0-f195.google.com ([209.85.192.195]:34254 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750781AbdCJA1Y (ORCPT ); Thu, 9 Mar 2017 19:27:24 -0500 Received: by mail-pf0-f195.google.com with SMTP id o126so8864793pfb.1 for ; Thu, 09 Mar 2017 16:27:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id; bh=9fvdYRo6uftvKcBG5bC+vqxweGroseWQihjB5Q/6keQ=; b=XxZlOEEk7EXdtEMs5dhgMJNlqnmi85vkOC/P+Js5eLIFXRQ5iglD7t4OIT5xpVNHF3 GkCZS/c5obJvffVMpFDMrOFaZmQjxprTEI36AI820Z2JgYbRIMjMlHgm2Qux3Xn+eQt2 z4gzf/WYxWjPHzJhxJWMotIOHTU0l0v2x4UMJdDKm0crDvrncc9IR5F7CBQdM74JYwNc uCi/Oj8kb0CSSqupuHsYZGyU1+OBkmm6SwXfFfo2noHa1vIQw9wX8HwqukRntXMdY6Zw YllEf9h0/G2L0KZttllpXFE1cfJ0V10KO+flDalsJlfaIEKJFwJqEgzV5EPhy4jlSJn6 HqfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=9fvdYRo6uftvKcBG5bC+vqxweGroseWQihjB5Q/6keQ=; b=W6Ky87RMkvZKp4RHE6DYKLQ7XUjbB43+4YhiotZPZ7GMLVjsuWxaJPOAVe8x5Zuctm y0N7QAggz6vSnzktTFbmylLMSYHcvKypDJN8nQURRhXPnnz3pbsw1YDCKh/kwX5K9pWp MDla+P4uuB10upLoDG8Q8AWR0RxuDAXvRp4J4nAz5QGdkStu3DculSmClwyoOVQ6XUH5 eQHHv9k7c6IPzf+ptgnJA+1D0GpysQZvufhzfNm1lJU1ZR87EixnkDkGChYOuxoDTEq6 9+EiNyymexkVzjxg3Mli+B5QKBTA/Z0J8cP2vhrkQjqiFQTILJeJybDBwahYDxdQGsUj HCnw== X-Gm-Message-State: AMke39k+MHiaqVcKgvmuVe26ChVbrCWZb7aI+uX9W0mYeNWiGKoXZYdifc5zjhxdOn42Sw== X-Received: by 10.84.253.15 with SMTP id z15mr21403667pll.142.1489105643519; Thu, 09 Mar 2017 16:27:23 -0800 (PST) Received: from localhost.localdomain (c-73-223-93-234.hsd1.ca.comcast.net. [73.223.93.234]) by smtp.gmail.com with ESMTPSA id n189sm14555638pfn.108.2017.03.09.16.27.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 09 Mar 2017 16:27:22 -0800 (PST) From: Liam Breck To: "Andrew F. Davis" , linux-pm@vger.kernel.org Cc: Liam Breck Subject: [PATCH v9.3 6/8] power: bq27xxx_battery: Keep track of specific chip id Date: Thu, 9 Mar 2017 16:27:25 -0800 Message-Id: <20170310002726.30949-1-liam@networkimprov.net> X-Mailer: git-send-email 2.9.3 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Liam Breck Pass actual chip ID into _setup(), which translates it to a group ID, to allow support for all chips by the power_supply_battery_info code. There are no functional changes to the driver. Signed-off-by: Liam Breck --- drivers/power/supply/bq27xxx_battery.c | 12 ++++++++++++ drivers/power/supply/bq27xxx_battery_i2c.c | 16 ++++++++-------- include/linux/power/bq27xxx_battery.h | 24 +++++++++++++++++------- 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/drivers/power/supply/bq27xxx_battery.c b/drivers/power/supply/bq27xxx_battery.c index 7272d1e..8ce2940 100644 --- a/drivers/power/supply/bq27xxx_battery.c +++ b/drivers/power/supply/bq27xxx_battery.c @@ -1020,6 +1020,18 @@ int bq27xxx_battery_setup(struct bq27xxx_device_info *di) struct power_supply_desc *psy_desc; struct power_supply_config psy_cfg = { .drv_data = di, }; + switch(di->chip) { + case BQ27520: di->chip = BQ27510; break; + case BQ27531: di->chip = BQ27530; break; + case BQ27542: di->chip = BQ27541; break; + case BQ27546: di->chip = BQ27541; break; + case BQ27742: di->chip = BQ27541; break; + case BQ27425: di->chip = BQ27421; break; + case BQ27441: di->chip = BQ27421; break; + case BQ27621: di->chip = BQ27421; break; + default: break; + } + INIT_DELAYED_WORK(&di->work, bq27xxx_battery_poll); mutex_init(&di->lock); di->regs = bq27xxx_regs[di->chip]; diff --git a/drivers/power/supply/bq27xxx_battery_i2c.c b/drivers/power/supply/bq27xxx_battery_i2c.c index 5c5c3a6..13def59 100644 --- a/drivers/power/supply/bq27xxx_battery_i2c.c +++ b/drivers/power/supply/bq27xxx_battery_i2c.c @@ -150,18 +150,18 @@ static const struct i2c_device_id bq27xxx_i2c_id_table[] = { { "bq27210", BQ27010 }, { "bq27500", BQ27500 }, { "bq27510", BQ27510 }, - { "bq27520", BQ27510 }, + { "bq27520", BQ27520 }, { "bq27530", BQ27530 }, - { "bq27531", BQ27530 }, + { "bq27531", BQ27531 }, { "bq27541", BQ27541 }, - { "bq27542", BQ27541 }, - { "bq27546", BQ27541 }, - { "bq27742", BQ27541 }, + { "bq27542", BQ27542 }, + { "bq27546", BQ27546 }, + { "bq27742", BQ27742 }, { "bq27545", BQ27545 }, { "bq27421", BQ27421 }, - { "bq27425", BQ27421 }, - { "bq27441", BQ27421 }, - { "bq27621", BQ27421 }, + { "bq27425", BQ27425 }, + { "bq27441", BQ27441 }, + { "bq27621", BQ27621 }, {}, }; MODULE_DEVICE_TABLE(i2c, bq27xxx_i2c_id_table); diff --git a/include/linux/power/bq27xxx_battery.h b/include/linux/power/bq27xxx_battery.h index 92df553..90b7ca1 100644 --- a/include/linux/power/bq27xxx_battery.h +++ b/include/linux/power/bq27xxx_battery.h @@ -3,13 +3,23 @@ enum bq27xxx_chip { BQ27000 = 1, /* bq27000, bq27200 */ - BQ27010, /* bq27010, bq27210 */ - BQ27500, /* bq27500 */ - BQ27510, /* bq27510, bq27520 */ - BQ27530, /* bq27530, bq27531 */ - BQ27541, /* bq27541, bq27542, bq27546, bq27742 */ - BQ27545, /* bq27545 */ - BQ27421, /* bq27421, bq27425, bq27441, bq27621 */ + BQ27010 = 2, /* bq27010, bq27210 */ + BQ27500 = 3, /* bq27500 */ + BQ27510 = 4, /* bq27510, bq27520 */ + BQ27530 = 5, /* bq27530, bq27531 */ + BQ27541 = 6, /* bq27541, bq27542, bq27546, bq27742 */ + BQ27545 = 7, /* bq27545 */ + BQ27421 = 8, /* bq27421, bq27425, bq27441, bq27621 */ + + /* members of above groups; translate these in _setup() for .chip */ + BQ27520 = 101, + BQ27531 = 102, + BQ27542 = 103, + BQ27546 = 104, + BQ27742 = 105, + BQ27425 = 106, + BQ27441 = 107, + BQ27621 = 108, }; /**