Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp305119yba; Thu, 25 Apr 2019 23:49:34 -0700 (PDT) X-Google-Smtp-Source: APXvYqz3sNU9XenkKmRvcL4o7gVQ2IJQmep3nhj/cz/KG9cpuHfl47nNj0Fd8YL+TRb0gaH8qvZ6 X-Received: by 2002:a63:1048:: with SMTP id 8mr41539097pgq.70.1556261373933; Thu, 25 Apr 2019 23:49:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556261373; cv=none; d=google.com; s=arc-20160816; b=ZbAbhta3D6T9qZz5pzzmubjKecEWV/v4/y/avcAEX8uTHbdBEL4WOuaINb/sAmBoHv UrbfJ2CwmpnHic+hdnfeHfflSz/0gEJNNz+37lJ5+qipJYGZ55zPXNoq7kueGs9yR70g D206xtxKg02xA2Ue8HH+Py14rpUjSo8+M1aEztUhifMEQvh99aNfJELqKC85qmcKIai3 xDyphpmwsDlWa2X0HYuGWbBVzvLHbtDepiXUC5ES/rk8tTYL37fGAUxcXDrNKtrsoLDo Es6fb2BYn11gN7Gj1bzDGRpvVziiCJIRW+wf7kKxBoUvpFcqMPZp1AADO6gcBtCSJ24L LI3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from; bh=zdS9o+k1WIisd4aPq8gSIVcrq51RI0h+Del8AEHStRM=; b=enoYnvl6PyYfpKd4lDQRn6Pyu4RPPwyQppI5Z9/IuFHmNuXkw8ncTDO4San1i/95q5 Pn3FAtHWDAYLZz0hz7JKIDKGaoFMD7qdn66raGKYf9MQg7oSC4rTnlNfvnxkUAPHgpyO th+QB4Nas04UbdcaRWZl8a9nCr3jxg5mXpBiZOaGuIpv34FZ+TKDcrWyNRRlzwKegg8c 8uEUq5pR2aJfNPR+480Nhsdo2Nue1dzyl0VrKRaVy+ku+Artfs0FMgWtdqzfrr/HpMCA sDc/n6B8cnhkmhix3U+XrOArJcm83U7Ha1LL+ln+WTQbyjEy8Z4dGK1N5CqMnmrRWfQ7 LuSA== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 89si24601307pld.265.2019.04.25.23.49.19; Thu, 25 Apr 2019 23:49:33 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726483AbfDZGsC (ORCPT + 99 others); Fri, 26 Apr 2019 02:48:02 -0400 Received: from Mailgw01.mediatek.com ([1.203.163.78]:2749 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1725923AbfDZGrw (ORCPT ); Fri, 26 Apr 2019 02:47:52 -0400 X-UUID: f6a99c4b4cdb43a7b91365e164523a4b-20190426 X-UUID: f6a99c4b4cdb43a7b91365e164523a4b-20190426 Received: from mtkcas32.mediatek.inc [(172.27.4.253)] by mailgw01.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLS) with ESMTP id 155601549; Fri, 26 Apr 2019 14:47:35 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by MTKMBS31DR.mediatek.inc (172.27.6.102) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 26 Apr 2019 14:47:32 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 26 Apr 2019 14:47:31 +0800 From: Chunfeng Yun To: Rob Herring , Greg Kroah-Hartman , Heikki Krogerus CC: Mark Rutland , Chunfeng Yun , Matthias Brugger , Adam Thomson , Li Jun , Badhri Jagan Sridharan , Hans de Goede , Andy Shevchenko , Min Guo , , , , , , Biju Das , Linus Walleij Subject: [v4 PATCH 0/6] add USB Type-B GPIO connector driver Date: Fri, 26 Apr 2019 14:47:11 +0800 Message-ID: <1556261237-13823-1-git-send-email-chunfeng.yun@mediatek.com> X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Because the USB Connector is introduced and the requirement of usb-connector.txt binding, the old way using extcon to support USB Dual-Role switch is now deprecated, meanwhile there is no available common driver when use Type-B connector, typically using an input GPIO to detect USB ID pin. This patch series introduce a Type-B GPIO connector driver and try to replace the function provided by extcon-usb-gpio driver. v4 changes: 1. use switch_fwnode_match() to find fwnode suggested by Heikki 2. assign fwnode member of usb_role_switch struct suggested by Heikki 3. make [4/6] depend on [2] 3. remove linux/gpio.h suggested by Linus 4. put node when error happens [4/6] usb: roles: add API to get usb_role_switch by node [2] [v6,08/13] usb: roles: Introduce stubs for the exiting functions in role.h https://patchwork.kernel.org/patch/10909971/ v3 changes: 1. add GPIO direction, and use fixed-regulator for GPIO controlled VBUS regulator suggested by Rob; 2. rebuild fwnode_usb_role_switch_get() suggested by Andy and Heikki 3. treat the type-B connector as a virtual device; 4. change file name of driver again 5. select USB_ROLE_SWITCH in mtu3/Kconfig suggested by Heikki 6. rename ssusb_mode_manual_switch() to ssusb_mode_switch() v2 changes: 1. make binding clear, and add a extra compatible suggested by Hans Chunfeng Yun (6): dt-bindings: connector: add optional properties for Type-B dt-bindings: usb: add binding for Type-B GPIO connector driver dt-bindings: usb: mtu3: add properties about USB Role Switch usb: roles: add API to get usb_role_switch by node usb: roles: add USB Type-B GPIO connector driver usb: mtu3: register a USB Role Switch for dual role mode .../bindings/connector/usb-connector.txt | 14 + .../devicetree/bindings/usb/mediatek,mtu3.txt | 10 +- .../bindings/usb/typeb-conn-gpio.txt | 49 +++ drivers/usb/mtu3/Kconfig | 1 + drivers/usb/mtu3/mtu3.h | 5 + drivers/usb/mtu3/mtu3_debugfs.c | 4 +- drivers/usb/mtu3/mtu3_dr.c | 48 ++- drivers/usb/mtu3/mtu3_dr.h | 6 +- drivers/usb/mtu3/mtu3_plat.c | 3 +- drivers/usb/roles/Kconfig | 11 + drivers/usb/roles/Makefile | 1 + drivers/usb/roles/class.c | 25 ++ drivers/usb/roles/typeb-conn-gpio.c | 305 ++++++++++++++++++ include/linux/usb/role.h | 8 + 14 files changed, 481 insertions(+), 9 deletions(-) create mode 100644 Documentation/devicetree/bindings/usb/typeb-conn-gpio.txt create mode 100644 drivers/usb/roles/typeb-conn-gpio.c -- 2.21.0