From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751717AbdJSGs5 (ORCPT ); Thu, 19 Oct 2017 02:48:57 -0400 Received: from mailout1.w1.samsung.com ([210.118.77.11]:54090 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751572AbdJSGsx (ORCPT ); Thu, 19 Oct 2017 02:48:53 -0400 X-AuditID: cbfec7f1-f793a6d00000326b-66-59e84ad115cf Subject: Re: [RFC PATCH 1/4] dt-bindings: add bindings for USB physical connector To: Laurent Pinchart Cc: "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Bartlomiej Zolnierkiewicz , Marek Szyprowski , dri-devel@lists.freedesktop.org, Inki Dae , Rob Herring , Mark Rutland , Krzysztof Kozlowski , Chanwoo Choi , Archit Taneja , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-usb@vger.kernel.org From: Andrzej Hajda Message-id: Date: Thu, 19 Oct 2017 08:48:47 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-version: 1.0 In-reply-to: <3079487.ip075DyLUk@avalon> Content-type: text/plain; charset="utf-8" Content-transfer-encoding: 7bit Content-language: en-US X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTYRjHec9dcXWaZi8WSYOilOxCwsFKLUoOXVjSl+aHdOhBRadjRy1D aliartRl0mxKLtFVoqibiJiaN5pleEHNS96gi7MQnZdM8JLbUfDb73mf//N/n//LS6HiftyD io5L4FRx8lgJ4YzVflzpOt57xSo7aet0Y1IzZnCmOr8SZwYXp3CmqL0LZ/qXZgkmd0KLMd3d VSST+ayEZEzfv+JMX30hweR3NyFMsTENZSrax0imdLAXYdIa28nA3Wz5q3LA9mVnIWxBxkuc NZVlEuzEEwvCmksesNk1ZYBdMB28QYU4n4vgYqOTONUJ/zDnqA8/5wnlytG7qfUaRA0eHdIA JwrSZ2BRyQ9SYHfYM15JaIAzJaZLATQ3GYFQLABYUDtHbk9YH49iQsMIYN5w1tbILwCrdGuo XeVK34Tt5hHEzm40A7OKdQ4rlO7B4J+Xrx1WBH0MrpmHCTuLaH/YrFt2MEYfhj83bA6jvfQt aGl7AwTNHvjv+ThmZyf6KOwsrnMwuuljXczdYk9oLp9BBd4HH6YNY8LaRhIO6MM0gNrkSzB1 6YBw7Ap/W2q2kh2AmRktiH1PSD8BcD6ngxSKPADX5/JRQXUWtll6ceGCXTC3VocKpiKYkS4W JCxsbrSSwvEF+HRZKTzQAIDajT5ECzz1O+Lod0TQ74ig3xHBALAy4MYl8opIjj/tw8sVfGJc pE94vMIENv9a57rFVgdmO/xaAU0BiYvI8GJKJsblSXyyohVACpW4ib55WWViUYQ8+R6nig9V JcZyfCvYT2GSfaLzIekyMR0pT+BiOE7Jqba7COXkoQbVxy5uXAu4M8Ghb7qC1C4K36qg0e+a Od3VlAbLdZ+YX76RUoO0cXr1yOfQ2Mm3E4dmC5W2itWcept2oaLHW3rZNDT0Sb8u9b745f07 v9Knk7KWmuXqF8MN04oxdWGwiA/UV+r+rt0fTEkaCdY2uS/sdomOXg+/RYwbkO6A200hEoyP kp/yQlW8/D8AStp5ZwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrJIsWRmVeSWpSXmKPExsVy+t/xK7oXvF5EGnzfaW7R1PGW1WLjjPWs Fte/PGe1mH/kHKvFla/v2Swm3Z/AYnH+/AZ2i86JS9gtNj2+xmpxedccNosZ5/cxWSxa1sps sfbIXXaLpdcvMlm07j3C7sDvsWbeGkaPy329TB6zO2ayemxa1cnmcb/7OJPH5iX1Hn1bVjF6 fN4kF8ARxWWTkpqTWZZapG+XwJWx/+kntoKfGhVNu7qYGhhbFLsYOTkkBEwkXrTfYYGwxSQu 3FvP1sXIxSEksIRRYvLVbnYI5xmjxIW5uxhBqoQFgiWObL7FBGKLCFhI9C6azghSxCxwgUVi z90lUO1XGSUmLDkPNpdNQFPi7+abbCA2r4CdxIHp38FsFgFViaf/PzKD2KICERLPm9+zQtQI SvyYfA+sl1NAQ+L0oh1ANgfQBnWJKVNyQcLMAvISm9e8ZYawxSWaW2+yTGAUnIWkexZCxywk HbOQdCxgZFnFKJJaWpybnltsqFecmFtcmpeul5yfu4kRGIHbjv3cvIPx0sbgQ4wCHIxKPLwL pj2PFGJNLCuuzD3EKMHBrCTCe1vrRaQQb0piZVVqUX58UWlOavEhRmkOFiVx3t49qyOFBNIT S1KzU1MLUotgskwcnFINjAl1CjwC9+wavC7Z265Vnui+QmO3S/6NR1ryPJ82tn97Jvvj4Vft lrCZSu9aOJq/2kx+luS/ZKGv2c9wLttHvGH8vPkeMlUiV2rmP6lcec82f8OKmluv/2hn7ubi a4is1i9Yrvs6f8nWV/3pk67cu5cjvlNsTpTlgnn35m1gjbitlX2RhZWXR4mlOCPRUIu5qDgR AMyS50C8AgAA X-CMS-MailID: 20171019064848eucas1p2c384e705601754db9006c25e179f53e7 X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRvsgrw=?= =?UTF-8?B?7ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRtTYW1z?= =?UTF-8?B?dW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-CMS-RootMailID: 20170928130735eucas1p1da4f062b6948350289bba9c8bc911dd7 X-RootMTR: 20170928130735eucas1p1da4f062b6948350289bba9c8bc911dd7 References: <20170928130730.8747-1-a.hajda@samsung.com> <20170928130730.8747-2-a.hajda@samsung.com> <3079487.ip075DyLUk@avalon> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Laurent, Thank you for the review. On 18.10.2017 17:11, Laurent Pinchart wrote: > Hi Andrzej, > > Thank you for the patch. > > On Thursday, 28 September 2017 16:07:27 EEST Andrzej Hajda wrote: >> These bindings allows to describe most known standard USB connectors >> and it should be possible to extend it if necessary. >> USB connectors, beside USB can be used to route other protocols, >> for example UART, Audio, MHL. In such case every device passing data >> through the connector should have appropriate graph bindings. >> >> Signed-off-by: Andrzej Hajda >> --- >> There are few things for discussion (IMO): >> 1. vendor specific connectors, I have added them here, but maybe better is >> to place them in separate files. > It's useful to have one vendor-specific compatible string to be used in the > example. We could split vendor-specific connectors to separate files later if > needed, but for now I'm fine keeping them here. > >> 2. physical connector description - I have split it to three properties: >> type(a,b,ab,c), max-mode(ls,fs,hs,ss,ss+), size(mini,micro,powered). >> This tripled is able to describe all USB-standard connectors, but there >> are also impossible combinations, for example(c, *, micro). Maybe better >> would be to just enumerate all possible connectors in include file. > I don't have a strong opinion on this. The three properties are nicely > descriptive. You might want to list the valid combinations in the bindings > though. According to Rob's suggestion in next iteration I will encode USB port type into compatible ie: - usb-a-connector, - usb-b-connector, - usb-c-connector. Rob suggested also to encode there speed as well, but I am afraid it will inflate number of compatibles: (3 types: a, b, c) x (3 speed modes: hs, ss, ssplus) = 9 combinations >> 3. Numbering of port/remote nodes, currently only 0 is assigned for >> Interface Controller. Maybe other functions should be also assigned: >> HS, SS, CC, SBU, ... whatever. Maybe functions should be described >> as an additional property of remote node? > Given that one of the main reasons this binding is needed is to describe MHL > connection to a USB connector, I think we'll need to define additional > functions, yes. I'm not sure yet how that should look like though. Current idea is to encode it in port number. > >> --- >> .../bindings/connector/usb-connector.txt | 49 +++++++++++++++++++ >> 1 file changed, 49 insertions(+) >> create mode 100644 >> Documentation/devicetree/bindings/connector/usb-connector.txt >> >> diff --git a/Documentation/devicetree/bindings/connector/usb-connector.txt >> b/Documentation/devicetree/bindings/connector/usb-connector.txt new file >> mode 100644 >> index 000000000000..f3a4e85122d5 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/connector/usb-connector.txt >> @@ -0,0 +1,49 @@ >> +USB Connector >> +============= >> + >> +Required properties: >> +- compatible: "usb-connector" >> + connectors with vendor specific extensions can add one of additional >> + compatibles: >> + "samsung,usb-connector-11pin": 11-pin Samsung micro-USB connector >> +- type: the USB connector type: "a", "b", "ab", "c" >> +- max-mode: max USB speed mode supported by the connector: >> + "ls", "fs", "hs", "ss", "ss+" >> + >> +Optional properties: >> +- label: a symbolic name for the connector >> +- size: size of the connector, should be specified in case of >> + non-standard USB connectors: "mini", "micro", "powered" > "non-standard" sounds like "vendor-specific", while I assume you're talking > about the size. The USB specification uses the term "standard" for this > purpose, so it's hard to use another one that would convey the right meaning > precisely. Maybe "non-standard ('large') USB connector sizes" ? OK. And answer for your question from other e-mail: > One more comment, do I assume correctly that the Samsung 11-pin connector > carries USB and MHL on different pins ? Yes, there are three additional pins: MHL_DP, MHL_DN and MHL_ID [1]. [1]: https://ae01.alicdn.com/kf/HTB1nn.6KVXXXXaNXFXXq6xXFXXXc/221542210/HTB1nn.6KVXXXXaNXFXXq6xXFXXXc.jpg?size=69211&height=700&width=700&hash=dcababf11610a489d451d7cb0b8ab60e Thanks Andrzej > >> +Required nodes: >> +- any data bus to the connector should be modeled using the >> + OF graph bindings specified in bindings/graph.txt. >> + There should be exactly one port with at least one endpoint to >> + different device nodes. The first endpoint (reg = <0>) should >> + point to USB Interface Controller. >> + >> +Example >> +------- >> + >> +musb_con: connector { >> + compatible = "samsung,usb-connector-11pin", "usb-connector"; >> + label = "usb"; >> + type = "b"; >> + size = "micro"; >> + max-mode = "hs"; >> + >> + port { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + musb_con_usb_in: endpoint@0 { >> + reg = <0>; >> + remote-endpoint = <&muic_usb_out>; >> + }; >> + >> + musb_con_mhl_in: endpoint@1 { >> + reg = <1>; >> + remote-endpoint = <&mhl_out>; >> + }; >> + }; >> +};