summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/display/st,stm32mp25-lvds.yaml
blob: 14e042156179cb2f2d906422eaff6840da3c91ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/st,stm32mp25-lvds.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: STMicroelectronics STM32 LVDS Display Interface Transmitter

maintainers:
  - Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
  - Yannick Fertre <yannick.fertre@foss.st.com>

description: |
  The STMicroelectronics STM32 LVDS Display Interface Transmitter handles the
  LVDS protocol: it maps the pixels received from the upstream Pixel-DMA (LTDC)
  onto the LVDS PHY.

  It is composed of three sub blocks:
    - LVDS host: handles the LVDS protocol (FPD / OpenLDI) and maps its input
      pixels onto the data lanes of the PHY
    - LVDS PHY: parallelize the data and drives the LVDS data lanes
    - LVDS wrapper: handles top-level settings

  The LVDS controller driver supports the following high-level features:
    - FDP-Link-I and OpenLDI (v0.95) protocols
    - Single-Link or Dual-Link operation
    - Single-Display or Double-Display (with the same content duplicated on both)
    - Flexible Bit-Mapping, including JEIDA and VESA
    - RGB888 or RGB666 output
    - Synchronous design, with one input pixel per clock cycle

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - st,stm32mp255-lvds
          - const: st,stm32mp25-lvds
      - const: st,stm32mp25-lvds

  "#clock-cells":
    const: 0
    description:
      Provides the internal LVDS PHY clock to the framework.

  reg:
    maxItems: 1

  clocks:
    items:
      - description: APB peripheral clock
      - description: Reference clock for the internal PLL

  clock-names:
    items:
      - const: pclk
      - const: ref

  resets:
    maxItems: 1

  access-controllers:
    maxItems: 1

  power-domains:
    maxItems: 1

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          LVDS input port node, connected to the LTDC RGB output port.

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          LVDS output port node, connected to a panel or bridge input port.

    required:
      - port@0
      - port@1

required:
  - compatible
  - "#clock-cells"
  - reg
  - clocks
  - clock-names
  - resets
  - ports

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/st,stm32mp25-rcc.h>
    #include <dt-bindings/reset/st,stm32mp25-rcc.h>

    lvds: lvds@48060000 {
        compatible = "st,stm32mp25-lvds";
        reg = <0x48060000 0x2000>;
        #clock-cells = <0>;
        clocks = <&rcc CK_BUS_LVDS>, <&rcc CK_KER_LVDSPHY>;
        clock-names = "pclk", "ref";
        resets = <&rcc LVDS_R>;

        ports {
            #address-cells = <1>;
            #size-cells = <0>;

            port@0 {
                reg = <0>;
                lvds_in: endpoint {
                   remote-endpoint = <&ltdc_ep1_out>;
                };
            };

            port@1 {
                reg = <1>;
                lvds_out0: endpoint {
                   remote-endpoint = <&lvds_panel_in>;
                };
            };
        };
    };

...