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