From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9D628C48BD5 for ; Tue, 25 Jun 2019 08:56:49 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6A15321670 for ; Tue, 25 Jun 2019 08:56:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="cqJukzzp" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6A15321670 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=FM4q6k1Z+1VNXlGMoBs2E4XakcbkMC6IKI6fPnT41UY=; b=cqJukzzpdebq7W hiKXUauedF4MskwPp3UHgiAbgbmPHffc4ye4WbINotUBvSHH4gfWNfdW/ez3gt+OKQVSnnsoMxior eaQL4Q1LBdHapjeBkmp+0XyPj8EYzbySJ+dR1b+mFjVV8kJvvfo1CcGmdmEXuJGayMWabJ+EGW99E C6/xwqmCgYuYXtVuRgGp872taNqT4jduLyVMJdeZOinVC8AhNGSDFtjkMXOiS+6AUm3tUlHb14MTJ qP496CVrrjjMEdH9Q4t5m6XDqZtbMtJ5rluATeQ3NDH8EmfMo14m3hT1aGGNdR1v0Ed7WWzHaNQv8 ZeaD+EfQEkxKWvsp3iQg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hfhFu-00019j-G8; Tue, 25 Jun 2019 08:56:46 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hfhFP-0000jQ-0K; Tue, 25 Jun 2019 08:56:16 +0000 X-UUID: 5da05a3a0cc0402983e13d456144f85e-20190625 X-UUID: 5da05a3a0cc0402983e13d456144f85e-20190625 Received: from mtkcas67.mediatek.inc [(172.29.193.45)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 281697124; Tue, 25 Jun 2019 00:55:55 -0800 Received: from MTKMBS31N1.mediatek.inc (172.27.4.69) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 25 Jun 2019 01:55:52 -0700 Received: from MTKCAS36.mediatek.inc (172.27.4.186) by MTKMBS31N1.mediatek.inc (172.27.4.69) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 25 Jun 2019 16:55:48 +0800 Received: from [10.17.3.153] (172.27.4.253) by MTKCAS36.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Tue, 25 Jun 2019 16:55:47 +0800 Message-ID: <1561452947.32589.25.camel@mhfsdcap03> Subject: Re: [PATCH v7 09/10] usb: roles: add USB Type-B GPIO connector driver From: Chunfeng Yun To: Heikki Krogerus Date: Tue, 25 Jun 2019 16:55:47 +0800 In-Reply-To: <20190624095827.GA6501@kuha.fi.intel.com> References: <1560242680-23844-1-git-send-email-chunfeng.yun@mediatek.com> <1560242680-23844-10-git-send-email-chunfeng.yun@mediatek.com> <20190624095827.GA6501@kuha.fi.intel.com> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190625_015615_106107_FBE832FF X-CRM114-Status: GOOD ( 29.04 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , devicetree@vger.kernel.org, Felipe Balbi , Hans de Goede , Greg Kroah-Hartman , Linus Walleij , linux-usb@vger.kernel.org, Yu Chen , linux-kernel@vger.kernel.org, Biju Das , Badhri Jagan Sridharan , Andy Shevchenko , Rob Herring , linux-mediatek@lists.infradead.org, Min Guo , Matthias Brugger , Nagarjuna Kristam , Adam Thomson , linux-arm-kernel@lists.infradead.org, Li Jun Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Heikki, On Mon, 2019-06-24 at 12:58 +0300, Heikki Krogerus wrote: > Hi Chunfeng, > > On Tue, Jun 11, 2019 at 04:44:39PM +0800, Chunfeng Yun wrote: > > Due to the requirement of usb-connector.txt binding, the old way > > using extcon to support USB Dual-Role switch is now deprecated > > when use Type-B connector. > > This patch introduces a driver of Type-B connector which typically > > uses an input GPIO to detect USB ID pin, and try to replace the > > function provided by extcon-usb-gpio driver > > I'm sorry for asking this so late, but why is this driver a Type-B > specific driver (I really thought somebody had already asked this > question)? It's mainly used for Type-B connector with ID pin. > > I don't see anything Type-B specific in the driver. It's need add another compatible "usb-b-connector" except the driver provided. > Basically it looks > to me like just a gpio based connection detection driver that would > work fine with for example uAB connectors.. Yes, it is. > > > Signed-off-by: Chunfeng Yun > > Tested-by: Nagarjuna Kristam > > --- > > v7 changes: > > 1. remove macro DEV_PMS_OPS suggested by Andy > > 2. add tested-by Nagarjuna > > > > v6 changes: > > 1. get usb-role-swtich by usb_role_switch_get() > > > > v5 changes: > > 1. put usb_role_switch when error happens suggested by Biju > > 2. don't treat bype-B connector as a virtual device suggested by Rob > > > > v4 changes: > > 1. remove linux/gpio.h suggested by Linus > > 2. put node when error happens > > > > v3 changes: > > 1. treat bype-B connector as a virtual device; > > 2. change file name again > > > > v2 changes: > > 1. file name is changed > > 2. use new compatible > > --- > > drivers/usb/roles/Kconfig | 11 ++ > > drivers/usb/roles/Makefile | 1 + > > drivers/usb/roles/typeb-conn-gpio.c | 284 ++++++++++++++++++++++++++++ > > ..It also drives me crazy that you've put this driver under this > folder. It does not create a role switch so ideally it should not go > under driver/usb/roles/. agree:) > I think a better place for it would be > drivers/usb/misc/, or actually, maybe it should go under > drivers/usb/common/? I'm not sure, but prefer misc/ folder. Hi Greg, would you please give me some suggestions about this? which folder I should put the driver into? > > Could you still rename the driver to something like "usb-gpio.c" or > conn-gpio.c, I think about the name for a long time before, and have some doubt whether it's suitable to add typeb into the name. How about using usb-conn-gpio.c or conn-usb-gpio.c? Thanks a lot > or something else, and also move it under > drivers/usb/misc/ or drivers/usb/common/? > > > 3 files changed, 296 insertions(+) > > create mode 100644 drivers/usb/roles/typeb-conn-gpio.c > > > > diff --git a/drivers/usb/roles/Kconfig b/drivers/usb/roles/Kconfig > > index f8b31aa67526..d1156e18a81a 100644 > > --- a/drivers/usb/roles/Kconfig > > +++ b/drivers/usb/roles/Kconfig > > @@ -26,4 +26,15 @@ config USB_ROLES_INTEL_XHCI > > To compile the driver as a module, choose M here: the module will > > be called intel-xhci-usb-role-switch. > > > > +config TYPEB_CONN_GPIO > > + tristate "USB Type-B GPIO Connector" > > USB GPIO connection detection driver? > > > + depends on GPIOLIB > > + help > > + The driver supports USB role switch between host and device via GPIO > > + based USB cable detection, used typically if an input GPIO is used > > + to detect USB ID pin. > > + > > + To compile the driver as a module, choose M here: the module will > > + be called typeb-conn-gpio.ko > > + > > endif # USB_ROLE_SWITCH > > diff --git a/drivers/usb/roles/Makefile b/drivers/usb/roles/Makefile > > index 757a7d2797eb..5d5620d9d113 100644 > > --- a/drivers/usb/roles/Makefile > > +++ b/drivers/usb/roles/Makefile > > @@ -3,3 +3,4 @@ > > obj-$(CONFIG_USB_ROLE_SWITCH) += roles.o > > roles-y := class.o > > obj-$(CONFIG_USB_ROLES_INTEL_XHCI) += intel-xhci-usb-role-switch.o > > +obj-$(CONFIG_TYPEB_CONN_GPIO) += typeb-conn-gpio.o > > diff --git a/drivers/usb/roles/typeb-conn-gpio.c b/drivers/usb/roles/typeb-conn-gpio.c > > new file mode 100644 > > index 000000000000..e3fba1656069 > > --- /dev/null > > +++ b/drivers/usb/roles/typeb-conn-gpio.c > > @@ -0,0 +1,284 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > +/* _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel