drm: atmel-hlcdc: add support for sama5d4 SoCs
authorBoris Brezillon <boris.brezillon@free-electrons.com>
Wed, 7 Jan 2015 09:25:41 +0000 (10:25 +0100)
committerBoris Brezillon <boris.brezillon@free-electrons.com>
Tue, 18 Aug 2015 09:02:27 +0000 (11:02 +0200)
Describe capabilities of the HLCDC IP found on sama5d4 SoCs and add a
new entry to the atmel_hlcdc_of_match table.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c

index ed83aa3207eaf84d262515c799e1961e8509ccf5..e058e0ad3c15ed24e6f05d0cabb77d9416a43672 100644 (file)
@@ -241,6 +241,88 @@ static const struct atmel_hlcdc_dc_desc atmel_hlcdc_dc_sama5d3 = {
        .layers = atmel_hlcdc_sama5d3_layers,
 };
 
+static const struct atmel_hlcdc_layer_desc atmel_hlcdc_sama5d4_layers[] = {
+       {
+               .name = "base",
+               .formats = &atmel_hlcdc_plane_rgb_formats,
+               .regs_offset = 0x40,
+               .id = 0,
+               .type = ATMEL_HLCDC_BASE_LAYER,
+               .nconfigs = 7,
+               .layout = {
+                       .xstride = { 2 },
+                       .default_color = 3,
+                       .general_config = 4,
+                       .disc_pos = 5,
+                       .disc_size = 6,
+               },
+       },
+       {
+               .name = "overlay1",
+               .formats = &atmel_hlcdc_plane_rgb_formats,
+               .regs_offset = 0x140,
+               .id = 1,
+               .type = ATMEL_HLCDC_OVERLAY_LAYER,
+               .nconfigs = 10,
+               .layout = {
+                       .pos = 2,
+                       .size = 3,
+                       .xstride = { 4 },
+                       .pstride = { 5 },
+                       .default_color = 6,
+                       .chroma_key = 7,
+                       .chroma_key_mask = 8,
+                       .general_config = 9,
+               },
+       },
+       {
+               .name = "overlay2",
+               .formats = &atmel_hlcdc_plane_rgb_formats,
+               .regs_offset = 0x240,
+               .id = 2,
+               .type = ATMEL_HLCDC_OVERLAY_LAYER,
+               .nconfigs = 10,
+               .layout = {
+                       .pos = 2,
+                       .size = 3,
+                       .xstride = { 4 },
+                       .pstride = { 5 },
+                       .default_color = 6,
+                       .chroma_key = 7,
+                       .chroma_key_mask = 8,
+                       .general_config = 9,
+               },
+       },
+       {
+               .name = "high-end-overlay",
+               .formats = &atmel_hlcdc_plane_rgb_and_yuv_formats,
+               .regs_offset = 0x340,
+               .id = 3,
+               .type = ATMEL_HLCDC_OVERLAY_LAYER,
+               .nconfigs = 42,
+               .layout = {
+                       .pos = 2,
+                       .size = 3,
+                       .memsize = 4,
+                       .xstride = { 5, 7 },
+                       .pstride = { 6, 8 },
+                       .default_color = 9,
+                       .chroma_key = 10,
+                       .chroma_key_mask = 11,
+                       .general_config = 12,
+                       .csc = 14,
+               },
+       },
+};
+
+static const struct atmel_hlcdc_dc_desc atmel_hlcdc_dc_sama5d4 = {
+       .min_width = 0,
+       .min_height = 0,
+       .max_width = 2048,
+       .max_height = 2048,
+       .nlayers = ARRAY_SIZE(atmel_hlcdc_sama5d4_layers),
+       .layers = atmel_hlcdc_sama5d4_layers,
+};
 static const struct of_device_id atmel_hlcdc_of_match[] = {
        {
                .compatible = "atmel,at91sam9n12-hlcdc",
@@ -254,6 +336,10 @@ static const struct of_device_id atmel_hlcdc_of_match[] = {
                .compatible = "atmel,sama5d3-hlcdc",
                .data = &atmel_hlcdc_dc_sama5d3,
        },
+       {
+               .compatible = "atmel,sama5d4-hlcdc",
+               .data = &atmel_hlcdc_dc_sama5d4,
+       },
        { /* sentinel */ },
 };