Hi Laurent Pinchart, On Tue, Oct 15, 2019 at 01:16:10AM +0300, Laurent Pinchart wrote: > Hi Xin Ji, > > 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 = "analogix,anx7625"; > > >>> reg = <0x58>; > > >>> status = "okay"; > > >>> panel-flags = <1>; > > >>> enable-gpios = <&pio 45 GPIO_ACTIVE_HIGH>; > > >>> reset-gpios = <&pio 73 GPIO_ACTIVE_HIGH>; > > >>> #address-cells = <1>; > > >>> #size-cells = <0>; > > >>> > > >>> port@0 { > > >>> reg = <0>; > > >>> anx_1_in: endpoint { > > >>> remote-endpoint = <&mipi_dsi>; > > >>> }; > > >>> }; > > >>> > > >>> port@3 { > > >>> reg = <3>; > > >>> anx_1_out: endpoint { > > >>> remote-endpoint = <&panel_in>; > > >>> }; > > >>> }; > > >>> }; > > >>> > > >>> Signed-off-by: Xin Ji <xji@xxxxxxxxxxxxxxxx> > > >>> --- > > >>> .../bindings/display/bridge/anx7625.yaml | 96 ++++++++++++++++++++++ > > >>> 1 file changed, 96 insertions(+) > > >>> create mode 100644 Documentation/devicetree/bindings/display/bridge/anx7625.yaml > > >>> > > >>> diff --git a/Documentation/devicetree/bindings/display/bridge/anx7625.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 <xji@xxxxxxxxxxxxxxxx> > > >>> + > > >>> +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. > > >> > > >> > > >> Decrypting available product brief[1], there are following physical lines: > > >> > > >> Input: > > >> > > >> - MIPI DSI/DPI - video data, are DSI and DPI lines shared? > > > > > > 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. > > > > >> > > >> - I2S - audio data, > > >> > > >> - I2C - control line, > > >> > > >> - ALERT/INTP - interrupt, > > >> > > >> - USB 3.1 SSRc/Tx - for USB forwarding, > > >> > > >> Output: > > >> > > >> - SS1, SS2, > > >> > > >> - SBU/AUX, > > >> > > >> - CC1/2. > > >> > > >> > > >> Having this information I try to understand ports defined by you: > > >> > > >> - 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, see > > >> beginning of [2]. > > >> > > >> - 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. > > > > > > I believe that, when connected to a DP display (either DP or eDP), the > > > DisplayPort signals are output on SS1 and/or SS2. I this really wonder > > > 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. > > 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. > > > >> Maybe it would be good to add 2nd example with USB-C port. > > > > > > That would help with the discussion, yes. > > > > As we disabled USB-C feature in anx7625, we cannot define a USB-C port. > > 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. > > > >> [1]: > > >> https://www.analogix.com/system/files/AA-002291-PB-6-ANX7625_ProductBrief.pdf > > >> > > >> [2]: Documentation/devicetree/bindings/connector/usb-connector.txt > > >> > > >>> + > > >>> +required: > > >>> + - "#address-cells" > > >>> + - "#size-cells" > > >>> + - compatible > > >>> + - reg > > >>> + - port@0 > > >>> + - port@3 > > >>> + > > >>> +example: > > >>> + - | > > >>> + anx7625_bridge: encoder@58 { > > >>> + compatible = "analogix,anx7625"; > > >>> + reg = <0x58>; > > >>> + status = "okay"; > > >>> + panel-flags = <1>; > > >>> + enable-gpios = <&pio 45 GPIO_ACTIVE_HIGH>; > > >>> + reset-gpios = <&pio 73 GPIO_ACTIVE_HIGH>; > > >>> + #address-cells = <1>; > > >>> + #size-cells = <0>; > > >>> + > > >>> + port@0 { > > >>> + reg = <0>; > > >>> + anx_1_in: endpoint { > > >>> + remote-endpoint = <&mipi_dsi>; > > >>> + }; > > >>> + }; > > >>> + > > >>> + port@3 { > > >>> + reg = <3>; > > >>> + anx_1_out: endpoint { > > >>> + remote-endpoint = <&panel_in>; > > >>> + }; > > >>> + }; > > >>> + }; > > -- > Regards, > > Laurent Pinchart _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel