Re: [PATCH v2 1/2] dt-bindings: drm/bridge: anx7625: MIPI to DP transmitter binding

From: Laurent Pinchart
Date: Wed Oct 09 2019 - 08:10:09 EST


Hi Xin Ji,

Thank you for the patch.

On Wed, Oct 09, 2019 at 09:27:07AM +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.
>
> You can add support to your board with binding.
>
> Example:
> anx_bridge: anx7625@58 {
> compatible = "analogix,anx7625";
> reg = <0x58>;
> enable-gpios = <&gpio0 45 GPIO_ACTIVE_LOW>;
> reset-gpios = <&gpio0 73 GPIO_ACTIVE_LOW>;
> status = "okay";
> port@0 {
> reg = <0>;
> anx7625_1_in: endpoint {
> remote-endpoint = <&mipi_dsi_bridge_1>;
> };
> };
> };
>
> Signed-off-by: Xin Ji <xji@xxxxxxxxxxxxxxxx>
> ---
> .../bindings/display/bridge/anx7625.yaml | 79 ++++++++++++++++++++++
> 1 file changed, 79 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..0ef6271
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/bridge/anx7625.yaml
> @@ -0,0 +1,79 @@
> +# 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:
> + compatible:
> + items:
> + - const: analogix,anx7625
> +
> + reg:
> + maxItems: 1
> +
> + hpd-gpios:
> + description: used for HPD interrupt
> + maxItems: 1

You explained in your reply to v1 review that this describes the
interrupt generated by the ANX7625. It should be replaced by an
interrupts property.

> +
> + enable-gpios:
> + description: used for power on chip control
> + maxItems: 1
> +
> + reset-gpios:
> + description: used for reset chip control
> + maxItems: 1

Could you please mention the exact name of the corresponding pins on the
chip for enable and reset ?

> +
> + 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 internal panel port node.
> +
> + port@4:
> + type: object
> + description:
> + A port node pointing to normal eDP port node.

I don't think three output ports is correct. Ports 3 and 4 are really
the same. I'm even unsure about port 2 and 3, someone with better
knowledge of USB-C and DisplayPort would be in a better position to
comment.

> +

You're missing the #address-cells and #size-cells properties required
for the ports. As the device is an I2C device we're lucky that the
parent will specify compatible address and size cells numbers, but I'm
not sure we should rely on that luck.

Rob, how does yaml schema handle this ?

> +required:
> + - compatible
> + - reg
> + - port@0 | port@1
> +
> +example:
> + - |
> + anx_bridge: anx7625@58 {

The node name should describe the device's function. How about
encoder@58 ?

> + compatible = "analogix,anx7625";
> + reg = <0x58>;
> + status = "okay";
> + port@0 {
> + reg = <0>;
> + anx7625_1_in: endpoint {
> + remote-endpoint = <&mipi_dsi_bridge_1>;
> + };
> + };
> + };

--
Regards,

Laurent Pinchart