drm/sun4i: Add support for A23 display pipeline
authorChen-Yu Tsai <wens@csie.org>
Fri, 25 Jan 2019 03:23:09 +0000 (11:23 +0800)
committerMaxime Ripard <maxime.ripard@bootlin.com>
Fri, 25 Jan 2019 09:42:07 +0000 (10:42 +0100)
The A23's display pipeline is similar to the A33. Differences include:

  - Display backend supports larger layers, 8192x8192 instead of 2048x2048

  - TCON has DMA input

  - There is no SAT module packed in the display backend

Add support for the display pipeline and its components.

As the MIPI DSI output device is not officially documented, and there
are no A23 reference devices to test it, it is not covered by this
patch.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190125032314.20915-7-wens@csie.org
drivers/gpu/drm/sun4i/sun4i_backend.c
drivers/gpu/drm/sun4i/sun4i_drv.c
drivers/gpu/drm/sun4i/sun4i_frontend.c
drivers/gpu/drm/sun4i/sun4i_tcon.c
drivers/gpu/drm/sun4i/sun6i_drc.c

index b98a92ccb74d1d7f27e3a197d5fc7f019933a128..990847cb40f6588fd11ce41f4ec9b8e15aa9b912 100644 (file)
@@ -1011,6 +1011,10 @@ static const struct of_device_id sun4i_backend_of_table[] = {
                .compatible = "allwinner,sun7i-a20-display-backend",
                .data = &sun7i_backend_quirks,
        },
+       {
+               .compatible = "allwinner,sun8i-a23-display-backend",
+               .data = &sun8i_a33_backend_quirks,
+       },
        {
                .compatible = "allwinner,sun8i-a33-display-backend",
                .data = &sun8i_a33_backend_quirks,
index 46828b88e8feab287732fa3e0d3d34a0f5d4cf01..3ebd9f5e2719d7f028c2c87b1e2cedd6c60a5365 100644 (file)
@@ -165,6 +165,7 @@ static bool sun4i_drv_node_is_frontend(struct device_node *node)
                of_device_is_compatible(node, "allwinner,sun5i-a13-display-frontend") ||
                of_device_is_compatible(node, "allwinner,sun6i-a31-display-frontend") ||
                of_device_is_compatible(node, "allwinner,sun7i-a20-display-frontend") ||
+               of_device_is_compatible(node, "allwinner,sun8i-a23-display-frontend") ||
                of_device_is_compatible(node, "allwinner,sun8i-a33-display-frontend") ||
                of_device_is_compatible(node, "allwinner,sun9i-a80-display-frontend");
 }
@@ -404,6 +405,7 @@ static const struct of_device_id sun4i_drv_of_table[] = {
        { .compatible = "allwinner,sun6i-a31-display-engine" },
        { .compatible = "allwinner,sun6i-a31s-display-engine" },
        { .compatible = "allwinner,sun7i-a20-display-engine" },
+       { .compatible = "allwinner,sun8i-a23-display-engine" },
        { .compatible = "allwinner,sun8i-a33-display-engine" },
        { .compatible = "allwinner,sun8i-a83t-display-engine" },
        { .compatible = "allwinner,sun8i-h3-display-engine" },
index e8239d4d4dd5d28ac83c90acb4cf57720c6c3057..346c8071bd383c86388cac8991a04189e80af2af 100644 (file)
@@ -719,6 +719,10 @@ const struct of_device_id sun4i_frontend_of_table[] = {
                .compatible = "allwinner,sun7i-a20-display-frontend",
                .data = &sun4i_a10_frontend
        },
+       {
+               .compatible = "allwinner,sun8i-a23-display-frontend",
+               .data = &sun8i_a33_frontend
+       },
        {
                .compatible = "allwinner,sun8i-a33-display-frontend",
                .data = &sun8i_a33_frontend
index 7e1d4eac5a98193a65112a0eedcff085dbae28fa..2bd2eda6480aeb5a343a01e1b78e6b1c07cf9920 100644 (file)
@@ -1494,6 +1494,7 @@ const struct of_device_id sun4i_tcon_of_table[] = {
        { .compatible = "allwinner,sun6i-a31-tcon", .data = &sun6i_a31_quirks },
        { .compatible = "allwinner,sun6i-a31s-tcon", .data = &sun6i_a31s_quirks },
        { .compatible = "allwinner,sun7i-a20-tcon", .data = &sun7i_a20_quirks },
+       { .compatible = "allwinner,sun8i-a23-tcon", .data = &sun8i_a33_quirks },
        { .compatible = "allwinner,sun8i-a33-tcon", .data = &sun8i_a33_quirks },
        { .compatible = "allwinner,sun8i-a83t-tcon-lcd", .data = &sun8i_a83t_lcd_quirks },
        { .compatible = "allwinner,sun8i-a83t-tcon-tv", .data = &sun8i_a83t_tv_quirks },
index 88eb268fdf7328ce40a166c96a22a10efff5c815..442094a4af7a90eb64e8246f19c26e3a33902569 100644 (file)
@@ -101,6 +101,7 @@ static int sun6i_drc_remove(struct platform_device *pdev)
 static const struct of_device_id sun6i_drc_of_table[] = {
        { .compatible = "allwinner,sun6i-a31-drc" },
        { .compatible = "allwinner,sun6i-a31s-drc" },
+       { .compatible = "allwinner,sun8i-a23-drc" },
        { .compatible = "allwinner,sun8i-a33-drc" },
        { .compatible = "allwinner,sun9i-a80-drc" },
        { }