162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/display/bridge/renesas,lvds.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Renesas R-Car LVDS Encoder
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  These DT bindings describe the LVDS encoder embedded in the Renesas R-Car
1462306a36Sopenharmony_ci  Gen2, R-Car Gen3, RZ/G1 and RZ/G2 SoCs.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciproperties:
1762306a36Sopenharmony_ci  compatible:
1862306a36Sopenharmony_ci    enum:
1962306a36Sopenharmony_ci      - renesas,r8a7742-lvds # for RZ/G1H compatible LVDS encoders
2062306a36Sopenharmony_ci      - renesas,r8a7743-lvds # for RZ/G1M compatible LVDS encoders
2162306a36Sopenharmony_ci      - renesas,r8a7744-lvds # for RZ/G1N compatible LVDS encoders
2262306a36Sopenharmony_ci      - renesas,r8a774a1-lvds # for RZ/G2M compatible LVDS encoders
2362306a36Sopenharmony_ci      - renesas,r8a774b1-lvds # for RZ/G2N compatible LVDS encoders
2462306a36Sopenharmony_ci      - renesas,r8a774c0-lvds # for RZ/G2E compatible LVDS encoders
2562306a36Sopenharmony_ci      - renesas,r8a774e1-lvds # for RZ/G2H compatible LVDS encoders
2662306a36Sopenharmony_ci      - renesas,r8a7790-lvds # for R-Car H2 compatible LVDS encoders
2762306a36Sopenharmony_ci      - renesas,r8a7791-lvds # for R-Car M2-W compatible LVDS encoders
2862306a36Sopenharmony_ci      - renesas,r8a7793-lvds # for R-Car M2-N compatible LVDS encoders
2962306a36Sopenharmony_ci      - renesas,r8a7795-lvds # for R-Car H3 compatible LVDS encoders
3062306a36Sopenharmony_ci      - renesas,r8a7796-lvds # for R-Car M3-W compatible LVDS encoders
3162306a36Sopenharmony_ci      - renesas,r8a77961-lvds # for R-Car M3-W+ compatible LVDS encoders
3262306a36Sopenharmony_ci      - renesas,r8a77965-lvds # for R-Car M3-N compatible LVDS encoders
3362306a36Sopenharmony_ci      - renesas,r8a77970-lvds # for R-Car V3M compatible LVDS encoders
3462306a36Sopenharmony_ci      - renesas,r8a77980-lvds # for R-Car V3H compatible LVDS encoders
3562306a36Sopenharmony_ci      - renesas,r8a77990-lvds # for R-Car E3 compatible LVDS encoders
3662306a36Sopenharmony_ci      - renesas,r8a77995-lvds # for R-Car D3 compatible LVDS encoders
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci  reg:
3962306a36Sopenharmony_ci    maxItems: 1
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci  clocks:
4262306a36Sopenharmony_ci    minItems: 1
4362306a36Sopenharmony_ci    maxItems: 4
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  clock-names:
4662306a36Sopenharmony_ci    minItems: 1
4762306a36Sopenharmony_ci    maxItems: 4
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  resets:
5062306a36Sopenharmony_ci    maxItems: 1
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  ports:
5362306a36Sopenharmony_ci    $ref: /schemas/graph.yaml#/properties/ports
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci    properties:
5662306a36Sopenharmony_ci      port@0:
5762306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
5862306a36Sopenharmony_ci        description: Parallel RGB input port
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci      port@1:
6162306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
6262306a36Sopenharmony_ci        description: LVDS output port
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci    required:
6562306a36Sopenharmony_ci      - port@0
6662306a36Sopenharmony_ci      - port@1
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci  power-domains:
6962306a36Sopenharmony_ci    maxItems: 1
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci  renesas,companion:
7262306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
7362306a36Sopenharmony_ci    description:
7462306a36Sopenharmony_ci      phandle to the companion LVDS encoder. This property is mandatory
7562306a36Sopenharmony_ci      for the first LVDS encoder on R-Car D3 and E3, and RZ/G2E SoCs, and shall
7662306a36Sopenharmony_ci      point to the second encoder to be used as a companion in dual-link mode.
7762306a36Sopenharmony_ci      It shall not be set for any other LVDS encoder.
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_cirequired:
8062306a36Sopenharmony_ci  - compatible
8162306a36Sopenharmony_ci  - reg
8262306a36Sopenharmony_ci  - clocks
8362306a36Sopenharmony_ci  - power-domains
8462306a36Sopenharmony_ci  - resets
8562306a36Sopenharmony_ci  - ports
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ciif:
8862306a36Sopenharmony_ci  properties:
8962306a36Sopenharmony_ci    compatible:
9062306a36Sopenharmony_ci      enum:
9162306a36Sopenharmony_ci        - renesas,r8a774c0-lvds
9262306a36Sopenharmony_ci        - renesas,r8a77990-lvds
9362306a36Sopenharmony_ci        - renesas,r8a77995-lvds
9462306a36Sopenharmony_cithen:
9562306a36Sopenharmony_ci  properties:
9662306a36Sopenharmony_ci    clocks:
9762306a36Sopenharmony_ci      minItems: 1
9862306a36Sopenharmony_ci      items:
9962306a36Sopenharmony_ci        - description: Functional clock
10062306a36Sopenharmony_ci        - description: EXTAL input clock
10162306a36Sopenharmony_ci        - description: DU_DOTCLKIN0 input clock
10262306a36Sopenharmony_ci        - description: DU_DOTCLKIN1 input clock
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci    clock-names:
10562306a36Sopenharmony_ci      minItems: 1
10662306a36Sopenharmony_ci      items:
10762306a36Sopenharmony_ci        - const: fck
10862306a36Sopenharmony_ci        # The LVDS encoder can use the EXTAL or DU_DOTCLKINx clocks.
10962306a36Sopenharmony_ci        # These clocks are optional.
11062306a36Sopenharmony_ci        - enum:
11162306a36Sopenharmony_ci            - extal
11262306a36Sopenharmony_ci            - dclkin.0
11362306a36Sopenharmony_ci            - dclkin.1
11462306a36Sopenharmony_ci        - enum:
11562306a36Sopenharmony_ci            - extal
11662306a36Sopenharmony_ci            - dclkin.0
11762306a36Sopenharmony_ci            - dclkin.1
11862306a36Sopenharmony_ci        - enum:
11962306a36Sopenharmony_ci            - extal
12062306a36Sopenharmony_ci            - dclkin.0
12162306a36Sopenharmony_ci            - dclkin.1
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci  required:
12462306a36Sopenharmony_ci    - clock-names
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_cielse:
12762306a36Sopenharmony_ci  properties:
12862306a36Sopenharmony_ci    clocks:
12962306a36Sopenharmony_ci      items:
13062306a36Sopenharmony_ci        - description: Functional clock
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci    clock-names:
13362306a36Sopenharmony_ci      items:
13462306a36Sopenharmony_ci        - const: fck
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci    renesas,companion: false
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ciadditionalProperties: false
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ciexamples:
14162306a36Sopenharmony_ci  - |
14262306a36Sopenharmony_ci    #include <dt-bindings/clock/renesas-cpg-mssr.h>
14362306a36Sopenharmony_ci    #include <dt-bindings/power/r8a7795-sysc.h>
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci    lvds@feb90000 {
14662306a36Sopenharmony_ci        compatible = "renesas,r8a7795-lvds";
14762306a36Sopenharmony_ci        reg = <0xfeb90000 0x14>;
14862306a36Sopenharmony_ci        clocks = <&cpg CPG_MOD 727>;
14962306a36Sopenharmony_ci        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
15062306a36Sopenharmony_ci        resets = <&cpg 727>;
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci        ports {
15362306a36Sopenharmony_ci            #address-cells = <1>;
15462306a36Sopenharmony_ci            #size-cells = <0>;
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci            port@0 {
15762306a36Sopenharmony_ci                reg = <0>;
15862306a36Sopenharmony_ci                lvds_in: endpoint {
15962306a36Sopenharmony_ci                    remote-endpoint = <&du_out_lvds0>;
16062306a36Sopenharmony_ci                };
16162306a36Sopenharmony_ci            };
16262306a36Sopenharmony_ci            port@1 {
16362306a36Sopenharmony_ci                reg = <1>;
16462306a36Sopenharmony_ci                lvds_out: endpoint {
16562306a36Sopenharmony_ci                    remote-endpoint = <&panel_in>;
16662306a36Sopenharmony_ci                };
16762306a36Sopenharmony_ci            };
16862306a36Sopenharmony_ci        };
16962306a36Sopenharmony_ci    };
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ci  - |
17262306a36Sopenharmony_ci    #include <dt-bindings/clock/renesas-cpg-mssr.h>
17362306a36Sopenharmony_ci    #include <dt-bindings/power/r8a77990-sysc.h>
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci    lvds0: lvds@feb90000 {
17662306a36Sopenharmony_ci        compatible = "renesas,r8a77990-lvds";
17762306a36Sopenharmony_ci        reg = <0xfeb90000 0x20>;
17862306a36Sopenharmony_ci        clocks = <&cpg CPG_MOD 727>,
17962306a36Sopenharmony_ci                 <&x13_clk>,
18062306a36Sopenharmony_ci                 <&extal_clk>;
18162306a36Sopenharmony_ci        clock-names = "fck", "dclkin.0", "extal";
18262306a36Sopenharmony_ci        power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
18362306a36Sopenharmony_ci        resets = <&cpg 727>;
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ci        renesas,companion = <&lvds1>;
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci        ports {
18862306a36Sopenharmony_ci            #address-cells = <1>;
18962306a36Sopenharmony_ci            #size-cells = <0>;
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ci            port@0 {
19262306a36Sopenharmony_ci                reg = <0>;
19362306a36Sopenharmony_ci                lvds0_in: endpoint {
19462306a36Sopenharmony_ci                    remote-endpoint = <&du_out_lvds0>;
19562306a36Sopenharmony_ci                };
19662306a36Sopenharmony_ci            };
19762306a36Sopenharmony_ci            port@1 {
19862306a36Sopenharmony_ci                reg = <1>;
19962306a36Sopenharmony_ci                lvds0_out: endpoint {
20062306a36Sopenharmony_ci                    remote-endpoint = <&panel_in1>;
20162306a36Sopenharmony_ci                };
20262306a36Sopenharmony_ci            };
20362306a36Sopenharmony_ci        };
20462306a36Sopenharmony_ci    };
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ci    lvds1: lvds@feb90100 {
20762306a36Sopenharmony_ci        compatible = "renesas,r8a77990-lvds";
20862306a36Sopenharmony_ci        reg = <0xfeb90100 0x20>;
20962306a36Sopenharmony_ci        clocks = <&cpg CPG_MOD 727>,
21062306a36Sopenharmony_ci                 <&x13_clk>,
21162306a36Sopenharmony_ci                 <&extal_clk>;
21262306a36Sopenharmony_ci        clock-names = "fck", "dclkin.0", "extal";
21362306a36Sopenharmony_ci        power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
21462306a36Sopenharmony_ci        resets = <&cpg 726>;
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ci        ports {
21762306a36Sopenharmony_ci            #address-cells = <1>;
21862306a36Sopenharmony_ci            #size-cells = <0>;
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_ci            port@0 {
22162306a36Sopenharmony_ci                reg = <0>;
22262306a36Sopenharmony_ci                lvds1_in: endpoint {
22362306a36Sopenharmony_ci                    remote-endpoint = <&du_out_lvds1>;
22462306a36Sopenharmony_ci                };
22562306a36Sopenharmony_ci            };
22662306a36Sopenharmony_ci            port@1 {
22762306a36Sopenharmony_ci                reg = <1>;
22862306a36Sopenharmony_ci                lvds1_out: endpoint {
22962306a36Sopenharmony_ci                    remote-endpoint = <&panel_in2>;
23062306a36Sopenharmony_ci                };
23162306a36Sopenharmony_ci            };
23262306a36Sopenharmony_ci        };
23362306a36Sopenharmony_ci    };
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_ci...
236