18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/display/bridge/renesas,lvds.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Renesas R-Car LVDS Encoder
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |
138c2ecf20Sopenharmony_ci  These DT bindings describe the LVDS encoder embedded in the Renesas R-Car
148c2ecf20Sopenharmony_ci  Gen2, R-Car Gen3, RZ/G1 and RZ/G2 SoCs.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciproperties:
178c2ecf20Sopenharmony_ci  compatible:
188c2ecf20Sopenharmony_ci    enum:
198c2ecf20Sopenharmony_ci      - renesas,r8a7742-lvds # for RZ/G1H compatible LVDS encoders
208c2ecf20Sopenharmony_ci      - renesas,r8a7743-lvds # for RZ/G1M compatible LVDS encoders
218c2ecf20Sopenharmony_ci      - renesas,r8a7744-lvds # for RZ/G1N compatible LVDS encoders
228c2ecf20Sopenharmony_ci      - renesas,r8a774a1-lvds # for RZ/G2M compatible LVDS encoders
238c2ecf20Sopenharmony_ci      - renesas,r8a774b1-lvds # for RZ/G2N compatible LVDS encoders
248c2ecf20Sopenharmony_ci      - renesas,r8a774c0-lvds # for RZ/G2E compatible LVDS encoders
258c2ecf20Sopenharmony_ci      - renesas,r8a774e1-lvds # for RZ/G2H compatible LVDS encoders
268c2ecf20Sopenharmony_ci      - renesas,r8a7790-lvds # for R-Car H2 compatible LVDS encoders
278c2ecf20Sopenharmony_ci      - renesas,r8a7791-lvds # for R-Car M2-W compatible LVDS encoders
288c2ecf20Sopenharmony_ci      - renesas,r8a7793-lvds # for R-Car M2-N compatible LVDS encoders
298c2ecf20Sopenharmony_ci      - renesas,r8a7795-lvds # for R-Car H3 compatible LVDS encoders
308c2ecf20Sopenharmony_ci      - renesas,r8a7796-lvds # for R-Car M3-W compatible LVDS encoders
318c2ecf20Sopenharmony_ci      - renesas,r8a77965-lvds # for R-Car M3-N compatible LVDS encoders
328c2ecf20Sopenharmony_ci      - renesas,r8a77970-lvds # for R-Car V3M compatible LVDS encoders
338c2ecf20Sopenharmony_ci      - renesas,r8a77980-lvds # for R-Car V3H compatible LVDS encoders
348c2ecf20Sopenharmony_ci      - renesas,r8a77990-lvds # for R-Car E3 compatible LVDS encoders
358c2ecf20Sopenharmony_ci      - renesas,r8a77995-lvds # for R-Car D3 compatible LVDS encoders
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci  reg:
388c2ecf20Sopenharmony_ci    maxItems: 1
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci  clocks:
418c2ecf20Sopenharmony_ci    minItems: 1
428c2ecf20Sopenharmony_ci    maxItems: 4
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci  clock-names:
458c2ecf20Sopenharmony_ci    minItems: 1
468c2ecf20Sopenharmony_ci    maxItems: 4
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci  resets:
498c2ecf20Sopenharmony_ci    maxItems: 1
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci  ports:
528c2ecf20Sopenharmony_ci    type: object
538c2ecf20Sopenharmony_ci    description: |
548c2ecf20Sopenharmony_ci      This device has two video ports. Their connections are modelled using the
558c2ecf20Sopenharmony_ci      OF graph bindings specified in Documentation/devicetree/bindings/graph.txt.
568c2ecf20Sopenharmony_ci      Each port shall have a single endpoint.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci    properties:
598c2ecf20Sopenharmony_ci      '#address-cells':
608c2ecf20Sopenharmony_ci        const: 1
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci      '#size-cells':
638c2ecf20Sopenharmony_ci        const: 0
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci      port@0:
668c2ecf20Sopenharmony_ci        type: object
678c2ecf20Sopenharmony_ci        description: Parallel RGB input port
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci      port@1:
708c2ecf20Sopenharmony_ci        type: object
718c2ecf20Sopenharmony_ci        description: LVDS output port
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci    required:
748c2ecf20Sopenharmony_ci      - port@0
758c2ecf20Sopenharmony_ci      - port@1
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci    additionalProperties: false
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci  power-domains:
808c2ecf20Sopenharmony_ci    maxItems: 1
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci  renesas,companion:
838c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
848c2ecf20Sopenharmony_ci    description:
858c2ecf20Sopenharmony_ci      phandle to the companion LVDS encoder. This property is mandatory
868c2ecf20Sopenharmony_ci      for the first LVDS encoder on D3 and E3 SoCs, and shall point to
878c2ecf20Sopenharmony_ci      the second encoder to be used as a companion in dual-link mode. It
888c2ecf20Sopenharmony_ci      shall not be set for any other LVDS encoder.
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_cirequired:
918c2ecf20Sopenharmony_ci  - compatible
928c2ecf20Sopenharmony_ci  - reg
938c2ecf20Sopenharmony_ci  - clocks
948c2ecf20Sopenharmony_ci  - power-domains
958c2ecf20Sopenharmony_ci  - resets
968c2ecf20Sopenharmony_ci  - ports
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ciif:
998c2ecf20Sopenharmony_ci  properties:
1008c2ecf20Sopenharmony_ci    compatible:
1018c2ecf20Sopenharmony_ci      enum:
1028c2ecf20Sopenharmony_ci        - renesas,r8a774c0-lvds
1038c2ecf20Sopenharmony_ci        - renesas,r8a77990-lvds
1048c2ecf20Sopenharmony_ci        - renesas,r8a77995-lvds
1058c2ecf20Sopenharmony_cithen:
1068c2ecf20Sopenharmony_ci  properties:
1078c2ecf20Sopenharmony_ci    clocks:
1088c2ecf20Sopenharmony_ci      minItems: 1
1098c2ecf20Sopenharmony_ci      maxItems: 4
1108c2ecf20Sopenharmony_ci      items:
1118c2ecf20Sopenharmony_ci        - description: Functional clock
1128c2ecf20Sopenharmony_ci        - description: EXTAL input clock
1138c2ecf20Sopenharmony_ci        - description: DU_DOTCLKIN0 input clock
1148c2ecf20Sopenharmony_ci        - description: DU_DOTCLKIN1 input clock
1158c2ecf20Sopenharmony_ci
1168c2ecf20Sopenharmony_ci    clock-names:
1178c2ecf20Sopenharmony_ci      minItems: 1
1188c2ecf20Sopenharmony_ci      maxItems: 4
1198c2ecf20Sopenharmony_ci      items:
1208c2ecf20Sopenharmony_ci        - const: fck
1218c2ecf20Sopenharmony_ci        # The LVDS encoder can use the EXTAL or DU_DOTCLKINx clocks.
1228c2ecf20Sopenharmony_ci        # These clocks are optional.
1238c2ecf20Sopenharmony_ci        - enum:
1248c2ecf20Sopenharmony_ci            - extal
1258c2ecf20Sopenharmony_ci            - dclkin.0
1268c2ecf20Sopenharmony_ci            - dclkin.1
1278c2ecf20Sopenharmony_ci        - enum:
1288c2ecf20Sopenharmony_ci            - extal
1298c2ecf20Sopenharmony_ci            - dclkin.0
1308c2ecf20Sopenharmony_ci            - dclkin.1
1318c2ecf20Sopenharmony_ci        - enum:
1328c2ecf20Sopenharmony_ci            - extal
1338c2ecf20Sopenharmony_ci            - dclkin.0
1348c2ecf20Sopenharmony_ci            - dclkin.1
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ci  required:
1378c2ecf20Sopenharmony_ci    - clock-names
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_cielse:
1408c2ecf20Sopenharmony_ci  properties:
1418c2ecf20Sopenharmony_ci    clocks:
1428c2ecf20Sopenharmony_ci      maxItems: 1
1438c2ecf20Sopenharmony_ci      items:
1448c2ecf20Sopenharmony_ci        - description: Functional clock
1458c2ecf20Sopenharmony_ci
1468c2ecf20Sopenharmony_ci    clock-names:
1478c2ecf20Sopenharmony_ci      maxItems: 1
1488c2ecf20Sopenharmony_ci      items:
1498c2ecf20Sopenharmony_ci        - const: fck
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci    renesas,companion: false
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ciadditionalProperties: false
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ciexamples:
1568c2ecf20Sopenharmony_ci  - |
1578c2ecf20Sopenharmony_ci    #include <dt-bindings/clock/renesas-cpg-mssr.h>
1588c2ecf20Sopenharmony_ci    #include <dt-bindings/power/r8a7795-sysc.h>
1598c2ecf20Sopenharmony_ci
1608c2ecf20Sopenharmony_ci    lvds@feb90000 {
1618c2ecf20Sopenharmony_ci        compatible = "renesas,r8a7795-lvds";
1628c2ecf20Sopenharmony_ci        reg = <0xfeb90000 0x14>;
1638c2ecf20Sopenharmony_ci        clocks = <&cpg CPG_MOD 727>;
1648c2ecf20Sopenharmony_ci        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
1658c2ecf20Sopenharmony_ci        resets = <&cpg 727>;
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ci        ports {
1688c2ecf20Sopenharmony_ci            #address-cells = <1>;
1698c2ecf20Sopenharmony_ci            #size-cells = <0>;
1708c2ecf20Sopenharmony_ci
1718c2ecf20Sopenharmony_ci            port@0 {
1728c2ecf20Sopenharmony_ci                reg = <0>;
1738c2ecf20Sopenharmony_ci                lvds_in: endpoint {
1748c2ecf20Sopenharmony_ci                    remote-endpoint = <&du_out_lvds0>;
1758c2ecf20Sopenharmony_ci                };
1768c2ecf20Sopenharmony_ci            };
1778c2ecf20Sopenharmony_ci            port@1 {
1788c2ecf20Sopenharmony_ci                reg = <1>;
1798c2ecf20Sopenharmony_ci                lvds_out: endpoint {
1808c2ecf20Sopenharmony_ci                    remote-endpoint = <&panel_in>;
1818c2ecf20Sopenharmony_ci                };
1828c2ecf20Sopenharmony_ci            };
1838c2ecf20Sopenharmony_ci        };
1848c2ecf20Sopenharmony_ci    };
1858c2ecf20Sopenharmony_ci
1868c2ecf20Sopenharmony_ci  - |
1878c2ecf20Sopenharmony_ci    #include <dt-bindings/clock/renesas-cpg-mssr.h>
1888c2ecf20Sopenharmony_ci    #include <dt-bindings/power/r8a77990-sysc.h>
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ci    lvds0: lvds@feb90000 {
1918c2ecf20Sopenharmony_ci        compatible = "renesas,r8a77990-lvds";
1928c2ecf20Sopenharmony_ci        reg = <0xfeb90000 0x20>;
1938c2ecf20Sopenharmony_ci        clocks = <&cpg CPG_MOD 727>,
1948c2ecf20Sopenharmony_ci                 <&x13_clk>,
1958c2ecf20Sopenharmony_ci                 <&extal_clk>;
1968c2ecf20Sopenharmony_ci        clock-names = "fck", "dclkin.0", "extal";
1978c2ecf20Sopenharmony_ci        power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
1988c2ecf20Sopenharmony_ci        resets = <&cpg 727>;
1998c2ecf20Sopenharmony_ci
2008c2ecf20Sopenharmony_ci        renesas,companion = <&lvds1>;
2018c2ecf20Sopenharmony_ci
2028c2ecf20Sopenharmony_ci        ports {
2038c2ecf20Sopenharmony_ci            #address-cells = <1>;
2048c2ecf20Sopenharmony_ci            #size-cells = <0>;
2058c2ecf20Sopenharmony_ci
2068c2ecf20Sopenharmony_ci            port@0 {
2078c2ecf20Sopenharmony_ci                reg = <0>;
2088c2ecf20Sopenharmony_ci                lvds0_in: endpoint {
2098c2ecf20Sopenharmony_ci                    remote-endpoint = <&du_out_lvds0>;
2108c2ecf20Sopenharmony_ci                };
2118c2ecf20Sopenharmony_ci            };
2128c2ecf20Sopenharmony_ci            port@1 {
2138c2ecf20Sopenharmony_ci                reg = <1>;
2148c2ecf20Sopenharmony_ci                lvds0_out: endpoint {
2158c2ecf20Sopenharmony_ci                    remote-endpoint = <&panel_in1>;
2168c2ecf20Sopenharmony_ci                };
2178c2ecf20Sopenharmony_ci            };
2188c2ecf20Sopenharmony_ci        };
2198c2ecf20Sopenharmony_ci    };
2208c2ecf20Sopenharmony_ci
2218c2ecf20Sopenharmony_ci    lvds1: lvds@feb90100 {
2228c2ecf20Sopenharmony_ci        compatible = "renesas,r8a77990-lvds";
2238c2ecf20Sopenharmony_ci        reg = <0xfeb90100 0x20>;
2248c2ecf20Sopenharmony_ci        clocks = <&cpg CPG_MOD 727>,
2258c2ecf20Sopenharmony_ci                 <&x13_clk>,
2268c2ecf20Sopenharmony_ci                 <&extal_clk>;
2278c2ecf20Sopenharmony_ci        clock-names = "fck", "dclkin.0", "extal";
2288c2ecf20Sopenharmony_ci        power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
2298c2ecf20Sopenharmony_ci        resets = <&cpg 726>;
2308c2ecf20Sopenharmony_ci
2318c2ecf20Sopenharmony_ci        ports {
2328c2ecf20Sopenharmony_ci            #address-cells = <1>;
2338c2ecf20Sopenharmony_ci            #size-cells = <0>;
2348c2ecf20Sopenharmony_ci
2358c2ecf20Sopenharmony_ci            port@0 {
2368c2ecf20Sopenharmony_ci                reg = <0>;
2378c2ecf20Sopenharmony_ci                lvds1_in: endpoint {
2388c2ecf20Sopenharmony_ci                    remote-endpoint = <&du_out_lvds1>;
2398c2ecf20Sopenharmony_ci                };
2408c2ecf20Sopenharmony_ci            };
2418c2ecf20Sopenharmony_ci            port@1 {
2428c2ecf20Sopenharmony_ci                reg = <1>;
2438c2ecf20Sopenharmony_ci                lvds1_out: endpoint {
2448c2ecf20Sopenharmony_ci                    remote-endpoint = <&panel_in2>;
2458c2ecf20Sopenharmony_ci                };
2468c2ecf20Sopenharmony_ci            };
2478c2ecf20Sopenharmony_ci        };
2488c2ecf20Sopenharmony_ci    };
2498c2ecf20Sopenharmony_ci
2508c2ecf20Sopenharmony_ci...
251