xref: /freebsd/sys/contrib/device-tree/Bindings/display/allwinner,sun4i-a10-display-frontend.yaml (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2*c66ec88fSEmmanuel Vadot%YAML 1.2
3*c66ec88fSEmmanuel Vadot---
4*c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/display/allwinner,sun4i-a10-display-frontend.yaml#
5*c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel Vadottitle: Allwinner A10 Display Engine Frontend Device Tree Bindings
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadotmaintainers:
10*c66ec88fSEmmanuel Vadot  - Chen-Yu Tsai <wens@csie.org>
11*c66ec88fSEmmanuel Vadot  - Maxime Ripard <mripard@kernel.org>
12*c66ec88fSEmmanuel Vadot
13*c66ec88fSEmmanuel Vadotdescription: |
14*c66ec88fSEmmanuel Vadot  The display engine frontend does formats conversion, scaling,
15*c66ec88fSEmmanuel Vadot  deinterlacing and color space conversion.
16*c66ec88fSEmmanuel Vadot
17*c66ec88fSEmmanuel Vadotproperties:
18*c66ec88fSEmmanuel Vadot  compatible:
19*c66ec88fSEmmanuel Vadot    enum:
20*c66ec88fSEmmanuel Vadot      - allwinner,sun4i-a10-display-frontend
21*c66ec88fSEmmanuel Vadot      - allwinner,sun5i-a13-display-frontend
22*c66ec88fSEmmanuel Vadot      - allwinner,sun6i-a31-display-frontend
23*c66ec88fSEmmanuel Vadot      - allwinner,sun7i-a20-display-frontend
24*c66ec88fSEmmanuel Vadot      - allwinner,sun8i-a23-display-frontend
25*c66ec88fSEmmanuel Vadot      - allwinner,sun8i-a33-display-frontend
26*c66ec88fSEmmanuel Vadot      - allwinner,sun9i-a80-display-frontend
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel Vadot  reg:
29*c66ec88fSEmmanuel Vadot    maxItems: 1
30*c66ec88fSEmmanuel Vadot
31*c66ec88fSEmmanuel Vadot  interrupts:
32*c66ec88fSEmmanuel Vadot    maxItems: 1
33*c66ec88fSEmmanuel Vadot
34*c66ec88fSEmmanuel Vadot  clocks:
35*c66ec88fSEmmanuel Vadot    items:
36*c66ec88fSEmmanuel Vadot      - description: The frontend interface clock
37*c66ec88fSEmmanuel Vadot      - description: The frontend module clock
38*c66ec88fSEmmanuel Vadot      - description: The frontend DRAM clock
39*c66ec88fSEmmanuel Vadot
40*c66ec88fSEmmanuel Vadot  clock-names:
41*c66ec88fSEmmanuel Vadot    items:
42*c66ec88fSEmmanuel Vadot      - const: ahb
43*c66ec88fSEmmanuel Vadot      - const: mod
44*c66ec88fSEmmanuel Vadot      - const: ram
45*c66ec88fSEmmanuel Vadot
46*c66ec88fSEmmanuel Vadot  # FIXME: This should be made required eventually once every SoC will
47*c66ec88fSEmmanuel Vadot  # have the MBUS declared.
48*c66ec88fSEmmanuel Vadot  interconnects:
49*c66ec88fSEmmanuel Vadot    maxItems: 1
50*c66ec88fSEmmanuel Vadot
51*c66ec88fSEmmanuel Vadot  # FIXME: This should be made required eventually once every SoC will
52*c66ec88fSEmmanuel Vadot  # have the MBUS declared.
53*c66ec88fSEmmanuel Vadot  interconnect-names:
54*c66ec88fSEmmanuel Vadot    const: dma-mem
55*c66ec88fSEmmanuel Vadot
56*c66ec88fSEmmanuel Vadot  resets:
57*c66ec88fSEmmanuel Vadot    maxItems: 1
58*c66ec88fSEmmanuel Vadot
59*c66ec88fSEmmanuel Vadot  ports:
60*c66ec88fSEmmanuel Vadot    type: object
61*c66ec88fSEmmanuel Vadot    description: |
62*c66ec88fSEmmanuel Vadot      A ports node with endpoint definitions as defined in
63*c66ec88fSEmmanuel Vadot      Documentation/devicetree/bindings/media/video-interfaces.txt.
64*c66ec88fSEmmanuel Vadot
65*c66ec88fSEmmanuel Vadot    properties:
66*c66ec88fSEmmanuel Vadot      "#address-cells":
67*c66ec88fSEmmanuel Vadot        const: 1
68*c66ec88fSEmmanuel Vadot
69*c66ec88fSEmmanuel Vadot      "#size-cells":
70*c66ec88fSEmmanuel Vadot        const: 0
71*c66ec88fSEmmanuel Vadot
72*c66ec88fSEmmanuel Vadot      port@0:
73*c66ec88fSEmmanuel Vadot        type: object
74*c66ec88fSEmmanuel Vadot        description: |
75*c66ec88fSEmmanuel Vadot          Input endpoints of the controller.
76*c66ec88fSEmmanuel Vadot
77*c66ec88fSEmmanuel Vadot      port@1:
78*c66ec88fSEmmanuel Vadot        type: object
79*c66ec88fSEmmanuel Vadot        description: |
80*c66ec88fSEmmanuel Vadot          Output endpoints of the controller.
81*c66ec88fSEmmanuel Vadot
82*c66ec88fSEmmanuel Vadot    required:
83*c66ec88fSEmmanuel Vadot      - "#address-cells"
84*c66ec88fSEmmanuel Vadot      - "#size-cells"
85*c66ec88fSEmmanuel Vadot      - port@1
86*c66ec88fSEmmanuel Vadot
87*c66ec88fSEmmanuel Vadot    additionalProperties: false
88*c66ec88fSEmmanuel Vadot
89*c66ec88fSEmmanuel Vadotrequired:
90*c66ec88fSEmmanuel Vadot  - compatible
91*c66ec88fSEmmanuel Vadot  - reg
92*c66ec88fSEmmanuel Vadot  - interrupts
93*c66ec88fSEmmanuel Vadot  - clocks
94*c66ec88fSEmmanuel Vadot  - clock-names
95*c66ec88fSEmmanuel Vadot  - resets
96*c66ec88fSEmmanuel Vadot  - ports
97*c66ec88fSEmmanuel Vadot
98*c66ec88fSEmmanuel VadotadditionalProperties: false
99*c66ec88fSEmmanuel Vadot
100*c66ec88fSEmmanuel Vadotexamples:
101*c66ec88fSEmmanuel Vadot  - |
102*c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/sun4i-a10-ccu.h>
103*c66ec88fSEmmanuel Vadot    #include <dt-bindings/reset/sun4i-a10-ccu.h>
104*c66ec88fSEmmanuel Vadot
105*c66ec88fSEmmanuel Vadot    fe0: display-frontend@1e00000 {
106*c66ec88fSEmmanuel Vadot        compatible = "allwinner,sun4i-a10-display-frontend";
107*c66ec88fSEmmanuel Vadot        reg = <0x01e00000 0x20000>;
108*c66ec88fSEmmanuel Vadot        interrupts = <47>;
109*c66ec88fSEmmanuel Vadot        clocks = <&ccu CLK_AHB_DE_FE0>, <&ccu CLK_DE_FE0>,
110*c66ec88fSEmmanuel Vadot                 <&ccu CLK_DRAM_DE_FE0>;
111*c66ec88fSEmmanuel Vadot        clock-names = "ahb", "mod",
112*c66ec88fSEmmanuel Vadot                      "ram";
113*c66ec88fSEmmanuel Vadot        resets = <&ccu RST_DE_FE0>;
114*c66ec88fSEmmanuel Vadot
115*c66ec88fSEmmanuel Vadot        ports {
116*c66ec88fSEmmanuel Vadot            #address-cells = <1>;
117*c66ec88fSEmmanuel Vadot            #size-cells = <0>;
118*c66ec88fSEmmanuel Vadot
119*c66ec88fSEmmanuel Vadot            fe0_out: port@1 {
120*c66ec88fSEmmanuel Vadot                #address-cells = <1>;
121*c66ec88fSEmmanuel Vadot                #size-cells = <0>;
122*c66ec88fSEmmanuel Vadot                reg = <1>;
123*c66ec88fSEmmanuel Vadot
124*c66ec88fSEmmanuel Vadot                fe0_out_be0: endpoint@0 {
125*c66ec88fSEmmanuel Vadot                    reg = <0>;
126*c66ec88fSEmmanuel Vadot                    remote-endpoint = <&be0_in_fe0>;
127*c66ec88fSEmmanuel Vadot                };
128*c66ec88fSEmmanuel Vadot
129*c66ec88fSEmmanuel Vadot                fe0_out_be1: endpoint@1 {
130*c66ec88fSEmmanuel Vadot                    reg = <1>;
131*c66ec88fSEmmanuel Vadot                    remote-endpoint = <&be1_in_fe0>;
132*c66ec88fSEmmanuel Vadot                };
133*c66ec88fSEmmanuel Vadot            };
134*c66ec88fSEmmanuel Vadot        };
135*c66ec88fSEmmanuel Vadot    };
136*c66ec88fSEmmanuel Vadot
137*c66ec88fSEmmanuel Vadot
138*c66ec88fSEmmanuel Vadot...
139