From patchwork Fri Mar 17 22:56:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71501 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp27888wrt; Fri, 17 Mar 2023 15:57:53 -0700 (PDT) X-Google-Smtp-Source: AK7set8ruIqH/WWCn08lkL2kA6/LLp5EvM3/PYqs8Wnld7BjtoWB7Apw57VX3ADtdV21N7My7m9C X-Received: by 2002:a05:6a20:3d24:b0:c0:2875:9e8c with SMTP id y36-20020a056a203d2400b000c028759e8cmr10870233pzi.1.1679093873185; Fri, 17 Mar 2023 15:57:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679093873; cv=none; d=google.com; s=arc-20160816; b=EW5vHhfzBNBBHBXUriQ+w/5Wc9YwceO6abS8eppSdiUWvoQi0IvamPpxUbxgsAFWVt WVjsYyKN3FRSoW7Zig0bpmIz1QWZ2/SZmwwAKrrqmBmwiQmuKLuQ8KWMKNGadY0CWJIr 9azO5tS/qI0aHXfWm1cJtUMQmWKAs8BedXzr1MBeQJ7ltxiHCaluDMlDIcpB1+j7eCpk x2sRrPgHyNXF/VMgPF4tbgmQpHsPXI30D6DDZ6dYblmeUCgZrcmqZFyOBP1VvDcqP8sH iAH+DgweGXaJF4Xqui6YXD2suKVwtMygWcagWvU5Rxr6KoP9dD+sC5Bv3OHmIQAQ2BiV o3Lg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=L3r/wWNEIM7SntEgrGPNXxfFnyuE+Di9gGgWVgYmf1M=; b=wA6n/jSOmalEgzmQCwD5GvdLy+aiGCpf7XiRoRO9FWBCvvA9okfcj2FOY2sS3/msip kZD1gYtnZGYVfoWPTI92jILqSTDu3bYYjvfEu3negBJntXXLCXMV1+3iKmOJ/Bk1p/6w EFFjpeiId6vHw3a1FGn5XDiVUz3pL6PeckesFR6yuJXnQR33ljHN9QR3z8YMcV4xj5Md fri2vfhmcVtQGru3wOdoP4urRK95Xq2Ie9unvztMHyISoH1+tdPHse2pK0kmw3s3xkdO uk7D4xapAINRPMhS8ekoImPdyG30FvpQGNIMpkEBBW3l9leaAw7H3HUDjeLIcXRlbM9+ L7Og== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=oEAY7Ff6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w191-20020a6382c8000000b00502f48f1692si3429551pgd.826.2023.03.17.15.57.41; Fri, 17 Mar 2023 15:57:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=oEAY7Ff6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230156AbjCQW5S (ORCPT + 99 others); Fri, 17 Mar 2023 18:57:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50942 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229590AbjCQW5O (ORCPT ); Fri, 17 Mar 2023 18:57:14 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 47D672A160; Fri, 17 Mar 2023 15:57:12 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 92C0060B38; Fri, 17 Mar 2023 22:57:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C280FC433D2; Fri, 17 Mar 2023 22:57:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093831; bh=lAg4Xy2+8BJY/bgZGAEpY8xxD82o+6FV+hPPHOfIA8c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oEAY7Ff6Y2HehlN2k4co2oL/xIjeYjfSTyCmpriiCHWoNRueEkcE/YfARwr+Rq6vx EpB5rdB92wDJyD3PH1lAsKFzH3h4tKY6Du1Bcq6yjABSzkDdjHmgsciEDrSlut93sC IWB3SyHf0gVPs0K+DLoxM7AlT34ImJwG4luA+mqCeaTe0lfS6pKHfuWca4si+4HZqz a3yuiY8W4ADG1v4GDHYeiEecZ+IctuSWOGpjXf/d64ZaLA0uhWRRxgOkdzr9NSrN8y bspNvyNpi4fKOgC1tA6GnNV/PCpwP/H9GiA8JNOP7zHioPLHuvlj0hGcuGy6F2tTSA KyRvWkISuhSiw== Received: by mercury (Postfix, from userid 1000) id 8470B10620F5; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, Krzysztof Kozlowski Subject: [PATCHv3 01/14] dt-bindings: power: supply: adc-battery: add binding Date: Fri, 17 Mar 2023 23:56:54 +0100 Message-Id: <20230317225707.1552512-2-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760657537364322897?= X-GMAIL-MSGID: =?utf-8?q?1760657537364322897?= Add binding for a battery that is only monitored via ADC channels and simple status GPIOs. Reviewed-by: Matti Vaittinen Reviewed-by: Krzysztof Kozlowski Reviewed-by: Linus Walleij Signed-off-by: Sebastian Reichel --- .../bindings/power/supply/adc-battery.yaml | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 Documentation/devicetree/bindings/power/supply/adc-battery.yaml diff --git a/Documentation/devicetree/bindings/power/supply/adc-battery.yaml b/Documentation/devicetree/bindings/power/supply/adc-battery.yaml new file mode 100644 index 000000000000..ed9702caedff --- /dev/null +++ b/Documentation/devicetree/bindings/power/supply/adc-battery.yaml @@ -0,0 +1,70 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/power/supply/adc-battery.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: ADC battery + +maintainers: + - Sebastian Reichel + +description: + Basic battery capacity meter, which only reports basic battery data + via ADC channels and optionally indicate that the battery is full by + polling a GPIO line. + + The voltage is expected to be measured between the battery terminals + and mandatory. The optional current/power channel is expected to + monitor the current/power flowing out of the battery. Last but not + least the temperature channel is supposed to measure the battery + temperature. + +allOf: + - $ref: power-supply.yaml# + +properties: + compatible: + const: adc-battery + + charged-gpios: + description: + GPIO which signals that the battery is fully charged. The GPIO is + often provided by charger ICs, that are not software controllable. + maxItems: 1 + + io-channels: + minItems: 1 + maxItems: 4 + + io-channel-names: + minItems: 1 + items: + - const: voltage + - enum: [ current, power, temperature ] + - enum: [ power, temperature ] + - const: temperature + + monitored-battery: true + +required: + - compatible + - io-channels + - io-channel-names + - monitored-battery + +unevaluatedProperties: false + +examples: + - | + #include + + fuel-gauge { + compatible = "adc-battery"; + charged-gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; + io-channels = <&adc 13>, <&adc 37>; + io-channel-names = "voltage", "current"; + + power-supplies = <&charger>; + monitored-battery = <&battery>; + }; From patchwork Fri Mar 17 22:56:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71510 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp31763wrt; Fri, 17 Mar 2023 16:07:31 -0700 (PDT) X-Google-Smtp-Source: AK7set+9ePI+F9rrY++LoHZdw1Gc358Ar0KLex2UfkKvvR0ylfDSqk601c3mx7nFSjEHz49X4bSf X-Received: by 2002:a05:6e02:1ba9:b0:317:943c:2280 with SMTP id n9-20020a056e021ba900b00317943c2280mr4828210ili.0.1679094450917; Fri, 17 Mar 2023 16:07:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679094450; cv=none; d=google.com; s=arc-20160816; b=gziwKSOHpHWWgPZdyHHuhE9RRyonBw1HIxdJrQng1Pk05l0KcHXKrL02rEXmBsI0vR 0K0Y0zuDhOWGP7+FKW6ZaVBlwp32OSQMuWLyayYHrLXJO7NOPq2lwEe//f3bRNl4o/nD wzS7yXKTQBcbk4qNFRvpMTZL+YuU/LLG78l8nzActtFMtYhxmJgw9Fx3v3Z2xnVkswyJ fhIXHvbebyf9nBgf6IOOT2IznfSnAxHqS/bgBTjOOARrzqrjPmgiKB2ioYNwmGFkkgvs 1E4B3Txuy/3/GVnZzpql6sNtBOZ0lmjm+YhyINWcr/HZAF+He6U4YDhvkNAnRxMsd3zA 0TXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=9rM9/rgAqy+tMK7y7vOiBibPgT6y9rtaUv6GAzUOlnw=; b=p5rYOhyNdb8KiSQyY4lJyJDhKZ47gjAUtC3I/+tNCc6zzPOB8MsxCI1KP81VshrBOU uvv5/pVA/IBjvvvECnIG+FEQfEdiq3DlHlYzpd2Juf4rWR3cCv9gtZTbnwCXj2o4pDtF P0ILA4DW3Gt/CrcKqFG8BqvOWHBCthxVrkhkYEdAjcW90ppOiFAvglY3T6/Nz3vXmLTZ 0iAkkM2iGhjnkme5xyXYIcGMxR7w6Y8zUnpXB9fKFnYJrzKW4IemJjX1E5oJ7xtZ2GBL Gm2DFB3ZcmTN2BWBqnlviumgk22rbZlNGY4NEm0itBMnSmY83TOAQCe+vM8qNIW0rRdy JrOg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="u4yVcRp/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t9-20020a056e02160900b0032415dc3d55si3594921ilu.94.2023.03.17.16.07.17; Fri, 17 Mar 2023 16:07:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="u4yVcRp/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230319AbjCQW5V (ORCPT + 99 others); Fri, 17 Mar 2023 18:57:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229639AbjCQW5O (ORCPT ); Fri, 17 Mar 2023 18:57:14 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 488F62BF1A; Fri, 17 Mar 2023 15:57:12 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 99C9E60C22; Fri, 17 Mar 2023 22:57:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C5CFCC4339B; Fri, 17 Mar 2023 22:57:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093831; bh=6ZDPGK5ClEjNmh+zvDkD8+i5hUX7iKdXMWrXPyXHhho=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u4yVcRp/5e/pe24Ef20vucldureaG75QpXphEzfC2tNhYMliRyjcxhteqxjVQt/iM 5gMAb9nqNmTcH2Y4Muf1AZ1rhTQzelyAzQDXEH25dPcc/mPxrH6kWzMr4wvZKR5BZy da1Mldirr+ViGbuF498mgnPIBux0rXArgAf3pDIjl0jDbTcKAyYkKnNoBVsSrzM0EW 51jrQem1pmVckgwYSLeWX2sFLGxEyMuPNhMdciHH+/EzvG9mTQ5qRfyuSVkjeivmD7 cvKHEgfjY3H/F0ML2LchdXqdSif+Tl5yLA6GGu2JETa91/rjQsAYSQOnjsvPrQQJI1 ddVXOPy9YCFBA== Received: by mercury (Postfix, from userid 1000) id 86A8410620FF; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCHv3 02/14] power: supply: core: auto-exposure of simple-battery data Date: Fri, 17 Mar 2023 23:56:55 +0100 Message-Id: <20230317225707.1552512-3-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760658142921938430?= X-GMAIL-MSGID: =?utf-8?q?1760658142921938430?= Automatically expose data from the simple-battery firmware node for all battery drivers. Signed-off-by: Sebastian Reichel Reviewed-by: Linus Walleij Reviewed-by: Matti Vaittinen --- drivers/power/supply/power_supply_core.c | 179 +++++++++++++++++++--- drivers/power/supply/power_supply_sysfs.c | 23 ++- include/linux/power_supply.h | 8 + 3 files changed, 191 insertions(+), 19 deletions(-) diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c index f3d7c1da299f..ab65cbaa55f6 100644 --- a/drivers/power/supply/power_supply_core.c +++ b/drivers/power/supply/power_supply_core.c @@ -388,7 +388,7 @@ static int __power_supply_get_supplier_property(struct device *dev, void *_data) struct psy_get_supplier_prop_data *data = _data; if (__power_supply_is_supplied_by(epsy, data->psy)) - if (!epsy->desc->get_property(epsy, data->psp, data->val)) + if (!power_supply_get_property(epsy, data->psp, data->val)) return 1; /* Success */ return 0; /* Continue iterating */ @@ -832,6 +832,133 @@ void power_supply_put_battery_info(struct power_supply *psy, } EXPORT_SYMBOL_GPL(power_supply_put_battery_info); +const enum power_supply_property power_supply_battery_info_properties[] = { + POWER_SUPPLY_PROP_TECHNOLOGY, + POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN, + POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN, + POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN, + POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN, + POWER_SUPPLY_PROP_PRECHARGE_CURRENT, + POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX, + POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN, + POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX, + POWER_SUPPLY_PROP_TEMP_ALERT_MIN, + POWER_SUPPLY_PROP_TEMP_ALERT_MAX, + POWER_SUPPLY_PROP_TEMP_MIN, + POWER_SUPPLY_PROP_TEMP_MAX, +}; +EXPORT_SYMBOL_GPL(power_supply_battery_info_properties); + +const size_t power_supply_battery_info_properties_size = ARRAY_SIZE(power_supply_battery_info_properties); +EXPORT_SYMBOL_GPL(power_supply_battery_info_properties_size); + +bool power_supply_battery_info_has_prop(struct power_supply_battery_info *info, + enum power_supply_property psp) +{ + if (!info) + return false; + + switch (psp) { + case POWER_SUPPLY_PROP_TECHNOLOGY: + return info->technology != POWER_SUPPLY_TECHNOLOGY_UNKNOWN; + case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN: + return info->energy_full_design_uwh >= 0; + case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN: + return info->charge_full_design_uah >= 0; + case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN: + return info->voltage_min_design_uv >= 0; + case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: + return info->voltage_max_design_uv >= 0; + case POWER_SUPPLY_PROP_PRECHARGE_CURRENT: + return info->precharge_current_ua >= 0; + case POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT: + return info->charge_term_current_ua >= 0; + case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX: + return info->constant_charge_current_max_ua >= 0; + case POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX: + return info->constant_charge_voltage_max_uv >= 0; + case POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN: + return info->temp_ambient_alert_min > INT_MIN; + case POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX: + return info->temp_ambient_alert_max < INT_MAX; + case POWER_SUPPLY_PROP_TEMP_ALERT_MIN: + return info->temp_alert_min > INT_MIN; + case POWER_SUPPLY_PROP_TEMP_ALERT_MAX: + return info->temp_alert_max < INT_MAX; + case POWER_SUPPLY_PROP_TEMP_MIN: + return info->temp_min > INT_MIN; + case POWER_SUPPLY_PROP_TEMP_MAX: + return info->temp_max < INT_MAX; + default: + return false; + } +} +EXPORT_SYMBOL_GPL(power_supply_battery_info_has_prop); + +int power_supply_battery_info_get_prop(struct power_supply_battery_info *info, + enum power_supply_property psp, + union power_supply_propval *val) +{ + if (!info) + return -EINVAL; + + if (!power_supply_battery_info_has_prop(info, psp)) + return -EINVAL; + + switch (psp) { + case POWER_SUPPLY_PROP_TECHNOLOGY: + val->intval = info->technology; + return 0; + case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN: + val->intval = info->energy_full_design_uwh; + return 0; + case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN: + val->intval = info->charge_full_design_uah; + return 0; + case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN: + val->intval = info->voltage_min_design_uv; + return 0; + case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: + val->intval = info->voltage_max_design_uv; + return 0; + case POWER_SUPPLY_PROP_PRECHARGE_CURRENT: + val->intval = info->precharge_current_ua; + return 0; + case POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT: + val->intval = info->charge_term_current_ua; + return 0; + case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX: + val->intval = info->constant_charge_current_max_ua; + return 0; + case POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX: + val->intval = info->constant_charge_voltage_max_uv; + return 0; + case POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN: + val->intval = info->temp_ambient_alert_min; + return 0; + case POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX: + val->intval = info->temp_ambient_alert_max; + return 0; + case POWER_SUPPLY_PROP_TEMP_ALERT_MIN: + val->intval = info->temp_alert_min; + return 0; + case POWER_SUPPLY_PROP_TEMP_ALERT_MAX: + val->intval = info->temp_alert_max; + return 0; + case POWER_SUPPLY_PROP_TEMP_MIN: + val->intval = info->temp_min; + return 0; + case POWER_SUPPLY_PROP_TEMP_MAX: + val->intval = info->temp_max; + return 0; + default: + return -EINVAL; + } +} +EXPORT_SYMBOL_GPL(power_supply_battery_info_get_prop); + /** * power_supply_temp2resist_simple() - find the battery internal resistance * percent from temperature @@ -1046,6 +1173,22 @@ bool power_supply_battery_bti_in_range(struct power_supply_battery_info *info, } EXPORT_SYMBOL_GPL(power_supply_battery_bti_in_range); +static bool psy_has_property(const struct power_supply_desc *psy_desc, + enum power_supply_property psp) +{ + bool found = false; + int i; + + for (i = 0; i < psy_desc->num_properties; i++) { + if (psy_desc->properties[i] == psp) { + found = true; + break; + } + } + + return found; +} + int power_supply_get_property(struct power_supply *psy, enum power_supply_property psp, union power_supply_propval *val) @@ -1056,7 +1199,12 @@ int power_supply_get_property(struct power_supply *psy, return -ENODEV; } - return psy->desc->get_property(psy, psp, val); + if (psy_has_property(psy->desc, psp)) + return psy->desc->get_property(psy, psp, val); + else if (power_supply_battery_info_has_prop(psy->battery_info, psp)) + return power_supply_battery_info_get_prop(psy->battery_info, psp, val); + else + return -EINVAL; } EXPORT_SYMBOL_GPL(power_supply_get_property); @@ -1117,22 +1265,6 @@ void power_supply_unreg_notifier(struct notifier_block *nb) } EXPORT_SYMBOL_GPL(power_supply_unreg_notifier); -static bool psy_has_property(const struct power_supply_desc *psy_desc, - enum power_supply_property psp) -{ - bool found = false; - int i; - - for (i = 0; i < psy_desc->num_properties; i++) { - if (psy_desc->properties[i] == psp) { - found = true; - break; - } - } - - return found; -} - #ifdef CONFIG_THERMAL static int power_supply_read_temp(struct thermal_zone_device *tzd, int *temp) @@ -1255,6 +1387,17 @@ __power_supply_register(struct device *parent, goto check_supplies_failed; } + /* + * Expose constant battery info, if it is available. While there are + * some chargers accessing constant battery data, we only want to + * expose battery data to userspace for battery devices. + */ + if (desc->type == POWER_SUPPLY_TYPE_BATTERY) { + rc = power_supply_get_battery_info(psy, &psy->battery_info); + if (rc && rc != -ENODEV) + goto check_supplies_failed; + } + spin_lock_init(&psy->changed_lock); rc = device_add(dev); if (rc) diff --git a/drivers/power/supply/power_supply_sysfs.c b/drivers/power/supply/power_supply_sysfs.c index c228205e0953..ba3b125cd66e 100644 --- a/drivers/power/supply/power_supply_sysfs.c +++ b/drivers/power/supply/power_supply_sysfs.c @@ -221,9 +221,10 @@ static struct power_supply_attr power_supply_attrs[] = { POWER_SUPPLY_ATTR(MANUFACTURER), POWER_SUPPLY_ATTR(SERIAL_NUMBER), }; +#define POWER_SUPPLY_ATTR_CNT ARRAY_SIZE(power_supply_attrs) static struct attribute * -__power_supply_attrs[ARRAY_SIZE(power_supply_attrs) + 1]; +__power_supply_attrs[POWER_SUPPLY_ATTR_CNT + 1]; static struct power_supply_attr *to_ps_attr(struct device_attribute *attr) { @@ -380,6 +381,9 @@ static umode_t power_supply_attr_is_visible(struct kobject *kobj, } } + if (power_supply_battery_info_has_prop(psy->battery_info, attrno)) + return mode; + return 0; } @@ -461,6 +465,10 @@ static int add_prop_uevent(const struct device *dev, struct kobj_uevent_env *env int power_supply_uevent(const struct device *dev, struct kobj_uevent_env *env) { const struct power_supply *psy = dev_get_drvdata(dev); + const enum power_supply_property *battery_props = + power_supply_battery_info_properties; + unsigned long psy_drv_properties[POWER_SUPPLY_ATTR_CNT / + sizeof(unsigned long) + 1] = {0}; int ret = 0, j; char *prop_buf; @@ -482,12 +490,25 @@ int power_supply_uevent(const struct device *dev, struct kobj_uevent_env *env) goto out; for (j = 0; j < psy->desc->num_properties; j++) { + set_bit(psy->desc->properties[j], psy_drv_properties); ret = add_prop_uevent(dev, env, psy->desc->properties[j], prop_buf); if (ret) goto out; } + for (j = 0; j < power_supply_battery_info_properties_size; j++) { + if (test_bit(battery_props[j], psy_drv_properties)) + continue; + if (!power_supply_battery_info_has_prop(psy->battery_info, + battery_props[j])) + continue; + ret = add_prop_uevent(dev, env, battery_props[j], + prop_buf); + if (ret) + goto out; + } + out: free_page((unsigned long)prop_buf); diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h index aa2c4a7c4826..a427f13c757f 100644 --- a/include/linux/power_supply.h +++ b/include/linux/power_supply.h @@ -301,6 +301,7 @@ struct power_supply { bool initialized; bool removing; atomic_t use_cnt; + struct power_supply_battery_info *battery_info; #ifdef CONFIG_THERMAL struct thermal_zone_device *tzd; struct thermal_cooling_device *tcd; @@ -791,10 +792,17 @@ devm_power_supply_get_by_phandle(struct device *dev, const char *property) { return NULL; } #endif /* CONFIG_OF */ +extern const enum power_supply_property power_supply_battery_info_properties[]; +extern const size_t power_supply_battery_info_properties_size; extern int power_supply_get_battery_info(struct power_supply *psy, struct power_supply_battery_info **info_out); extern void power_supply_put_battery_info(struct power_supply *psy, struct power_supply_battery_info *info); +extern bool power_supply_battery_info_has_prop(struct power_supply_battery_info *info, + enum power_supply_property psp); +extern int power_supply_battery_info_get_prop(struct power_supply_battery_info *info, + enum power_supply_property psp, + union power_supply_propval *val); extern int power_supply_ocv2cap_simple(struct power_supply_battery_ocv_table *table, int table_len, int ocv); extern struct power_supply_battery_ocv_table * From patchwork Fri Mar 17 22:56:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71509 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp31240wrt; Fri, 17 Mar 2023 16:06:18 -0700 (PDT) X-Google-Smtp-Source: AK7set9JaOHEWjyo+QvK5E9Gsg+gILhReSakPQeDs0eFtXDKMt3fdSmF6SkkjPJTq+LAAa+aqMFN X-Received: by 2002:a5e:a50d:0:b0:74c:9cc4:647 with SMTP id 13-20020a5ea50d000000b0074c9cc40647mr4619228iog.1.1679094378563; Fri, 17 Mar 2023 16:06:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679094378; cv=none; d=google.com; s=arc-20160816; b=oDsqsQC1FXx8thjLbka/nBficnb9exYauvgje0PA4AD8lqVF7W0Pezm5zHp+MrZWMK G/3kRTIH0hhgqvIKAIHpRxhvQIH5oqt8DJfH/MUvsp99P1N1EeKu4n/Ik7GVfxG80zRQ Ev1eJKU+39R4WbAe2x96d4NaavtCfvzikKB3GwywSwpXftpX8gPwWd2Hw0WtBlkTOO+J ceO/9HkBCdIPHJfMfNPwPTk6+YyTNE1TyZJdXBKrk7cCARoxc5vH7Qa9d3G62CI+Z0FM NTJguU/8DRHdx5aSm+vwPXx+FAZyj9ewZiMu/wWMUVMKbjV51OmVJ23cVBSdupSKhmqf 1q5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=1NWhZU8+zqZL1UNsqkxHxV9cuJkSgxz0xJ7Q7Drom+c=; b=MCT30M1iXXPs7sT+XihkegbrqO9fqG/L6HOXcSFRjyXI7K4y4/zBV5P7F2o+DEqBbG eNAT3cmhShN09UIvdh5BHciHnTGAHBtMe3OjzRSDJKLzd56XcHDyAazheR5rFZvJlLa1 q/HlA4L3aLaTH/yck7NGEzwLhfQWdF3sNmqjvCg7F20yWzMH/AZqTaTm7iwqnPJPaWvI WailnSyT/p7QnB3jUOf8+cqer9z1Vj2ytzOVLQE6EEfkLpUMbXCBEjKAtU2mK6E4xOiX gAv856dOgeqs+LkFYE1OIwMOiMbwpotJph3zBkElP93W6jq2rVjRNoAZLzewkHZQhd0b Jpbw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=tlGymSYr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h6-20020a056638338600b003c4f5b6f1bcsi3278766jav.80.2023.03.17.16.06.04; Fri, 17 Mar 2023 16:06:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=tlGymSYr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231135AbjCQW5h (ORCPT + 99 others); Fri, 17 Mar 2023 18:57:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50984 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229886AbjCQW5P (ORCPT ); Fri, 17 Mar 2023 18:57:15 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 041582CFFF; Fri, 17 Mar 2023 15:57:13 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 9E842B82714; Fri, 17 Mar 2023 22:57:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EA91FC433EF; Fri, 17 Mar 2023 22:57:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093831; bh=sgSRwxAxEIt1lhIpJ4LJp0jSf1yP+vzoOjDmNYSjqw0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tlGymSYrUuAVfpRImmP0NNyhbsdW+qIzm+AJxNMICoBYDGFuUQYjy/PGP/SZV4Sdd r4vC5IqmRTNsDVRya/RlQk7GpVJtelcEUl0A25fqoIMXUYztB5yxhrvwI80ZZRWtRz XVfXbZsE92ScamVg3IOcdj0fmZzcwM4E3mV5fhpvq2SuoT7CxbUiJ0Zr4BIP91xqiu 3LopV6B3e9rUX07ViZAs38xkJgCNsYd7S3i6DbpvkHBfXYjI3vbU82lRkedou9pSIF dnbChCNbLi2hQ8ZQcyGqshCMa7RciODLh71PnFVfSq8eQXH8cmHY00GId3I3gulUuk /Zqv5bQdrR6KA== Received: by mercury (Postfix, from userid 1000) id 88E761062101; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCHv3 03/14] power: supply: generic-adc-battery: convert to managed resources Date: Fri, 17 Mar 2023 23:56:56 +0100 Message-Id: <20230317225707.1552512-4-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760658067436540423?= X-GMAIL-MSGID: =?utf-8?q?1760658067436540423?= Convert driver to use managed resources to simplify driver code. Reviewed-by: Linus Walleij Reviewed-by: Matti Vaittinen Signed-off-by: Sebastian Reichel --- drivers/power/supply/generic-adc-battery.c | 81 ++++++---------------- 1 file changed, 23 insertions(+), 58 deletions(-) diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c index 66039c665dd1..917bd2a6cc52 100644 --- a/drivers/power/supply/generic-adc-battery.c +++ b/drivers/power/supply/generic-adc-battery.c @@ -23,6 +23,7 @@ #include #include #include +#include #define JITTER_DEFAULT 10 /* hope 10ms is enough */ @@ -266,14 +267,13 @@ static int gab_probe(struct platform_device *pdev) * copying the static properties and allocating extra memory for holding * the extra configurable properties received from platform data. */ - properties = kcalloc(ARRAY_SIZE(gab_props) + - ARRAY_SIZE(gab_chan_name), - sizeof(*properties), - GFP_KERNEL); - if (!properties) { - ret = -ENOMEM; - goto first_mem_fail; - } + properties = devm_kcalloc(&pdev->dev, + ARRAY_SIZE(gab_props) + + ARRAY_SIZE(gab_chan_name), + sizeof(*properties), + GFP_KERNEL); + if (!properties) + return -ENOMEM; memcpy(properties, gab_props, sizeof(gab_props)); @@ -282,12 +282,13 @@ static int gab_probe(struct platform_device *pdev) * based on the channel supported by consumer device. */ for (chan = 0; chan < ARRAY_SIZE(gab_chan_name); chan++) { - adc_bat->channel[chan] = iio_channel_get(&pdev->dev, - gab_chan_name[chan]); + adc_bat->channel[chan] = devm_iio_channel_get(&pdev->dev, gab_chan_name[chan]); if (IS_ERR(adc_bat->channel[chan])) { ret = PTR_ERR(adc_bat->channel[chan]); + if (ret != -ENODEV) + return dev_err_probe(&pdev->dev, ret, "Failed to get ADC channel %s\n", gab_chan_name[chan]); adc_bat->channel[chan] = NULL; - } else { + } else if (adc_bat->channel[chan]) { /* copying properties for supported channels only */ int index2; @@ -302,10 +303,8 @@ static int gab_probe(struct platform_device *pdev) } /* none of the channels are supported so let's bail out */ - if (!any) { - ret = -ENODEV; - goto second_mem_fail; - } + if (!any) + return dev_err_probe(&pdev->dev, -ENODEV, "Failed to get any ADC channel\n"); /* * Total number of properties is equal to static properties @@ -316,25 +315,24 @@ static int gab_probe(struct platform_device *pdev) psy_desc->properties = properties; psy_desc->num_properties = index; - adc_bat->psy = power_supply_register(&pdev->dev, psy_desc, &psy_cfg); - if (IS_ERR(adc_bat->psy)) { - ret = PTR_ERR(adc_bat->psy); - goto err_reg_fail; - } + adc_bat->psy = devm_power_supply_register(&pdev->dev, psy_desc, &psy_cfg); + if (IS_ERR(adc_bat->psy)) + return dev_err_probe(&pdev->dev, PTR_ERR(adc_bat->psy), "Failed to register power-supply device\n"); - INIT_DELAYED_WORK(&adc_bat->bat_work, gab_work); + ret = devm_delayed_work_autocancel(&pdev->dev, &adc_bat->bat_work, gab_work); + if (ret) + return dev_err_probe(&pdev->dev, ret, "Failed to register delayed work\n"); - adc_bat->charge_finished = devm_gpiod_get_optional(&pdev->dev, - "charged", GPIOD_IN); + adc_bat->charge_finished = devm_gpiod_get_optional(&pdev->dev, "charged", GPIOD_IN); if (adc_bat->charge_finished) { int irq; irq = gpiod_to_irq(adc_bat->charge_finished); - ret = request_any_context_irq(irq, gab_charged, + ret = devm_request_any_context_irq(&pdev->dev, irq, gab_charged, IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, "battery charged", adc_bat); if (ret < 0) - goto gpio_req_fail; + return dev_err_probe(&pdev->dev, ret, "Failed to register irq\n"); } platform_set_drvdata(pdev, adc_bat); @@ -343,38 +341,6 @@ static int gab_probe(struct platform_device *pdev) schedule_delayed_work(&adc_bat->bat_work, msecs_to_jiffies(0)); return 0; - -gpio_req_fail: - power_supply_unregister(adc_bat->psy); -err_reg_fail: - for (chan = 0; chan < ARRAY_SIZE(gab_chan_name); chan++) { - if (adc_bat->channel[chan]) - iio_channel_release(adc_bat->channel[chan]); - } -second_mem_fail: - kfree(properties); -first_mem_fail: - return ret; -} - -static int gab_remove(struct platform_device *pdev) -{ - int chan; - struct gab *adc_bat = platform_get_drvdata(pdev); - - power_supply_unregister(adc_bat->psy); - - if (adc_bat->charge_finished) - free_irq(gpiod_to_irq(adc_bat->charge_finished), adc_bat); - - for (chan = 0; chan < ARRAY_SIZE(gab_chan_name); chan++) { - if (adc_bat->channel[chan]) - iio_channel_release(adc_bat->channel[chan]); - } - - kfree(adc_bat->psy_desc.properties); - cancel_delayed_work_sync(&adc_bat->bat_work); - return 0; } static int __maybe_unused gab_suspend(struct device *dev) @@ -408,7 +374,6 @@ static struct platform_driver gab_driver = { .pm = &gab_pm_ops, }, .probe = gab_probe, - .remove = gab_remove, }; module_platform_driver(gab_driver); From patchwork Fri Mar 17 22:56:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71503 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp28101wrt; Fri, 17 Mar 2023 15:58:46 -0700 (PDT) X-Google-Smtp-Source: AK7set/g5ssTCVNp6bZRL0tlj8Xt5VUfqOl2c2AgoXN1YJNjjiuUlxXiE+ewPmZ1p8IlVltQWavh X-Received: by 2002:a05:6a20:7f8c:b0:c7:af88:3dd8 with SMTP id d12-20020a056a207f8c00b000c7af883dd8mr11566927pzj.6.1679093926566; Fri, 17 Mar 2023 15:58:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679093926; cv=none; d=google.com; s=arc-20160816; b=DxfRWT9C/Ld8Ul+g3M6NZ2ZlXKyYmzE6T+o6Z9tnt3gHWlATQu5Etcxk161SuSsDvb QJ2oZpQM4XawfeVYHUCno+UgGd4O8A+Xoy2+x15ngMlTynGKD4jEAiHLPIeWrQLAz0qI TnZv8ezbB62s08zLOxy+jSJmuz1cTEka/HRCQqP343MLDJltCPg0VxNV4xUKkcsBYLsY Fmdkva5hU21/HNyB1iQ1VtN8VLigdc5iQuD86o6RdS53ZCr3n4tRSpOiXCTDV20vf0pv VZi2mTZz/eOVSwTdp4T5TGcL4ZICIVpHauIXucQEJa+Gt3/v3VT2hv3boqP4TICXnfL4 YfHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=UruGliW+Le2KjAHkWxVs39iWuGVjqDBgM2b7G/FyJaA=; b=0frarVqCfS9zasXJpZ1OMOV/g69rgH8DVa5kzQrwjGamMejGMuht8gAVpixVyId8uC Ko06ypaqha22oKvBM7EwdDA5hdXa/5z6KeyyVMpnQtEAGob2NhTO/9Q6exbkZ3z1e9Sh SqlrR4YZJ0bqERkzWrxj87BPKerZfzb7DUj2tXQsEM89Lo0ITs7cjfc9I+8cQ7M7Xzb1 Z9FaKBdFSN/espJh1+py7mk7jK7k/avv7lXhhSKP26ZLirU5Nm+643G938GQv8GtFy/t OZ5keqvDYpXo9YbNmsFyRXbjLrSIBNlh+Ii5zGM3iJ+IiOlBIAoKRxQf8vlBi6v3qgyW X/ag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=XroeiJgg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x24-20020a63db58000000b004d3cdf2aae7si3315670pgi.789.2023.03.17.15.58.31; Fri, 17 Mar 2023 15:58:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=XroeiJgg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230427AbjCQW5Y (ORCPT + 99 others); Fri, 17 Mar 2023 18:57:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50946 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229755AbjCQW5O (ORCPT ); Fri, 17 Mar 2023 18:57:14 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 552582CFD4; Fri, 17 Mar 2023 15:57:12 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E656160C24; Fri, 17 Mar 2023 22:57:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 280B8C433AC; Fri, 17 Mar 2023 22:57:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093831; bh=35QN0bzeY/9nc3m2KusNIkEd3B6r2Kv+UZyBrvNelB4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XroeiJggFWszgmfFVVEXYbBrzIRHfECFxjMs2w28Sj2STSKCUJojBh/zh/4PhLqOH nN3kx9KQHZB6Ygi733MTNgsQPK4AX9rP4fQG6LwtcQ/FO2TQr+gnbih4m4I5SDevRK U5sGrfdHvDJTWhtX9pbkKIs2RUYVsflsEAuLkL7JS9bdOBbB5N1b5jQdKYU8UjkmxF 6e6Ec9XaouP7PqySQMeVQTYBIF2AC8F9k+yWCQf0m6DG4MeFOtqF6uvGiwyPcvt3it OUWuEpY2iyHHga+pyWUm0ILGprt5OyKfvyWQARFWG+lfDi5UtEQNS23amHagBtG7So t8wX4950hqyfg== Received: by mercury (Postfix, from userid 1000) id 8B01A1062104; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCHv3 04/14] power: supply: generic-adc-battery: fix unit scaling Date: Fri, 17 Mar 2023 23:56:57 +0100 Message-Id: <20230317225707.1552512-5-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760657593183742524?= X-GMAIL-MSGID: =?utf-8?q?1760657593183742524?= power-supply properties are reported in µV, µA and µW. The IIO API provides mV, mA, mW, so the values need to be multiplied by 1000. Fixes: e60fea794e6e ("power: battery: Generic battery driver using IIO") Reviewed-by: Linus Walleij Reviewed-by: Matti Vaittinen Signed-off-by: Sebastian Reichel --- drivers/power/supply/generic-adc-battery.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c index 917bd2a6cc52..535972a332b3 100644 --- a/drivers/power/supply/generic-adc-battery.c +++ b/drivers/power/supply/generic-adc-battery.c @@ -136,6 +136,9 @@ static int read_channel(struct gab *adc_bat, enum power_supply_property psp, result); if (ret < 0) pr_err("read channel error\n"); + else + *result *= 1000; + return ret; } From patchwork Fri Mar 17 22:56:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71502 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp28038wrt; Fri, 17 Mar 2023 15:58:27 -0700 (PDT) X-Google-Smtp-Source: AK7set82w6n2XR7rc1YhMrTmTr3zkWOKJ5yKT3FoI3Yooxm+g6WOzug3ggnE+nLIuwobznBBvP3p X-Received: by 2002:a17:902:e80f:b0:19d:2a3:f019 with SMTP id u15-20020a170902e80f00b0019d02a3f019mr8801675plg.1.1679093907423; Fri, 17 Mar 2023 15:58:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679093907; cv=none; d=google.com; s=arc-20160816; b=Q/0wPC8XPFdYGxrr7yVyHEPyrC08vidptFifWhLftRv1yQmgHjtz+5+HOKlNG8vUkM yUPvQzip8Et3QAm84Iw8DM9XZFPvfC78RphEzmwikxmzBEqta2LEaL4pJx7A9BSCrsYR okXnKRW0M5p4TuS6bVeASOSQNAftiiGiB7Hm84xQ25R0K+4QV+MVNCo0cqZuvUCIRIc8 bXJ46tl4bSnrDQ+Fu9JjICURCJuf2Iz7PcPF2zZWwvC+kuyOqmonNnWFUGRaxESQj0R5 bDY5CBDXQS9i3fUCyc/QCy8cqUE4n0HvsmYOMR68Ce0vGTu0BCYR1cWBNiHaMHJmLQS8 +9gA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=RpWBZnk1O/pq2NNcBD9tPksLtipOEExS9y9CqkQw4uc=; b=aoEwSWul+GHabkMN12CzX0fiDUeBJ6xps4dt8fEbxfq2j6iX9FgZy4dGpgDn+98cf1 B8KIT68LwNU5yxYm5LQfqMpIxTnTsNFm/x5xJ7H68D+Fy1wxmls/DthanDQDblW8NcPw 0svJoQrGXdky5GLaaTTQMbqUr0EHEYfj7EjRJg3E70FQf20wIazHifiKIJ4xPrVI9p+p 6xrHQIgIjzU8W2SVdUYuuLWSbTouQiBXpfrCzf0RaTR0FdjSCtQNpGbissijxpY0Ltvh 4xolfh2TZnNBAo0oY6gfscI+W3uVKbY1pI8rP+6vfucVP7GeNzMZL0awS1A20Yfth9XM DwEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=UaNMZEwn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p10-20020a1709026b8a00b0019e912312e0si3565143plk.84.2023.03.17.15.58.11; Fri, 17 Mar 2023 15:58:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=UaNMZEwn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230489AbjCQW5a (ORCPT + 99 others); Fri, 17 Mar 2023 18:57:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50986 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229892AbjCQW5P (ORCPT ); Fri, 17 Mar 2023 18:57:15 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6BA172CFCB; Fri, 17 Mar 2023 15:57:14 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E086860CA0; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A3A3C433D2; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093833; bh=cBF4sj28SAckbtk/zdaRv0Kn7wKLfTnCwzHMWh0YXEs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UaNMZEwnKjK5vylx0dTMRlraH3Ve/gk1FTjHVmxaZNBxeth8m0RA28nUAnqLQVmCj QmorLZ3+ICq8t9bOlPRkcMXrecn0oj1nN8Ag+5Y9HSsaa7HB97yj8c+afl9ZPVTr6w TaA9ZTT0RZETqOFIC6+HJ7uEwWjPLcr6T1/QbGDGckJhfh7PAAFkwY2v/GWFRJlehv jKbirgkCKjxTuNSOHcIoHsJm/3eDyTYPd1wsmgxnPTyJeGoSZ414j2W9vscfTmN70v cDeLfMMsBvxz9wzPITtU7u+vyftubY6PMO3rd/EYA/hTMMhL3f6MjKGbwEXmL9ZxEQ oKnUpvvrHCgLA== Received: by mercury (Postfix, from userid 1000) id 8D0171062105; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCHv3 05/14] power: supply: generic-adc-battery: drop jitter delay support Date: Fri, 17 Mar 2023 23:56:58 +0100 Message-Id: <20230317225707.1552512-6-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760657572979204411?= X-GMAIL-MSGID: =?utf-8?q?1760657572979204411?= Drop support for configuring IRQ jitter delay by using big enough fixed value. Reviewed-by: Linus Walleij Signed-off-by: Sebastian Reichel --- drivers/power/supply/generic-adc-battery.c | 13 ++++--------- include/linux/power/generic-adc-battery.h | 3 --- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c index 535972a332b3..e20894460d7f 100644 --- a/drivers/power/supply/generic-adc-battery.c +++ b/drivers/power/supply/generic-adc-battery.c @@ -227,12 +227,10 @@ static void gab_work(struct work_struct *work) static irqreturn_t gab_charged(int irq, void *dev_id) { struct gab *adc_bat = dev_id; - struct gab_platform_data *pdata = adc_bat->pdata; - int delay; - delay = pdata->jitter_delay ? pdata->jitter_delay : JITTER_DEFAULT; schedule_delayed_work(&adc_bat->bat_work, - msecs_to_jiffies(delay)); + msecs_to_jiffies(JITTER_DEFAULT)); + return IRQ_HANDLED; } @@ -358,14 +356,11 @@ static int __maybe_unused gab_suspend(struct device *dev) static int __maybe_unused gab_resume(struct device *dev) { struct gab *adc_bat = dev_get_drvdata(dev); - struct gab_platform_data *pdata = adc_bat->pdata; - int delay; - - delay = pdata->jitter_delay ? pdata->jitter_delay : JITTER_DEFAULT; /* Schedule timer to check current status */ schedule_delayed_work(&adc_bat->bat_work, - msecs_to_jiffies(delay)); + msecs_to_jiffies(JITTER_DEFAULT)); + return 0; } diff --git a/include/linux/power/generic-adc-battery.h b/include/linux/power/generic-adc-battery.h index c68cbf34cd34..50eb4bf28286 100644 --- a/include/linux/power/generic-adc-battery.h +++ b/include/linux/power/generic-adc-battery.h @@ -11,13 +11,10 @@ * @battery_info: recommended structure to specify static power supply * parameters * @cal_charge: calculate charge level. - * @jitter_delay: delay required after the interrupt to check battery - * status.Default set is 10ms. */ struct gab_platform_data { struct power_supply_info battery_info; int (*cal_charge)(long value); - int jitter_delay; }; #endif /* GENERIC_ADC_BATTERY_H */ From patchwork Fri Mar 17 22:56:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71514 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp36075wrt; Fri, 17 Mar 2023 16:20:40 -0700 (PDT) X-Google-Smtp-Source: AK7set8juiKLE5E2s9QrMf7niQsJFLt85hEYQPZ/7tGFC/tooQqzBkDhmuFRnWQt+AluA7Nzzgf9 X-Received: by 2002:a17:90a:ce89:b0:234:289d:5e69 with SMTP id g9-20020a17090ace8900b00234289d5e69mr7458626pju.2.1679095240633; Fri, 17 Mar 2023 16:20:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679095240; cv=none; d=google.com; s=arc-20160816; b=aqDNcvE+eExNyWu87Gp4btn6o9dXHO7cFKrHWqRHER0DV91fe3heGaylLMQ/jFmtZP TH4J2qh3M4UI0XXoQ0aW+R+Q1pGxtAY734/MH/heN1jkTzJ3OCFzc30kKeZ1dRW/BBS6 dLxfl277aZkvO31jr3U94R9pNiicSJSbMdxNIobA9h6tz/9psvr/DxCHOfl3phb4OzFf s19KAi/xZktSU49INDAF8EA5N7uj5xQT93GgUpyFlP70LI23rO597OBvzPAl+uNuOpmb Rzvbk/wvrlaN/7A+qcuGt+KeOGLObzb7riRJ1ROe57p7+IYVD5zoVYCPEPCUvSekDnYC 3jPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=zMtGuW7vfNaRrmYFgVZ0SIAVi15R5z3njPI0wXrjjh4=; b=kc5aC4dbPdtK6MeJXPwDWuDcDkXZLIdLbaK1jm4YAs2k+wqsxXVIAVpZzjqymGnTlF QyeQRZcgScQgIAnz1YszMbJ2w67N8PBGxD29FZWkwLDLQPZ26Ff5DxZH1OAFDkE7XfKi CEn+X/TjM8H4DDkQm2w5StiYrpqIzYo5wlaxfHwAZKBLZ94Vd0DPgWpFkUuji7JZsOm2 MvCwK6P90/GoNeYA8fA0oOxjfH4/Z/N5X2EMg9d9l/KmftKbJfA6OtNOYKnPKmA1y+KF lX/T4WsmUqxsLgkxt8dqkQFhpAPIlLTyD9j9/Qrd4dQ7fNTVDFDCyY8hZyuAT5GKS1Vx CMbw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=sNfBeWUm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g12-20020a17090ae58c00b0022be3049e52si8876310pjz.34.2023.03.17.16.20.21; Fri, 17 Mar 2023 16:20:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=sNfBeWUm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231151AbjCQW5l (ORCPT + 99 others); Fri, 17 Mar 2023 18:57:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51014 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229986AbjCQW5Q (ORCPT ); Fri, 17 Mar 2023 18:57:16 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E5D172D162; Fri, 17 Mar 2023 15:57:14 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id F418A60CA3; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3B25BC433A0; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093833; bh=c3WYbgfatFUXlt2kUOofkHvWoKbgirGFc4A+gjyj7bE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sNfBeWUmAoIMbt5c8TAoNvIj1fVw3JIlBQPkOpPM2xjh9iWKi+8b4sJp/F1PojNo7 qW20EJJcE+0CmD2ljfQDQj+sCKAbiI8+iiFK1zcMBRNlOHCx1iKmLE52EQV0P/vTSX k83pB5izv2lVunxcvNSrbdkVHcRnhusGazVtXJZR2Jf4rrjlgyarBBhTWlTD3stana 39I+6W3VSr8F1ikG5c4amr1uh4VCpVnaUZ45ZvpL/BV/3hWx8SIlAhGR0qHF+7aWfT lhWaQV9y6hqGcyKh20rEapLUF/9PG6VZFGG+JZN+5i0xo4MGPhS0373c7ME7t2/juB zaQfq53+wgIgw== Received: by mercury (Postfix, from userid 1000) id 8F2C31062107; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCHv3 06/14] power: supply: generic-adc-battery: drop charge now support Date: Fri, 17 Mar 2023 23:56:59 +0100 Message-Id: <20230317225707.1552512-7-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760658970670618482?= X-GMAIL-MSGID: =?utf-8?q?1760658970670618482?= Drop CHARGE_NOW support, which requires a platform specific calculation method. Reviewed-by: Linus Walleij Reviewed-by: Matti Vaittinen Signed-off-by: Sebastian Reichel --- drivers/power/supply/generic-adc-battery.c | 4 ---- include/linux/power/generic-adc-battery.h | 2 -- 2 files changed, 6 deletions(-) diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c index e20894460d7f..d07eeb7d46d3 100644 --- a/drivers/power/supply/generic-adc-battery.c +++ b/drivers/power/supply/generic-adc-battery.c @@ -72,7 +72,6 @@ static const enum power_supply_property gab_props[] = { POWER_SUPPLY_PROP_STATUS, POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN, POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN, - POWER_SUPPLY_PROP_CHARGE_NOW, POWER_SUPPLY_PROP_VOLTAGE_NOW, POWER_SUPPLY_PROP_CURRENT_NOW, POWER_SUPPLY_PROP_TECHNOLOGY, @@ -166,9 +165,6 @@ static int gab_get_property(struct power_supply *psy, case POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN: val->intval = 0; break; - case POWER_SUPPLY_PROP_CHARGE_NOW: - val->intval = pdata->cal_charge(result); - break; case POWER_SUPPLY_PROP_VOLTAGE_NOW: case POWER_SUPPLY_PROP_CURRENT_NOW: case POWER_SUPPLY_PROP_POWER_NOW: diff --git a/include/linux/power/generic-adc-battery.h b/include/linux/power/generic-adc-battery.h index 50eb4bf28286..54434e4304d3 100644 --- a/include/linux/power/generic-adc-battery.h +++ b/include/linux/power/generic-adc-battery.h @@ -10,11 +10,9 @@ * struct gab_platform_data - platform_data for generic adc iio battery driver. * @battery_info: recommended structure to specify static power supply * parameters - * @cal_charge: calculate charge level. */ struct gab_platform_data { struct power_supply_info battery_info; - int (*cal_charge)(long value); }; #endif /* GENERIC_ADC_BATTERY_H */ From patchwork Fri Mar 17 22:57:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71507 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp29771wrt; Fri, 17 Mar 2023 16:02:50 -0700 (PDT) X-Google-Smtp-Source: AK7set+S6WPgdFxlqW4dEfm+bJQT0JV9uT4M7VOZGHaCE21W+VNXOmx6n/5K5LGQsTy1Qk/DDbF4 X-Received: by 2002:a17:902:c40c:b0:19c:f005:92de with SMTP id k12-20020a170902c40c00b0019cf00592demr8262246plk.4.1679094169555; Fri, 17 Mar 2023 16:02:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679094169; cv=none; d=google.com; s=arc-20160816; b=eSOcn+H83FDrkYHdhzLRYYCYOsoxNHHAIoHBEbVizCKe/4c+2PvtCyzZM33OlNuSXW NENts+GaTY040uRewmXaz1czwRxGBav4wVJNN2u40dMVbGZhwqB94B63s5agrghibpIl EYxZMA2BaZ4Xv5s7rbZtZ7O1qHnrdqfQNolD5QFymPyIwCNAGispgy3qLKy3aCGvy4xf Af1JLfSeUQtzx0N7BM/RccHoPvldQITcCwY5Lq9SjRfc1WRuchIBL1HKYhBXlsLx3DXh i3P6aAs7O31WhbGuF8DRjbqorP9qGDIuFUKqoSQu5F2hU0858mHQIuBjH436wOKEIAzM a7xw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=CBZCAjZKQxiDiyyO+XgqKQKunbkNhgQpy+G0Q02FmbQ=; b=FXNLbPRbpO+xEZoK/WB8bp7GPrpxm25M+t7ledEoQICjK5PPGD9TkHNEanjy1smID5 n6K0a6LEPxVjkHXvkhvMrxn30NgZj6rhC8L3/UzDHnMcKplsoEdUGIeD9sI/qLou4YJ9 eJaUAKbqFtic4KjkR5JXZJFWHCfJcVzumXBn5hLSv8qdCz1BD9VOzhXInqxXK/uabmHJ K5zGyHqB9DsgnxUyNRkd9CKNvFkBMJB+t1FUrylUITdvREPhVPf1DYg//WeYV8sXtvbg SYBEQbBPetmKjh7xXiUIXfYSuiGRV5BaqwzL7xeO1Nq7BZ7zX7XHEkkkwP0eqNxenITO Sv7Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WdE73w50; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u11-20020a170902e80b00b001a1abc91952si2432835plg.194.2023.03.17.16.02.33; Fri, 17 Mar 2023 16:02:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WdE73w50; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230505AbjCQW5e (ORCPT + 99 others); Fri, 17 Mar 2023 18:57:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50988 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229902AbjCQW5P (ORCPT ); Fri, 17 Mar 2023 18:57:15 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6F6532D146; Fri, 17 Mar 2023 15:57:14 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E4CA460C6B; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2F104C433EF; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093833; bh=yPzVoyb/Gfy3GbgXbS/xEPN0qDCVRKIVaWj3y97xOno=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WdE73w50sNZk20kUQgGtgZ4h0UrPZstvUS4wpCqZ9mkwvcd1IND5KzB1o91k0mROu Acdn7L7C56PhUyOKBjRZrhy7KRmQAnzkoI1qHtD3A/SfToxq/VOImV9rj9h6bPNFN5 eKzlOYmor7Bkwfo7PQgA3kG/AB+sn2JcccqouUa95B/MhG4oRnNoTyu7qUlSLTrmUq bzqmpCo7XMajYypTsl7igx2ZtWBa514Yib858dUWAcYB7XKntPgImIQug+0vi/+cz+ Y8JpEegTuPsJi5HwArn+xzZc2J7fgBQyNzprJgyhIeaFXbtaaD0yBFo73ZAPSzOKo1 t6H+XNqYHIXcQ== Received: by mercury (Postfix, from userid 1000) id 9149A1062108; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCHv3 07/14] power: supply: generic-adc-battery: drop memory alloc error message Date: Fri, 17 Mar 2023 23:57:00 +0100 Message-Id: <20230317225707.1552512-8-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760657847920208113?= X-GMAIL-MSGID: =?utf-8?q?1760657847920208113?= Error printing happens automatically for memory allocation problems. Reviewed-by: Linus Walleij Reviewed-by: Matti Vaittinen Signed-off-by: Sebastian Reichel --- drivers/power/supply/generic-adc-battery.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c index d07eeb7d46d3..771e5cfc49c3 100644 --- a/drivers/power/supply/generic-adc-battery.c +++ b/drivers/power/supply/generic-adc-battery.c @@ -243,10 +243,8 @@ static int gab_probe(struct platform_device *pdev) bool any = false; adc_bat = devm_kzalloc(&pdev->dev, sizeof(*adc_bat), GFP_KERNEL); - if (!adc_bat) { - dev_err(&pdev->dev, "failed to allocate memory\n"); + if (!adc_bat) return -ENOMEM; - } psy_cfg.drv_data = adc_bat; psy_desc = &adc_bat->psy_desc; From patchwork Fri Mar 17 22:57:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71506 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp29742wrt; Fri, 17 Mar 2023 16:02:45 -0700 (PDT) X-Google-Smtp-Source: AK7set/9tq+JcjK87pVoL4WPggzDNYD9FA4fIgP83kJzhxPeOswh8KqRHgYbXSs8tcdysu+2AsNY X-Received: by 2002:a05:6a21:32a1:b0:c7:af88:4199 with SMTP id yt33-20020a056a2132a100b000c7af884199mr11129244pzb.6.1679094165281; Fri, 17 Mar 2023 16:02:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679094165; cv=none; d=google.com; s=arc-20160816; b=wdrT7D/ZyrvVJh9mmRh1p+04BFu11UoKMqj/IHbupKqC/30Uy3Gon5io5x+n2elrBo vKfZ+QG7wzxC0O3X6156BJjuMkfzZw/cj5VKkvreGnroH+QdC53UtDuaIlty6CforPpD BrrzOlHM4ZfvEzsFV55mL27awkn2MT0yGo+BFVzKxn2Aq1z1n7Isxl/FvTh9GqW1IcjX Gv8NlQbG5NdlICfBDvw1okeUiwX8pSbtaea+WW4e+BzCwu689iPuP3uy96+yo5q396Y2 Ww9HuQyjRvPI5sThKyGJ9h6CnQbR1Q+s88uzijLdD91Ya7pBkBzbRkGIWGheF32ZaRGG kg0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=u6bq6Vb61NF00czPGDQ9TPJSqGILSL69v60E+WHkT64=; b=u6Ua0NCq8XYrcuckHEj68iCE4Q0nFJYc3gYBkXV+lc97FgaLC7fOSpsNdFoKoxW1W9 o2N6d3M/bHRBvd6/UXJPE2yCOOD0JIoNzVtV5KkAMDopQPI5gRVD+DYlBxrcdeW7ZhYA LTS/Hq8/XaRuPdJ9ZMDDV1n1+CI+5L5AL2SPPAfPuD+sRdwh84OYz1GlFULDW5wjqh2E +pQgHo71eDQ72IvoTwLDNguRfePdC11mz8d2rjdCmPn6vB7EcPWZW3cczJz+BqHk1PX3 Rpx6iSidmPBrhIJu8wQcXqrPMB6e9UgCs3ZCZTWtn7vC8bsVn+8kd/Dy4J4XQQWwYTlA zIfw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YPYLqLMi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m23-20020a17090aab1700b0023f064f20c7si3310647pjq.168.2023.03.17.16.02.29; Fri, 17 Mar 2023 16:02:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YPYLqLMi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231175AbjCQW5o (ORCPT + 99 others); Fri, 17 Mar 2023 18:57:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51020 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230007AbjCQW5Q (ORCPT ); Fri, 17 Mar 2023 18:57:16 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 743FA2D158; Fri, 17 Mar 2023 15:57:14 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id F350B60C38; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3ED3FC4339C; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093833; bh=OTuZm/GSsFUFrelKr/sk2skAkKM6ag5nmS5giLi2c9c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YPYLqLMijOhiurrgGWASebHjcp9iaJ7EvsWklEv/t7ir52Q6J74y8s8v2VOtQFA+J qLrevzJYD2ZzYmC0A2JYc2F76tSCUHjpejoJ0cZExuZA2JlL9lyJYQgLRHfq/WeR8I CCbBI8HAWjoDHXVDb0iH5DqgzDnaymk013o5WfKwHyQXX2GjXYpqwJkF7o6Q4ieAln du7NsWNodZIBeZhcrSoS6+Rc45s2e8zXS4c3TRHpTqpwVUdzMpX+Nrnxjn98OADDv4 rygqvbE8PEOEO/atIaSj3r/wyiLyy5Z4mKLMv2LI9fCreQpi5jq/Ae7abze1gNapYN xCZCA+7GrgE+Q== Received: by mercury (Postfix, from userid 1000) id 936A2106210C; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCHv3 08/14] power: supply: generic-adc-battery: use simple-battery API Date: Fri, 17 Mar 2023 23:57:01 +0100 Message-Id: <20230317225707.1552512-9-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760657843645190163?= X-GMAIL-MSGID: =?utf-8?q?1760657843645190163?= Constant battery data is available through power-supply's simple-battery API. This works automatically, so the manual handling can be removed without loosing any feature :) Note, that the POWER_SUPPLY_STATUS_FULL check for the level variable can be dropped, since the variable is never written. It can be re-introduced properly once the driver gets functionality to calculate the current charge level. Apart from that the check must be done fuzzy anyways, since charge estimation usually is not precise enough to always return exactly the full charge capacity for a full battery. Reviewed-by: Linus Walleij Signed-off-by: Sebastian Reichel Reviewed-by: Matti Vaittinen --- drivers/power/supply/generic-adc-battery.c | 64 ++-------------------- include/linux/power/generic-adc-battery.h | 18 ------ 2 files changed, 4 insertions(+), 78 deletions(-) delete mode 100644 include/linux/power/generic-adc-battery.h diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c index 771e5cfc49c3..d4f63d945b2c 100644 --- a/drivers/power/supply/generic-adc-battery.c +++ b/drivers/power/supply/generic-adc-battery.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #define JITTER_DEFAULT 10 /* hope 10ms is enough */ @@ -48,9 +47,7 @@ struct gab { struct power_supply *psy; struct power_supply_desc psy_desc; struct iio_channel *channel[GAB_MAX_CHAN_TYPE]; - struct gab_platform_data *pdata; struct delayed_work bat_work; - int level; int status; bool cable_plugged; struct gpio_desc *charge_finished; @@ -70,14 +67,6 @@ static void gab_ext_power_changed(struct power_supply *psy) static const enum power_supply_property gab_props[] = { POWER_SUPPLY_PROP_STATUS, - POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN, - POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN, - POWER_SUPPLY_PROP_VOLTAGE_NOW, - POWER_SUPPLY_PROP_CURRENT_NOW, - POWER_SUPPLY_PROP_TECHNOLOGY, - POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN, - POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN, - POWER_SUPPLY_PROP_MODEL_NAME, }; /* @@ -97,17 +86,6 @@ static bool gab_charge_finished(struct gab *adc_bat) return gpiod_get_value(adc_bat->charge_finished); } -static int gab_get_status(struct gab *adc_bat) -{ - struct gab_platform_data *pdata = adc_bat->pdata; - struct power_supply_info *bat_info; - - bat_info = &pdata->battery_info; - if (adc_bat->level == bat_info->charge_full_design) - return POWER_SUPPLY_STATUS_FULL; - return adc_bat->status; -} - static enum gab_chan_type gab_prop_to_chan(enum power_supply_property psp) { switch (psp) { @@ -144,27 +122,12 @@ static int read_channel(struct gab *adc_bat, enum power_supply_property psp, static int gab_get_property(struct power_supply *psy, enum power_supply_property psp, union power_supply_propval *val) { - struct gab *adc_bat; - struct gab_platform_data *pdata; - struct power_supply_info *bat_info; - int result = 0; - int ret = 0; - - adc_bat = to_generic_bat(psy); - if (!adc_bat) { - dev_err(&psy->dev, "no battery infos ?!\n"); - return -EINVAL; - } - pdata = adc_bat->pdata; - bat_info = &pdata->battery_info; + struct gab *adc_bat = to_generic_bat(psy); switch (psp) { case POWER_SUPPLY_PROP_STATUS: - val->intval = gab_get_status(adc_bat); - break; - case POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN: - val->intval = 0; - break; + val->intval = adc_bat->status; + return 0; case POWER_SUPPLY_PROP_VOLTAGE_NOW: case POWER_SUPPLY_PROP_CURRENT_NOW: case POWER_SUPPLY_PROP_POWER_NOW: @@ -173,26 +136,9 @@ static int gab_get_property(struct power_supply *psy, goto err; val->intval = result; break; - case POWER_SUPPLY_PROP_TECHNOLOGY: - val->intval = bat_info->technology; - break; - case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN: - val->intval = bat_info->voltage_min_design; - break; - case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: - val->intval = bat_info->voltage_max_design; - break; - case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN: - val->intval = bat_info->charge_full_design; - break; - case POWER_SUPPLY_PROP_MODEL_NAME: - val->strval = bat_info->name; - break; default: return -EINVAL; } -err: - return ret; } static void gab_work(struct work_struct *work) @@ -235,7 +181,6 @@ static int gab_probe(struct platform_device *pdev) struct gab *adc_bat; struct power_supply_desc *psy_desc; struct power_supply_config psy_cfg = {}; - struct gab_platform_data *pdata = pdev->dev.platform_data; enum power_supply_property *properties; int ret = 0; int chan; @@ -248,7 +193,7 @@ static int gab_probe(struct platform_device *pdev) psy_cfg.drv_data = adc_bat; psy_desc = &adc_bat->psy_desc; - psy_desc->name = pdata->battery_info.name; + psy_desc->name = dev_name(&pdev->dev); /* bootup default values for the battery */ adc_bat->cable_plugged = false; @@ -256,7 +201,6 @@ static int gab_probe(struct platform_device *pdev) psy_desc->type = POWER_SUPPLY_TYPE_BATTERY; psy_desc->get_property = gab_get_property; psy_desc->external_power_changed = gab_ext_power_changed; - adc_bat->pdata = pdata; /* * copying the static properties and allocating extra memory for holding diff --git a/include/linux/power/generic-adc-battery.h b/include/linux/power/generic-adc-battery.h deleted file mode 100644 index 54434e4304d3..000000000000 --- a/include/linux/power/generic-adc-battery.h +++ /dev/null @@ -1,18 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - * Copyright (C) 2012, Anish Kumar - */ - -#ifndef GENERIC_ADC_BATTERY_H -#define GENERIC_ADC_BATTERY_H - -/** - * struct gab_platform_data - platform_data for generic adc iio battery driver. - * @battery_info: recommended structure to specify static power supply - * parameters - */ -struct gab_platform_data { - struct power_supply_info battery_info; -}; - -#endif /* GENERIC_ADC_BATTERY_H */ From patchwork Fri Mar 17 22:57:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71513 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp35392wrt; Fri, 17 Mar 2023 16:18:16 -0700 (PDT) X-Google-Smtp-Source: AK7set/6h7lVgJM5OzVQ5byqQR07cN5WSZw5reko+mdBgHOYBr0sHlcTnwkkTskCoE2GSyZJViGh X-Received: by 2002:a17:903:41c5:b0:19a:a815:2877 with SMTP id u5-20020a17090341c500b0019aa8152877mr8328694ple.6.1679095096317; Fri, 17 Mar 2023 16:18:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679095096; cv=none; d=google.com; s=arc-20160816; b=0KX1TO9GOyHUySjPzfecFRCdO+12SGzhw93sG7cm1gCl106Ahk97dHnrzy6JMqzmaD P54WGndPQNwg3Zh0Jtq930bETMHkWB6+YoVQLTflHGyt1GPvq1RwAKhdDaObIJqrdkv3 JYwRhFLVjldsWaxiF5MdS7Teb4YiLIeW0k/Vw6MAUFP+O5Q9p161oDZZStiGrMX/K5SQ sOtv0p6xVSR9vI6t1tanZXxx8xn3yXHUeE+GuWHSJyBiX8H08fiHy2G61QzQV1/NaDfV 3wPk1e+CgqQ+S9hV2H5R6XV4n0puC76byuBEi+tPVgonKNK6l0W8rvriJiz7XW3Ueghf zUig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=8LUzY5ibgX4e1fzPoKyEpehzknocb65fOnZqT7L1EXk=; b=AAlbdCujFfTHy+YskzyRYMsw2aJc1EqJn/6VRBbMWonGbFJmmD76wWElh/FdXGVEsD G30E0B9/ve6Nk9strpjJ2ppcsdqJZczbUYLwUIFKA2vgA3C0T69GheXH/ySxYVowyim6 G13x8G1jN6e/7ByP5OUEWOCDin4l8e8MyoGo8X6dGO8xyvFDFFP6y7ofxf+Lukv+EJqC D3tyJvc1rcwW/VuPkraK4LIDP50HLwutFNXRKe2w15/g84jZ+KYL5zwSQ1qTG14fKe8z 1bWEeAiFay39jnzLXvcWmGqIh6izDRU1HVyEuArJJbKMI0ZAd+0Wrk/uBqPBNrO4mUTg fTJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=djhb+WKv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q5-20020a17090311c500b0019f34a15738si3976406plh.139.2023.03.17.16.17.42; Fri, 17 Mar 2023 16:18:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=djhb+WKv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231213AbjCQW5x (ORCPT + 99 others); Fri, 17 Mar 2023 18:57:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51092 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230093AbjCQW5R (ORCPT ); Fri, 17 Mar 2023 18:57:17 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3625F2DE71; Fri, 17 Mar 2023 15:57:15 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 9052DB826F3; Fri, 17 Mar 2023 22:57:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39173C4339B; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093833; bh=owAvzfzmofpsvtSIDluD5S9OyIrSNEAKN3RrjH509gY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=djhb+WKvderJEYVNusiXZS/F+qKgcyf9MSoXBFpp86AAjobB2gDCoErATvAWO4Tfu 6oZxd3cAVnoYkI+dEfTNWKtKl/RKXjGX96lK3+XfjJyenNmFdxrCchR3IhgxnQaaG8 rB26DOG53rbmeIcmxx9ZMb4IkALf0Onh4ZnTy1RCE+kVAa0uFtzZ0JqEBvxnoa/eeU DfI6wGpyQyH1uROXlZc78ALSrE3dOI/K0HFUcKg+htLqA+Oo0JtqBptUbdnFtGHWNG GWpq4op6FoDMrgCBMV+E3XT5Cru9CX/1qkDhy3lsVw6YeT/6VMjIx5WZloA2GlnKw6 bbsrk7CTSaWJA== Received: by mercury (Postfix, from userid 1000) id 96049106210E; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCHv3 09/14] power: supply: generic-adc-battery: simplify read_channel logic Date: Fri, 17 Mar 2023 23:57:02 +0100 Message-Id: <20230317225707.1552512-10-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760658819682965215?= X-GMAIL-MSGID: =?utf-8?q?1760658819682965215?= Drop mostly useless gab_prop_to_chan() function by directly supplying the correct enum value to read_channel(). Reviewed-by: Linus Walleij Reviewed-by: Matti Vaittinen Signed-off-by: Sebastian Reichel --- drivers/power/supply/generic-adc-battery.c | 31 ++++------------------ 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c index d4f63d945b2c..4811e72df8cd 100644 --- a/drivers/power/supply/generic-adc-battery.c +++ b/drivers/power/supply/generic-adc-battery.c @@ -86,31 +86,12 @@ static bool gab_charge_finished(struct gab *adc_bat) return gpiod_get_value(adc_bat->charge_finished); } -static enum gab_chan_type gab_prop_to_chan(enum power_supply_property psp) -{ - switch (psp) { - case POWER_SUPPLY_PROP_POWER_NOW: - return GAB_POWER; - case POWER_SUPPLY_PROP_VOLTAGE_NOW: - return GAB_VOLTAGE; - case POWER_SUPPLY_PROP_CURRENT_NOW: - return GAB_CURRENT; - default: - WARN_ON(1); - break; - } - return GAB_POWER; -} - -static int read_channel(struct gab *adc_bat, enum power_supply_property psp, +static int read_channel(struct gab *adc_bat, enum gab_chan_type channel, int *result) { int ret; - int chan_index; - chan_index = gab_prop_to_chan(psp); - ret = iio_read_channel_processed(adc_bat->channel[chan_index], - result); + ret = iio_read_channel_processed(adc_bat->channel[channel], result); if (ret < 0) pr_err("read channel error\n"); else @@ -129,13 +110,11 @@ static int gab_get_property(struct power_supply *psy, val->intval = adc_bat->status; return 0; case POWER_SUPPLY_PROP_VOLTAGE_NOW: + return read_channel(adc_bat, GAB_VOLTAGE, &val->intval); case POWER_SUPPLY_PROP_CURRENT_NOW: + return read_channel(adc_bat, GAB_CURRENT, &val->intval); case POWER_SUPPLY_PROP_POWER_NOW: - ret = read_channel(adc_bat, psp, &result); - if (ret < 0) - goto err; - val->intval = result; - break; + return read_channel(adc_bat, GAB_POWER, &val->intval); default: return -EINVAL; } From patchwork Fri Mar 17 22:57:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71508 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp30077wrt; Fri, 17 Mar 2023 16:03:30 -0700 (PDT) X-Google-Smtp-Source: AK7set8b0iyeGeZYkosgZU8catKpUIHWdOPdPFT6QoKPV+bjCcME6/A8q+p1pybqZ8t/8ne2nWz9 X-Received: by 2002:a05:6602:2c07:b0:74e:5fba:d5df with SMTP id w7-20020a0566022c0700b0074e5fbad5dfmr5016842iov.0.1679094210066; Fri, 17 Mar 2023 16:03:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679094210; cv=none; d=google.com; s=arc-20160816; b=qn/3rnHcA6ocxDcgg7Qk3HfFDA33nlrHh7EDZs3CTHqAzBiU5OVd2rNC5zUHcBYmEH IHJ1JnJ8meiWqcE10ROXz0K2hyiH98ARezPrPNrLkM5BDFHjP2lCPtjSjMeGyFPu2iFR +JWwOJ1DRjl2MPX7HYGhtQiulVVyRnhbPWcGzZVur/+imJqnwwI1j9itMHp7yBbCDF6q +4MiLt2GGXrH/rm6xlsFYIbeN/Vlr4sox/MQvOYvQeyhYPZHeKSDy6n9YcAr9hWKCjfi /RIM/sPYy3sp0K/LJpRizpVxo6zOLlUqChkvE5VWcwkATXPZPuhBJp0vnQCPeji/iH8i 7k1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=GA4J4Ps5nquYsH9eVDViCUz4J+I5XujylKal1XB9OZA=; b=LDlACijjU0fH8fVkPsaj4GR6MJoYCJaeL/EXWZ3uomQYPmdW6cUhnqQsivYXtRSIlc F13syQlubrDgWZYR5ckpsz2OovjSM1+QO3i39Q2PKOBNlyK3mEG1uF1FtG6UFktZyHD3 QcuA3hCFn0VohxH8aJIq66J37LhvSh0vRqoWgdxA2gfkr3RZKMpvShOUtpByxrkWgWuF iwIm3toLTbEGbnJic5tK9SdIWTDzMKGBheVTbP/Md94cC6v9GJFvNV4TGJXrAR0ylNva uHyKlCXAV1K8WLLrAIK521dRNq64kBp/0t8fUVyLmqm/OYdDw///A4tQCXjJaoNsmEsM 9ZxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="oQy1d/yc"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i16-20020a023b50000000b003c50d458392si2571487jaf.41.2023.03.17.16.03.12; Fri, 17 Mar 2023 16:03:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="oQy1d/yc"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231185AbjCQW5r (ORCPT + 99 others); Fri, 17 Mar 2023 18:57:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51022 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229541AbjCQW5Q (ORCPT ); Fri, 17 Mar 2023 18:57:16 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 169672A160; Fri, 17 Mar 2023 15:57:15 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 808D360B38; Fri, 17 Mar 2023 22:57:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 58629C433A1; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093833; bh=9QR9W/JE2VPSuxBafhH+1vjL6oKiJkoUkzDOh5uWc/g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oQy1d/yc+7I5q/SjQKAnAgjo3vcozx4XWP0YHxb8TxeEI3csoW/kmJUyn9o3TTMFg vkFDl3wVaj6i02LfuizD0LcCGWgCN39XekQgLZ0IPen1MfUJTTr/A5HrJb37c6xhSx zxC5MPCzA7BuPqqHmO/hU5WcxkHD6pVcKuPWpp9HhEwePkl5XePryXaYzWm/FX3kWC r5r7shq4L/5gYrVoER4lmaWZh4c6Bh8u2IL3EEFrEnTFa8AWtt9ZxuxN7sgEpTHngC YXptoMyD9SVbPuQMWiWq8EPWvAuLeN1PbZCemLFpxPvp7qNY2N4NF7ClFbkg/RxXH9 nyYCWDrdtUI+g== Received: by mercury (Postfix, from userid 1000) id 9820E1062110; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCHv3 10/14] power: supply: generic-adc-battery: add temperature support Date: Fri, 17 Mar 2023 23:57:03 +0100 Message-Id: <20230317225707.1552512-11-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760657889989210240?= X-GMAIL-MSGID: =?utf-8?q?1760657889989210240?= Another typical thing to monitor via an ADC line is the battery temperature. Reviewed-by: Matti Vaittinen Reviewed-by: Linus Walleij Signed-off-by: Sebastian Reichel --- drivers/power/supply/generic-adc-battery.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c index 4811e72df8cd..0124d8d51af7 100644 --- a/drivers/power/supply/generic-adc-battery.c +++ b/drivers/power/supply/generic-adc-battery.c @@ -30,6 +30,7 @@ enum gab_chan_type { GAB_VOLTAGE = 0, GAB_CURRENT, GAB_POWER, + GAB_TEMP, GAB_MAX_CHAN_TYPE }; @@ -40,7 +41,8 @@ enum gab_chan_type { static const char *const gab_chan_name[] = { [GAB_VOLTAGE] = "voltage", [GAB_CURRENT] = "current", - [GAB_POWER] = "power", + [GAB_POWER] = "power", + [GAB_TEMP] = "temperature", }; struct gab { @@ -77,6 +79,7 @@ static const enum power_supply_property gab_dyn_props[] = { POWER_SUPPLY_PROP_VOLTAGE_NOW, POWER_SUPPLY_PROP_CURRENT_NOW, POWER_SUPPLY_PROP_POWER_NOW, + POWER_SUPPLY_PROP_TEMP, }; static bool gab_charge_finished(struct gab *adc_bat) @@ -115,6 +118,8 @@ static int gab_get_property(struct power_supply *psy, return read_channel(adc_bat, GAB_CURRENT, &val->intval); case POWER_SUPPLY_PROP_POWER_NOW: return read_channel(adc_bat, GAB_POWER, &val->intval); + case POWER_SUPPLY_PROP_TEMP: + return read_channel(adc_bat, GAB_TEMP, &val->intval); default: return -EINVAL; } From patchwork Fri Mar 17 22:57:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71505 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp28418wrt; Fri, 17 Mar 2023 15:59:55 -0700 (PDT) X-Google-Smtp-Source: AK7set8ODeSSTHa++kVwPJIYG4L1UZqAN59hMosWxbLH/COaFtNerwUX2zY+EsRyPkmYgzYLNs+c X-Received: by 2002:a17:90a:ce89:b0:234:289d:5e69 with SMTP id g9-20020a17090ace8900b00234289d5e69mr7412946pju.2.1679093995076; Fri, 17 Mar 2023 15:59:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679093995; cv=none; d=google.com; s=arc-20160816; b=QqxLW480MEspMwvHTM4N82N6m2dZGRxp/w5RMLL+/OTcHLHJ85CbrI65ALG5KCrRap u2CAMczDv8E4YVNpnivAwLFVzz/3IdqsiUqlqrsA4nrgEcFkxk09R4s7DuTE75y3ZPk6 brAnohtTqXXq1dJUuzOXW1Ppk2ckMAPGXD0TorVDhj7Za3Q4Pq0BWR+9bl3u3Dgh45ny RUcxZRCcpcE5cQ4fOqw7zDuZ4kQxrCeOQjSp6CJtwg+K+spvT5lnPBcyRlU4FxSGKrtF Q469BA56DQM/G44eZgmuuM5fhayIRmx63y5qsBbYiDiEVyAQg8RVFWbCG1qlR7LrajsL Rqhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ICuarJ0z46cgUNzDmM8HOL21Lb7mCUselsHm07qwvTY=; b=np7m4XafAnQudCDt/i9cjFgiTUYFAMjGlRFhVz8eJUr87uOmXSCVLIIzGb3p7YnU3d vEKH4pVk89A5ZB6ZRyP+rSi8lVvoybaFhlRtQjT+hxu+clCOFKBrK5YGDByPHfVAItKc Ps6AHMod+xarRkHzAUJCzKF6NJh5sd0h44P0n/ojeyAsRdLCtFP3wpKLSd9QLnEaYHdq J/yb+VhD4tXKyrvYRhq4ofD4hOB4Jb5Xad/TiW/Re8yHDfwHtbTz30KsZT6hBOhkcbuC Oifez6PM+gPrrsagfKTAnEWblrLaw4V7/3hYKKgBh9lnKbd+mxYP/tU2y/+QDSIz8aMa fOQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=VswMUGcx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cq19-20020a17090af99300b0023bdb8f6176si8487544pjb.128.2023.03.17.15.59.43; Fri, 17 Mar 2023 15:59:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=VswMUGcx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231126AbjCQW56 (ORCPT + 99 others); Fri, 17 Mar 2023 18:57:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51240 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230301AbjCQW5V (ORCPT ); Fri, 17 Mar 2023 18:57:21 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BBD6131E32; Fri, 17 Mar 2023 15:57:16 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 4AE9AB82712; Fri, 17 Mar 2023 22:57:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 55D3DC433A4; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093833; bh=N/S690ZAfx+m44tSOvrZoNkOK1xJvdzfGkZgNi3dgws=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VswMUGcxgfWv4TOP00DaedZgrnwtVJBRfWwQmr0i8uWxrQgcmQp339wQ/U7Ubj4Wg nJ62zapeKYtfmiGq/rGrMRZQSI/qjoV7fsI4tqtkJ9Ri94J7N/ezHt/s4xYstZyVk+ bLpI33G4dHDiJTIBwRBccKJZQKo8sgY/isj+sLUpmEnZpsLXwAjhvVTIVi+vVOM+kG 0NVG2gWLd8JfvhEyhHidYiq9mJZSJI0BuM8TJBn0cyJKhIaq9R/xWtE6E61OgqG/uD itfnxKIL9aOyTaojyW4NyYFXCFJjNzJ2aw7B4PnD8Ln/efSyNv9BSvnw03Ce4cplND X2olSzKygppsQ== Received: by mercury (Postfix, from userid 1000) id 9AB651062112; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCHv3 11/14] power: supply: generic-adc-battery: add DT support Date: Fri, 17 Mar 2023 23:57:04 +0100 Message-Id: <20230317225707.1552512-12-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760657665272206702?= X-GMAIL-MSGID: =?utf-8?q?1760657665272206702?= This adds full DT support to the driver. Because of the previous changes just adding a compatible value is enough. Reviewed-by: Linus Walleij Reviewed-by: Matti Vaittinen Signed-off-by: Sebastian Reichel --- drivers/power/supply/generic-adc-battery.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c index 0124d8d51af7..e11ad43ab968 100644 --- a/drivers/power/supply/generic-adc-battery.c +++ b/drivers/power/supply/generic-adc-battery.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #define JITTER_DEFAULT 10 /* hope 10ms is enough */ @@ -175,6 +176,7 @@ static int gab_probe(struct platform_device *pdev) if (!adc_bat) return -ENOMEM; + psy_cfg.of_node = pdev->dev.of_node; psy_cfg.drv_data = adc_bat; psy_desc = &adc_bat->psy_desc; psy_desc->name = dev_name(&pdev->dev); @@ -288,10 +290,17 @@ static int __maybe_unused gab_resume(struct device *dev) static SIMPLE_DEV_PM_OPS(gab_pm_ops, gab_suspend, gab_resume); +static const struct of_device_id gab_match[] = { + { .compatible = "adc-battery" }, + { } +}; +MODULE_DEVICE_TABLE(of, gab_match); + static struct platform_driver gab_driver = { .driver = { .name = "generic-adc-battery", .pm = &gab_pm_ops, + .of_match_table = gab_match, }, .probe = gab_probe, }; From patchwork Fri Mar 17 22:57:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71504 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp28373wrt; Fri, 17 Mar 2023 15:59:47 -0700 (PDT) X-Google-Smtp-Source: AK7set/ZgIAFAhtMIZ5lyayaOl8mD1iWVN5irmJlPISXmoMR+WPV8FX70tqmqpX/B/LFuGeN7B9V X-Received: by 2002:a17:90a:e997:b0:23b:35cd:5b9a with SMTP id v23-20020a17090ae99700b0023b35cd5b9amr7402487pjy.4.1679093987100; Fri, 17 Mar 2023 15:59:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679093987; cv=none; d=google.com; s=arc-20160816; b=Chh8BFQbfDZMSjchgfsq/B32JQcER9x+vb/1Ljzkwm4rx+/uMEYDGsQoWOyVFY7Ohw St7VG+B6I+cRegmJ/4//yhBAW/CQWkToZNqh1q/Yl7MEu9Bo4fx0knhxdVyOGIhNfAKD /8pAHhSwrZMZJ8v1aP6GW9GC8X6dPclVnLmZU6IUE8W5a3Vrt6WK52xrHRCqQ6xjjcEJ 2uPA3MluJGG54i6eIM8C+X/xOxEa7uTQxG0WmqK3zihYkQUU1FAdlM17RLS2T7ZSX6ap AJC67ZOc1z1VKycDeTyJQPekYLObA2Er51830wtZkzkaA/bYXV9/IPgg+tkjeCYnMUWH Adyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=96suoynOsgyEs9hZZnmakJyJByT7BC/ekSzuwcF/SaE=; b=XEYr2pUzxkrtl3Xz+YOfHjZDfP+eTS1ztyMia7/5r/uXlBUqjJ3mUUlUK6ynPDosr9 rmE9Up8tHkpAGN30sBrzTKFQpC8ZmaUj02KQ2f/N87JyRXTyBLuLPoCxeP2uL8Hh46mn CANXSbZLQVN9uA7ZfJwdkyFsrGIHsuhL377TxCZR+4s63QqpoF0Eu1hv+QNGOXs65odW 3thylckKKfUnJG0suf9Ln9Fpb+CdR2spuWe4kIZ3RlSo42bQ5qd3YAYKmUnirSUYUUJi 95vYESNe4OFlpgMzA330i2PkCcp3dhlqCiWH5lF9o1wIQdqkA/0a9pt3P4/2y0yNb1/z b/8g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ay0MJK9i; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m11-20020a63580b000000b004fbcde9147dsi3554984pgb.375.2023.03.17.15.59.34; Fri, 17 Mar 2023 15:59:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ay0MJK9i; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231226AbjCQW5z (ORCPT + 99 others); Fri, 17 Mar 2023 18:57:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51112 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230152AbjCQW5S (ORCPT ); Fri, 17 Mar 2023 18:57:18 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B709D2FCE5; Fri, 17 Mar 2023 15:57:16 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 40FDAB82711; Fri, 17 Mar 2023 22:57:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 653BEC433B0; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093833; bh=YJYG6gviCQ9ScytyBdiyC20i5BbAe56kmhR8ux24MBU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ay0MJK9ii5TLx/njvgobIIYcw5U8TVQ8Fkvq7ZS3Pd8LK7SSLbnGJ6CjRMjdeiv5Q VWwOiSWkHo6Rt8Oveb5FzzOsr46H7uOdB+xf4thuEPG5qW96IGSeJttfhLce54W277 vpRKbFFfF/ckr1qDnObCdqp7G3tsjNFzvn25qY//hUCOJGsPHrXLudoE+m3wokfLin TOl8Gdkf5RQrv0fcO5dZkXOSQhdA04TBuah9kntz6c4EZQP3kgV3Y+axJltTeHmqx4 rtRbp+5UXFVm43lZbm+jq+UMno6ldZ7PZHTkOH1PyFo9GTlyB4+5AE5l+zFOFcP3i2 Hh63zVSWTzekA== Received: by mercury (Postfix, from userid 1000) id 9D28C1062113; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCHv3 12/14] power: supply: generic-adc-battery: update copyright info Date: Fri, 17 Mar 2023 23:57:05 +0100 Message-Id: <20230317225707.1552512-13-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760657656558658004?= X-GMAIL-MSGID: =?utf-8?q?1760657656558658004?= jz4740-battery.c and s3c_adc_battery.c have been removed from the tree and after all of my restructuring the driver is basically no longer based on them. Thus update the copyright information and switch to SPDX license identifier while being at it. Reviewed-by: Linus Walleij Reviewed-by: Matti Vaittinen Signed-off-by: Sebastian Reichel --- drivers/power/supply/generic-adc-battery.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c index e11ad43ab968..df1c0a1c6b52 100644 --- a/drivers/power/supply/generic-adc-battery.c +++ b/drivers/power/supply/generic-adc-battery.c @@ -1,13 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0 /* - * Generic battery driver code using IIO + * Generic battery driver using IIO * Copyright (C) 2012, Anish Kumar - * based on jz4740-battery.c - * based on s3c_adc_battery.c - * - * This file is subject to the terms and conditions of the GNU General Public - * License. See the file COPYING in the main directory of this archive for - * more details. - * + * Copyright (c) 2023, Sebastian Reichel */ #include #include From patchwork Fri Mar 17 22:57:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71511 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp31939wrt; Fri, 17 Mar 2023 16:08:02 -0700 (PDT) X-Google-Smtp-Source: AK7set/CUAhv04yjGmEofimh4PmZEZ2Hfuv7B/rz50mbcWHbWyanqRJDKkhTo5HMR0VoRpOArBYG X-Received: by 2002:a05:6a20:7f8c:b0:c7:af88:3dd8 with SMTP id d12-20020a056a207f8c00b000c7af883dd8mr11600562pzj.6.1679094482038; Fri, 17 Mar 2023 16:08:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679094482; cv=none; d=google.com; s=arc-20160816; b=ICufil1nz0ymOeeE+NKhN6dG+oq3fvU46eCILw1tUKmMNNDPN1HLU2recDekhZS5Ta Ae3hkH/OTplOjGeUKl0qG1IXRcZVtPWLFStsbKuFZgDXxo2uCMyHvVYAM2OtaGWbrOWo PtEXm1pnBRXC/XKV5GWREtCo2KcATmP2/HSfNBqQH1TMXykFKeP+gsd920eeGY9Tgwi/ JEt56v1IbWlCP4G83T84D4EFnPhIKEOsqhh/FDTkXjcDe5ald8mCVA1pZYRlR4rKjhFz evBiz0XgXVZaHdvML2J6UM2FbtO6ZFceg5nUZwzYo3DB1AfZjMas8SR24cBfUi65dRdS +Q0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=0ZbOILg57NKz1tG77t9oBwY1CRjw4syn3pXv5PxRRXU=; b=WwZDE9Ixsav+yCuAuUY710GOstH1mIz4P2gEcoEJDXoqxXXoas6Lu/w5qIOGX/l+jv mIXDR4t9I4v4O9bW1B7d46sx3LJs7Yku1jeU2WfJxhIlWW0O5WVTrYFecEfG+K8Tl3c/ ibhYtOfnQfPWErK27Fi2Bk5imyIoSM41CqyS/32ykV22kFHffadM99Zl6fI0K7EX4yW7 Y6mR33gcIBs1v5T4eZbgC+4NvJbU8qZaTcbsQ18Wr1r+FAklnVGxoguSFRDYrZmVCky2 VicdzpDlLwash0sQUq5wzz7dPYuAoaDXiwFETKARCrnNHbmdByigIZK3LZD+gi7aeOqi NN6A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=dq2IlKXE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 206-20020a6302d7000000b004fc27d88c6fsi3580775pgc.592.2023.03.17.16.07.48; Fri, 17 Mar 2023 16:08:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=dq2IlKXE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231200AbjCQW5u (ORCPT + 99 others); Fri, 17 Mar 2023 18:57:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51016 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230002AbjCQW5Q (ORCPT ); Fri, 17 Mar 2023 18:57:16 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 17B722BF1A; Fri, 17 Mar 2023 15:57:15 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8A0E460C22; Fri, 17 Mar 2023 22:57:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 894A9C4331E; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093833; bh=VIy8olwrlGICMSJRbSV49sc6H5GVSRN/zSVEjc1k0Ak=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dq2IlKXEfLtYs6s6s8Tjsnlk5m8gt3V+HRfoC0L5pv3LX9lFIe9UPCO04V96Pz2Ph xQfwdp5mE9X6oZiG8aGMIuwVaxBgBpGeJwCCXqFSsbSt91rXOewezFl1qxibQVP3+i WIlxrE91+ftcV4Ce4q1xOW8+6Aa/DWYs1vGoyVIeqRjlQ7wkj/aN+rDQcnZkzaMgXQ uGv3BqSfwulVfx4JyIE98jY8hvdRFmaa9N7X2Pq+2Rxl9M9s8dBgLwhZBhDGOuaMla xJqrtAwSNsUanIx/7brnKSsknFblKeK7R3fa3bNi+TfMKGRKING0u7npkCDAL41NAN A5ZoL9R4lb9WA== Received: by mercury (Postfix, from userid 1000) id 9F6AC1062115; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCHv3 13/14] power: supply: generic-adc-battery: improve error message Date: Fri, 17 Mar 2023 23:57:06 +0100 Message-Id: <20230317225707.1552512-14-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760658175786016468?= X-GMAIL-MSGID: =?utf-8?q?1760658175786016468?= Add device context and error code to the error messages to make it useful. Signed-off-by: Sebastian Reichel Reviewed-by: Linus Walleij Reviewed-by: Matti Vaittinen --- drivers/power/supply/generic-adc-battery.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c index df1c0a1c6b52..2fa946c93fb4 100644 --- a/drivers/power/supply/generic-adc-battery.c +++ b/drivers/power/supply/generic-adc-battery.c @@ -92,7 +92,7 @@ static int read_channel(struct gab *adc_bat, enum gab_chan_type channel, ret = iio_read_channel_processed(adc_bat->channel[channel], result); if (ret < 0) - pr_err("read channel error\n"); + dev_err(&adc_bat->psy->dev, "read channel error: %d\n", ret); else *result *= 1000; From patchwork Fri Mar 17 22:57:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 71512 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp32383wrt; Fri, 17 Mar 2023 16:09:09 -0700 (PDT) X-Google-Smtp-Source: AK7set+Y8ax1fw5/Wp5173aIH+7KTIPMbqmAjRQGxwR9jocuh/B4oEGOEDWSPVkYuEOg3W/bKf2R X-Received: by 2002:a05:6a21:99a3:b0:d7:3c1a:6cc5 with SMTP id ve35-20020a056a2199a300b000d73c1a6cc5mr8077961pzb.5.1679094549070; Fri, 17 Mar 2023 16:09:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679094549; cv=none; d=google.com; s=arc-20160816; b=pkJqyA+rIDIztsvl9DMCf/HzTjbVYrKTbBQaRIflO+ZZXK3tYWLKFLe4bS28WuTjZ+ 12VqvPygSXvOxL616yxE+VnDNycaB8igiBRnoVXx1JBJR0eAeuG/iNCqsZYcJA0IGpO3 wJFLJQtM1o4bmH6XECNUmaiIq0SX5QkKHzoiJ9FF4yCn0zIt64eS4EPzAt6vYq2l3bid K2APMdJvGYcLp/nx+OCMfFr/yrlpgublicBxYZIRXl2xrsP9pLgFL9nz/Q59BRTgpjGr 3ODQZSWWgbq9cYhJfwMU0J7UQyKghuBFib4WgK8JXJP29CirivK/0hT7VQNj8r1jSK11 T/kA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=GVpAC9Kl8IQxWQPStantcvZOAZxhdWyIshkGyGZA0GM=; b=qm5pOPfpVhB+DvfkfhKBfXzr4cT+tATfcCAmel7H2NaLhyVBLb1YXcYMphCtVb3e8A ft7H8/bpy1XvWD5BTakv46fMQj96eoy2O31cwY4L8D25AwiX3PF9dwBILxfaM8c7g5al q0UTJbGM/7xj0CRWIMePSHPRNXlBUxO/uVvaLNEQ4JPFLous1ClMmtncgK5DB+XPwuSv 8vZVdoMv1xoZ+CehdtEpqORLj51uQyKqOQ7FsxAyR+sLOHFhaHqdF1a3D8vIojiQ4GLO Nbx1bJ5cjIoC02Ta4fkL9WEEuHDFzC+OGRwgortXSnpa8BObFUV+Z4xFbzyXMfYGko2x idjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IpprXibR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r17-20020a632b11000000b0050bcb8e3dc7si3739445pgr.15.2023.03.17.16.08.53; Fri, 17 Mar 2023 16:09:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IpprXibR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231265AbjCQW6D (ORCPT + 99 others); Fri, 17 Mar 2023 18:58:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51166 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230198AbjCQW5T (ORCPT ); Fri, 17 Mar 2023 18:57:19 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B6EE52F066; Fri, 17 Mar 2023 15:57:16 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 3FD08B82709; Fri, 17 Mar 2023 22:57:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 840FBC43445; Fri, 17 Mar 2023 22:57:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679093833; bh=qkCtWxh/5oWlgnhNQ/wW4H4FFCmcLw0ABvjfTL/yR5s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IpprXibR7dBjn5e1n8FJWnJxvvXRXTUnHXSG5PKMWZld5HS+DM4i9ZcUg6+tDC6pj KX4qNSPXAZcfNxWEkNLBGylIJ9SLNq23lrHoPE4E93klOCGwB7pqIhGeedXT6CKTfg NBFkSNyzl04F45B+n0CMAMc1c/26fXz4ODFjvuGQBu+h2FMW4hzwi6sFAudEW/jKFj PY04bObeaT7zh1lW4HNOKpeDAWxgg2DceJT8osaPHEn1XxD8bQVegSJ0P1GrdgoBRJ Kbt9NrCLKZRynO86QYlY+aaGmh4uZoi0zKDy3S0AvWjGp1O1D08c8PoA7YIxnBwfFj 4Iy5hNpitjk5A== Received: by mercury (Postfix, from userid 1000) id A1BE01062116; Fri, 17 Mar 2023 23:57:08 +0100 (CET) From: Sebastian Reichel To: Sebastian Reichel Cc: Linus Walleij , Matti Vaittinen , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCHv3 14/14] power: supply: generic-adc-battery: style fixes Date: Fri, 17 Mar 2023 23:57:07 +0100 Message-Id: <20230317225707.1552512-15-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230317225707.1552512-1-sre@kernel.org> References: <20230317225707.1552512-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760658245956994050?= X-GMAIL-MSGID: =?utf-8?q?1760658245956994050?= This does the following code-style changes: * fix inconsistent indentation in 'struct gab' * remove unused cable_plugged from 'struct gab' * remove pointless temporary is_plugged variable * add gab_ prefix to read_channel No functionality changes are intended. Signed-off-by: Sebastian Reichel --- drivers/power/supply/generic-adc-battery.c | 26 +++++++++------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c index 2fa946c93fb4..7bdc6b263609 100644 --- a/drivers/power/supply/generic-adc-battery.c +++ b/drivers/power/supply/generic-adc-battery.c @@ -42,12 +42,11 @@ static const char *const gab_chan_name[] = { }; struct gab { - struct power_supply *psy; - struct power_supply_desc psy_desc; - struct iio_channel *channel[GAB_MAX_CHAN_TYPE]; + struct power_supply *psy; + struct power_supply_desc psy_desc; + struct iio_channel *channel[GAB_MAX_CHAN_TYPE]; struct delayed_work bat_work; - int status; - bool cable_plugged; + int status; struct gpio_desc *charge_finished; }; @@ -85,7 +84,7 @@ static bool gab_charge_finished(struct gab *adc_bat) return gpiod_get_value(adc_bat->charge_finished); } -static int read_channel(struct gab *adc_bat, enum gab_chan_type channel, +static int gab_read_channel(struct gab *adc_bat, enum gab_chan_type channel, int *result) { int ret; @@ -109,13 +108,13 @@ static int gab_get_property(struct power_supply *psy, val->intval = adc_bat->status; return 0; case POWER_SUPPLY_PROP_VOLTAGE_NOW: - return read_channel(adc_bat, GAB_VOLTAGE, &val->intval); + return gab_read_channel(adc_bat, GAB_VOLTAGE, &val->intval); case POWER_SUPPLY_PROP_CURRENT_NOW: - return read_channel(adc_bat, GAB_CURRENT, &val->intval); + return gab_read_channel(adc_bat, GAB_CURRENT, &val->intval); case POWER_SUPPLY_PROP_POWER_NOW: - return read_channel(adc_bat, GAB_POWER, &val->intval); + return gab_read_channel(adc_bat, GAB_POWER, &val->intval); case POWER_SUPPLY_PROP_TEMP: - return read_channel(adc_bat, GAB_TEMP, &val->intval); + return gab_read_channel(adc_bat, GAB_TEMP, &val->intval); default: return -EINVAL; } @@ -125,17 +124,13 @@ static void gab_work(struct work_struct *work) { struct gab *adc_bat; struct delayed_work *delayed_work; - bool is_plugged; int status; delayed_work = to_delayed_work(work); adc_bat = container_of(delayed_work, struct gab, bat_work); status = adc_bat->status; - is_plugged = power_supply_am_i_supplied(adc_bat->psy); - adc_bat->cable_plugged = is_plugged; - - if (!is_plugged) + if (!power_supply_am_i_supplied(adc_bat->psy)) adc_bat->status = POWER_SUPPLY_STATUS_DISCHARGING; else if (gab_charge_finished(adc_bat)) adc_bat->status = POWER_SUPPLY_STATUS_NOT_CHARGING; @@ -177,7 +172,6 @@ static int gab_probe(struct platform_device *pdev) psy_desc->name = dev_name(&pdev->dev); /* bootup default values for the battery */ - adc_bat->cable_plugged = false; adc_bat->status = POWER_SUPPLY_STATUS_DISCHARGING; psy_desc->type = POWER_SUPPLY_TYPE_BATTERY; psy_desc->get_property = gab_get_property;