xref: /freebsd/sys/contrib/device-tree/Bindings/display/bridge/samsung,mipi-dsim.yaml (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1fac71e4eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2fac71e4eSEmmanuel Vadot%YAML 1.2
3fac71e4eSEmmanuel Vadot---
4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/display/bridge/samsung,mipi-dsim.yaml#
5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6fac71e4eSEmmanuel Vadot
7fac71e4eSEmmanuel Vadottitle: Samsung MIPI DSIM bridge controller
8fac71e4eSEmmanuel Vadot
9fac71e4eSEmmanuel Vadotmaintainers:
10fac71e4eSEmmanuel Vadot  - Inki Dae <inki.dae@samsung.com>
11fac71e4eSEmmanuel Vadot  - Jagan Teki <jagan@amarulasolutions.com>
12fac71e4eSEmmanuel Vadot  - Marek Szyprowski <m.szyprowski@samsung.com>
13fac71e4eSEmmanuel Vadot
14fac71e4eSEmmanuel Vadotdescription: |
15fac71e4eSEmmanuel Vadot  Samsung MIPI DSIM bridge controller can be found it on Exynos
16fac71e4eSEmmanuel Vadot  and i.MX8M Mini/Nano/Plus SoC's.
17fac71e4eSEmmanuel Vadot
18fac71e4eSEmmanuel Vadotproperties:
19fac71e4eSEmmanuel Vadot  compatible:
20fac71e4eSEmmanuel Vadot    oneOf:
21fac71e4eSEmmanuel Vadot      - enum:
22fac71e4eSEmmanuel Vadot          - samsung,exynos3250-mipi-dsi
23fac71e4eSEmmanuel Vadot          - samsung,exynos4210-mipi-dsi
24fac71e4eSEmmanuel Vadot          - samsung,exynos5410-mipi-dsi
25fac71e4eSEmmanuel Vadot          - samsung,exynos5422-mipi-dsi
26fac71e4eSEmmanuel Vadot          - samsung,exynos5433-mipi-dsi
27fac71e4eSEmmanuel Vadot          - fsl,imx8mm-mipi-dsim
28fac71e4eSEmmanuel Vadot          - fsl,imx8mp-mipi-dsim
29fac71e4eSEmmanuel Vadot      - items:
30fac71e4eSEmmanuel Vadot          - const: fsl,imx8mn-mipi-dsim
31fac71e4eSEmmanuel Vadot          - const: fsl,imx8mm-mipi-dsim
32fac71e4eSEmmanuel Vadot
33fac71e4eSEmmanuel Vadot  reg:
34fac71e4eSEmmanuel Vadot    maxItems: 1
35fac71e4eSEmmanuel Vadot
36fac71e4eSEmmanuel Vadot  interrupts:
37fac71e4eSEmmanuel Vadot    maxItems: 1
38fac71e4eSEmmanuel Vadot
39fac71e4eSEmmanuel Vadot  '#address-cells':
40fac71e4eSEmmanuel Vadot    const: 1
41fac71e4eSEmmanuel Vadot
42fac71e4eSEmmanuel Vadot  '#size-cells':
43fac71e4eSEmmanuel Vadot    const: 0
44fac71e4eSEmmanuel Vadot
45fac71e4eSEmmanuel Vadot  clocks:
46fac71e4eSEmmanuel Vadot    minItems: 2
47fac71e4eSEmmanuel Vadot    maxItems: 5
48fac71e4eSEmmanuel Vadot
49fac71e4eSEmmanuel Vadot  clock-names:
50fac71e4eSEmmanuel Vadot    minItems: 2
51fac71e4eSEmmanuel Vadot    maxItems: 5
52fac71e4eSEmmanuel Vadot
53fac71e4eSEmmanuel Vadot  samsung,phy-type:
54fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
55fac71e4eSEmmanuel Vadot    description: phandle to the samsung phy-type
56fac71e4eSEmmanuel Vadot
57fac71e4eSEmmanuel Vadot  power-domains:
58fac71e4eSEmmanuel Vadot    maxItems: 1
59fac71e4eSEmmanuel Vadot
60fac71e4eSEmmanuel Vadot  samsung,power-domain:
61fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
62fac71e4eSEmmanuel Vadot    description: phandle to the associated samsung power domain
63fac71e4eSEmmanuel Vadot
64fac71e4eSEmmanuel Vadot  vddcore-supply:
65fac71e4eSEmmanuel Vadot    description: MIPI DSIM Core voltage supply (e.g. 1.1V)
66fac71e4eSEmmanuel Vadot
67fac71e4eSEmmanuel Vadot  vddio-supply:
68fac71e4eSEmmanuel Vadot    description: MIPI DSIM I/O and PLL voltage supply (e.g. 1.8V)
69fac71e4eSEmmanuel Vadot
70fac71e4eSEmmanuel Vadot  samsung,burst-clock-frequency:
71fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
72fac71e4eSEmmanuel Vadot    description:
73*f126890aSEmmanuel Vadot      DSIM high speed burst mode frequency.  If absent,
74*f126890aSEmmanuel Vadot      the pixel clock from the attached device or bridge
75*f126890aSEmmanuel Vadot      will be used instead.
76fac71e4eSEmmanuel Vadot
77fac71e4eSEmmanuel Vadot  samsung,esc-clock-frequency:
78fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
79fac71e4eSEmmanuel Vadot    description:
80fac71e4eSEmmanuel Vadot      DSIM escape mode frequency.
81fac71e4eSEmmanuel Vadot
82fac71e4eSEmmanuel Vadot  samsung,pll-clock-frequency:
83fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
84fac71e4eSEmmanuel Vadot    description:
85*f126890aSEmmanuel Vadot      DSIM oscillator clock frequency. If absent, the clock frequency
86*f126890aSEmmanuel Vadot      of sclk_mipi will be used instead.
87fac71e4eSEmmanuel Vadot
88fac71e4eSEmmanuel Vadot  phys:
89fac71e4eSEmmanuel Vadot    maxItems: 1
90fac71e4eSEmmanuel Vadot
91fac71e4eSEmmanuel Vadot  phy-names:
92fac71e4eSEmmanuel Vadot    const: dsim
93fac71e4eSEmmanuel Vadot
94fac71e4eSEmmanuel Vadot  ports:
95fac71e4eSEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
96fac71e4eSEmmanuel Vadot
97fac71e4eSEmmanuel Vadot    properties:
98fac71e4eSEmmanuel Vadot      port@0:
99fac71e4eSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
100fac71e4eSEmmanuel Vadot        description:
101fac71e4eSEmmanuel Vadot          Input port node to receive pixel data from the
102fac71e4eSEmmanuel Vadot          display controller. Exactly one endpoint must be
103fac71e4eSEmmanuel Vadot          specified.
104fac71e4eSEmmanuel Vadot
105fac71e4eSEmmanuel Vadot      port@1:
106*f126890aSEmmanuel Vadot        $ref: /schemas/graph.yaml#/$defs/port-base
107*f126890aSEmmanuel Vadot        unevaluatedProperties: false
108fac71e4eSEmmanuel Vadot        description:
109fac71e4eSEmmanuel Vadot          DSI output port node to the panel or the next bridge
110fac71e4eSEmmanuel Vadot          in the chain.
111fac71e4eSEmmanuel Vadot
112*f126890aSEmmanuel Vadot        properties:
113*f126890aSEmmanuel Vadot          endpoint:
114*f126890aSEmmanuel Vadot            $ref: /schemas/media/video-interfaces.yaml#
115*f126890aSEmmanuel Vadot            unevaluatedProperties: false
116*f126890aSEmmanuel Vadot
117*f126890aSEmmanuel Vadot            properties:
118*f126890aSEmmanuel Vadot              data-lanes:
119*f126890aSEmmanuel Vadot                minItems: 1
120*f126890aSEmmanuel Vadot                maxItems: 4
121*f126890aSEmmanuel Vadot                uniqueItems: true
122*f126890aSEmmanuel Vadot                items:
123*f126890aSEmmanuel Vadot                  enum: [ 1, 2, 3, 4 ]
124*f126890aSEmmanuel Vadot
125*f126890aSEmmanuel Vadot              lane-polarities:
126*f126890aSEmmanuel Vadot                minItems: 1
127*f126890aSEmmanuel Vadot                maxItems: 5
128*f126890aSEmmanuel Vadot                description:
129*f126890aSEmmanuel Vadot                  The Samsung MIPI DSI IP requires that all the data lanes have
130*f126890aSEmmanuel Vadot                  the same polarity.
131*f126890aSEmmanuel Vadot
132*f126890aSEmmanuel Vadot            dependencies:
133*f126890aSEmmanuel Vadot              lane-polarities: [data-lanes]
134*f126890aSEmmanuel Vadot
135fac71e4eSEmmanuel Vadotrequired:
136fac71e4eSEmmanuel Vadot  - clock-names
137fac71e4eSEmmanuel Vadot  - clocks
138fac71e4eSEmmanuel Vadot  - compatible
139fac71e4eSEmmanuel Vadot  - interrupts
140fac71e4eSEmmanuel Vadot  - reg
141fac71e4eSEmmanuel Vadot  - samsung,esc-clock-frequency
142fac71e4eSEmmanuel Vadot
143fac71e4eSEmmanuel VadotallOf:
144fac71e4eSEmmanuel Vadot  - $ref: ../dsi-controller.yaml#
145fac71e4eSEmmanuel Vadot  - if:
146fac71e4eSEmmanuel Vadot      properties:
147fac71e4eSEmmanuel Vadot        compatible:
148fac71e4eSEmmanuel Vadot          contains:
149fac71e4eSEmmanuel Vadot            const: samsung,exynos5433-mipi-dsi
150fac71e4eSEmmanuel Vadot
151fac71e4eSEmmanuel Vadot    then:
152fac71e4eSEmmanuel Vadot      properties:
153fac71e4eSEmmanuel Vadot        clocks:
154fac71e4eSEmmanuel Vadot          minItems: 5
155fac71e4eSEmmanuel Vadot
156fac71e4eSEmmanuel Vadot        clock-names:
157fac71e4eSEmmanuel Vadot          items:
158fac71e4eSEmmanuel Vadot            - const: bus_clk
159fac71e4eSEmmanuel Vadot            - const: phyclk_mipidphy0_bitclkdiv8
160fac71e4eSEmmanuel Vadot            - const: phyclk_mipidphy0_rxclkesc0
161fac71e4eSEmmanuel Vadot            - const: sclk_rgb_vclk_to_dsim0
162fac71e4eSEmmanuel Vadot            - const: sclk_mipi
163fac71e4eSEmmanuel Vadot
164fac71e4eSEmmanuel Vadot        ports:
165fac71e4eSEmmanuel Vadot          required:
166fac71e4eSEmmanuel Vadot            - port@0
167fac71e4eSEmmanuel Vadot
168fac71e4eSEmmanuel Vadot      required:
169fac71e4eSEmmanuel Vadot        - ports
170fac71e4eSEmmanuel Vadot        - vddcore-supply
171fac71e4eSEmmanuel Vadot        - vddio-supply
172fac71e4eSEmmanuel Vadot
173fac71e4eSEmmanuel Vadot  - if:
174fac71e4eSEmmanuel Vadot      properties:
175fac71e4eSEmmanuel Vadot        compatible:
176fac71e4eSEmmanuel Vadot          contains:
177fac71e4eSEmmanuel Vadot            const: samsung,exynos5410-mipi-dsi
178fac71e4eSEmmanuel Vadot
179fac71e4eSEmmanuel Vadot    then:
180fac71e4eSEmmanuel Vadot      properties:
181fac71e4eSEmmanuel Vadot        clocks:
182fac71e4eSEmmanuel Vadot          minItems: 2
183fac71e4eSEmmanuel Vadot
184fac71e4eSEmmanuel Vadot        clock-names:
185fac71e4eSEmmanuel Vadot          items:
186fac71e4eSEmmanuel Vadot            - const: bus_clk
187fac71e4eSEmmanuel Vadot            - const: pll_clk
188fac71e4eSEmmanuel Vadot
189fac71e4eSEmmanuel Vadot      required:
190fac71e4eSEmmanuel Vadot        - vddcore-supply
191fac71e4eSEmmanuel Vadot        - vddio-supply
192fac71e4eSEmmanuel Vadot
193fac71e4eSEmmanuel Vadot  - if:
194fac71e4eSEmmanuel Vadot      properties:
195fac71e4eSEmmanuel Vadot        compatible:
196fac71e4eSEmmanuel Vadot          contains:
197fac71e4eSEmmanuel Vadot            const: samsung,exynos4210-mipi-dsi
198fac71e4eSEmmanuel Vadot
199fac71e4eSEmmanuel Vadot    then:
200fac71e4eSEmmanuel Vadot      properties:
201fac71e4eSEmmanuel Vadot        clocks:
202fac71e4eSEmmanuel Vadot          minItems: 2
203fac71e4eSEmmanuel Vadot
204fac71e4eSEmmanuel Vadot        clock-names:
205fac71e4eSEmmanuel Vadot          items:
206fac71e4eSEmmanuel Vadot            - const: bus_clk
207fac71e4eSEmmanuel Vadot            - const: sclk_mipi
208fac71e4eSEmmanuel Vadot
209fac71e4eSEmmanuel Vadot      required:
210fac71e4eSEmmanuel Vadot        - vddcore-supply
211fac71e4eSEmmanuel Vadot        - vddio-supply
212fac71e4eSEmmanuel Vadot
213fac71e4eSEmmanuel Vadot  - if:
214fac71e4eSEmmanuel Vadot      properties:
215fac71e4eSEmmanuel Vadot        compatible:
216fac71e4eSEmmanuel Vadot          contains:
217fac71e4eSEmmanuel Vadot            const: samsung,exynos3250-mipi-dsi
218fac71e4eSEmmanuel Vadot
219fac71e4eSEmmanuel Vadot    then:
220fac71e4eSEmmanuel Vadot      properties:
221fac71e4eSEmmanuel Vadot        clocks:
222fac71e4eSEmmanuel Vadot          minItems: 2
223fac71e4eSEmmanuel Vadot
224fac71e4eSEmmanuel Vadot        clock-names:
225fac71e4eSEmmanuel Vadot          items:
226fac71e4eSEmmanuel Vadot            - const: bus_clk
227fac71e4eSEmmanuel Vadot            - const: pll_clk
228fac71e4eSEmmanuel Vadot
229fac71e4eSEmmanuel Vadot      required:
230fac71e4eSEmmanuel Vadot        - vddcore-supply
231fac71e4eSEmmanuel Vadot        - vddio-supply
232fac71e4eSEmmanuel Vadot        - samsung,phy-type
233fac71e4eSEmmanuel Vadot
234fac71e4eSEmmanuel VadotadditionalProperties:
235fac71e4eSEmmanuel Vadot  type: object
236fac71e4eSEmmanuel Vadot
237fac71e4eSEmmanuel Vadotexamples:
238fac71e4eSEmmanuel Vadot  - |
239fac71e4eSEmmanuel Vadot    #include <dt-bindings/clock/exynos5433.h>
240fac71e4eSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
241fac71e4eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
242fac71e4eSEmmanuel Vadot
243fac71e4eSEmmanuel Vadot    dsi@13900000 {
244fac71e4eSEmmanuel Vadot       compatible = "samsung,exynos5433-mipi-dsi";
245fac71e4eSEmmanuel Vadot       reg = <0x13900000 0xC0>;
246fac71e4eSEmmanuel Vadot       interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
247fac71e4eSEmmanuel Vadot       phys = <&mipi_phy 1>;
248fac71e4eSEmmanuel Vadot       phy-names = "dsim";
249fac71e4eSEmmanuel Vadot       clocks = <&cmu_disp CLK_PCLK_DSIM0>,
250fac71e4eSEmmanuel Vadot                <&cmu_disp CLK_PHYCLK_MIPIDPHY0_BITCLKDIV8>,
251fac71e4eSEmmanuel Vadot                <&cmu_disp CLK_PHYCLK_MIPIDPHY0_RXCLKESC0>,
252fac71e4eSEmmanuel Vadot                <&cmu_disp CLK_SCLK_RGB_VCLK_TO_DSIM0>,
253fac71e4eSEmmanuel Vadot                <&cmu_disp CLK_SCLK_DSIM0>;
254fac71e4eSEmmanuel Vadot       clock-names = "bus_clk",
255fac71e4eSEmmanuel Vadot                     "phyclk_mipidphy0_bitclkdiv8",
256fac71e4eSEmmanuel Vadot                     "phyclk_mipidphy0_rxclkesc0",
257fac71e4eSEmmanuel Vadot                     "sclk_rgb_vclk_to_dsim0",
258fac71e4eSEmmanuel Vadot                     "sclk_mipi";
259fac71e4eSEmmanuel Vadot       power-domains = <&pd_disp>;
260fac71e4eSEmmanuel Vadot       vddcore-supply = <&ldo6_reg>;
261fac71e4eSEmmanuel Vadot       vddio-supply = <&ldo7_reg>;
262fac71e4eSEmmanuel Vadot       samsung,burst-clock-frequency = <512000000>;
263fac71e4eSEmmanuel Vadot       samsung,esc-clock-frequency = <16000000>;
264fac71e4eSEmmanuel Vadot       samsung,pll-clock-frequency = <24000000>;
265fac71e4eSEmmanuel Vadot       pinctrl-names = "default";
266fac71e4eSEmmanuel Vadot       pinctrl-0 = <&te_irq>;
267fac71e4eSEmmanuel Vadot
268fac71e4eSEmmanuel Vadot       ports {
269fac71e4eSEmmanuel Vadot          #address-cells = <1>;
270fac71e4eSEmmanuel Vadot          #size-cells = <0>;
271fac71e4eSEmmanuel Vadot
272fac71e4eSEmmanuel Vadot          port@0 {
273fac71e4eSEmmanuel Vadot             reg = <0>;
274fac71e4eSEmmanuel Vadot
275fac71e4eSEmmanuel Vadot             dsi_to_mic: endpoint {
276fac71e4eSEmmanuel Vadot                remote-endpoint = <&mic_to_dsi>;
277fac71e4eSEmmanuel Vadot             };
278fac71e4eSEmmanuel Vadot          };
279fac71e4eSEmmanuel Vadot       };
280fac71e4eSEmmanuel Vadot    };
281