Merge branch 'linus' into x86/mm, to refresh the branch
[platform/kernel/linux-rpi.git] / drivers / gpu / drm / logicvc / logicvc_of.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2019-2022 Bootlin
4  * Author: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
5  */
6
7 #ifndef _LOGICVC_OF_H_
8 #define _LOGICVC_OF_H_
9
10 enum logicvc_of_property_index {
11         LOGICVC_OF_PROPERTY_DISPLAY_INTERFACE = 0,
12         LOGICVC_OF_PROPERTY_DISPLAY_COLORSPACE,
13         LOGICVC_OF_PROPERTY_DISPLAY_DEPTH,
14         LOGICVC_OF_PROPERTY_ROW_STRIDE,
15         LOGICVC_OF_PROPERTY_DITHERING,
16         LOGICVC_OF_PROPERTY_BACKGROUND_LAYER,
17         LOGICVC_OF_PROPERTY_LAYERS_CONFIGURABLE,
18         LOGICVC_OF_PROPERTY_LAYERS_COUNT,
19         LOGICVC_OF_PROPERTY_LAYER_DEPTH,
20         LOGICVC_OF_PROPERTY_LAYER_COLORSPACE,
21         LOGICVC_OF_PROPERTY_LAYER_ALPHA_MODE,
22         LOGICVC_OF_PROPERTY_LAYER_BASE_OFFSET,
23         LOGICVC_OF_PROPERTY_LAYER_BUFFER_OFFSET,
24         LOGICVC_OF_PROPERTY_LAYER_PRIMARY,
25         LOGICVC_OF_PROPERTY_MAXIMUM,
26 };
27
28 struct logicvc_of_property_sv {
29         const char *string;
30         u32 value;
31 };
32
33 struct logicvc_of_property {
34         char *name;
35         bool optional;
36         struct logicvc_of_property_sv *sv;
37         u32 range[2];
38 };
39
40 int logicvc_of_property_parse_u32(struct device_node *of_node,
41                                   unsigned int index, u32 *target);
42 void logicvc_of_property_parse_bool(struct device_node *of_node,
43                                     unsigned int index, bool *target);
44 bool logicvc_of_node_is_layer(struct device_node *of_node);
45
46 #endif