Lines Matching +full:sun4i +full:- +full:a10 +full:- +full:tcon

1 // SPDX-License-Identifier: GPL-2.0-or-later
6 * Maxime Ripard <maxime.ripard@free-electrons.com>
36 args->pitch = ALIGN(DIV_ROUND_UP(args->width * args->bpp, 8), 2); in drm_sun4i_gem_dumb_create()
48 .name = "sun4i-drm",
49 .desc = "Allwinner sun4i Display Engine",
70 ret = -ENOMEM; in sun4i_drv_bind()
75 drm->dev_private = drv; in sun4i_drv_bind()
76 INIT_LIST_HEAD(&drv->frontend_list); in sun4i_drv_bind()
77 INIT_LIST_HEAD(&drv->engine_list); in sun4i_drv_bind()
78 INIT_LIST_HEAD(&drv->tcon_list); in sun4i_drv_bind()
81 if (ret && ret != -ENODEV) { in sun4i_drv_bind()
82 dev_err(drm->dev, "Couldn't claim our memory region\n"); in sun4i_drv_bind()
88 ret = component_bind_all(drm->dev, drm); in sun4i_drv_bind()
90 dev_err(drm->dev, "Couldn't bind all pipelines components\n"); in sun4i_drv_bind()
95 ret = drm_vblank_init(drm, drm->mode_config.num_crtc); in sun4i_drv_bind()
99 drm->irq_enabled = true; in sun4i_drv_bind()
102 drm_fb_helper_remove_conflicting_framebuffers(NULL, "sun4i-drm-fb", false); in sun4i_drv_bind()
149 return of_device_is_compatible(node, "hdmi-connector"); in sun4i_drv_node_is_connector()
154 return of_device_is_compatible(node, "allwinner,sun4i-a10-display-frontend") || in sun4i_drv_node_is_frontend()
155 of_device_is_compatible(node, "allwinner,sun5i-a13-display-frontend") || in sun4i_drv_node_is_frontend()
156 of_device_is_compatible(node, "allwinner,sun6i-a31-display-frontend") || in sun4i_drv_node_is_frontend()
157 of_device_is_compatible(node, "allwinner,sun7i-a20-display-frontend") || in sun4i_drv_node_is_frontend()
158 of_device_is_compatible(node, "allwinner,sun8i-a23-display-frontend") || in sun4i_drv_node_is_frontend()
159 of_device_is_compatible(node, "allwinner,sun8i-a33-display-frontend") || in sun4i_drv_node_is_frontend()
160 of_device_is_compatible(node, "allwinner,sun9i-a80-display-frontend"); in sun4i_drv_node_is_frontend()
165 return of_device_is_compatible(node, "allwinner,sun9i-a80-deu"); in sun4i_drv_node_is_deu()
189 quirks = (struct sun4i_tcon_quirks *)match->data; in sun4i_drv_node_is_tcon_with_ch0()
191 return quirks->has_channel_0; in sun4i_drv_node_is_tcon_with_ch0()
206 dev->of_node, in compare_of()
209 return dev->of_node == data; in compare_of()
217 * of the of_graph, which means the encoders downstream of the TCON
218 * get add right after the first TCON. The second TCON or CRTC will
222 * either backend, and both backends can feed either TCON, we want
258 * TCON TOP is always probed before TCON. However, TCON in sun4i_drv_traverse_endpoints()
259 * points back to TCON TOP when it is source for HDMI. in sun4i_drv_traverse_endpoints()
261 * between TCON TOP and TCON. in sun4i_drv_traverse_endpoints()
264 DRM_DEBUG_DRIVER("TCON output endpoint is TCON TOP... skipping\n"); in sun4i_drv_traverse_endpoints()
270 * If the node is our TCON with channel 0, the first in sun4i_drv_traverse_endpoints()
291 kfifo_put(&list->fifo, remote); in sun4i_drv_traverse_endpoints()
338 /* TCON TOP has second and third output */ in sun4i_drv_add_endpoints()
371 struct device_node *np = pdev->dev.of_node, *endpoint; in sun4i_drv_probe()
389 ret = sun4i_drv_add_endpoints(&pdev->dev, &list, &match, in sun4i_drv_probe()
400 return component_master_add_with_match(&pdev->dev, in sun4i_drv_probe()
409 component_master_del(&pdev->dev, &sun4i_drv_master_ops); in sun4i_drv_remove()
415 { .compatible = "allwinner,sun4i-a10-display-engine" },
416 { .compatible = "allwinner,sun5i-a10s-display-engine" },
417 { .compatible = "allwinner,sun5i-a13-display-engine" },
418 { .compatible = "allwinner,sun6i-a31-display-engine" },
419 { .compatible = "allwinner,sun6i-a31s-display-engine" },
420 { .compatible = "allwinner,sun7i-a20-display-engine" },
421 { .compatible = "allwinner,sun8i-a23-display-engine" },
422 { .compatible = "allwinner,sun8i-a33-display-engine" },
423 { .compatible = "allwinner,sun8i-a83t-display-engine" },
424 { .compatible = "allwinner,sun8i-h3-display-engine" },
425 { .compatible = "allwinner,sun8i-r40-display-engine" },
426 { .compatible = "allwinner,sun8i-v3s-display-engine" },
427 { .compatible = "allwinner,sun9i-a80-display-engine" },
428 { .compatible = "allwinner,sun50i-a64-display-engine" },
429 { .compatible = "allwinner,sun50i-h6-display-engine" },
438 .name = "sun4i-drm",
445 MODULE_AUTHOR("Boris Brezillon <boris.brezillon@free-electrons.com>");
446 MODULE_AUTHOR("Maxime Ripard <maxime.ripard@free-electrons.com>");
447 MODULE_DESCRIPTION("Allwinner A10 Display Engine DRM/KMS Driver");