xref: /freebsd/sys/contrib/device-tree/Bindings/display/samsung/samsung,fimd.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only
2c9ccf3a3SEmmanuel Vadot%YAML 1.2
3c9ccf3a3SEmmanuel Vadot---
4c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/display/samsung/samsung,fimd.yaml#
5c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c9ccf3a3SEmmanuel Vadot
7c9ccf3a3SEmmanuel Vadottitle: Samsung S3C/S5P/Exynos SoC Fully Interactive Mobile Display (FIMD)
8c9ccf3a3SEmmanuel Vadot
9c9ccf3a3SEmmanuel Vadotmaintainers:
10c9ccf3a3SEmmanuel Vadot  - Inki Dae <inki.dae@samsung.com>
11c9ccf3a3SEmmanuel Vadot  - Seung-Woo Kim <sw0312.kim@samsung.com>
12c9ccf3a3SEmmanuel Vadot  - Kyungmin Park <kyungmin.park@samsung.com>
13c9ccf3a3SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
14c9ccf3a3SEmmanuel Vadot
15c9ccf3a3SEmmanuel Vadotproperties:
16c9ccf3a3SEmmanuel Vadot  compatible:
17c9ccf3a3SEmmanuel Vadot    enum:
18c9ccf3a3SEmmanuel Vadot      - samsung,s3c2443-fimd
19c9ccf3a3SEmmanuel Vadot      - samsung,s3c6400-fimd
20c9ccf3a3SEmmanuel Vadot      - samsung,s5pv210-fimd
21c9ccf3a3SEmmanuel Vadot      - samsung,exynos3250-fimd
22c9ccf3a3SEmmanuel Vadot      - samsung,exynos4210-fimd
23c9ccf3a3SEmmanuel Vadot      - samsung,exynos5250-fimd
24c9ccf3a3SEmmanuel Vadot      - samsung,exynos5420-fimd
25c9ccf3a3SEmmanuel Vadot
26c9ccf3a3SEmmanuel Vadot  '#address-cells':
27c9ccf3a3SEmmanuel Vadot    const: 1
28c9ccf3a3SEmmanuel Vadot
29c9ccf3a3SEmmanuel Vadot  clocks:
30c9ccf3a3SEmmanuel Vadot    maxItems: 2
31c9ccf3a3SEmmanuel Vadot
32c9ccf3a3SEmmanuel Vadot  clock-names:
33c9ccf3a3SEmmanuel Vadot    items:
34c9ccf3a3SEmmanuel Vadot      - const: sclk_fimd
35c9ccf3a3SEmmanuel Vadot      - const: fimd
36c9ccf3a3SEmmanuel Vadot
37c9ccf3a3SEmmanuel Vadot  display-timings:
38c9ccf3a3SEmmanuel Vadot    $ref: ../panel/display-timings.yaml#
39c9ccf3a3SEmmanuel Vadot
40c9ccf3a3SEmmanuel Vadot  i80-if-timings:
41c9ccf3a3SEmmanuel Vadot    type: object
42*7ef62cebSEmmanuel Vadot    additionalProperties: false
43c9ccf3a3SEmmanuel Vadot    description: |
44c9ccf3a3SEmmanuel Vadot      Timing configuration for lcd i80 interface support.
45c9ccf3a3SEmmanuel Vadot      The parameters are defined as::
46c9ccf3a3SEmmanuel Vadot      VCLK(internal)  __|??????|_____|??????|_____|??????|_____|??????|_____|??
47c9ccf3a3SEmmanuel Vadot                        :            :            :            :            :
48c9ccf3a3SEmmanuel Vadot      Address Output  --:<XXXXXXXXXXX:XXXXXXXXXXXX:XXXXXXXXXXXX:XXXXXXXXXXXX:XX
49c9ccf3a3SEmmanuel Vadot                        | cs-setup+1 |            :            :            :
50c9ccf3a3SEmmanuel Vadot                        |<---------->|            :            :            :
51c9ccf3a3SEmmanuel Vadot      Chip Select     ???????????????|____________:____________:____________|??
52c9ccf3a3SEmmanuel Vadot                                     | wr-setup+1 |            | wr-hold+1  |
53c9ccf3a3SEmmanuel Vadot                                     |<---------->|            |<---------->|
54c9ccf3a3SEmmanuel Vadot      Write Enable    ????????????????????????????|____________|???????????????
55c9ccf3a3SEmmanuel Vadot                                                  | wr-active+1|
56c9ccf3a3SEmmanuel Vadot                                                  |<---------->|
57c9ccf3a3SEmmanuel Vadot      Video Data      ----------------------------<XXXXXXXXXXXXXXXXXXXXXXXXX>--
58c9ccf3a3SEmmanuel Vadot
59c9ccf3a3SEmmanuel Vadot    properties:
60c9ccf3a3SEmmanuel Vadot      cs-setup:
61c9ccf3a3SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
62c9ccf3a3SEmmanuel Vadot        description:
63c9ccf3a3SEmmanuel Vadot          Clock cycles for the active period of address signal is enabled until
64c9ccf3a3SEmmanuel Vadot          chip select is enabled.
65c9ccf3a3SEmmanuel Vadot        default: 0
66c9ccf3a3SEmmanuel Vadot
67c9ccf3a3SEmmanuel Vadot      wr-active:
68c9ccf3a3SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
69c9ccf3a3SEmmanuel Vadot        description:
70c9ccf3a3SEmmanuel Vadot          Clock cycles for the active period of CS is enabled.
71c9ccf3a3SEmmanuel Vadot        default: 1
72c9ccf3a3SEmmanuel Vadot
73c9ccf3a3SEmmanuel Vadot      wr-hold:
74c9ccf3a3SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
75c9ccf3a3SEmmanuel Vadot        description:
76c9ccf3a3SEmmanuel Vadot          Clock cycles for the active period of CS is disabled until write
77c9ccf3a3SEmmanuel Vadot          signal is disabled.
78c9ccf3a3SEmmanuel Vadot        default: 0
79c9ccf3a3SEmmanuel Vadot
80c9ccf3a3SEmmanuel Vadot      wr-setup:
81c9ccf3a3SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
82c9ccf3a3SEmmanuel Vadot        description:
83c9ccf3a3SEmmanuel Vadot          Clock cycles for the active period of CS signal is enabled until
84c9ccf3a3SEmmanuel Vadot          write signal is enabled.
85c9ccf3a3SEmmanuel Vadot        default: 0
86c9ccf3a3SEmmanuel Vadot
87c9ccf3a3SEmmanuel Vadot  iommus:
88c9ccf3a3SEmmanuel Vadot    minItems: 1
89c9ccf3a3SEmmanuel Vadot    maxItems: 2
90c9ccf3a3SEmmanuel Vadot
91c9ccf3a3SEmmanuel Vadot  iommu-names:
92c9ccf3a3SEmmanuel Vadot    items:
93c9ccf3a3SEmmanuel Vadot      - const: m0
94c9ccf3a3SEmmanuel Vadot      - const: m1
95c9ccf3a3SEmmanuel Vadot
96c9ccf3a3SEmmanuel Vadot  interrupts:
97c9ccf3a3SEmmanuel Vadot    items:
98c9ccf3a3SEmmanuel Vadot      - description: FIFO level
99c9ccf3a3SEmmanuel Vadot      - description: VSYNC
100c9ccf3a3SEmmanuel Vadot      - description: LCD system
101c9ccf3a3SEmmanuel Vadot
102c9ccf3a3SEmmanuel Vadot  interrupt-names:
103c9ccf3a3SEmmanuel Vadot    items:
104c9ccf3a3SEmmanuel Vadot      - const: fifo
105c9ccf3a3SEmmanuel Vadot      - const: vsync
106c9ccf3a3SEmmanuel Vadot      - const: lcd_sys
107c9ccf3a3SEmmanuel Vadot
108c9ccf3a3SEmmanuel Vadot  power-domains:
109c9ccf3a3SEmmanuel Vadot    maxItems: 1
110c9ccf3a3SEmmanuel Vadot
111c9ccf3a3SEmmanuel Vadot  reg:
112c9ccf3a3SEmmanuel Vadot    maxItems: 1
113c9ccf3a3SEmmanuel Vadot
114c9ccf3a3SEmmanuel Vadot  samsung,invert-vden:
115c9ccf3a3SEmmanuel Vadot    type: boolean
116c9ccf3a3SEmmanuel Vadot    description:
117c9ccf3a3SEmmanuel Vadot      Video enable signal is inverted.
118c9ccf3a3SEmmanuel Vadot
119c9ccf3a3SEmmanuel Vadot  samsung,invert-vclk:
120c9ccf3a3SEmmanuel Vadot    type: boolean
121c9ccf3a3SEmmanuel Vadot    description:
122c9ccf3a3SEmmanuel Vadot      Video clock signal is inverted.
123c9ccf3a3SEmmanuel Vadot
124c9ccf3a3SEmmanuel Vadot  samsung,sysreg:
125c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
126c9ccf3a3SEmmanuel Vadot    description:
127c9ccf3a3SEmmanuel Vadot      Phandle to System Register syscon.
128c9ccf3a3SEmmanuel Vadot
129c9ccf3a3SEmmanuel Vadot  '#size-cells':
130c9ccf3a3SEmmanuel Vadot    const: 0
131c9ccf3a3SEmmanuel Vadot
132c9ccf3a3SEmmanuel VadotpatternProperties:
133c9ccf3a3SEmmanuel Vadot  "^port@[0-4]+$":
134c9ccf3a3SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/port
135c9ccf3a3SEmmanuel Vadot    description: |
136c9ccf3a3SEmmanuel Vadot      Contains ports with port with index::
137c9ccf3a3SEmmanuel Vadot       0 - for CAMIF0 input,
138c9ccf3a3SEmmanuel Vadot       1 - for CAMIF1 input,
139c9ccf3a3SEmmanuel Vadot       2 - for CAMIF2 input,
140c9ccf3a3SEmmanuel Vadot       3 - for parallel output,
141c9ccf3a3SEmmanuel Vadot       4 - for write-back interface
142c9ccf3a3SEmmanuel Vadot
143c9ccf3a3SEmmanuel Vadotrequired:
144c9ccf3a3SEmmanuel Vadot  - compatible
145c9ccf3a3SEmmanuel Vadot  - clocks
146c9ccf3a3SEmmanuel Vadot  - clock-names
147c9ccf3a3SEmmanuel Vadot  - interrupts
148c9ccf3a3SEmmanuel Vadot  - interrupt-names
149c9ccf3a3SEmmanuel Vadot  - reg
150c9ccf3a3SEmmanuel Vadot
151c9ccf3a3SEmmanuel VadotallOf:
152c9ccf3a3SEmmanuel Vadot  - if:
153c9ccf3a3SEmmanuel Vadot      properties:
154c9ccf3a3SEmmanuel Vadot        compatible:
155c9ccf3a3SEmmanuel Vadot          contains:
156c9ccf3a3SEmmanuel Vadot            const: samsung,exynos5420-fimd
157c9ccf3a3SEmmanuel Vadot    then:
158c9ccf3a3SEmmanuel Vadot      properties:
159c9ccf3a3SEmmanuel Vadot        iommus:
160c9ccf3a3SEmmanuel Vadot          minItems: 2
161c9ccf3a3SEmmanuel Vadot          maxItems: 2
162c9ccf3a3SEmmanuel Vadot
163c9ccf3a3SEmmanuel VadotadditionalProperties: false
164c9ccf3a3SEmmanuel Vadot
165c9ccf3a3SEmmanuel Vadotexamples:
166c9ccf3a3SEmmanuel Vadot  - |
167c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/clock/exynos4.h>
168c9ccf3a3SEmmanuel Vadot
169c9ccf3a3SEmmanuel Vadot    fimd@11c00000 {
170c9ccf3a3SEmmanuel Vadot        compatible = "samsung,exynos4210-fimd";
171c9ccf3a3SEmmanuel Vadot        interrupt-parent = <&combiner>;
172c9ccf3a3SEmmanuel Vadot        reg = <0x11c00000 0x20000>;
173c9ccf3a3SEmmanuel Vadot        interrupt-names = "fifo", "vsync", "lcd_sys";
174c9ccf3a3SEmmanuel Vadot        interrupts = <11 0>, <11 1>, <11 2>;
175c9ccf3a3SEmmanuel Vadot        clocks = <&clock CLK_SCLK_FIMD0>, <&clock CLK_FIMD0>;
176c9ccf3a3SEmmanuel Vadot        clock-names = "sclk_fimd", "fimd";
177c9ccf3a3SEmmanuel Vadot        power-domains = <&pd_lcd0>;
178c9ccf3a3SEmmanuel Vadot        iommus = <&sysmmu_fimd0>;
179c9ccf3a3SEmmanuel Vadot        samsung,sysreg = <&sys_reg>;
180c9ccf3a3SEmmanuel Vadot
181c9ccf3a3SEmmanuel Vadot        #address-cells = <1>;
182c9ccf3a3SEmmanuel Vadot        #size-cells = <0>;
183c9ccf3a3SEmmanuel Vadot
184c9ccf3a3SEmmanuel Vadot        samsung,invert-vden;
185c9ccf3a3SEmmanuel Vadot        samsung,invert-vclk;
186c9ccf3a3SEmmanuel Vadot
187c9ccf3a3SEmmanuel Vadot        pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
188c9ccf3a3SEmmanuel Vadot        pinctrl-names = "default";
189c9ccf3a3SEmmanuel Vadot
190c9ccf3a3SEmmanuel Vadot        port@3 {
191c9ccf3a3SEmmanuel Vadot            reg = <3>;
192c9ccf3a3SEmmanuel Vadot
193c9ccf3a3SEmmanuel Vadot            fimd_dpi_ep: endpoint {
194c9ccf3a3SEmmanuel Vadot                remote-endpoint = <&lcd_ep>;
195c9ccf3a3SEmmanuel Vadot            };
196c9ccf3a3SEmmanuel Vadot        };
197c9ccf3a3SEmmanuel Vadot    };
198