From patchwork Mon Nov 12 10:52:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "\(Exiting\) Baolin Wang" X-Patchwork-Id: 150819 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp2992934ljp; Mon, 12 Nov 2018 02:53:13 -0800 (PST) X-Google-Smtp-Source: AJdET5cCLIA+Nf9pYazPxb9kPjhiw5tsQizKd9bftJu2YrNmi9Jsciq0oEsPJ8s9eN6j0127u5mr X-Received: by 2002:a17:902:aa84:: with SMTP id d4-v6mr460281plr.25.1542019993370; Mon, 12 Nov 2018 02:53:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542019993; cv=none; d=google.com; s=arc-20160816; b=NxE8hn0S1xmbpzyadQ8f/Xl/+FnDTwOIRtfTYtrKvPYjmcLgjFRq6hW6NVt2wslGVf nj0kgqm5FTrn014LNIpL8sLMpKFWwINgvxpnb1QfVt7vvlZY+n11HPt1rJJouIoNwm3R yilhAIBVgno0mWR4OAg1I41Ts9Pq3P0LmkbUfKeaQ4gVAiTAPq1TPlh+c6lrRnsqMhK6 Xs9TCXk1mOU7V70Z7qB4qd+zcQCHj2/WTVFA6gCeZKDtC09upAv95ZWkE+hUqVQGRlg/ R9Kv+sejWm8Fhry58KkMF9AHX/P3Eb+AGMlTlYBJv40jhfoVga0EnzxuhosWjfHYh0gC zn+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=HOXqfssWr+GA/FOx7jvb56dSFIWUhT4eEupIEdpFDGI=; b=BSvgsEWTsVuLirH0TQV81p4CKhIOpHgQZC3IwoUz/BPYlqNpc4ayClXBObCGCSQIMr 3uOHiV//TUO075uNLKhmPKW2pQ9whRprlfqjEcOF4TNpSzHBJW/J8o/c9M2p3n2AMkx9 X5gCBmUBHJzsDIEKfG9Ic9KXk3Sr4VSPyzLWEKA3WTZl7tb80GeeCwawNAU483DPSvk8 gDdnG8jWiI6Ktv2WpECex2u1pOTTaQi9EG2D1f+xMTRzQB0W5I1KGlO66A/0V7MbaiUH ERN0F7U8DFeciN0NpsJ6PMW6eufSJuzcyufRIqQe1oPD57TGJitSJZ5wOGF4SqBqYiZJ 0EDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=fXAOav+m; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p12si16068180pgl.106.2018.11.12.02.53.12; Mon, 12 Nov 2018 02:53:13 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=fXAOav+m; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729207AbeKLUpx (ORCPT + 32 others); Mon, 12 Nov 2018 15:45:53 -0500 Received: from mail-pl1-f193.google.com ([209.85.214.193]:43332 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727361AbeKLUpx (ORCPT ); Mon, 12 Nov 2018 15:45:53 -0500 Received: by mail-pl1-f193.google.com with SMTP id g59-v6so4171058plb.10 for ; Mon, 12 Nov 2018 02:53:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=HOXqfssWr+GA/FOx7jvb56dSFIWUhT4eEupIEdpFDGI=; b=fXAOav+mraP+N9dy7FR2kkWZYlok0XTd5+E2fxqdoMQvs77zlJ9gRC6qQ9jeo7Q5U2 7MuqGCZ5JB3AIGJBYk5UBxA7OZv3rKkogdtwNc3kHUzZyAzFcIMxFjtdbC8kteEw9NBI yKpfd7rWYpxyaacoVwpPdteKIPC1RHXcFPB6M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=HOXqfssWr+GA/FOx7jvb56dSFIWUhT4eEupIEdpFDGI=; b=SM8o/LJrm35PBAKgzKAIpqvxEUMImloRI+8nHK/VZZKAMoYzFbOEtB6GEFHW4ph2dc 29pe8sPOh0hj+hkKoYkOTcbv9+Ezo3SYdZOqtffeCm2bHaYRIRAx2uwVnMsiTqorRvAJ DRtc5kIsnkDLjSb/dv5fyvoTTzbyuxOzJu7pJhusggpLaNk3Cmj9wSmkUiLZTA/vwBuL tG/Hzywj7Vj1l6BM7BQGsLvQzHQ20efTD1CVHRH+rKPy8StsZfkMLPRmi1dziYicF5ft 6irNqmNDkZCmuITEQRloxgpIxFGf/vaFnONHf+vLmkbWrOOS9IlnHSjcEiIaQc+CT6Yr RRhQ== X-Gm-Message-State: AGRZ1gKn99urYwl/yEZW8L00R2HE6iHEuc488pyuH8AhSwRUEMC2ngni Em/NZ4RT1fIb+7M/sUqvA1mOUZv9lD8mFl7g X-Received: by 2002:a17:902:622:: with SMTP id 31-v6mr459108plg.310.1542019990064; Mon, 12 Nov 2018 02:53:10 -0800 (PST) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.102]) by smtp.gmail.com with ESMTPSA id 186-v6sm17545705pfe.39.2018.11.12.02.53.07 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 12 Nov 2018 02:53:09 -0800 (PST) From: Baolin Wang To: sre@kernel.org Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, yuanjiang.yu@unisoc.com, baolin.wang@linaro.org, broonie@kernel.org Subject: [PATCH 2/4] power: supply: sc2731_charger: Add charger status detection Date: Mon, 12 Nov 2018 18:52:36 +0800 Message-Id: <7fa4e3191a6be72b5a90d0ee73b70457a699f9bd.1542019800.git.baolin.wang@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <5d096dec07f6808a70edcfaad6e8f77039f21a9b.1542019800.git.baolin.wang@linaro.org> References: <5d096dec07f6808a70edcfaad6e8f77039f21a9b.1542019800.git.baolin.wang@linaro.org> In-Reply-To: <5d096dec07f6808a70edcfaad6e8f77039f21a9b.1542019800.git.baolin.wang@linaro.org> References: <5d096dec07f6808a70edcfaad6e8f77039f21a9b.1542019800.git.baolin.wang@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The USB charger status can be notified before the charger driver registers the USB phy notifier, so we should check the charger status in probe() in case we missed the USB charger notification. Signed-off-by: Baolin Wang --- drivers/power/supply/sc2731_charger.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) -- 1.7.9.5 diff --git a/drivers/power/supply/sc2731_charger.c b/drivers/power/supply/sc2731_charger.c index 393ba98..a012d6c 100644 --- a/drivers/power/supply/sc2731_charger.c +++ b/drivers/power/supply/sc2731_charger.c @@ -432,6 +432,24 @@ static int sc2731_charger_hw_init(struct sc2731_charger_info *info) return ret; } +static void sc2731_charger_detect_status(struct sc2731_charger_info *info) +{ + unsigned int min, max; + + /* + * If the USB charger status has been USB_CHARGER_PRESENT before + * registering the notifier, we should start to charge with getting + * the charge current. + */ + if (info->usb_phy->chg_state != USB_CHARGER_PRESENT) + return; + + usb_phy_get_charger_current(info->usb_phy, &min, &max); + info->limit = min; + + schedule_work(&info->work); +} + static int sc2731_charger_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; @@ -486,6 +504,8 @@ static int sc2731_charger_probe(struct platform_device *pdev) return ret; } + sc2731_charger_detect_status(info); + return 0; }