xref: /freebsd/sys/contrib/device-tree/Bindings/display/bridge/fsl,imx8qxp-pixel-link.yaml (revision b97ee269eae3cbaf35c18f51a459aea581c2a7dc)
1*b97ee269SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*b97ee269SEmmanuel Vadot%YAML 1.2
3*b97ee269SEmmanuel Vadot---
4*b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/display/bridge/fsl,imx8qxp-pixel-link.yaml#
5*b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b97ee269SEmmanuel Vadot
7*b97ee269SEmmanuel Vadottitle: Freescale i.MX8qm/qxp Display Pixel Link
8*b97ee269SEmmanuel Vadot
9*b97ee269SEmmanuel Vadotmaintainers:
10*b97ee269SEmmanuel Vadot  - Liu Ying <victor.liu@nxp.com>
11*b97ee269SEmmanuel Vadot
12*b97ee269SEmmanuel Vadotdescription: |
13*b97ee269SEmmanuel Vadot  The Freescale i.MX8qm/qxp Display Pixel Link(DPL) forms a standard
14*b97ee269SEmmanuel Vadot  asynchronous linkage between pixel sources(display controller or
15*b97ee269SEmmanuel Vadot  camera module) and pixel consumers(imaging or displays).
16*b97ee269SEmmanuel Vadot  It consists of two distinct functions, a pixel transfer function and a
17*b97ee269SEmmanuel Vadot  control interface.  Multiple pixel channels can exist per one control channel.
18*b97ee269SEmmanuel Vadot  This binding documentation is only for pixel links whose pixel sources are
19*b97ee269SEmmanuel Vadot  display controllers.
20*b97ee269SEmmanuel Vadot
21*b97ee269SEmmanuel Vadot  The i.MX8qm/qxp Display Pixel Link is accessed via System Controller Unit(SCU)
22*b97ee269SEmmanuel Vadot  firmware.
23*b97ee269SEmmanuel Vadot
24*b97ee269SEmmanuel Vadotproperties:
25*b97ee269SEmmanuel Vadot  compatible:
26*b97ee269SEmmanuel Vadot    enum:
27*b97ee269SEmmanuel Vadot      - fsl,imx8qm-dc-pixel-link
28*b97ee269SEmmanuel Vadot      - fsl,imx8qxp-dc-pixel-link
29*b97ee269SEmmanuel Vadot
30*b97ee269SEmmanuel Vadot  fsl,dc-id:
31*b97ee269SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
32*b97ee269SEmmanuel Vadot    description: |
33*b97ee269SEmmanuel Vadot      u8 value representing the display controller index that the pixel link
34*b97ee269SEmmanuel Vadot      connects to.
35*b97ee269SEmmanuel Vadot
36*b97ee269SEmmanuel Vadot  fsl,dc-stream-id:
37*b97ee269SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
38*b97ee269SEmmanuel Vadot    description: |
39*b97ee269SEmmanuel Vadot      u8 value representing the display controller stream index that the pixel
40*b97ee269SEmmanuel Vadot      link connects to.
41*b97ee269SEmmanuel Vadot    enum: [0, 1]
42*b97ee269SEmmanuel Vadot
43*b97ee269SEmmanuel Vadot  ports:
44*b97ee269SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
45*b97ee269SEmmanuel Vadot
46*b97ee269SEmmanuel Vadot    properties:
47*b97ee269SEmmanuel Vadot      port@0:
48*b97ee269SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
49*b97ee269SEmmanuel Vadot        description: The pixel link input port node from upstream video source.
50*b97ee269SEmmanuel Vadot
51*b97ee269SEmmanuel Vadot    patternProperties:
52*b97ee269SEmmanuel Vadot      "^port@[1-4]$":
53*b97ee269SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
54*b97ee269SEmmanuel Vadot        description: The pixel link output port node to downstream bridge.
55*b97ee269SEmmanuel Vadot
56*b97ee269SEmmanuel Vadot    required:
57*b97ee269SEmmanuel Vadot      - port@0
58*b97ee269SEmmanuel Vadot      - port@1
59*b97ee269SEmmanuel Vadot      - port@2
60*b97ee269SEmmanuel Vadot      - port@3
61*b97ee269SEmmanuel Vadot      - port@4
62*b97ee269SEmmanuel Vadot
63*b97ee269SEmmanuel VadotallOf:
64*b97ee269SEmmanuel Vadot  - if:
65*b97ee269SEmmanuel Vadot      properties:
66*b97ee269SEmmanuel Vadot        compatible:
67*b97ee269SEmmanuel Vadot          contains:
68*b97ee269SEmmanuel Vadot            const: fsl,imx8qxp-dc-pixel-link
69*b97ee269SEmmanuel Vadot    then:
70*b97ee269SEmmanuel Vadot      properties:
71*b97ee269SEmmanuel Vadot        fsl,dc-id:
72*b97ee269SEmmanuel Vadot          const: 0
73*b97ee269SEmmanuel Vadot
74*b97ee269SEmmanuel Vadot  - if:
75*b97ee269SEmmanuel Vadot      properties:
76*b97ee269SEmmanuel Vadot        compatible:
77*b97ee269SEmmanuel Vadot          contains:
78*b97ee269SEmmanuel Vadot            const: fsl,imx8qm-dc-pixel-link
79*b97ee269SEmmanuel Vadot    then:
80*b97ee269SEmmanuel Vadot      properties:
81*b97ee269SEmmanuel Vadot        fsl,dc-id:
82*b97ee269SEmmanuel Vadot          enum: [0, 1]
83*b97ee269SEmmanuel Vadot
84*b97ee269SEmmanuel Vadotrequired:
85*b97ee269SEmmanuel Vadot  - compatible
86*b97ee269SEmmanuel Vadot  - fsl,dc-id
87*b97ee269SEmmanuel Vadot  - fsl,dc-stream-id
88*b97ee269SEmmanuel Vadot  - ports
89*b97ee269SEmmanuel Vadot
90*b97ee269SEmmanuel VadotadditionalProperties: false
91*b97ee269SEmmanuel Vadot
92*b97ee269SEmmanuel Vadotexamples:
93*b97ee269SEmmanuel Vadot  - |
94*b97ee269SEmmanuel Vadot    dc0-pixel-link0 {
95*b97ee269SEmmanuel Vadot        compatible = "fsl,imx8qxp-dc-pixel-link";
96*b97ee269SEmmanuel Vadot        fsl,dc-id = /bits/ 8 <0>;
97*b97ee269SEmmanuel Vadot        fsl,dc-stream-id = /bits/ 8 <0>;
98*b97ee269SEmmanuel Vadot
99*b97ee269SEmmanuel Vadot        ports {
100*b97ee269SEmmanuel Vadot            #address-cells = <1>;
101*b97ee269SEmmanuel Vadot            #size-cells = <0>;
102*b97ee269SEmmanuel Vadot
103*b97ee269SEmmanuel Vadot            /* from dc0 pixel combiner channel0 */
104*b97ee269SEmmanuel Vadot            port@0 {
105*b97ee269SEmmanuel Vadot                reg = <0>;
106*b97ee269SEmmanuel Vadot
107*b97ee269SEmmanuel Vadot                dc0_pixel_link0_dc0_pixel_combiner_ch0: endpoint {
108*b97ee269SEmmanuel Vadot                    remote-endpoint = <&dc0_pixel_combiner_ch0_dc0_pixel_link0>;
109*b97ee269SEmmanuel Vadot                };
110*b97ee269SEmmanuel Vadot            };
111*b97ee269SEmmanuel Vadot
112*b97ee269SEmmanuel Vadot            /* to PXL2DPIs in MIPI/LVDS combo subsystems */
113*b97ee269SEmmanuel Vadot            port@1 {
114*b97ee269SEmmanuel Vadot                #address-cells = <1>;
115*b97ee269SEmmanuel Vadot                #size-cells = <0>;
116*b97ee269SEmmanuel Vadot                reg = <1>;
117*b97ee269SEmmanuel Vadot
118*b97ee269SEmmanuel Vadot                dc0_pixel_link0_mipi_lvds_0_pxl2dpi: endpoint@0 {
119*b97ee269SEmmanuel Vadot                    reg = <0>;
120*b97ee269SEmmanuel Vadot                    remote-endpoint = <&mipi_lvds_0_pxl2dpi_dc0_pixel_link0>;
121*b97ee269SEmmanuel Vadot                };
122*b97ee269SEmmanuel Vadot
123*b97ee269SEmmanuel Vadot                dc0_pixel_link0_mipi_lvds_1_pxl2dpi: endpoint@1 {
124*b97ee269SEmmanuel Vadot                    reg = <1>;
125*b97ee269SEmmanuel Vadot                    remote-endpoint = <&mipi_lvds_1_pxl2dpi_dc0_pixel_link0>;
126*b97ee269SEmmanuel Vadot                };
127*b97ee269SEmmanuel Vadot            };
128*b97ee269SEmmanuel Vadot
129*b97ee269SEmmanuel Vadot            /* unused */
130*b97ee269SEmmanuel Vadot            port@2 {
131*b97ee269SEmmanuel Vadot                reg = <2>;
132*b97ee269SEmmanuel Vadot            };
133*b97ee269SEmmanuel Vadot
134*b97ee269SEmmanuel Vadot            /* unused */
135*b97ee269SEmmanuel Vadot            port@3 {
136*b97ee269SEmmanuel Vadot                reg = <3>;
137*b97ee269SEmmanuel Vadot            };
138*b97ee269SEmmanuel Vadot
139*b97ee269SEmmanuel Vadot            /* to imaging subsystem */
140*b97ee269SEmmanuel Vadot            port@4 {
141*b97ee269SEmmanuel Vadot                reg = <4>;
142*b97ee269SEmmanuel Vadot            };
143*b97ee269SEmmanuel Vadot        };
144*b97ee269SEmmanuel Vadot    };
145