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