~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/display/xylon,logicvc-display.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2 # Copyright 2019 Bootlin
  3 %YAML 1.2
  4 ---
  5 $id: http://devicetree.org/schemas/display/xylon,logicvc-display.yaml#
  6 $schema: http://devicetree.org/meta-schemas/core.yaml#
  7 
  8 title: Xylon LogiCVC display controller
  9 
 10 maintainers:
 11   - Paul Kocialkowski <paul.kocialkowski@bootlin.com>
 12 
 13 description: |
 14   The Xylon LogiCVC is a display controller that supports multiple layers.
 15   It is usually implemented as programmable logic and was optimized for use
 16   with Xilinx Zynq-7000 SoCs and Xilinx FPGAs.
 17 
 18   Because the controller is intended for use in a FPGA, most of the
 19   configuration of the controller takes place at logic configuration bitstream
 20   synthesis time. As a result, many of the device-tree bindings are meant to
 21   reflect the synthesis configuration and must not be configured differently.
 22   Matching synthesis parameters are provided when applicable.
 23 
 24   Layers are declared in the "layers" sub-node and have dedicated configuration.
 25   In version 3 of the controller, each layer has fixed memory offset and address
 26   starting from the video memory base address for its framebuffer. In version 4,
 27   framebuffers are configured with a direct memory address instead.
 28 
 29 properties:
 30   compatible:
 31     enum:
 32       - xylon,logicvc-3.02.a-display
 33       - xylon,logicvc-4.01.a-display
 34 
 35   reg:
 36     maxItems: 1
 37 
 38   clocks:
 39     minItems: 1
 40     maxItems: 4
 41 
 42   clock-names:
 43     minItems: 1
 44     items:
 45       # vclk is required and must be provided as first item.
 46       - const: vclk
 47       # Other clocks are optional and can be provided in any order.
 48       - enum:
 49           - vclk2
 50           - lvdsclk
 51           - lvdsclkn
 52       - enum:
 53           - vclk2
 54           - lvdsclk
 55           - lvdsclkn
 56       - enum:
 57           - vclk2
 58           - lvdsclk
 59           - lvdsclkn
 60 
 61   interrupts:
 62     maxItems: 1
 63 
 64   memory-region:
 65     maxItems: 1
 66 
 67   xylon,display-interface:
 68     enum:
 69       # Parallel RGB interface (C_DISPLAY_INTERFACE == 0)
 70       - parallel-rgb
 71       # ITU-T BR656 interface (C_DISPLAY_INTERFACE == 1)
 72       - bt656
 73       # 4-bit LVDS interface (C_DISPLAY_INTERFACE == 2)
 74       - lvds-4bits
 75       # 3-bit LVDS interface (C_DISPLAY_INTERFACE == 4)
 76       - lvds-3bits
 77       # DVI interface (C_DISPLAY_INTERFACE == 5)
 78       - dvi
 79     description: Display output interface (C_DISPLAY_INTERFACE).
 80 
 81   xylon,display-colorspace:
 82     enum:
 83       # RGB colorspace (C_DISPLAY_COLOR_SPACE == 0)
 84       - rgb
 85       # YUV 4:2:2 colorspace (C_DISPLAY_COLOR_SPACE == 1)
 86       - yuv422
 87       # YUV 4:4:4 colorspace (C_DISPLAY_COLOR_SPACE == 2)
 88       - yuv444
 89     description: Display output colorspace (C_DISPLAY_COLOR_SPACE).
 90 
 91   xylon,display-depth:
 92     $ref: /schemas/types.yaml#/definitions/uint32
 93     description: Display output depth (C_PIXEL_DATA_WIDTH).
 94 
 95   xylon,row-stride:
 96     $ref: /schemas/types.yaml#/definitions/uint32
 97     description: Fixed number of pixels in a framebuffer row (C_ROW_STRIDE).
 98 
 99   xylon,dithering:
100     $ref: /schemas/types.yaml#/definitions/flag
101     description: Dithering module is enabled (C_XCOLOR)
102 
103   xylon,background-layer:
104     $ref: /schemas/types.yaml#/definitions/flag
105     description: |
106       The last layer is used to display a black background (C_USE_BACKGROUND).
107       The layer must still be registered.
108 
109   xylon,layers-configurable:
110     $ref: /schemas/types.yaml#/definitions/flag
111     description: |
112       Configuration of layers' size, position and offset is enabled
113       (C_USE_SIZE_POSITION).
114 
115   layers:
116     type: object
117 
118     properties:
119       "#address-cells":
120         const: 1
121 
122       "#size-cells":
123         const: 0
124 
125     patternProperties:
126       "^layer@[0-9]+$":
127         type: object
128 
129         properties:
130           reg:
131             maxItems: 1
132 
133           xylon,layer-depth:
134             $ref: /schemas/types.yaml#/definitions/uint32
135             description: Layer depth (C_LAYER_X_DATA_WIDTH).
136 
137           xylon,layer-colorspace:
138             enum:
139               # RGB colorspace (C_LAYER_X_TYPE == 0)
140               - rgb
141               # YUV packed colorspace (C_LAYER_X_TYPE == 0)
142               - yuv
143             description: Layer colorspace (C_LAYER_X_TYPE).
144 
145           xylon,layer-alpha-mode:
146             enum:
147               # Alpha is configured layer-wide (C_LAYER_X_ALPHA_MODE == 0)
148               - layer
149               # Alpha is configured per-pixel (C_LAYER_X_ALPHA_MODE == 1)
150               - pixel
151             description: Alpha mode for the layer (C_LAYER_X_ALPHA_MODE).
152 
153           xylon,layer-base-offset:
154             $ref: /schemas/types.yaml#/definitions/uint32
155             description: |
156               Offset in number of lines (C_LAYER_X_OFFSET) starting from the
157               video RAM base (C_VMEM_BASEADDR), only for version 3.
158 
159           xylon,layer-buffer-offset:
160             $ref: /schemas/types.yaml#/definitions/uint32
161             description: |
162               Offset in number of lines (C_BUFFER_*_OFFSET) starting from the
163               layer base offset for the second buffer used in double-buffering.
164 
165           xylon,layer-primary:
166             $ref: /schemas/types.yaml#/definitions/flag
167             description: |
168               Layer should be registered as a primary plane (exactly one is
169               required).
170 
171         additionalProperties: false
172 
173         required:
174           - reg
175           - xylon,layer-depth
176           - xylon,layer-colorspace
177           - xylon,layer-alpha-mode
178 
179     required:
180       - "#address-cells"
181       - "#size-cells"
182       - layer@0
183 
184     additionalProperties: false
185 
186     description: |
187       The description of the display controller layers, containing layer
188       sub-nodes that each describe a registered layer.
189 
190   port:
191     $ref: /schemas/graph.yaml#/properties/port
192     description: |
193       Video output port, typically connected to a panel or bridge.
194 
195 additionalProperties: false
196 
197 required:
198   - compatible
199   - reg
200   - clocks
201   - clock-names
202   - interrupts
203   - xylon,display-interface
204   - xylon,display-colorspace
205   - xylon,display-depth
206   - xylon,row-stride
207   - layers
208   - port
209 
210 examples:
211   - |
212     #include <dt-bindings/interrupt-controller/irq.h>
213 
214     logicvc: logicvc@43c00000 {
215       compatible = "xylon,logicvc-3.02.a", "syscon", "simple-mfd";
216       reg = <0x43c00000 0x6000>;
217 
218       #address-cells = <1>;
219       #size-cells = <1>;
220 
221       logicvc_display: display@0 {
222         compatible = "xylon,logicvc-3.02.a-display";
223         reg = <0x0 0x6000>;
224 
225         memory-region = <&logicvc_cma>;
226 
227         clocks = <&logicvc_vclk 0>, <&logicvc_lvdsclk 0>;
228         clock-names = "vclk", "lvdsclk";
229 
230         interrupt-parent = <&intc>;
231         interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
232 
233         xylon,display-interface = "lvds-4bits";
234         xylon,display-colorspace = "rgb";
235         xylon,display-depth = <16>;
236         xylon,row-stride = <1024>;
237 
238         xylon,layers-configurable;
239 
240         layers {
241           #address-cells = <1>;
242           #size-cells = <0>;
243 
244           layer@0 {
245             reg = <0>;
246             xylon,layer-depth = <16>;
247             xylon,layer-colorspace = "rgb";
248             xylon,layer-alpha-mode = "layer";
249             xylon,layer-base-offset = <0>;
250             xylon,layer-buffer-offset = <480>;
251             xylon,layer-primary;
252           };
253 
254           layer@1 {
255             reg = <1>;
256             xylon,layer-depth = <16>;
257             xylon,layer-colorspace = "rgb";
258             xylon,layer-alpha-mode = "layer";
259             xylon,layer-base-offset = <2400>;
260             xylon,layer-buffer-offset = <480>;
261           };
262 
263           layer@2 {
264             reg = <2>;
265             xylon,layer-depth = <16>;
266             xylon,layer-colorspace = "rgb";
267             xylon,layer-alpha-mode = "layer";
268             xylon,layer-base-offset = <960>;
269             xylon,layer-buffer-offset = <480>;
270           };
271 
272           layer@3 {
273             reg = <3>;
274             xylon,layer-depth = <16>;
275             xylon,layer-colorspace = "rgb";
276             xylon,layer-alpha-mode = "layer";
277             xylon,layer-base-offset = <480>;
278             xylon,layer-buffer-offset = <480>;
279           };
280 
281           layer@4 {
282             reg = <4>;
283             xylon,layer-depth = <16>;
284             xylon,layer-colorspace = "rgb";
285             xylon,layer-alpha-mode = "layer";
286             xylon,layer-base-offset = <8192>;
287             xylon,layer-buffer-offset = <480>;
288           };
289         };
290 
291         port {
292           #address-cells = <1>;
293           #size-cells = <0>;
294 
295           logicvc_output: endpoint@0 {
296             reg = <0>;
297             remote-endpoint = <&panel_input>;
298           };
299         };
300       };
301     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php