Re: [PATCH v5 1/2] dt-binding: Add DSI/LVDS TC358775 bridge bindings

From: Sam Ravnborg
Date: Wed Jul 01 2020 - 05:19:51 EST


Hi Vinay.

On Wed, Jul 01, 2020 at 12:33:36PM +0530, Vinay Simha BN wrote:
> This driver is tested with two panels with Apq8016-IFC6309 board
> https://www.inforcecomputing.com/products/single-board-computers-sbc/qualcomm-snapdragon-410-inforce-6309-micro-sbc
>
> 1. 1366x768@60 auo,b101xtn01 data-mapping = "jeida-24"
> 2. 800x480@60 innolux,at070tn92 data-mapping = "vesa-24"
>
> Signed-off-by: Vinay Simha BN <simhavcs@xxxxxxxxx>
>
> ---
> v1:
> Initial version wast .txt file
>
> v2:
> From txt to yaml file format
>
> v3:
> * Andrzej Hajda review comments incorporated
> dual port lvds implemented
>
> * Laurent Pinchart review comments incorporated
> dsi lanes property removed and it is dynamically
> picked from the dsi ports
> VESA/JEIDA format picked from panel-lvds dts
> ---
> .../display/bridge/toshiba,tc358775.yaml | 204 ++++++++++++++++++
> 1 file changed, 204 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.yaml
>
> diff --git a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.yaml b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.yaml
> new file mode 100644
> index 000000000000..ec53d62d408b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.yaml
> @@ -0,0 +1,204 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/bridge/toshiba,tc358775.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Toshiba TC358775 DSI to LVDS bridge bindings
> +
> +maintainers:
> + - Vinay Simha BN <simhavcs@xxxxxxxxx>
> +
> +description: |
> + This binding supports DSI to LVDS bridge TC358775
> +
> +properties:
> + compatible:
> + const: toshiba,tc358775
> +
> + reg:
> + maxItems: 1
> + description: i2c address of the bridge, 0x0f
> +
> + vdd-supply:
> + maxItems: 1
> + description: 1.2V LVDS Power Supply
> +
> + vddio-supply:
> + maxItems: 1
> + description: 1.8V IO Power Supply
> +
> + stby-gpios:
> + maxItems: 1
> + description: Standby pin, Low active
> +
> + reset-gpios:
> + maxItems: 1
> + description: Hardware reset, Low active
> +
> + ports:
> + type: object
> + description:
> + A node containing input and output port nodes with endpoint definitions
> + as documented in
> + Documentation/devicetree/bindings/media/video-interfaces.txt
> + properties:
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 0
> +
> + port@0:
> + type: object
> + description: |
> + DSI Input. The remote endpoint phandle should be a
> + reference to a valid mipi_dsi_host device node.
> +
> + port@1:
> + type: object
> + description: |
> + Video port for LVDS output (panel or connector).
> +
> + port@2:
> + type: object
> + description: |
> + Video port for Dual link LVDS output (panel or connector).
> +
> + required:
> + - port@0
> + - port@1
> +
> +required:
> + - compatible
> + - reg
> + - vdd-supply
> + - vddio-supply
> + - stby-gpios
> + - reset-gpios
> + - ports
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> +
> + i2c@78b8000 {
> + /* On High speed expansion */
> + label = "HS-I2C2";
> + reg = <0x078b8000 0x500>;
> + clock-frequency = <400000>; /* fastmode operation */
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + tc_bridge: bridge@f {
> + compatible = "toshiba,tc358775";
> + reg = <0x0f>;
> +
> + vdd-supply = <&pm8916_l2>;
> + vddio-supply = <&pm8916_l6>;
> +
> + stby-gpios = <&msmgpio 99 GPIO_ACTIVE_LOW>;
> + reset-gpios = <&msmgpio 72 GPIO_ACTIVE_LOW>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + d2l_in_test: endpoint {
> + remote-endpoint = <&dsi0_out>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> + lvds_out: endpoint {
> + remote-endpoint = <&panel_in>;
> + };
> + };
> + };
> + };
> + };
> +
> + dsi@1a98000 {
> + reg = <0x1a98000 0x25c>;
> + reg-names = "dsi_ctrl";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + port@1 {
> + reg = <1>;
> + dsi0_out: endpoint {
> + remote-endpoint = <&d2l_in_test>;
> + data-lanes = <0 1 2 3>;
> + };
> + };
> + };
> + };
> +
Fix indent. One of the '}' is indented one space too much.


> + - |
> + i2c@78b8000 {
> + /* On High speed expansion */
> + label = "HS-I2C2";
> + reg = <0x078b8000 0x500>;
> + clock-frequency = <400000>; /* fastmode operation */
> + #address-cells = <1>;
> + #size-cells = <0>;
What is the purpose with the second example?
Does it explain the binding better in some way?

The examples shall help understanding the binding, not help
understanding the HW. The latter is the role of the binding.


> +
> + tc_bridge_dual: bridge@f {
> + compatible = "toshiba,tc358775";
> + reg = <0x0f>;
> +
> + vdd-supply = <&pm8916_l2>;
> + vddio-supply = <&pm8916_l6>;
> +
> + stby-gpios = <&msmgpio 99 GPIO_ACTIVE_LOW>;
> + reset-gpios = <&msmgpio 72 GPIO_ACTIVE_LOW>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + d2l_in_dual: endpoint {
> + remote-endpoint = <&dsi0_out_dual>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> + lvds0_out: endpoint {
> + remote-endpoint = <&panel_in0>;
> + };
> + };
> +
> + port@2 {
> + reg = <2>;
> + lvds1_out: endpoint {
> + remote-endpoint = <&panel_in1>;
> + };
> + };
> + };
> + };
> + };
> +
> + dsi@1a98000 {
> + reg = <0x1a98000 0x25c>;
> + reg-names = "dsi_ctrl";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + port@1 {
> + reg = <1>;
> + dsi0_out_dual: endpoint {
> + remote-endpoint = <&d2l_in_dual>;
> + data-lanes = <0 1 2 3>;
> + };
> + };
> + };
> + };
If this example is kept then fix indent of '}'.

Sam
> +...
> --
> 2.17.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/dri-devel