diff options
Diffstat (limited to 'drivers/gpu/drm/panel/panel-simple.c')
-rw-r--r-- | drivers/gpu/drm/panel/panel-simple.c | 99 |
1 files changed, 98 insertions, 1 deletions
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index f94201b6e882..f97b73ec4713 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c | |||
@@ -713,7 +713,12 @@ static const struct display_timing hannstar_hsd070pww1_timing = { | |||
713 | .hactive = { 1280, 1280, 1280 }, | 713 | .hactive = { 1280, 1280, 1280 }, |
714 | .hfront_porch = { 1, 1, 10 }, | 714 | .hfront_porch = { 1, 1, 10 }, |
715 | .hback_porch = { 1, 1, 10 }, | 715 | .hback_porch = { 1, 1, 10 }, |
716 | .hsync_len = { 52, 158, 661 }, | 716 | /* |
717 | * According to the data sheet, the minimum horizontal blanking interval | ||
718 | * is 54 clocks (1 + 52 + 1), but tests with a Nitrogen6X have shown the | ||
719 | * minimum working horizontal blanking interval to be 60 clocks. | ||
720 | */ | ||
721 | .hsync_len = { 58, 158, 661 }, | ||
717 | .vactive = { 800, 800, 800 }, | 722 | .vactive = { 800, 800, 800 }, |
718 | .vfront_porch = { 1, 1, 10 }, | 723 | .vfront_porch = { 1, 1, 10 }, |
719 | .vback_porch = { 1, 1, 10 }, | 724 | .vback_porch = { 1, 1, 10 }, |
@@ -729,6 +734,7 @@ static const struct panel_desc hannstar_hsd070pww1 = { | |||
729 | .width = 151, | 734 | .width = 151, |
730 | .height = 94, | 735 | .height = 94, |
731 | }, | 736 | }, |
737 | .bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG, | ||
732 | }; | 738 | }; |
733 | 739 | ||
734 | static const struct display_timing hannstar_hsd100pxn1_timing = { | 740 | static const struct display_timing hannstar_hsd100pxn1_timing = { |
@@ -943,6 +949,60 @@ static const struct panel_desc lg_lp129qe = { | |||
943 | }, | 949 | }, |
944 | }; | 950 | }; |
945 | 951 | ||
952 | static const struct drm_display_mode nec_nl4827hc19_05b_mode = { | ||
953 | .clock = 10870, | ||
954 | .hdisplay = 480, | ||
955 | .hsync_start = 480 + 2, | ||
956 | .hsync_end = 480 + 2 + 41, | ||
957 | .htotal = 480 + 2 + 41 + 2, | ||
958 | .vdisplay = 272, | ||
959 | .vsync_start = 272 + 2, | ||
960 | .vsync_end = 272 + 2 + 4, | ||
961 | .vtotal = 272 + 2 + 4 + 2, | ||
962 | .vrefresh = 74, | ||
963 | }; | ||
964 | |||
965 | static const struct panel_desc nec_nl4827hc19_05b = { | ||
966 | .modes = &nec_nl4827hc19_05b_mode, | ||
967 | .num_modes = 1, | ||
968 | .bpc = 8, | ||
969 | .size = { | ||
970 | .width = 95, | ||
971 | .height = 54, | ||
972 | }, | ||
973 | .bus_format = MEDIA_BUS_FMT_RGB888_1X24 | ||
974 | }; | ||
975 | |||
976 | static const struct display_timing okaya_rs800480t_7x0gp_timing = { | ||
977 | .pixelclock = { 30000000, 30000000, 40000000 }, | ||
978 | .hactive = { 800, 800, 800 }, | ||
979 | .hfront_porch = { 40, 40, 40 }, | ||
980 | .hback_porch = { 40, 40, 40 }, | ||
981 | .hsync_len = { 1, 48, 48 }, | ||
982 | .vactive = { 480, 480, 480 }, | ||
983 | .vfront_porch = { 13, 13, 13 }, | ||
984 | .vback_porch = { 29, 29, 29 }, | ||
985 | .vsync_len = { 3, 3, 3 }, | ||
986 | .flags = DISPLAY_FLAGS_DE_HIGH, | ||
987 | }; | ||
988 | |||
989 | static const struct panel_desc okaya_rs800480t_7x0gp = { | ||
990 | .timings = &okaya_rs800480t_7x0gp_timing, | ||
991 | .num_timings = 1, | ||
992 | .bpc = 6, | ||
993 | .size = { | ||
994 | .width = 154, | ||
995 | .height = 87, | ||
996 | }, | ||
997 | .delay = { | ||
998 | .prepare = 41, | ||
999 | .enable = 50, | ||
1000 | .unprepare = 41, | ||
1001 | .disable = 50, | ||
1002 | }, | ||
1003 | .bus_format = MEDIA_BUS_FMT_RGB666_1X18, | ||
1004 | }; | ||
1005 | |||
946 | static const struct drm_display_mode ortustech_com43h4m85ulc_mode = { | 1006 | static const struct drm_display_mode ortustech_com43h4m85ulc_mode = { |
947 | .clock = 25000, | 1007 | .clock = 25000, |
948 | .hdisplay = 480, | 1008 | .hdisplay = 480, |
@@ -1113,6 +1173,12 @@ static const struct of_device_id platform_of_match[] = { | |||
1113 | .compatible = "lg,lp129qe", | 1173 | .compatible = "lg,lp129qe", |
1114 | .data = &lg_lp129qe, | 1174 | .data = &lg_lp129qe, |
1115 | }, { | 1175 | }, { |
1176 | .compatible = "nec,nl4827hc19-05b", | ||
1177 | .data = &nec_nl4827hc19_05b, | ||
1178 | }, { | ||
1179 | .compatible = "okaya,rs800480t-7x0gp", | ||
1180 | .data = &okaya_rs800480t_7x0gp, | ||
1181 | }, { | ||
1116 | .compatible = "ortustech,com43h4m85ulc", | 1182 | .compatible = "ortustech,com43h4m85ulc", |
1117 | .data = &ortustech_com43h4m85ulc, | 1183 | .data = &ortustech_com43h4m85ulc, |
1118 | }, { | 1184 | }, { |
@@ -1169,6 +1235,34 @@ struct panel_desc_dsi { | |||
1169 | unsigned int lanes; | 1235 | unsigned int lanes; |
1170 | }; | 1236 | }; |
1171 | 1237 | ||
1238 | static const struct drm_display_mode auo_b080uan01_mode = { | ||
1239 | .clock = 154500, | ||
1240 | .hdisplay = 1200, | ||
1241 | .hsync_start = 1200 + 62, | ||
1242 | .hsync_end = 1200 + 62 + 4, | ||
1243 | .htotal = 1200 + 62 + 4 + 62, | ||
1244 | .vdisplay = 1920, | ||
1245 | .vsync_start = 1920 + 9, | ||
1246 | .vsync_end = 1920 + 9 + 2, | ||
1247 | .vtotal = 1920 + 9 + 2 + 8, | ||
1248 | .vrefresh = 60, | ||
1249 | }; | ||
1250 | |||
1251 | static const struct panel_desc_dsi auo_b080uan01 = { | ||
1252 | .desc = { | ||
1253 | .modes = &auo_b080uan01_mode, | ||
1254 | .num_modes = 1, | ||
1255 | .bpc = 8, | ||
1256 | .size = { | ||
1257 | .width = 108, | ||
1258 | .height = 272, | ||
1259 | }, | ||
1260 | }, | ||
1261 | .flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_CLOCK_NON_CONTINUOUS, | ||
1262 | .format = MIPI_DSI_FMT_RGB888, | ||
1263 | .lanes = 4, | ||
1264 | }; | ||
1265 | |||
1172 | static const struct drm_display_mode lg_ld070wx3_sl01_mode = { | 1266 | static const struct drm_display_mode lg_ld070wx3_sl01_mode = { |
1173 | .clock = 71000, | 1267 | .clock = 71000, |
1174 | .hdisplay = 800, | 1268 | .hdisplay = 800, |
@@ -1256,6 +1350,9 @@ static const struct panel_desc_dsi panasonic_vvx10f004b00 = { | |||
1256 | 1350 | ||
1257 | static const struct of_device_id dsi_of_match[] = { | 1351 | static const struct of_device_id dsi_of_match[] = { |
1258 | { | 1352 | { |
1353 | .compatible = "auo,b080uan01", | ||
1354 | .data = &auo_b080uan01 | ||
1355 | }, { | ||
1259 | .compatible = "lg,ld070wx3-sl01", | 1356 | .compatible = "lg,ld070wx3-sl01", |
1260 | .data = &lg_ld070wx3_sl01 | 1357 | .data = &lg_ld070wx3_sl01 |
1261 | }, { | 1358 | }, { |