public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Xin Ji <xji@analogixsemi.com>
Cc: "devel@driverdev.osuosl.org" <devel@driverdev.osuosl.org>,
	Andrzej Hajda <a.hajda@samsung.com>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Jonas Karlman <jonas@kwiboo.se>,
	Jernej Skrabec <jernej.skrabec@siol.net>,
	David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	Sheng Pan <span@analogixsemi.com>
Subject: Re: [PATCH v1 1/2] dt-bindings: drm/bridge: anx7625: MIPI to DP transmitter binding
Date: Fri, 20 Sep 2019 12:46:21 +0300	[thread overview]
Message-ID: <20190920094621.GA12950@pendragon.ideasonboard.com> (raw)
In-Reply-To: <606dba07640f0c9aba930e1dfb5d6a797f393ecc.1568957789.git.xji@analogixsemi.com>

Hello Xin Ji,

Thank you for the patch.

On Fri, Sep 20, 2019 at 06:05:03AM +0000, 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.

I assume you meant MIPI DSI ? MIPI has released more standards than DSI,
so it doesn't hurt to specify this explicitly.

According to
https://www.analogix.com/en/system/files/AA-002291-PB-6-ANX7625_ProductBrief_0.pdf,
the ANX7625 supports for MIPI DSI and DPI on the input side.
Furthermore, it seems to output DisplayPort on USB Type-C. Should this
be documented ?

> You can add support to your board with binding.
> 
> Example:
> 	anx_bridge: anx7625@58 {
> 		compatible = "analogix,anx7625";
> 		reg = <0x58>;
> 		low-power-mode = <1>;
> 		dsi-supported = <1>;
> 		dsi-channel-id = <1>;
> 		dsi-lanes-num = <4>;
> 		internal-pannel-supported = <1>;
> 		pon-gpios = <&gpio0 45 GPIO_ACTIVE_LOW>;
> 		reset-gpios = <&gpio0 73 GPIO_ACTIVE_LOW>;
> 		status = "okay";
> 		port {
> 			anx7625_1_in: endpoint {
> 				remote-endpoint = <&mipi_dsi_bridge_1>;
> 			};
> 		};
> 	};
> 
> Signed-off-by: Xin Ji <xji@analogixsemi.com>
> ---
>  .../bindings/display/bridge/anx7625.yaml           | 84 ++++++++++++++++++++++
>  1 file changed, 84 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..95fe18b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/bridge/anx7625.yaml
> @@ -0,0 +1,84 @@
> +# 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@analogixsemi.com>
> +
> +description: |
> +  The ANX7625 is an ultra-low power 4K Mobile HD Transmitter
> +  designed for portable devices.
> +
> +properties:
> +  compatible:
> +    items:
> +      - const: analogix,anx7625
> +
> +  reg:
> +    maxItems: 1
> +
> +  low-power-gpios:
> +    description: Low power mode support feature
> +    maxItems: 1
> +
> +  hpd-gpios:
> +    description: used for HPD interrupt
> +    maxItems: 1
> +
> +  pon-gpios:
> +    description: used for power on chip control
> +    maxItems: 1
> +
> +  reset-gpios:
> +    description: used for reset chip control
> +    maxItems: 1

How about mentioning which pin of the ANX7625 each GPIO refers to ? For
the low-power, pon and reset GPIOs I assume they directly control the
chip. We have standard names for some GPIOs, such as reset or enable. Is
there one of the low-power and pon GPIOs that would qualify as an enable
signal ?

What is the HPD GPIO for ? Does the chip output and HPD signal ?

> +
> +  extcon-supported:
> +    description: external connector interface support flag
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +
> +  internal-pannel-supported:
> +    description: indicate does internal pannel exist or not
> +    $ref: /schemas/types.yaml#/definitions/uint32

s/pannel/panel/

Are those two properties mutually exclusive ? If so you should combine
them in a single required property with two values. My feeling is that
they should be dropped though, please see below.

> +
> +  dsi-supported:
> +    description: support MIPI DSI or DPI
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +
> +  dsi-channel-id:
> +    description: dsi channel index
> +    $ref: /schemas/types.yaml#/definitions/uint32

This does not belong to DT, the virtual channel used by the DSI source
should be queried at runtime by communicating between drivers.

> +
> +  dsi-lanes-num:
> +    description: dsi lanes used num
> +    $ref: /schemas/types.yaml#/definitions/uint32

Please use the standard data-lanes property as defined in
video-interface.txt. It should be specified in the DSI endpoints.

> +
> +  port@0:
> +    type: object
> +    description:
> +      A port node pointing to MIPI DSI host port node.

You need at least 3 ports:

- a DPI input port
- a DSI input port
- an output port

The dsi-supported property should be dropped, detecting the type of
input should be done based on which of the DPI or DSI input port is
connected.

Assuming the ANX7625 can also output DisplayPort directly without going
through USB Type-C (I can't verify that without the datasheet), I think
you should use two output ports, one for USB Type-C and one for
DisplayPort. The extcon-supported and internal-pannel-supported
properties should be removed, and deduced from the connect output port.

> +
> +required:
> +  - compatible
> +  - reg
> +  - dsi-channel-id
> +  - dsi-lanes-num
> +  - port@0
> +
> +example:
> +  - |
> +    anx_bridge: anx7625@58 {
> +        compatible = "analogix,anx7625";
> +        reg = <0x58>;
> +        low-power-gpios = <0>;
> +        dsi-supported = <1>;
> +        dsi-channel-id = <1>;
> +        dsi-lanes-num = <4>;
> +        hpd-gpios = <&gpio1 19 IRQ_TYPE_LEVEL_LOW>;
> +        status = "okay";
> +    };

You mention the port@0 node as being required, but it's missing from the
example.

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2019-09-20  9:46 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-20  6:09 [PATCH v1 0/2] Add initial support for slimport anx7625 Xin Ji
2019-09-20  6:05 ` [PATCH v1 1/2] dt-bindings: drm/bridge: anx7625: MIPI to DP transmitter binding Xin Ji
2019-09-20  9:46   ` Laurent Pinchart [this message]
2019-09-23  3:55     ` Xin Ji
2019-09-20  6:07 ` [PATCH v1 2/2] drm/bridge: anx7625: Add anx7625 MIPI to DP bridge driver Xin Ji
2019-09-23 14:03   ` Dan Carpenter
2019-09-25  4:16     ` Xin Ji
  -- strict thread matches above, loose matches on Subject: below --
2019-09-23  9:06 [PATCH v1 0/2] Add initial support for slimport anx7625 Xin Ji
2019-09-23  9:07 ` [PATCH v1 1/2] dt-bindings: drm/bridge: anx7625: MIPI to DP transmitter binding Xin Ji
2019-09-19  6:51 [PATCH v1 0/2] Add initial support for slimport anx7625 Xin Ji
2019-09-19  6:55 ` [PATCH v1 1/2] dt-bindings: drm/bridge: anx7625: MIPI to DP transmitter binding Xin Ji
2019-09-19  6:57   ` Neil Armstrong
2019-09-19 10:51     ` Xin Ji

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190920094621.GA12950@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=a.hajda@samsung.com \
    --cc=airlied@linux.ie \
    --cc=daniel@ffwll.ch \
    --cc=devel@driverdev.osuosl.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jernej.skrabec@siol.net \
    --cc=jonas@kwiboo.se \
    --cc=linux-kernel@vger.kernel.org \
    --cc=narmstrong@baylibre.com \
    --cc=span@analogixsemi.com \
    --cc=xji@analogixsemi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox