@@ -1224,6 +1224,194 @@ static const struct ili9881c_instr am8001280g_init[] = {
12241224 ILI9881C_COMMAND_INSTR (MIPI_DCS_WRITE_POWER_SAVE , 0x00 ),
12251225};
12261226
1227+ static const struct ili9881c_instr rpi_5inch_init [] = {
1228+ ILI9881C_SWITCH_PAGE_INSTR (3 ),
1229+ ILI9881C_COMMAND_INSTR (0x01 , 0x00 ),
1230+ ILI9881C_COMMAND_INSTR (0x02 , 0x00 ),
1231+ ILI9881C_COMMAND_INSTR (0x03 , 0x73 ),
1232+ ILI9881C_COMMAND_INSTR (0x04 , 0x73 ),
1233+ ILI9881C_COMMAND_INSTR (0x05 , 0x00 ),
1234+ ILI9881C_COMMAND_INSTR (0x06 , 0x06 ),
1235+ ILI9881C_COMMAND_INSTR (0x07 , 0x02 ),
1236+ ILI9881C_COMMAND_INSTR (0x08 , 0x00 ),
1237+ ILI9881C_COMMAND_INSTR (0x09 , 0x01 ),
1238+ ILI9881C_COMMAND_INSTR (0x0a , 0x01 ),
1239+ ILI9881C_COMMAND_INSTR (0x0b , 0x01 ),
1240+ ILI9881C_COMMAND_INSTR (0x0c , 0x01 ),
1241+ ILI9881C_COMMAND_INSTR (0x0d , 0x01 ),
1242+ ILI9881C_COMMAND_INSTR (0x0e , 0x01 ),
1243+ ILI9881C_COMMAND_INSTR (0x0f , 0x01 ),
1244+ ILI9881C_COMMAND_INSTR (0x10 , 0x01 ),
1245+ ILI9881C_COMMAND_INSTR (0x11 , 0x00 ),
1246+ ILI9881C_COMMAND_INSTR (0x12 , 0x00 ),
1247+ ILI9881C_COMMAND_INSTR (0x13 , 0x01 ),
1248+ ILI9881C_COMMAND_INSTR (0x14 , 0x00 ),
1249+ ILI9881C_COMMAND_INSTR (0x15 , 0x00 ),
1250+ ILI9881C_COMMAND_INSTR (0x16 , 0x00 ),
1251+ ILI9881C_COMMAND_INSTR (0x17 , 0x00 ),
1252+ ILI9881C_COMMAND_INSTR (0x18 , 0x00 ),
1253+ ILI9881C_COMMAND_INSTR (0x19 , 0x00 ),
1254+ ILI9881C_COMMAND_INSTR (0x1a , 0x00 ),
1255+ ILI9881C_COMMAND_INSTR (0x1b , 0x00 ),
1256+ ILI9881C_COMMAND_INSTR (0x1c , 0x00 ),
1257+ ILI9881C_COMMAND_INSTR (0x1d , 0x00 ),
1258+ ILI9881C_COMMAND_INSTR (0x1e , 0xc0 ),
1259+ ILI9881C_COMMAND_INSTR (0x1f , 0x80 ),
1260+ ILI9881C_COMMAND_INSTR (0x20 , 0x04 ),
1261+ ILI9881C_COMMAND_INSTR (0x21 , 0x03 ),
1262+ ILI9881C_COMMAND_INSTR (0x22 , 0x00 ),
1263+ ILI9881C_COMMAND_INSTR (0x23 , 0x00 ),
1264+ ILI9881C_COMMAND_INSTR (0x24 , 0x00 ),
1265+ ILI9881C_COMMAND_INSTR (0x25 , 0x00 ),
1266+ ILI9881C_COMMAND_INSTR (0x26 , 0x00 ),
1267+ ILI9881C_COMMAND_INSTR (0x27 , 0x00 ),
1268+ ILI9881C_COMMAND_INSTR (0x28 , 0x33 ),
1269+ ILI9881C_COMMAND_INSTR (0x29 , 0x03 ),
1270+ ILI9881C_COMMAND_INSTR (0x2a , 0x00 ),
1271+ ILI9881C_COMMAND_INSTR (0x2b , 0x00 ),
1272+ ILI9881C_COMMAND_INSTR (0x2c , 0x00 ),
1273+ ILI9881C_COMMAND_INSTR (0x2d , 0x00 ),
1274+ ILI9881C_COMMAND_INSTR (0x2e , 0x00 ),
1275+ ILI9881C_COMMAND_INSTR (0x2f , 0x00 ),
1276+ ILI9881C_COMMAND_INSTR (0x30 , 0x00 ),
1277+ ILI9881C_COMMAND_INSTR (0x31 , 0x00 ),
1278+ ILI9881C_COMMAND_INSTR (0x32 , 0x00 ),
1279+ ILI9881C_COMMAND_INSTR (0x33 , 0x00 ),
1280+ ILI9881C_COMMAND_INSTR (0x34 , 0x03 ),
1281+ ILI9881C_COMMAND_INSTR (0x35 , 0x00 ),
1282+ ILI9881C_COMMAND_INSTR (0x36 , 0x03 ),
1283+ ILI9881C_COMMAND_INSTR (0x37 , 0x00 ),
1284+ ILI9881C_COMMAND_INSTR (0x38 , 0x00 ),
1285+ ILI9881C_COMMAND_INSTR (0x39 , 0x00 ),
1286+ ILI9881C_COMMAND_INSTR (0x3a , 0x00 ),
1287+ ILI9881C_COMMAND_INSTR (0x3b , 0x00 ),
1288+ ILI9881C_COMMAND_INSTR (0x3c , 0x00 ),
1289+ ILI9881C_COMMAND_INSTR (0x3d , 0x00 ),
1290+ ILI9881C_COMMAND_INSTR (0x3e , 0x00 ),
1291+ ILI9881C_COMMAND_INSTR (0x3f , 0x00 ),
1292+ ILI9881C_COMMAND_INSTR (0x40 , 0x00 ),
1293+ ILI9881C_COMMAND_INSTR (0x41 , 0x00 ),
1294+ ILI9881C_COMMAND_INSTR (0x42 , 0x00 ),
1295+ ILI9881C_COMMAND_INSTR (0x43 , 0x00 ),
1296+ ILI9881C_COMMAND_INSTR (0x44 , 0x00 ),
1297+ ILI9881C_COMMAND_INSTR (0x50 , 0x01 ),
1298+ ILI9881C_COMMAND_INSTR (0x51 , 0x23 ),
1299+ ILI9881C_COMMAND_INSTR (0x52 , 0x45 ),
1300+ ILI9881C_COMMAND_INSTR (0x53 , 0x67 ),
1301+ ILI9881C_COMMAND_INSTR (0x54 , 0x89 ),
1302+ ILI9881C_COMMAND_INSTR (0x55 , 0xab ),
1303+ ILI9881C_COMMAND_INSTR (0x56 , 0x01 ),
1304+ ILI9881C_COMMAND_INSTR (0x57 , 0x23 ),
1305+ ILI9881C_COMMAND_INSTR (0x58 , 0x45 ),
1306+ ILI9881C_COMMAND_INSTR (0x59 , 0x67 ),
1307+ ILI9881C_COMMAND_INSTR (0x5a , 0x89 ),
1308+ ILI9881C_COMMAND_INSTR (0x5b , 0xab ),
1309+ ILI9881C_COMMAND_INSTR (0x5c , 0xcd ),
1310+ ILI9881C_COMMAND_INSTR (0x5d , 0xef ),
1311+ ILI9881C_COMMAND_INSTR (0x5e , 0x10 ),
1312+ ILI9881C_COMMAND_INSTR (0x5f , 0x09 ),
1313+ ILI9881C_COMMAND_INSTR (0x60 , 0x08 ),
1314+ ILI9881C_COMMAND_INSTR (0x61 , 0x0f ),
1315+ ILI9881C_COMMAND_INSTR (0x62 , 0x0e ),
1316+ ILI9881C_COMMAND_INSTR (0x63 , 0x0d ),
1317+ ILI9881C_COMMAND_INSTR (0x64 , 0x0c ),
1318+ ILI9881C_COMMAND_INSTR (0x65 , 0x02 ),
1319+ ILI9881C_COMMAND_INSTR (0x66 , 0x02 ),
1320+ ILI9881C_COMMAND_INSTR (0x67 , 0x02 ),
1321+ ILI9881C_COMMAND_INSTR (0x68 , 0x02 ),
1322+ ILI9881C_COMMAND_INSTR (0x69 , 0x02 ),
1323+ ILI9881C_COMMAND_INSTR (0x6a , 0x02 ),
1324+ ILI9881C_COMMAND_INSTR (0x6b , 0x02 ),
1325+ ILI9881C_COMMAND_INSTR (0x6c , 0x02 ),
1326+ ILI9881C_COMMAND_INSTR (0x6d , 0x02 ),
1327+ ILI9881C_COMMAND_INSTR (0x6e , 0x02 ),
1328+ ILI9881C_COMMAND_INSTR (0x6f , 0x02 ),
1329+ ILI9881C_COMMAND_INSTR (0x70 , 0x02 ),
1330+ ILI9881C_COMMAND_INSTR (0x71 , 0x06 ),
1331+ ILI9881C_COMMAND_INSTR (0x72 , 0x07 ),
1332+ ILI9881C_COMMAND_INSTR (0x73 , 0x02 ),
1333+ ILI9881C_COMMAND_INSTR (0x74 , 0x02 ),
1334+ ILI9881C_COMMAND_INSTR (0x75 , 0x06 ),
1335+ ILI9881C_COMMAND_INSTR (0x76 , 0x07 ),
1336+ ILI9881C_COMMAND_INSTR (0x77 , 0x0e ),
1337+ ILI9881C_COMMAND_INSTR (0x78 , 0x0f ),
1338+ ILI9881C_COMMAND_INSTR (0x79 , 0x0c ),
1339+ ILI9881C_COMMAND_INSTR (0x7a , 0x0d ),
1340+ ILI9881C_COMMAND_INSTR (0x7b , 0x02 ),
1341+ ILI9881C_COMMAND_INSTR (0x7c , 0x02 ),
1342+ ILI9881C_COMMAND_INSTR (0x7d , 0x02 ),
1343+ ILI9881C_COMMAND_INSTR (0x7e , 0x02 ),
1344+ ILI9881C_COMMAND_INSTR (0x7f , 0x02 ),
1345+ ILI9881C_COMMAND_INSTR (0x80 , 0x02 ),
1346+ ILI9881C_COMMAND_INSTR (0x81 , 0x02 ),
1347+ ILI9881C_COMMAND_INSTR (0x82 , 0x02 ),
1348+ ILI9881C_COMMAND_INSTR (0x83 , 0x02 ),
1349+ ILI9881C_COMMAND_INSTR (0x84 , 0x02 ),
1350+ ILI9881C_COMMAND_INSTR (0x85 , 0x02 ),
1351+ ILI9881C_COMMAND_INSTR (0x86 , 0x02 ),
1352+ ILI9881C_COMMAND_INSTR (0x87 , 0x09 ),
1353+ ILI9881C_COMMAND_INSTR (0x88 , 0x08 ),
1354+ ILI9881C_COMMAND_INSTR (0x89 , 0x02 ),
1355+ ILI9881C_COMMAND_INSTR (0x8a , 0x02 ),
1356+ ILI9881C_SWITCH_PAGE_INSTR (4 ),
1357+ ILI9881C_COMMAND_INSTR (0x6c , 0x15 ),
1358+ ILI9881C_COMMAND_INSTR (0x6e , 0x2a ),
1359+ ILI9881C_COMMAND_INSTR (0x6f , 0x57 ),
1360+ ILI9881C_COMMAND_INSTR (0x3a , 0xa4 ),
1361+ ILI9881C_COMMAND_INSTR (0x8d , 0x1a ),
1362+ ILI9881C_COMMAND_INSTR (0x87 , 0xba ),
1363+ ILI9881C_COMMAND_INSTR (0x26 , 0x76 ),
1364+ ILI9881C_COMMAND_INSTR (0xb2 , 0xd1 ),
1365+ ILI9881C_SWITCH_PAGE_INSTR (1 ),
1366+ ILI9881C_COMMAND_INSTR (0x22 , 0x0a ),
1367+ ILI9881C_COMMAND_INSTR (0x31 , 0x00 ),
1368+ ILI9881C_COMMAND_INSTR (0x53 , 0x35 ),
1369+ ILI9881C_COMMAND_INSTR (0x55 , 0x50 ),
1370+ ILI9881C_COMMAND_INSTR (0x50 , 0xaf ),
1371+ ILI9881C_COMMAND_INSTR (0x51 , 0xaf ),
1372+ ILI9881C_COMMAND_INSTR (0x60 , 0x14 ),
1373+ ILI9881C_COMMAND_INSTR (0xa0 , 0x08 ),
1374+ ILI9881C_COMMAND_INSTR (0xa1 , 0x1d ),
1375+ ILI9881C_COMMAND_INSTR (0xa2 , 0x2c ),
1376+ ILI9881C_COMMAND_INSTR (0xa3 , 0x14 ),
1377+ ILI9881C_COMMAND_INSTR (0xa4 , 0x19 ),
1378+ ILI9881C_COMMAND_INSTR (0xa5 , 0x2e ),
1379+ ILI9881C_COMMAND_INSTR (0xa6 , 0x22 ),
1380+ ILI9881C_COMMAND_INSTR (0xa7 , 0x23 ),
1381+ ILI9881C_COMMAND_INSTR (0xa8 , 0x97 ),
1382+ ILI9881C_COMMAND_INSTR (0xa9 , 0x1e ),
1383+ ILI9881C_COMMAND_INSTR (0xaa , 0x29 ),
1384+ ILI9881C_COMMAND_INSTR (0xab , 0x7b ),
1385+ ILI9881C_COMMAND_INSTR (0xac , 0x18 ),
1386+ ILI9881C_COMMAND_INSTR (0xad , 0x17 ),
1387+ ILI9881C_COMMAND_INSTR (0xae , 0x4b ),
1388+ ILI9881C_COMMAND_INSTR (0xaf , 0x1f ),
1389+ ILI9881C_COMMAND_INSTR (0xb0 , 0x27 ),
1390+ ILI9881C_COMMAND_INSTR (0xb1 , 0x52 ),
1391+ ILI9881C_COMMAND_INSTR (0xb2 , 0x63 ),
1392+ ILI9881C_COMMAND_INSTR (0xb3 , 0x39 ),
1393+ ILI9881C_COMMAND_INSTR (0xc0 , 0x08 ),
1394+ ILI9881C_COMMAND_INSTR (0xc1 , 0x1d ),
1395+ ILI9881C_COMMAND_INSTR (0xc2 , 0x2c ),
1396+ ILI9881C_COMMAND_INSTR (0xc3 , 0x14 ),
1397+ ILI9881C_COMMAND_INSTR (0xc4 , 0x19 ),
1398+ ILI9881C_COMMAND_INSTR (0xc5 , 0x2e ),
1399+ ILI9881C_COMMAND_INSTR (0xc6 , 0x22 ),
1400+ ILI9881C_COMMAND_INSTR (0xc7 , 0x23 ),
1401+ ILI9881C_COMMAND_INSTR (0xc8 , 0x97 ),
1402+ ILI9881C_COMMAND_INSTR (0xc9 , 0x1e ),
1403+ ILI9881C_COMMAND_INSTR (0xca , 0x29 ),
1404+ ILI9881C_COMMAND_INSTR (0xcb , 0x7b ),
1405+ ILI9881C_COMMAND_INSTR (0xcc , 0x18 ),
1406+ ILI9881C_COMMAND_INSTR (0xcd , 0x17 ),
1407+ ILI9881C_COMMAND_INSTR (0xce , 0x4b ),
1408+ ILI9881C_COMMAND_INSTR (0xcf , 0x1f ),
1409+ ILI9881C_COMMAND_INSTR (0xd0 , 0x27 ),
1410+ ILI9881C_COMMAND_INSTR (0xd1 , 0x52 ),
1411+ ILI9881C_COMMAND_INSTR (0xd2 , 0x63 ),
1412+ ILI9881C_COMMAND_INSTR (0xd3 , 0x39 ),
1413+ };
1414+
12271415static const struct ili9881c_instr rpi_7inch_init [] = {
12281416 ILI9881C_SWITCH_PAGE_INSTR (3 ),
12291417 ILI9881C_COMMAND_INSTR (0x01 , 0x00 ),
@@ -1806,6 +1994,23 @@ static const struct drm_display_mode am8001280g_default_mode = {
18061994 .height_mm = 151 ,
18071995};
18081996
1997+ static const struct drm_display_mode rpi_5inch_default_mode = {
1998+ .clock = 83333 ,
1999+
2000+ .hdisplay = 720 ,
2001+ .hsync_start = 720 + 110 ,
2002+ .hsync_end = 720 + 110 + 12 ,
2003+ .htotal = 720 + 110 + 12 + 95 ,
2004+
2005+ .vdisplay = 1280 ,
2006+ .vsync_start = 1280 + 100 ,
2007+ .vsync_end = 1280 + 100 + 2 ,
2008+ .vtotal = 1280 + 100 + 2 + 100 ,
2009+
2010+ .width_mm = 62 ,
2011+ .height_mm = 110 ,
2012+ };
2013+
18092014static const struct drm_display_mode rpi_7inch_default_mode = {
18102015 .clock = 83330 ,
18112016
@@ -2000,6 +2205,14 @@ static const struct ili9881c_desc am8001280g_desc = {
20002205 MIPI_DSI_CLOCK_NON_CONTINUOUS | MIPI_DSI_MODE_LPM ,
20012206};
20022207
2208+ static const struct ili9881c_desc rpi_5inch_desc = {
2209+ .init = rpi_5inch_init ,
2210+ .init_length = ARRAY_SIZE (rpi_5inch_init ),
2211+ .mode = & rpi_5inch_default_mode ,
2212+ .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_LPM ,
2213+ .lanes = 2 ,
2214+ };
2215+
20032216static const struct ili9881c_desc rpi_7inch_desc = {
20042217 .init = rpi_7inch_init ,
20052218 .init_length = ARRAY_SIZE (rpi_7inch_init ),
@@ -2025,6 +2238,7 @@ static const struct of_device_id ili9881c_of_match[] = {
20252238 { .compatible = "tdo,tl050hdv35" , .data = & tl050hdv35_desc },
20262239 { .compatible = "wanchanglong,w552946aba" , .data = & w552946aba_desc },
20272240 { .compatible = "ampire,am8001280g" , .data = & am8001280g_desc },
2241+ { .compatible = "raspberrypi,dsi-5inch" , & rpi_5inch_desc },
20282242 { .compatible = "raspberrypi,dsi-7inch" , & rpi_7inch_desc },
20292243 { }
20302244};
0 commit comments