Lines Matching +full:sun6i +full:- +full:a31 +full:- +full:tcon

1 // SPDX-License-Identifier: GPL-2.0-or-later
6 * Maxime Ripard <maxime.ripard@free-electrons.com>
10 #include <linux/dma-mapping.h>
38 args->pitch = ALIGN(DIV_ROUND_UP(args->width * args->bpp, 8), 2); in drm_sun4i_gem_dumb_create()
50 .name = "sun4i-drm",
72 ret = -ENOMEM; in sun4i_drv_bind()
76 drm->dev_private = drv; in sun4i_drv_bind()
77 INIT_LIST_HEAD(&drv->frontend_list); in sun4i_drv_bind()
78 INIT_LIST_HEAD(&drv->engine_list); in sun4i_drv_bind()
79 INIT_LIST_HEAD(&drv->tcon_list); in sun4i_drv_bind()
82 if (ret && ret != -ENODEV) { in sun4i_drv_bind()
83 dev_err(drm->dev, "Couldn't claim our memory region\n"); in sun4i_drv_bind()
89 ret = component_bind_all(drm->dev, drm); in sun4i_drv_bind()
91 dev_err(drm->dev, "Couldn't bind all pipelines components\n"); in sun4i_drv_bind()
96 ret = drm_vblank_init(drm, drm->mode_config.num_crtc); in sun4i_drv_bind()
155 return of_device_is_compatible(node, "hdmi-connector"); in sun4i_drv_node_is_connector()
160 return of_device_is_compatible(node, "allwinner,sun4i-a10-display-frontend") || in sun4i_drv_node_is_frontend()
161 of_device_is_compatible(node, "allwinner,sun5i-a13-display-frontend") || in sun4i_drv_node_is_frontend()
162 of_device_is_compatible(node, "allwinner,sun6i-a31-display-frontend") || in sun4i_drv_node_is_frontend()
163 of_device_is_compatible(node, "allwinner,sun7i-a20-display-frontend") || in sun4i_drv_node_is_frontend()
164 of_device_is_compatible(node, "allwinner,sun8i-a23-display-frontend") || in sun4i_drv_node_is_frontend()
165 of_device_is_compatible(node, "allwinner,sun8i-a33-display-frontend") || in sun4i_drv_node_is_frontend()
166 of_device_is_compatible(node, "allwinner,sun9i-a80-display-frontend"); in sun4i_drv_node_is_frontend()
171 return of_device_is_compatible(node, "allwinner,sun9i-a80-deu"); in sun4i_drv_node_is_deu()
195 quirks = (struct sun4i_tcon_quirks *)match->data; in sun4i_drv_node_is_tcon_with_ch0()
197 return quirks->has_channel_0; in sun4i_drv_node_is_tcon_with_ch0()
214 * of the of_graph, which means the encoders downstream of the TCON
215 * get add right after the first TCON. The second TCON or CRTC will
219 * either backend, and both backends can feed either TCON, we want
255 * TCON TOP is always probed before TCON. However, TCON in sun4i_drv_traverse_endpoints()
256 * points back to TCON TOP when it is source for HDMI. in sun4i_drv_traverse_endpoints()
258 * between TCON TOP and TCON. in sun4i_drv_traverse_endpoints()
261 DRM_DEBUG_DRIVER("TCON output endpoint is TCON TOP... skipping\n"); in sun4i_drv_traverse_endpoints()
267 * If the node is our TCON with channel 0, the first in sun4i_drv_traverse_endpoints()
288 kfifo_put(&list->fifo, remote); in sun4i_drv_traverse_endpoints()
335 /* TCON TOP has second and third output */ in sun4i_drv_add_endpoints()
368 struct device_node *np = pdev->dev.of_node, *endpoint; in sun4i_drv_probe()
375 * DE2 and DE3 cores actually supports 40-bit addresses, but in sun4i_drv_probe()
378 dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); in sun4i_drv_probe()
379 dma_set_max_seg_size(&pdev->dev, UINT_MAX); in sun4i_drv_probe()
393 ret = sun4i_drv_add_endpoints(&pdev->dev, &list, &match, in sun4i_drv_probe()
404 return component_master_add_with_match(&pdev->dev, in sun4i_drv_probe()
413 component_master_del(&pdev->dev, &sun4i_drv_master_ops); in sun4i_drv_remove()
422 { .compatible = "allwinner,sun4i-a10-display-engine" },
423 { .compatible = "allwinner,sun5i-a10s-display-engine" },
424 { .compatible = "allwinner,sun5i-a13-display-engine" },
425 { .compatible = "allwinner,sun6i-a31-display-engine" },
426 { .compatible = "allwinner,sun6i-a31s-display-engine" },
427 { .compatible = "allwinner,sun7i-a20-display-engine" },
428 { .compatible = "allwinner,sun8i-a23-display-engine" },
429 { .compatible = "allwinner,sun8i-a33-display-engine" },
430 { .compatible = "allwinner,sun8i-a83t-display-engine" },
431 { .compatible = "allwinner,sun8i-h3-display-engine" },
432 { .compatible = "allwinner,sun8i-r40-display-engine" },
433 { .compatible = "allwinner,sun8i-v3s-display-engine" },
434 { .compatible = "allwinner,sun9i-a80-display-engine" },
435 { .compatible = "allwinner,sun20i-d1-display-engine" },
436 { .compatible = "allwinner,sun50i-a64-display-engine" },
437 { .compatible = "allwinner,sun50i-h6-display-engine" },
447 .name = "sun4i-drm",
454 MODULE_AUTHOR("Boris Brezillon <boris.brezillon@free-electrons.com>");
455 MODULE_AUTHOR("Maxime Ripard <maxime.ripard@free-electrons.com>");