From patchwork Wed Oct 18 09:56:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 116257 Delivered-To: patch@linaro.org Received: by 10.140.22.163 with SMTP id 32csp5868284qgn; Wed, 18 Oct 2017 02:56:43 -0700 (PDT) X-Google-Smtp-Source: AOwi7QBc7E2OdqsA4VGVamvsxC/4z+yf2sD4ruHXiTMddU3Lq1306ObCYLz0pMTEMruvs8eT/ekG X-Received: by 10.101.73.7 with SMTP id p7mr13603447pgs.106.1508320603592; Wed, 18 Oct 2017 02:56:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1508320603; cv=none; d=google.com; s=arc-20160816; b=wHI7OIHwGjC6Q1Lz5GYFxe+yi2mFS3yZ2D20eUOoPWzXPFw4YNQn7TkS+vOAbh0VRd 8N6EEBrHUrqxQZmOlKoVvunobGPlOMctQgBBKX2FBt/DH3XlcSmwpkAOh5FeCvx8K0kp Pg3VHOfdqhvG2lp+J49d0n0Je1LrVCohYVA7lc6IeiaGErJnJadmvo0TNcFN4yHhejTG tVT/bnuTRmZZD3uz3GnG/VJpwyZDc5ezUHUj/3gl1MyjTbBsWN2sPvJ5lX1XlnyWeLFT ZU0PS5qPzKkV6tccH6fjmADIglpG42TE0o2JqyzEPQmv/gfgk7o4INkK9kusFdI/LOzp 7f5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:cms-type:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=YIhDoDMORVDAePZoEiSHSilkGssCiEaYI3fBHwLnVSM=; b=YGdNO9xEkL57sUIRe8nOh0ZbFcgvQkrHX7CiSoNJgCeUV4aYKtMfQB2IYVLxUHATiW eyVicxrE8Tz1CWTliXaQwBunlpSgpfg2ixbbWOYR+EB8K2FHv7Icpm/1B1EA60qk3ff+ NO9vzPtlLsIbad0WbP1zFNcIjSBUEsJtcBJhBBwQ/P7yAO6fpdxyJ1NJWxx2CRouMYe/ DXM/cJ367oFwMAHnZOrenVbz10+2SA6wM2M01EbWWmci87A247l4P54ibXiMeHRZC9zl rJzSflIumHYboDPoSdL5IBv0gXlnZnFjUUFaydOvNjJflIAkNvzSvImeJDZaL7uywZ3k hCvg== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k73si7179423pfk.428.2017.10.18.02.56.43; Wed, 18 Oct 2017 02:56:43 -0700 (PDT) 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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967330AbdJRJ4l (ORCPT + 27 others); Wed, 18 Oct 2017 05:56:41 -0400 Received: from mailout1.w1.samsung.com ([210.118.77.11]:44391 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936400AbdJRJ4e (ORCPT ); Wed, 18 Oct 2017 05:56:34 -0400 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20171018095632euoutp01f3b23d5423130e3486afaaf79303b1b0~uoZZRvNSN1277012770euoutp01f; Wed, 18 Oct 2017 09:56:32 +0000 (GMT) Received: from eusmges1.samsung.com (unknown [203.254.199.239]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20171018095631eucas1p205aebe33751f9961754f9ebc968e4deb~uoZYo2WIw2177521775eucas1p2J; Wed, 18 Oct 2017 09:56:31 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1.samsung.com (EUCPMTA) with SMTP id F2.28.12576.F4527E95; Wed, 18 Oct 2017 10:56:31 +0100 (BST) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20171018095630eucas1p263041d2da8d87aef67162fc13a01affb~uoZX9j0On2177021770eucas1p2F; Wed, 18 Oct 2017 09:56:30 +0000 (GMT) X-AuditID: cbfec7ef-f79ee6d000003120-c7-59e7254fb157 Received: from eusync3.samsung.com ( [203.254.199.213]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 40.73.18832.E4527E95; Wed, 18 Oct 2017 10:56:30 +0100 (BST) Received: from AMDC2765.digital.local ([106.116.147.25]) by eusync3.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OY000HN0JM2IH80@eusync3.samsung.com>; Wed, 18 Oct 2017 10:56:30 +0100 (BST) From: Marek Szyprowski To: linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org Cc: Marek Szyprowski , MyungJoo Ham , Chanwoo Choi , Lee Jones , Bartlomiej Zolnierkiewicz Subject: [PATCH v2 1/2] extcon: max77843: Add OTG power control to the MUIC driver Date: Wed, 18 Oct 2017 11:56:21 +0200 Message-id: <20171018095622.23738-2-m.szyprowski@samsung.com> X-Mailer: git-send-email 2.14.2 In-reply-to: <20171018095622.23738-1-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrCIsWRmVeSWpSXmKPExsWy7djP87r+qs8jDTY94LHYOGM9q8X1L89Z Le5/PcpocXnXHDaLGef3MVmsPXKX3eJ24wo2B3aPO9f2sHn0bVnF6PF5k1wAcxSXTUpqTmZZ apG+XQJXxvdny5gLLopWzJ3Wz9TAuEqoi5GTQ0LAROJs3xNmCFtM4sK99WxdjFwcQgLLGCV+ bd3GAuF8ZpT4928jO0zHjvtTGOGqGjbsZ4VwGpgkTny+BzaLTcBQouttFxuILSLgLHH7wzew UcwCtxglek/MBCsSFgiRmNR3CWgUBweLgKrE9+NuIGFeAVuJr+9OQm2Tl3i/4D4jiM0pYCfx /cwFsPskBBrZJK7P3MEKUeQisevYHihbWOLV8S1QzTISnR0HmSDsfkaJplZtCHsGo8S5t7wQ trXE4eMXwXqZBfgkJm2bzgxyj4QAr0RHGzSMPCSObj7EAmE7Svy+PRUaRhMZJTYuW8M2gVF6 ASPDKkaR1NLi3PTUYkO94sTc4tK8dL3k/NxNjMC4PP3v+PsdjE+bQw4xCnAwKvHwBqg8ixRi TSwrrsw9xCjBwawkwsv8ESjEm5JYWZValB9fVJqTWnyIUZqDRUmc1zaqLVJIID2xJDU7NbUg tQgmy8TBKdXAOCnkZYlC3dWWXZePNG9ZUX+MbfnimUqJF7PEL4rOrvuU+yRSelKMlXwY87qZ glsUVvkd3L+Jv3UPl5gx0yJbPsG0Y30Fqn4yVw4H7/7rfzOvwLOq2/C+P0uw3HSFeV0pbAnr KnWv5crMldz44EJ8srzbPd+qr9feeMdfevSf7zWfc0bh3UtJSizFGYmGWsxFxYkAGlcCqccC AAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupkluLIzCtJLcpLzFFi42I5/e/4VV0/1eeRBp3f9Cw2zljPanH9y3NW i/tfjzJaXN41h81ixvl9TBZrj9xlt7jduILNgd3jzrU9bB59W1YxenzeJBfAHMVlk5Kak1mW WqRvl8CV8f3ZMuaCi6IVc6f1MzUwrhLqYuTkkBAwkdhxfwojhC0mceHeerYuRi4OIYEljBJn pz1lhXCamCRW3pjIBFLFJmAo0fW2iw3EFhFwlrj94RsLSBGzwB1Gie9N28BGCQuESEzquwRk c3CwCKhKfD/uBhLmFbCV+PruJDvENnmJ9wvug5VzCthJfD9zAWymEFDNguvHWScw8i5gZFjF KJJaWpybnltsqFecmFtcmpeul5yfu4kRGEDbjv3cvIPx0sbgQ4wCHIxKPLwBKs8ihVgTy4or cw8xSnAwK4nwMn8ECvGmJFZWpRblxxeV5qQWH2KU5mBREuft3bM6UkggPbEkNTs1tSC1CCbL xMEp1cCodsTz3/WTH7r3XOZgmp/Qp5W61Ig74WzIHi4O2V9Tt2Z9iwt8nbzxdHLItMa9yf3F O1mWfHrnbPGypkWBfyH71ptCYXVN5WfDr+h5F1r1Ks7et9nzqcImtX2pD27tuTgh87bS7kW8 fqFr1oi1bF9g5LS+9KfaosKH287xqsYvb9DheBakMrlGiaU4I9FQi7moOBEAXA8N+xwCAAA= X-CMS-MailID: 20171018095630eucas1p263041d2da8d87aef67162fc13a01affb X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?utf-8?q?Marek_Szyprowski=1BSRPOL-Kernel_=28TP=29=1B?= =?utf-8?b?7IK87ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?utf-8?q?Marek_Szyprowski=1BSRPOL-Kernel_=28TP=29=1BSam?= =?utf-8?q?sung_Electronics=1BSenior_Software_Engineer?= X-Sender-Code: =?utf-8?q?C10=1BEHQ=1BC10CD02CD027392?= CMS-TYPE: 201P X-CMS-RootMailID: 20171018095630eucas1p263041d2da8d87aef67162fc13a01affb X-RootMTR: 20171018095630eucas1p263041d2da8d87aef67162fc13a01affb References: <20171018095622.23738-1-m.szyprowski@samsung.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Enabling power on VBUS micro-usb pin is required only when passive OTG cable is connected. Initially OTG VBUS power control was planned to be done in charger driver. However such information is not really available from the extcon notifications, so VBUS power control has to be done directly in MUIC driver, which has all information about the attached accessory. For example SmartDock is externally powered accessory, provides OTG (USB HOST) functionality and use VBUS pin for charging a device battery, so the VBUS charging pump should be disabled in such case. Signed-off-by: Marek Szyprowski Acked-by: Chanwoo Choi --- drivers/extcon/extcon-max77843.c | 16 ++++++++++++++++ include/linux/mfd/max77843-private.h | 3 +++ 2 files changed, 19 insertions(+) -- 2.14.2 diff --git a/drivers/extcon/extcon-max77843.c b/drivers/extcon/extcon-max77843.c index 6e722d552cf1..217c743405f8 100644 --- a/drivers/extcon/extcon-max77843.c +++ b/drivers/extcon/extcon-max77843.c @@ -240,6 +240,21 @@ static int max77843_muic_set_path(struct max77843_muic_info *info, return 0; } +static void max77843_charger_set_otg_vbus(struct max77843_muic_info *info, + bool on) +{ + struct max77693_dev *max77843 = info->max77843; + unsigned int cnfg00; + + if (on) + cnfg00 = MAX77843_CHG_OTG_MASK | MAX77843_CHG_BOOST_MASK; + else + cnfg00 = MAX77843_CHG_ENABLE | MAX77843_CHG_BUCK_MASK; + + regmap_update_bits(max77843->regmap_chg, MAX77843_CHG_REG_CHG_CNFG_00, + MAX77843_CHG_MODE_MASK, cnfg00); +} + static int max77843_muic_get_cable_type(struct max77843_muic_info *info, enum max77843_muic_cable_group group, bool *attached) { @@ -355,6 +370,7 @@ static int max77843_muic_adc_gnd_handler(struct max77843_muic_info *info) return ret; extcon_set_state_sync(info->edev, EXTCON_USB_HOST, attached); + max77843_charger_set_otg_vbus(info, attached); break; case MAX77843_MUIC_GND_MHL_VB: case MAX77843_MUIC_GND_MHL: diff --git a/include/linux/mfd/max77843-private.h b/include/linux/mfd/max77843-private.h index c19303b0ccfd..0223cd5941c8 100644 --- a/include/linux/mfd/max77843-private.h +++ b/include/linux/mfd/max77843-private.h @@ -245,10 +245,13 @@ enum max77843_irq_muic { #define MAX77843_CHG_OVER_CURRENT_BAT (0x06 << 4) /* MAX77843 CHG_CNFG_00 register */ +#define MAX77843_CHG_MODE_MASK 0x0f #define MAX77843_CHG_DISABLE 0x00 #define MAX77843_CHG_ENABLE 0x05 #define MAX77843_CHG_MASK 0x01 +#define MAX77843_CHG_OTG_MASK 0x02 #define MAX77843_CHG_BUCK_MASK 0x04 +#define MAX77843_CHG_BOOST_MASK 0x08 /* MAX77843 CHG_CNFG_01 register */ #define MAX77843_CHG_RESTART_THRESHOLD_100 0x00