From patchwork Tue Jun 26 23:45:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Li X-Patchwork-Id: 935173 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=devicetree-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="A3/3Z4/y"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41FjlT3zXZz9s2L for ; Wed, 27 Jun 2018 10:02:29 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752985AbeF0AC1 (ORCPT ); Tue, 26 Jun 2018 20:02:27 -0400 Received: from mail-eopbgr00061.outbound.protection.outlook.com ([40.107.0.61]:7772 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752192AbeF0AC0 (ORCPT ); Tue, 26 Jun 2018 20:02:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=D+BRC67kFRV8qMqm0zDnHTgTXb2zbZsUXV9s1IsQuj0=; b=A3/3Z4/yYUzsjrPHi268oHhaRsehmbC8dVdi4b//sVE4UFeCLSwGKsNuqtD77ebkmz27wPaT+8L/KQ+UC3OtKBaIZpZurvCoUWBjRmPpUHvFf2UJLJzFuuCGnTQiq1BHb0K4mEedajmlUAlGxT85Mu400rw0Cv8kiOCr33Ehh7o= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=jun.li@nxp.com; Received: from b47624-OptiPlex-7040.ap.freescale.net (92.121.68.129) by AM0PR0402MB3908.eurprd04.prod.outlook.com (2603:10a6:208:f::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.884.22; Wed, 27 Jun 2018 00:02:19 +0000 From: Li Jun To: robh+dt@kernel.org, gregkh@linuxfoundation.org, heikki.krogerus@linux.intel.com, linux@roeck-us.net Cc: a.hajda@samsung.com, jun.li@nxp.com, cw00.choi@samsung.com, shufan_lee@richtek.com, peter.chen@nxp.com, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-imx@nxp.com Subject: [PATCH v8 00/14] staging: typec: tcpci: move out of staging Date: Wed, 27 Jun 2018 07:45:18 +0800 Message-Id: <1530056732-9640-1-git-send-email-jun.li@nxp.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [92.121.68.129] X-ClientProxiedBy: HK0P153CA0011.APCP153.PROD.OUTLOOK.COM (2603:1096:203:18::23) To AM0PR0402MB3908.eurprd04.prod.outlook.com (2603:10a6:208:f::28) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c8b2f684-d53b-4c26-78dd-08d5dbc142a1 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600026)(711020)(48565401081)(2017052603328)(7153060)(7193020); SRVR:AM0PR0402MB3908; X-Microsoft-Exchange-Diagnostics: 1; AM0PR0402MB3908; 3:krbWaAMjI6o/YSoRc0eGKBAMQM9vVOdLs66sfrWt61eR3sJtK+gUXyhC1lWd2isdrbM4aVxVN8HkYccBZ/I7MAGOEH2qZAAHmT2/JNWLUSIn9c/7Ec3nL71QKYrfNGfB2SI2hz+8KDfIgnBwjJ6YAMXOM6tArix+Iicmf/WAc3jlCyfJ1+RQ51WI1RvbskVYpcUmn9mWvMYnH8Q43nCjWcl8wrJ9TFSpNIg4yt68z9WapVfq4+9t1l4+Fv2/pfby; 25:9gxCTHzv0rSsy5ZB8fwbvAJyT0w3skTvx4nG088x7LV942Vfe7OqR8vVEKj860SWOHwiZxDYixoRE17/26wzShTrL9GKwd50UyveUfAc9lEGPslSGRb/inEV3Llbm08h3YmGCCtXD7o9ObxB0CUtOUfUJxqaWP19jFR7fWOe0wSB1fgkX/V+Z2KcEum4enZhbKTBBPOCFuCzaCPpsUmx1DF74gglnUCt/5PEdpA2qhWZu6qU3MC/TUIm6HVWvITLgJNo5eoJOFH1iS7wP+lpLuQPQnhnvZ6uyTan+bWk9Lm2tMuXebRlVHznjAlZF5/t9GI0ZDBJVe+gVXpcUT870g==; 31:lSchYJ/2+4w15/72DA/WLs+13oeINiqVt5xsuKn9rN/K3VOaebT5z5iGZV3wAxQ2NkieCEpTfjc4qHigfd4RMvgRqm23M2d6TZs0neN+6PLg0NAo3k9wHkpt7D1UrUH+N5mAFdgKhkoOYmY7GDilDjqQWuEG7v4VBGnzW/gC11j9lPwyeui5UPHuTsyvrQ76phbj+pcHaMM3IxovThvbcVMuIkBpcBw2i2Ug/uQnOLA= X-MS-TrafficTypeDiagnostic: AM0PR0402MB3908: X-Microsoft-Exchange-Diagnostics: 1; AM0PR0402MB3908; 20:u08qydBE4wSE/ceQ4vw1RzZ4z6xhdvxcH9MvdU13Ui9YQfhCBUzEhoIrEX3TuD2+RpFcRhiAAmxuh2bYB8uP33AisIjENGjTC0ZJ5PZ3kpo1BHQfN8BSNjDt+jlrXGkXADjPehlZ8DHwmM1ASB9ugK6NH7XuaqozFgua/3sGSeO6jML4pnzQ/WLBh73vuxvNUqWboqyN4NO1TkpoA+3f40d87FQkdF0FfPAAM/NjmXeAicmteqYo/3gAyXzaM5BQuO/T7qwW457K2Yl/uJivIqONR6n7c/wS5MCv77/uV3SJpbH8AuJ04fgwJjnCLjGwbJAa8j+1ypOhIqf1Srnc8zEszzDmLvTlK1gDhFAhXapR04fZQyQtmoXmiVllIT4M3ILh0mob7ovSYXDM5lutnE1OPHLYB/1pSUhnRLRVDPLX4AGYBpBTYLneZ/4HEeYAkYTtqdNtVriA0haXdLJP/1K6OGV4RTXONhi0fc6Qd3vGjExHMr87vje+Qa4/Fz3z; 4:9ljI3Wbpp6tPq9Enyc7ZJqzvecI09jSrqD+POnex7g3/nCNYcVc4Dg78VR6S4sXpehmdLwICqY8nA/bIvqdmmh0ugw2YTY5hi8whZdML0mUok7naytmTzMALCCgjIGlO+HmM2hgGceL/QKO5F3frAj1dR2NQ5WlaTV3mNmfY3yj/lDQBibU1qGRvo4vqoUJ2DXVnfLvJnoPVpxW5DS0vfjK8grbTspHTjSzORawKhMvnwd8YWhdCP4aklB98f1BoT94e4pr39Xhc560j2ZDt5A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123564045)(20161123558120)(6072148)(201708071742011)(7699016); SRVR:AM0PR0402MB3908; BCL:0; PCL:0; RULEID:; SRVR:AM0PR0402MB3908; X-Forefront-PRVS: 0716E70AB6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(136003)(376002)(366004)(39860400002)(396003)(189003)(199004)(2906002)(14444005)(5024004)(7736002)(26005)(6486002)(305945005)(486006)(48376002)(478600001)(86362001)(25786009)(4326008)(16526019)(186003)(36756003)(50466002)(966005)(16586007)(68736007)(6306002)(6512007)(47776003)(51416003)(52116002)(53936002)(3846002)(386003)(6506007)(6116002)(316002)(97736004)(50226002)(476003)(2616005)(956004)(106356001)(8936002)(81156014)(66066001)(5660300001)(81166006)(8676002)(105586002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0402MB3908; H:b47624-OptiPlex-7040.ap.freescale.net; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM0PR0402MB3908; 23:W5Feq8FoHv2kFv06t/iL86Uito0dlJPGc+fUcHQ?= ImWI1kIR4OijRQmMGAEcbBr9Jggp0yfobwkzQMxaRQhEK8B+WEqB5Q5MoN2DeTDU9t8oxKfmgRgY5y9VRbWldcaJJ2LaEYcJWh4Ubjw6FD8HHl7/6XWIyl+viNPdXOF0cO44HNRzuiOx+jU/sbcMKmWp2No4GBizNQExglqA8P6buZECrG7Ut16ycy6WeP7WRfMclKlyEiWPJW0ZoK1Y8VPozhy9JfmzD3HcL1uxoSvo0gmtBQCx3oaIP/MdhB2dJbt8BYLuhiGlk3usI0XN0NdxdQs0UKNRPIb7vv2M5j03xA5yG+LqbO6tCSidjVU3gBtHVqBR1bIR+kYDh7uBmKlMy4w6WUyBX++43wJMCjZ9xtZnfo3p55RD3ouPB2H69qI+yIcM/IFOhNMb+dTAs17iI+bROihvm+L3HZq4JmIYLZSFMVAKoYx3yKJay4OY6GkVwcz9fzI0MHKDWF0gKAoEaeLpGTJMsxuyX0qWmf3Tf1WMXAQLOZ0VZrvH6r/KDyHmHl8XolvOOhqX4FSB+9s+ZgpQXnjrWA3s2pbUeHnDF7YuTS2sifz7XXZX3/fP5omDQblyeZMf2ll/uQ+j+EeT9qLZGEY15g3nfYyuiSxMyNQ6qcOe4Sf0+X/JOqXlAKqPUCMQyFBaoWJzb8gs19eFikbMD8rSODH8wBi5IuCig5kmb72+LyEMCtB9EJ1f07Q9glZN48BsqbvGB/4x0mwwfDseKXhigYrfM4hCIU5rib/EWtHiTCG1FzndJN7KMnEdftwI59VtAVo2MqF3fKZx+/04qcnil9522VmK6wF8wCSgByeI8Qo36aCNHNZ7gxc/2AgfRTLFsigvwYyaaGKZRB6vEzy4cDoGtvXEOpLUCSarPSjh8IspgVPY0hAL5AQ1w43bPfxR5mdSWSYiMyRPDKPev+y2O/nsVG/xRGZnX2jz6Vfq+3vDMVkD/bqd3wDxEmOmjrcNXPwySea/iKaqs92rk65gv5gDKkVksgh8dXxUI2FKfxv3JVITsjL0LTd7qCQ7n/JX15Y1qz7Y5/rCKNu7W4WsWTpHPXJl2U0slD8zwqp3BN2tzIpwtVV4ctG9wAzyhDDuNVGDSUST3Broc X-Microsoft-Antispam-Message-Info: AC5YAIgR0LOqinLsGDKQ6qGYr7rTjCzrdl7BeV72cu1nvd4Wk9nW7x46fUv9keTefW0d4MQL8IKSTcDkXn/eGb3A/7IT2VMbfx2eewZgyibMwM4FstG+eZ9QP3RsEkdYww5QKJncG3emtoZNylH6WuVTgvdFDNWqXNOWltq9zYTG6wIA9Dymzz7hDzwoAoc8z/6Sew8GQgyKv57dSeD3IvoRnlTIPf7XxEu7KN2jQbOEVw32zUnGckotXfBI9sNmnWBadPOBv6VV+oLJnWie4kHvP+YiaoreJ0hMQZF57yWZlZbHqLFVa0rLrk+V+rRWr5M+ndSDAwnRrPOIjWgDwzNuGyNzbUNaUhcO57yivFI= X-Microsoft-Exchange-Diagnostics: 1; AM0PR0402MB3908; 6:Vt0CQgazPF7Z2tFc1RUd5PhK1rUVYNuk0ht/g9pT+4eIm6uL2qtLjToZSuj9j2I2S6tUInp2XuIYX2wmBTN4uaM9FGLdK/iiooel4AAq1Ny7mOp53ipDn7v70XXFjj8Uti9xKTG+u1MWH39TdAPIDheUj1tgfPVIsBeiYsjqfXyUi2UbfOO98QMbH/+HX4+nevGyHR9YG+d4kbiV/gS3byzVdQ5D7ALFEjZCk/oKqxLKpIk9eK0fp796IVt/+GLm8m/Vhnz4UX0LHdLU7NAAZoaDP4KsC6jOa+2+oMTBifT0d8uQqBIrMj31qKPTsQTtDwgjFcoXUsv/9WiqtDx8eLmNQKm48DALt27k3t/VnkI0CMvKFQCwtUd1CsGtczBoUj76uGW3ibEfy9DdUoJqD0HE1o5q/aowHz1MNcdaNIwLoLUHRNMc6dpRW6XZAOpEg++5aUgO+XXAMG0YrlavIw==; 5:gSl58T745pcgiHoKWbMSy/l6x6Ti3iRVPAPPZ7N3El43cxL2T7JI2lbZeRsguVAryfd8hpIdcAOUgSttEpJ1g6izBaF9w2hRdCenI+1FAMh/b+Z4u8lYS2NaVOmsZi3aq17FNFbP3Hm2H4pdfFsD+DxwL46Au7gEGV3gul9dN4U=; 24:C6M/WjtO4InuCWMh/Ve6brPqHWD1OGTbNF7qSu9xZWen5ckYO3vfWvjmDZNbKuTvz+arFrn4aMzqutJDLjI15yyFy4nn8K+ni7+HHF/QCGs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM0PR0402MB3908; 7:WmPh3YAagcmBKO+vwlIyr6updluvTUSDZlwOAqb0b6XfdfBk6eEH2rIwK4VktyZeQrld0zsr3W+vlwx9XZjcJtXFExY0/dAhxh+s3TTLtdjpNhj/Om4QMUF9aXyYkpAZHuca41DPlXMi4V4YLbvESWnbjxTNJvwkt/dJGqeYDOf2zIjaGv/gRyM0MjwhAPbJ6LJriceacCW8/Mx9wSiAGShTPfTa+KTzcWNEIHEvcs59D4Z+kFROjTzRH95tVDwH X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 00:02:19.0998 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c8b2f684-d53b-4c26-78dd-08d5dbc142a1 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3908 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org This patch set attempts to move the tcpci drivers out of staging by fix some tcpci driver issues and define typec and power delivery device properties, the changes are verified on NXP PTN5110, which is a standard tcpci typec port controller device with power delivery support, tested power source and sink with drp config. Changes for v8: - Favouring the generic FW based capabilities(tcpc_dev->fwnode) over values defined in a Type C port controller driver(tcpc_dev->config) - Add Heikki's Reviewed-by for patch: usb: typec: add API to get typec basic port power and data config Changes for v7: - Fix export symbols mismatch in patch: usb: typec: add API to get typec basic port power and data config rename typec_port_types to be typec_port_power_roles. - Drop patch: usb: typec: tcpm: set cc for drp toggling attach It's arguable as it's only to address specific HW problem, and which can be resolved by add try.src/snk property. Changes for v6: - Change function name to be typec_find_port_power/data_role for find capability, and typec_find_power_role for find one specific power role. - Fix rt1711h driver move missing. - Add one patch to improve the error checking in tcpci driver, use IS_ERR() instead of PTR_ERR_OR_ZERO(). - Add Rob's Reviewed-by for patch [2/15]. - Misc typos fix. Changes for v5: - Use "power-role" and "data-role" for typec port power and data capability property name. - Use macro definition instead of cryptic numbers for readability of power delivery properties(PDO). - Add one tcpci driver binding string to be "nxp,ptn5110" to follow binding name rule ",". - Change operating power property name to be op-sink-microwatt. - Add one patch(remove unused tcpci_tcpc_config) to resolve bisectablitity issue of patch usb: typec: add fwnode to tcpc. - A minor error handling change to keep the error path and success path separate in patch: register port before request irq - Rebase to latest Greg's tree with max_snk_* removed. Changes for v4: - Remove max-sink-* properties as we will purge max_snk_* in tcpm, see patch set[4]. - Get typec power and data type value via name string(patch 5). - Move finding typec and pd properties code from tcpci to tcpm(patch 6) - Add a compatible string for nxp ptn5110 typec controller in tcpci driver. (patch 3) - Add set cc for drp toggling without try.src/snk in tcpm(patch 10), then patch 11 can only update CCx bits for keep disconnect cc line open. - Update op-sink-microwatt-hours example value to be the right value in micorwatts, and accordingly divide 1000 to get its miliwatts value in patch 6. - Add Guenter's Reviewed-by for patch(8/9/12) [4] https://www.spinics.net/lists/linux-usb/msg167261.html Changes for v3: - Use 2 properties to separate power and data capability of typec port: "power-type" and "data-type", this is based on Heikki's typec class code change[2]. use "try-power-role" to present if the typec port can support Try.SNK or Try.SRC. - 4 sink properties(max_sink_mv/ma/mw and op_sink_mw) are kept because the counterpart code is back, see revert patch[3], meanwhile I post a patch to fix the reported problem of current source pdo select machinism(which completely ignored those 4 sink settings), to see if we can keep current code, once it was discussed and have conclusion I can update this accordingly. - Use fwnode to get the connector node for dt setting parse. Main changes for v2: - Typec properties are based on general usb connector bindings[1] proposed by Andrzej Hajda, use the standard unit suffixes as defined in property-units.txt. - Add 2 infra APIs to get power sink and source config from dt. - Don't change the set_cc api, to keep the uncontacted cc line open, set cc1/cc2 to be open in tcpci driver when set polarity. - Directly enable vbus detect in tcpci driver rather than add a API. - Details added in each patch. [1] https://patchwork.kernel.org/patch/10231447/ [2] https://patchwork.kernel.org/patch/10276483/ [3] https://www.spinics.net/lists/linux-usb/msg166366.html Li Jun (13): dt-bindings: connector: add properties for typec dt-bindings: usb: add documentation for typec port controller(TCPCI) staging: typec: tcpci: add compatible string for nxp ptn5110 usb: typec: add fwnode to tcpc usb: typec: add API to get typec basic port power and data config usb: typec: tcpm: support get typec and pd config from device properties staging: typec: tcpci: remove unused tcpci_tcpc_config staging: typec: tcpci: use IS_ERR() instead of PTR_ERR_OR_ZERO() staging: typec: tcpci: enable vbus detection typec: tcpm: add starting value for drp toggling staging: typec: tcpci: keep the disconnected cc line open staging: typec: tcpci: Only touch target bit when enable vconn staging: typec: tcpci: move tcpci drivers out of staging Peter Chen (1): staging: typec: tcpci: register port before request irq .../bindings/connector/usb-connector.txt | 44 +++++++ .../devicetree/bindings/usb/typec-tcpci.txt | 49 +++++++ drivers/staging/Kconfig | 2 - drivers/staging/Makefile | 1 - drivers/staging/typec/Kconfig | 22 ---- drivers/staging/typec/Makefile | 2 - drivers/staging/typec/TODO | 5 - drivers/usb/typec/Kconfig | 15 +++ drivers/usb/typec/Makefile | 2 + drivers/usb/typec/class.c | 58 ++++++++- drivers/{staging => usb}/typec/tcpci.c | 66 ++++++---- drivers/{staging => usb}/typec/tcpci.h | 0 drivers/{staging => usb}/typec/tcpci_rt1711h.c | 0 drivers/usb/typec/tcpm.c | 142 +++++++++++++++++---- include/dt-bindings/usb/pd.h | 62 +++++++++ include/linux/usb/tcpm.h | 2 + include/linux/usb/typec.h | 3 + 17 files changed, 387 insertions(+), 88 deletions(-) create mode 100644 Documentation/devicetree/bindings/usb/typec-tcpci.txt delete mode 100644 drivers/staging/typec/Kconfig delete mode 100644 drivers/staging/typec/Makefile delete mode 100644 drivers/staging/typec/TODO rename drivers/{staging => usb}/typec/tcpci.c (92%) rename drivers/{staging => usb}/typec/tcpci.h (100%) rename drivers/{staging => usb}/typec/tcpci_rt1711h.c (100%) create mode 100644 include/dt-bindings/usb/pd.h Reviewed-by: Guenter Roeck Reviewed-by: Guenter Roeck Reviewed-by: Guenter Roeck Reviewed-by: Guenter Roeck Reviewed-by: Guenter Roeck Reviewed-by: Guenter Roeck Reviewed-by: Guenter Roeck Acked-by: Adam Thomson Acked-by: Heikki Krogerus