diff mbox series

[V2,1/2] dt-bindings: drm/bridge: ti-sn65dsi83: Add TI SN65DSI83 and SN65DSI84 bindings

Message ID 20210421223122.112736-1-marex@denx.de
State New
Headers show
Series [V2,1/2] dt-bindings: drm/bridge: ti-sn65dsi83: Add TI SN65DSI83 and SN65DSI84 bindings | expand

Commit Message

Marek Vasut April 21, 2021, 10:31 p.m. UTC
Add DT binding document for TI SN65DSI83 and SN65DSI84 DSI to LVDS bridge.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Douglas Anderson <dianders@chromium.org>
Cc: Jagan Teki <jagan@amarulasolutions.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Stephen Boyd <swboyd@chromium.org>
Cc: devicetree@vger.kernel.org
To: dri-devel@lists.freedesktop.org
---
V2: Add compatible string for SN65DSI84, since this is now tested on it
---
 .../bindings/display/bridge/ti,sn65dsi83.yaml | 134 ++++++++++++++++++
 1 file changed, 134 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml

Comments

Jagan Teki April 22, 2021, 8:43 a.m. UTC | #1
On Thu, Apr 22, 2021 at 4:01 AM Marek Vasut <marex@denx.de> wrote:
>

> Add DT binding document for TI SN65DSI83 and SN65DSI84 DSI to LVDS bridge.

>

> Signed-off-by: Marek Vasut <marex@denx.de>

> Cc: Douglas Anderson <dianders@chromium.org>

> Cc: Jagan Teki <jagan@amarulasolutions.com>

> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> Cc: Linus Walleij <linus.walleij@linaro.org>

> Cc: Rob Herring <robh+dt@kernel.org>

> Cc: Sam Ravnborg <sam@ravnborg.org>

> Cc: Stephen Boyd <swboyd@chromium.org>

> Cc: devicetree@vger.kernel.org

> To: dri-devel@lists.freedesktop.org

> ---

> V2: Add compatible string for SN65DSI84, since this is now tested on it

> ---

>  .../bindings/display/bridge/ti,sn65dsi83.yaml | 134 ++++++++++++++++++

>  1 file changed, 134 insertions(+)

>  create mode 100644 Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml

>

> diff --git a/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml b/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml

> new file mode 100644

> index 000000000000..42d11b46a1eb

> --- /dev/null

> +++ b/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml

> @@ -0,0 +1,134 @@

> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)

> +%YAML 1.2

> +---

> +$id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#

> +$schema: http://devicetree.org/meta-schemas/core.yaml#

> +

> +title: SN65DSI83 and SN65DSI84 DSI to LVDS bridge chip


Can it possible to wait for my v4 to have dual-link LVDS supported
which is quite discussing points on previous versions?

Jagan.
Marek Vasut April 22, 2021, 4:16 p.m. UTC | #2
On 4/22/21 10:38 AM, Neil Armstrong wrote:
[...]
>> +      port@1:
>> +        type: object
>> +        additionalProperties: false
>> +
>> +        description:
>> +          Video port for LVDS output (panel or bridge).
>> +
>> +        properties:
>> +          reg:
>> +            const: 1
>> +
>> +          endpoint:
>> +            type: object
>> +            additionalProperties: false
>> +            properties:
>> +              remote-endpoint: true
> 
> Similar to Jagan's serie, would be great to add bindings for the dual-link LVDS even if not supported
> by the driver (the driver can fails with a verbose error).

I don't want to add any sort of bindings which I cannot validate against 
real hardware. I would argue that adding the 2x single / dual link LVDS 
DT property could be added when someone has a need for it and can test 
it on real hardware, and such a binding should be simple develop and 
add. And that is better, because we won't end up with some possibly 
misdesigned untested DT binding which would become part of the ABI and 
would have to be supported forever.
Frieder Schrempf April 28, 2021, 7:56 a.m. UTC | #3
On 22.04.21 00:31, Marek Vasut wrote:
> Add DT binding document for TI SN65DSI83 and SN65DSI84 DSI to LVDS bridge.

> 

> Signed-off-by: Marek Vasut <marex@denx.de>

> Cc: Douglas Anderson <dianders@chromium.org>

> Cc: Jagan Teki <jagan@amarulasolutions.com>

> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> Cc: Linus Walleij <linus.walleij@linaro.org>

> Cc: Rob Herring <robh+dt@kernel.org>

> Cc: Sam Ravnborg <sam@ravnborg.org>

> Cc: Stephen Boyd <swboyd@chromium.org>

> Cc: devicetree@vger.kernel.org

> To: dri-devel@lists.freedesktop.org

> ---

> V2: Add compatible string for SN65DSI84, since this is now tested on it

> ---

>   .../bindings/display/bridge/ti,sn65dsi83.yaml | 134 ++++++++++++++++++

>   1 file changed, 134 insertions(+)

>   create mode 100644 Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml

> 

> diff --git a/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml b/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml

> new file mode 100644

> index 000000000000..42d11b46a1eb

> --- /dev/null

> +++ b/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml

> @@ -0,0 +1,134 @@

> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)

> +%YAML 1.2

> +---

> +$id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#

> +$schema: http://devicetree.org/meta-schemas/core.yaml#

> +

> +title: SN65DSI83 and SN65DSI84 DSI to LVDS bridge chip

> +

> +maintainers:

> +  - Marek Vasut <marex@denx.de>

> +

> +description: |

> +  Texas Instruments SN65DSI83 1x Single-link MIPI DSI

> +  to 1x Single-link LVDS

> +  https://www.ti.com/lit/gpn/sn65dsi83

> +  Texas Instruments SN65DSI84 1x Single-link MIPI DSI

> +  to 1x Dual-link or 2x Single-link LVDS

> +  https://www.ti.com/lit/gpn/sn65dsi84

> +

> +properties:

> +  compatible:

> +    oneOf:

> +      - const: ti,sn65dsi83

> +      - const: ti,sn65dsi84

> +

> +  reg:

> +    const: 0x2d


There is a strapping pin to select the last bit of the address, so apart 
from 0x2d also 0x2c is valid here.

> +

> +  enable-gpios:

> +    maxItems: 1

> +    description: GPIO specifier for bridge_en pin (active high).

> +

> +  ports:

> +    type: object

> +    additionalProperties: false

> +

> +    properties:

> +      "#address-cells":

> +        const: 1

> +

> +      "#size-cells":

> +        const: 0

> +

> +      port@0:

> +        type: object

> +        additionalProperties: false

> +

> +        description:

> +          Video port for MIPI DSI input

> +

> +        properties:

> +          reg:

> +            const: 0

> +

> +          endpoint:

> +            type: object

> +            additionalProperties: false

> +            properties:

> +              remote-endpoint: true

> +              data-lanes:

> +                description: array of physical DSI data lane indexes.

> +

> +        required:

> +          - reg

> +

> +      port@1:

> +        type: object

> +        additionalProperties: false

> +

> +        description:

> +          Video port for LVDS output (panel or bridge).

> +

> +        properties:

> +          reg:

> +            const: 1

> +

> +          endpoint:

> +            type: object

> +            additionalProperties: false

> +            properties:

> +              remote-endpoint: true

> +

> +        required:

> +          - reg

> +

> +    required:

> +      - "#address-cells"

> +      - "#size-cells"

> +      - port@0

> +      - port@1

> +

> +required:

> +  - compatible

> +  - reg

> +  - enable-gpios

> +  - ports

> +

> +additionalProperties: false

> +

> +examples:

> +  - |

> +    #include <dt-bindings/gpio/gpio.h>

> +

> +    i2c {

> +      #address-cells = <1>;

> +      #size-cells = <0>;

> +

> +      bridge@2d {

> +        compatible = "ti,sn65dsi83";

> +        reg = <0x2d>;

> +

> +        enable-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;

> +

> +        ports {

> +          #address-cells = <1>;

> +          #size-cells = <0>;

> +

> +          port@0 {

> +            reg = <0>;

> +            endpoint {

> +              remote-endpoint = <&dsi0_out>;

> +              data-lanes = <1 2 3 4>;

> +            };

> +          };

> +

> +          port@1 {

> +            reg = <1>;

> +            endpoint {

> +              remote-endpoint = <&panel_in_lvds>;

> +            };

> +          };

> +        };

> +      };

> +    };

>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml b/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml
new file mode 100644
index 000000000000..42d11b46a1eb
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml
@@ -0,0 +1,134 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: SN65DSI83 and SN65DSI84 DSI to LVDS bridge chip
+
+maintainers:
+  - Marek Vasut <marex@denx.de>
+
+description: |
+  Texas Instruments SN65DSI83 1x Single-link MIPI DSI
+  to 1x Single-link LVDS
+  https://www.ti.com/lit/gpn/sn65dsi83
+  Texas Instruments SN65DSI84 1x Single-link MIPI DSI
+  to 1x Dual-link or 2x Single-link LVDS
+  https://www.ti.com/lit/gpn/sn65dsi84
+
+properties:
+  compatible:
+    oneOf:
+      - const: ti,sn65dsi83
+      - const: ti,sn65dsi84
+
+  reg:
+    const: 0x2d
+
+  enable-gpios:
+    maxItems: 1
+    description: GPIO specifier for bridge_en pin (active high).
+
+  ports:
+    type: object
+    additionalProperties: false
+
+    properties:
+      "#address-cells":
+        const: 1
+
+      "#size-cells":
+        const: 0
+
+      port@0:
+        type: object
+        additionalProperties: false
+
+        description:
+          Video port for MIPI DSI input
+
+        properties:
+          reg:
+            const: 0
+
+          endpoint:
+            type: object
+            additionalProperties: false
+            properties:
+              remote-endpoint: true
+              data-lanes:
+                description: array of physical DSI data lane indexes.
+
+        required:
+          - reg
+
+      port@1:
+        type: object
+        additionalProperties: false
+
+        description:
+          Video port for LVDS output (panel or bridge).
+
+        properties:
+          reg:
+            const: 1
+
+          endpoint:
+            type: object
+            additionalProperties: false
+            properties:
+              remote-endpoint: true
+
+        required:
+          - reg
+
+    required:
+      - "#address-cells"
+      - "#size-cells"
+      - port@0
+      - port@1
+
+required:
+  - compatible
+  - reg
+  - enable-gpios
+  - ports
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      bridge@2d {
+        compatible = "ti,sn65dsi83";
+        reg = <0x2d>;
+
+        enable-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
+
+        ports {
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          port@0 {
+            reg = <0>;
+            endpoint {
+              remote-endpoint = <&dsi0_out>;
+              data-lanes = <1 2 3 4>;
+            };
+          };
+
+          port@1 {
+            reg = <1>;
+            endpoint {
+              remote-endpoint = <&panel_in_lvds>;
+            };
+          };
+        };
+      };
+    };