From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xin Ji Subject: Re: [PATCH v2 1/2] dt-bindings: drm/bridge: anx7625: MIPI to DP transmitter binding Date: Tue, 15 Oct 2019 03:02:59 +0000 Message-ID: <20191015030250.GA11971@xin-VirtualBox> References: <75bb8a47d2c3c1f979c6d62158c21988b846e79b.1570760115.git.xji@analogixsemi.com> <3c6067de-9f3c-b93c-f263-fa5dd09c3270@samsung.com> <20191011125418.GE4882@pendragon.ideasonboard.com> <20191014030238.GB2390@xin-VirtualBox> <20191014221610.GK23442@pendragon.ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <20191014221610.GK23442@pendragon.ideasonboard.com> Content-Language: en-US Content-ID: Sender: linux-kernel-owner@vger.kernel.org Cc: "devel@driverdev.osuosl.org" , Laurent Pinchart , Dan Carpenter , Andrzej Hajda , Neil Armstrong , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , Sheng Pan List-Id: dri-devel@lists.freedesktop.org Hi Laurent Pinchart, On Tue, Oct 15, 2019 at 01:16:10AM +0300, Laurent Pinchart wrote: > Hi Xin Ji, >=20 > On Mon, Oct 14, 2019 at 03:02:48AM +0000, Xin Ji wrote: > > On Fri, Oct 11, 2019 at 03:54:18PM +0300, Laurent Pinchart wrote: > > > On Fri, Oct 11, 2019 at 01:21:43PM +0200, Andrzej Hajda wrote: > > >> On 11.10.2019 04:21, Xin Ji wrote: > > >>> The ANX7625 is an ultra-low power 4K Mobile HD Transmitter designed > > >>> for portable device. It converts MIPI to DisplayPort 1.3 4K. > > >>> > > >>> You can add support to your board with binding. > > >>> > > >>> Example: > > >>> anx7625_bridge: encoder@58 { > > >>> compatible =3D "analogix,anx7625"; > > >>> reg =3D <0x58>; > > >>> status =3D "okay"; > > >>> panel-flags =3D <1>; > > >>> enable-gpios =3D <&pio 45 GPIO_ACTIVE_HIGH>; > > >>> reset-gpios =3D <&pio 73 GPIO_ACTIVE_HIGH>; > > >>> #address-cells =3D <1>; > > >>> #size-cells =3D <0>; > > >>> > > >>> port@0 { > > >>> reg =3D <0>; > > >>> anx_1_in: endpoint { > > >>> remote-endpoint =3D <&mipi_dsi>; > > >>> }; > > >>> }; > > >>> > > >>> port@3 { > > >>> reg =3D <3>; > > >>> anx_1_out: endpoint { > > >>> remote-endpoint =3D <&panel_in>; > > >>> }; > > >>> }; > > >>> }; > > >>> > > >>> Signed-off-by: Xin Ji > > >>> --- > > >>> .../bindings/display/bridge/anx7625.yaml | 96 ++++++++++= ++++++++++++ > > >>> 1 file changed, 96 insertions(+) > > >>> create mode 100644 Documentation/devicetree/bindings/display/bridg= e/anx7625.yaml > > >>> > > >>> diff --git a/Documentation/devicetree/bindings/display/bridge/anx76= 25.yaml b/Documentation/devicetree/bindings/display/bridge/anx7625.yaml > > >>> new file mode 100644 > > >>> index 0000000..fc84683 > > >>> --- /dev/null > > >>> +++ b/Documentation/devicetree/bindings/display/bridge/anx7625.yaml > > >>> @@ -0,0 +1,96 @@ > > >>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > >>> +# Copyright 2019 Analogix Semiconductor, Inc. > > >>> +%YAML 1.2 > > >>> +--- > > >>> +$id: "http://devicetree.org/schemas/display/bridge/anx7625.yaml#" > > >>> +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > > >>> + > > >>> +title: Analogix ANX7625 SlimPort (4K Mobile HD Transmitter) > > >>> + > > >>> +maintainers: > > >>> + - Xin Ji > > >>> + > > >>> +description: | > > >>> + The ANX7625 is an ultra-low power 4K Mobile HD Transmitter > > >>> + designed for portable devices. > > >>> + > > >>> +properties: > > >>> + "#address-cells": true > > >>> + "#size-cells": true > > >>> + > > >>> + compatible: > > >>> + items: > > >>> + - const: analogix,anx7625 > > >>> + > > >>> + reg: > > >>> + maxItems: 1 > > >>> + > > >>> + panel-flags: > > >>> + description: indicate the panel is internal or external > > >>> + maxItems: 1 > > >>> + > > >>> + interrupts: > > >>> + maxItems: 1 > > >>> + > > >>> + enable-gpios: > > >>> + description: used for power on chip control, POWER_EN pin D2. > > >>> + maxItems: 1 > > >>> + > > >>> + reset-gpios: > > >>> + description: used for reset chip control, RESET_N pin B7. > > >>> + maxItems: 1 > > >>> + > > >>> + port@0: > > >>> + type: object > > >>> + description: > > >>> + A port node pointing to MIPI DSI host port node. > > >>> + > > >>> + port@1: > > >>> + type: object > > >>> + description: > > >>> + A port node pointing to MIPI DPI host port node. > > >>> + > > >>> + port@2: > > >>> + type: object > > >>> + description: > > >>> + A port node pointing to external connector port node. > > >>> + > > >>> + port@3: > > >>> + type: object > > >>> + description: > > >>> + A port node pointing to eDP port node. > > >>=20 > > >>=20 > > >> Decrypting available product brief[1], there are following physical = lines: > > >>=20 > > >> Input: > > >>=20 > > >> - MIPI DSI/DPI - video data, are DSI and DPI lines shared? > > >=20 > > > It would be much easier if we could have access to more complete > > > information. I believe the DSI and DPI pins could be muxed, but there > > > should be more DPI pins than DSI pins. > > > > Yes DPI pins more than DSI pins. > >=20 > > >>=20 > > >> - I2S - audio data, > > >>=20 > > >> - I2C - control line, > > >>=20 > > >> - ALERT/INTP - interrupt, > > >>=20 > > >> - USB 3.1 SSRc/Tx - for USB forwarding, > > >>=20 > > >> Output: > > >>=20 > > >> - SS1, SS2, > > >>=20 > > >> - SBU/AUX, > > >>=20 > > >> - CC1/2. > > >>=20 > > >>=20 > > >> Having this information I try to understand ports defined by you: > > >>=20 > > >> - port@2 you have defined as pointing to external port, but here the > > >> port should be rather subnode of ANX7625 - the chip has CC lines, se= e > > >> beginning of [2]. > > >>=20 > > >> - port@3 describes SS1, SS2 and SBU/AUX lines together, am I right? = In > > >> USB-C binding SBU and SS lines are represented by different ports, > > >> different approach, but maybe better in this case. > > >=20 > > > I believe that, when connected to a DP display (either DP or eDP), th= e > > > DisplayPort signals are output on SS1 and/or SS2. I this really wonde= r > > > if we need two separate ports for this, it seems that port@2 and port= @3 > > > should be merged. > > > > OK, I will merge the port@2 and port@3, and use a flag to indicate > > whether the control is external connector control or not. >=20 > Could this be inferred from the connected DT node ? If the node > connected to the endpoint is a display connector node, then we have an > external connector. Otherwise we have an eDP panel. Ideally this should > even be done at runtime, by communicating with the drm_bridge or > drm_panel corresponding to the connected node. I think the port@2 should be removed, it could not be inferred from the connected DT node. >=20 > > >> Maybe it would be good to add 2nd example with USB-C port. > > >=20 > > > That would help with the discussion, yes. > > > > As we disabled USB-C feature in anx7625, we cannot define a USB-C port. >=20 > It's fine if the feature isn't implemented in the driver, but we should > still take it into account to design the DT bindings. Otherwise, when > someone will want to add support for USB-C to the ANX7625 bindings, they > may find it impossible to do so in a nice backward-compatible way. > That's why an example would already be useful. OK. >=20 > > >> [1]: > > >> https://www.analogix.com/system/files/AA-002291-PB-6-ANX7625_Product= Brief.pdf > > >>=20 > > >> [2]: Documentation/devicetree/bindings/connector/usb-connector.txt > > >>=20 > > >>> + > > >>> +required: > > >>> + - "#address-cells" > > >>> + - "#size-cells" > > >>> + - compatible > > >>> + - reg > > >>> + - port@0 > > >>> + - port@3 > > >>> + > > >>> +example: > > >>> + - | > > >>> + anx7625_bridge: encoder@58 { > > >>> + compatible =3D "analogix,anx7625"; > > >>> + reg =3D <0x58>; > > >>> + status =3D "okay"; > > >>> + panel-flags =3D <1>; > > >>> + enable-gpios =3D <&pio 45 GPIO_ACTIVE_HIGH>; > > >>> + reset-gpios =3D <&pio 73 GPIO_ACTIVE_HIGH>; > > >>> + #address-cells =3D <1>; > > >>> + #size-cells =3D <0>; > > >>> + > > >>> + port@0 { > > >>> + reg =3D <0>; > > >>> + anx_1_in: endpoint { > > >>> + remote-endpoint =3D <&mipi_dsi>; > > >>> + }; > > >>> + }; > > >>> + > > >>> + port@3 { > > >>> + reg =3D <3>; > > >>> + anx_1_out: endpoint { > > >>> + remote-endpoint =3D <&panel_in>; > > >>> + }; > > >>> + }; > > >>> + }; >=20 > --=20 > Regards, >=20 > Laurent Pinchart