/linux-6.12.1/drivers/gpu/drm/logicvc/ |
D | logicvc_drm.c | 38 struct logicvc_drm *logicvc = logicvc_drm(drm_dev); in logicvc_drm_gem_dma_dumb_create() local 41 args->pitch = logicvc->config.row_stride * DIV_ROUND_UP(args->bpp, 8); in logicvc_drm_gem_dma_dumb_create() 51 .name = "logicvc-drm", 52 .desc = "Xylon LogiCVC DRM driver", 64 .name = "logicvc-drm", 69 struct logicvc_drm *logicvc = data; in logicvc_drm_irq_handler() local 74 regmap_read(logicvc->regmap, LOGICVC_INT_STAT_REG, &stat); in logicvc_drm_irq_handler() 77 regmap_write(logicvc->regmap, LOGICVC_INT_STAT_REG, stat); in logicvc_drm_irq_handler() 80 logicvc_crtc_vblank_handler(logicvc); in logicvc_drm_irq_handler() 87 static int logicvc_drm_config_parse(struct logicvc_drm *logicvc) in logicvc_drm_config_parse() argument [all …]
|
D | logicvc_layer.c | 42 * This allows us to stay compatible with the LogiCVC bistream definitions. 88 struct logicvc_drm *logicvc = logicvc_drm(drm_dev); in logicvc_plane_atomic_check() local 110 if (!logicvc->caps->layer_address) { in logicvc_plane_atomic_check() 111 ret = logicvc_layer_buffer_find_setup(logicvc, layer, new_state, in logicvc_plane_atomic_check() 123 layer->index != (logicvc->config.layers_count - 1) && in logicvc_plane_atomic_check() 124 logicvc->config.layers_configurable); in logicvc_plane_atomic_check() 141 struct logicvc_drm *logicvc = logicvc_drm(drm_plane->dev); in logicvc_plane_atomic_update() local 142 struct drm_device *drm_dev = &logicvc->drm_dev; in logicvc_plane_atomic_update() 145 struct drm_crtc *drm_crtc = &logicvc->crtc->drm_crtc; in logicvc_plane_atomic_update() 154 regmap_write(logicvc->regmap, LOGICVC_LAYER_WIDTH_REG(index), in logicvc_plane_atomic_update() [all …]
|
D | logicvc_crtc.c | 66 struct logicvc_drm *logicvc = logicvc_drm(drm_crtc->dev); in logicvc_crtc_atomic_enable() local 91 regmap_write(logicvc->regmap, LOGICVC_HSYNC_FRONT_PORCH_REG, hfp - 1); in logicvc_crtc_atomic_enable() 92 regmap_write(logicvc->regmap, LOGICVC_HSYNC_REG, hsl - 1); in logicvc_crtc_atomic_enable() 93 regmap_write(logicvc->regmap, LOGICVC_HSYNC_BACK_PORCH_REG, hbp - 1); in logicvc_crtc_atomic_enable() 94 regmap_write(logicvc->regmap, LOGICVC_HRES_REG, hact - 1); in logicvc_crtc_atomic_enable() 96 regmap_write(logicvc->regmap, LOGICVC_VSYNC_FRONT_PORCH_REG, vfp - 1); in logicvc_crtc_atomic_enable() 97 regmap_write(logicvc->regmap, LOGICVC_VSYNC_REG, vsl - 1); in logicvc_crtc_atomic_enable() 98 regmap_write(logicvc->regmap, LOGICVC_VSYNC_BACK_PORCH_REG, vbp - 1); in logicvc_crtc_atomic_enable() 99 regmap_write(logicvc->regmap, LOGICVC_VRES_REG, vact - 1); in logicvc_crtc_atomic_enable() 112 if (logicvc->interface) { in logicvc_crtc_atomic_enable() [all …]
|
D | logicvc_interface.c | 33 struct logicvc_drm *logicvc = logicvc_drm(drm_encoder->dev); in logicvc_encoder_enable() local 37 regmap_update_bits(logicvc->regmap, LOGICVC_POWER_CTRL_REG, in logicvc_encoder_enable() 92 static int logicvc_interface_encoder_type(struct logicvc_drm *logicvc) in logicvc_interface_encoder_type() argument 94 switch (logicvc->config.display_interface) { in logicvc_interface_encoder_type() 108 static int logicvc_interface_connector_type(struct logicvc_drm *logicvc) in logicvc_interface_connector_type() argument 110 switch (logicvc->config.display_interface) { in logicvc_interface_connector_type() 124 static bool logicvc_interface_native_connector(struct logicvc_drm *logicvc) in logicvc_interface_native_connector() argument 126 switch (logicvc->config.display_interface) { in logicvc_interface_native_connector() 134 void logicvc_interface_attach_crtc(struct logicvc_drm *logicvc) in logicvc_interface_attach_crtc() argument 136 uint32_t possible_crtcs = drm_crtc_mask(&logicvc->crtc->drm_crtc); in logicvc_interface_attach_crtc() [all …]
|
D | logicvc_layer.h | 52 int logicvc_layer_buffer_find_setup(struct logicvc_drm *logicvc, 56 struct logicvc_layer *logicvc_layer_get_from_index(struct logicvc_drm *logicvc, 58 struct logicvc_layer *logicvc_layer_get_from_type(struct logicvc_drm *logicvc, 60 struct logicvc_layer *logicvc_layer_get_primary(struct logicvc_drm *logicvc); 61 void logicvc_layers_attach_crtc(struct logicvc_drm *logicvc); 62 int logicvc_layers_init(struct logicvc_drm *logicvc);
|
D | logicvc_mode.c | 31 int logicvc_mode_init(struct logicvc_drm *logicvc) in logicvc_mode_init() argument 33 struct drm_device *drm_dev = &logicvc->drm_dev; in logicvc_mode_init() 45 layer_primary = logicvc_layer_get_primary(logicvc); in logicvc_mode_init() 71 void logicvc_mode_fini(struct logicvc_drm *logicvc) in logicvc_mode_fini() argument 73 struct drm_device *drm_dev = &logicvc->drm_dev; in logicvc_mode_fini()
|
D | Kconfig | 2 tristate "LogiCVC DRM" 11 DRM display driver for the logiCVC programmable logic block from Xylon
|
D | Makefile | 1 logicvc-drm-y += \ 9 obj-$(CONFIG_DRM_LOGICVC) += logicvc-drm.o
|
D | logicvc_mode.h | 12 int logicvc_mode_init(struct logicvc_drm *logicvc); 13 void logicvc_mode_fini(struct logicvc_drm *logicvc);
|
D | logicvc_crtc.h | 18 void logicvc_crtc_vblank_handler(struct logicvc_drm *logicvc); 19 int logicvc_crtc_init(struct logicvc_drm *logicvc);
|
D | logicvc_interface.h | 25 void logicvc_interface_attach_crtc(struct logicvc_drm *logicvc); 26 int logicvc_interface_init(struct logicvc_drm *logicvc);
|
/linux-6.12.1/drivers/gpio/ |
D | gpio-logicvc.c | 29 static void logicvc_gpio_offset(struct logicvc_gpio *logicvc, unsigned offset, in logicvc_gpio_offset() argument 51 struct logicvc_gpio *logicvc = gpiochip_get_data(chip); in logicvc_gpio_get() local 55 logicvc_gpio_offset(logicvc, offset, ®, &bit); in logicvc_gpio_get() 57 ret = regmap_read(logicvc->regmap, reg, &value); in logicvc_gpio_get() 66 struct logicvc_gpio *logicvc = gpiochip_get_data(chip); in logicvc_gpio_set() local 69 logicvc_gpio_offset(logicvc, offset, ®, &bit); in logicvc_gpio_set() 71 regmap_update_bits(logicvc->regmap, reg, bit, value ? bit : 0); in logicvc_gpio_set() 87 .name = "logicvc-gpio", 94 struct logicvc_gpio *logicvc; in logicvc_gpio_probe() local 97 logicvc = devm_kzalloc(dev, sizeof(*logicvc), GFP_KERNEL); in logicvc_gpio_probe() [all …]
|
D | Makefile | 87 obj-$(CONFIG_GPIO_LOGICVC) += gpio-logicvc.o
|
D | Kconfig | 402 tristate "Xylon LogiCVC GPIO support" 405 Say yes here to support GPIO functionality of the Xylon LogiCVC
|
/linux-6.12.1/Documentation/devicetree/bindings/mfd/ |
D | xylon,logicvc.yaml | 5 $id: http://devicetree.org/schemas/mfd/xylon,logicvc.yaml# 8 title: Xylon LogiCVC multi-function device 14 The LogiCVC is a display controller that also contains a GPIO controller. 22 - xylon,logicvc-3.02.a 40 - xylon,logicvc-3.02.a 47 $ref: /schemas/gpio/xylon,logicvc-gpio.yaml# 50 $ref: /schemas/display/xylon,logicvc-display.yaml# 60 logicvc: logicvc@43c00000 { 61 compatible = "xylon,logicvc-3.02.a", "syscon", "simple-mfd";
|
/linux-6.12.1/Documentation/devicetree/bindings/gpio/ |
D | xylon,logicvc-gpio.yaml | 5 $id: http://devicetree.org/schemas/gpio/xylon,logicvc-gpio.yaml# 8 title: Xylon LogiCVC GPIO controller 14 The LogiCVC GPIO describes the GPIO block included in the LogiCVC display 32 - xylon,logicvc-3.02.a-gpio 56 logicvc: logicvc@43c00000 { 57 compatible = "xylon,logicvc-3.02.a", "syscon", "simple-mfd"; 64 compatible = "xylon,logicvc-3.02.a-gpio";
|
/linux-6.12.1/Documentation/devicetree/bindings/display/ |
D | xylon,logicvc-display.yaml | 5 $id: http://devicetree.org/schemas/display/xylon,logicvc-display.yaml# 8 title: Xylon LogiCVC display controller 14 The Xylon LogiCVC is a display controller that supports multiple layers. 32 - xylon,logicvc-3.02.a-display 33 - xylon,logicvc-4.01.a-display 214 logicvc: logicvc@43c00000 { 215 compatible = "xylon,logicvc-3.02.a", "syscon", "simple-mfd"; 222 compatible = "xylon,logicvc-3.02.a-display";
|
/linux-6.12.1/drivers/gpu/drm/ |
D | Makefile | 194 obj-$(CONFIG_DRM_LOGICVC) += logicvc/
|
D | Kconfig | 432 source "drivers/gpu/drm/logicvc/Kconfig"
|
/linux-6.12.1/ |
D | MAINTAINERS | 7169 DRM DRIVER FOR LOGICVC DISPLAY CONTROLLER 7173 F: drivers/gpu/drm/logicvc/
|