123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- From ca58a9eacc862c84c9caf066aaa32ea16195d2c2 Mon Sep 17 00:00:00 2001
- From: Phil Elwell <[email protected]>
- Date: Mon, 19 Dec 2022 16:32:33 +0000
- Subject: [PATCH] drm/panel: simple: Add Innolux AT056tN53V1 5.6" VGA
- Add support for the Innolux AT056tN53V1 5.6" VGA (640x480) TFT LCD
- panel.
- Signed-off-by: Joerg Quinten <[email protected]>
- Signed-off-by: Phil Elwell <[email protected]>
- ---
- .../bindings/display/panel/panel-simple.yaml | 2 +
- .../media/v4l/subdev-formats.rst | 76 ++++++++++++++++++-
- drivers/gpu/drm/panel/panel-simple.c | 35 +++++++++
- 3 files changed, 112 insertions(+), 1 deletion(-)
- --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
- +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
- @@ -174,6 +174,8 @@ properties:
- - ivo,m133nwf4-r0
- # Innolux AT043TN24 4.3" WQVGA TFT LCD panel
- - innolux,at043tn24
- + # Innolux AT056tN53V1 5.6" VGA (640x480) TFT LCD panel
- + - innolux,at056tn53v1
- # Innolux AT070TN92 7.0" WQVGA TFT LCD panel
- - innolux,at070tn92
- # Innolux G070Y2-L01 7" WVGA (800x480) TFT LCD panel
- --- a/Documentation/userspace-api/media/v4l/subdev-formats.rst
- +++ b/Documentation/userspace-api/media/v4l/subdev-formats.rst
- @@ -627,7 +627,7 @@ The following tables list existing packe
- * .. _MEDIA_BUS_FMT_RGB565_1X24_CPADHI:
-
- - MEDIA_BUS_FMT_RGB565_1X24_CPADHI
- - - 0x1020
- + - 0x1022
- -
- -
- -
- @@ -949,6 +949,43 @@ The following tables list existing packe
- - g\ :sub:`5`
- - g\ :sub:`4`
- - g\ :sub:`3`
- + * .. _MEDIA-BUS-FMT-BGR666-1X18:
- +
- + - MEDIA_BUS_FMT-BGR666_1X18
- + - 0x1023
- + -
- + -
- + -
- + -
- + -
- + -
- + -
- + -
- + -
- + -
- + -
- + -
- + -
- + -
- + -
- + - b\ :sub:`5`
- + - b\ :sub:`4`
- + - b\ :sub:`3`
- + - b\ :sub:`2`
- + - b\ :sub:`1`
- + - b\ :sub:`0`
- + - g\ :sub:`5`
- + - g\ :sub:`4`
- + - g\ :sub:`3`
- + - g\ :sub:`2`
- + - g\ :sub:`1`
- + - g\ :sub:`0`
- + - r\ :sub:`5`
- + - r\ :sub:`4`
- + - r\ :sub:`3`
- + - r\ :sub:`2`
- + - r\ :sub:`1`
- + - r\ :sub:`0`
- * .. _MEDIA-BUS-FMT-RGB666-1X18:
-
- - MEDIA_BUS_FMT_RGB666_1X18
- @@ -1023,6 +1060,43 @@ The following tables list existing packe
- - g\ :sub:`2`
- - g\ :sub:`1`
- - g\ :sub:`0`
- + * .. _MEDIA-BUS-FMT-BGR666-1X24_CPADHI:
- +
- + - MEDIA_BUS_FMT_BGR666_1X24_CPADHI
- + - 0x1024
- + -
- + -
- + -
- + -
- + -
- + -
- + -
- + -
- + -
- + - 0
- + - 0
- + - b\ :sub:`5`
- + - b\ :sub:`4`
- + - b\ :sub:`3`
- + - b\ :sub:`2`
- + - b\ :sub:`1`
- + - b\ :sub:`0`
- + - 0
- + - 0
- + - g\ :sub:`5`
- + - g\ :sub:`4`
- + - g\ :sub:`3`
- + - g\ :sub:`2`
- + - g\ :sub:`1`
- + - g\ :sub:`0`
- + - 0
- + - 0
- + - r\ :sub:`5`
- + - r\ :sub:`4`
- + - r\ :sub:`3`
- + - r\ :sub:`2`
- + - r\ :sub:`1`
- + - r\ :sub:`0`
- * .. _MEDIA-BUS-FMT-RGB666-1X24_CPADHI:
-
- - MEDIA_BUS_FMT_RGB666_1X24_CPADHI
- --- a/drivers/gpu/drm/panel/panel-simple.c
- +++ b/drivers/gpu/drm/panel/panel-simple.c
- @@ -2138,6 +2138,38 @@ static const struct panel_desc innolux_a
- .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
- };
-
- +static const struct display_timing innolux_at056tn53v1_timing = {
- + .pixelclock = { 39700000, 39700000, 39700000},
- + .hactive = { 640, 640, 640 },
- + .hfront_porch = { 16, 16, 16 },
- + .hback_porch = { 134, 134, 134 },
- + .hsync_len = { 10, 10, 10},
- + .vactive = { 480, 480, 480 },
- + .vfront_porch = { 32, 32, 32},
- + .vback_porch = { 11, 11, 11 },
- + .vsync_len = { 2, 2, 2 },
- + .flags = DRM_MODE_FLAG_PVSYNC | DRM_MODE_FLAG_PHSYNC,
- +};
- +
- +static const struct panel_desc innolux_at056tn53v1 = {
- + .timings = &innolux_at056tn53v1_timing,
- + .num_timings = 1,
- + .bpc = 6,
- + .size = {
- + .width = 112,
- + .height = 84,
- + },
- + .delay = {
- + .prepare = 50,
- + .enable = 200,
- + .disable = 110,
- + .unprepare = 200,
- + },
- + .bus_format = MEDIA_BUS_FMT_BGR666_1X24_CPADHI,
- + .bus_flags = DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE,
- + .connector_type = DRM_MODE_CONNECTOR_DPI,
- +};
- +
- static const struct drm_display_mode innolux_at070tn92_mode = {
- .clock = 33333,
- .hdisplay = 800,
- @@ -4144,6 +4176,9 @@ static const struct of_device_id platfor
- .compatible = "innolux,at043tn24",
- .data = &innolux_at043tn24,
- }, {
- + .compatible = "innolux,at056tn53v1",
- + .data = &innolux_at056tn53v1,
- + }, {
- .compatible = "innolux,at070tn92",
- .data = &innolux_at070tn92,
- }, {
|