@@ -1224,6 +1224,199 @@ 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_7inch_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 , 0x00 ),
1233+ ILI9881C_COMMAND_INSTR (0x05 , 0x00 ),
1234+ ILI9881C_COMMAND_INSTR (0x06 , 0x0a ),
1235+ ILI9881C_COMMAND_INSTR (0x07 , 0x00 ),
1236+ ILI9881C_COMMAND_INSTR (0x08 , 0x00 ),
1237+ ILI9881C_COMMAND_INSTR (0x09 , 0x61 ),
1238+ ILI9881C_COMMAND_INSTR (0x0a , 0x00 ),
1239+ ILI9881C_COMMAND_INSTR (0x0b , 0x00 ),
1240+ ILI9881C_COMMAND_INSTR (0x0c , 0x01 ),
1241+ ILI9881C_COMMAND_INSTR (0x0d , 0x00 ),
1242+ ILI9881C_COMMAND_INSTR (0x0e , 0x00 ),
1243+ ILI9881C_COMMAND_INSTR (0x0f , 0x61 ),
1244+ ILI9881C_COMMAND_INSTR (0x10 , 0x61 ),
1245+ ILI9881C_COMMAND_INSTR (0x11 , 0x00 ),
1246+ ILI9881C_COMMAND_INSTR (0x12 , 0x00 ),
1247+ ILI9881C_COMMAND_INSTR (0x13 , 0x00 ),
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 , 0x40 ),
1259+ ILI9881C_COMMAND_INSTR (0x1f , 0x80 ),
1260+ ILI9881C_COMMAND_INSTR (0x20 , 0x06 ),
1261+ ILI9881C_COMMAND_INSTR (0x21 , 0x01 ),
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 , 0x04 ),
1281+ ILI9881C_COMMAND_INSTR (0x35 , 0x00 ),
1282+ ILI9881C_COMMAND_INSTR (0x36 , 0x00 ),
1283+ ILI9881C_COMMAND_INSTR (0x37 , 0x00 ),
1284+ ILI9881C_COMMAND_INSTR (0x38 , 0x3c ),
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 , 0x10 ),
1298+ ILI9881C_COMMAND_INSTR (0x51 , 0x32 ),
1299+ ILI9881C_COMMAND_INSTR (0x52 , 0x54 ),
1300+ ILI9881C_COMMAND_INSTR (0x53 , 0x76 ),
1301+ ILI9881C_COMMAND_INSTR (0x54 , 0x98 ),
1302+ ILI9881C_COMMAND_INSTR (0x55 , 0xba ),
1303+ ILI9881C_COMMAND_INSTR (0x56 , 0x10 ),
1304+ ILI9881C_COMMAND_INSTR (0x57 , 0x32 ),
1305+ ILI9881C_COMMAND_INSTR (0x58 , 0x54 ),
1306+ ILI9881C_COMMAND_INSTR (0x59 , 0x76 ),
1307+ ILI9881C_COMMAND_INSTR (0x5a , 0x98 ),
1308+ ILI9881C_COMMAND_INSTR (0x5b , 0xba ),
1309+ ILI9881C_COMMAND_INSTR (0x5c , 0xdc ),
1310+ ILI9881C_COMMAND_INSTR (0x5d , 0xfe ),
1311+ ILI9881C_COMMAND_INSTR (0x5e , 0x00 ),
1312+ ILI9881C_COMMAND_INSTR (0x5f , 0x0e ),
1313+ ILI9881C_COMMAND_INSTR (0x60 , 0x0f ),
1314+ ILI9881C_COMMAND_INSTR (0x61 , 0x0c ),
1315+ ILI9881C_COMMAND_INSTR (0x62 , 0x0d ),
1316+ ILI9881C_COMMAND_INSTR (0x63 , 0x06 ),
1317+ ILI9881C_COMMAND_INSTR (0x64 , 0x07 ),
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 , 0x01 ),
1323+ ILI9881C_COMMAND_INSTR (0x6a , 0x00 ),
1324+ ILI9881C_COMMAND_INSTR (0x6b , 0x02 ),
1325+ ILI9881C_COMMAND_INSTR (0x6c , 0x15 ),
1326+ ILI9881C_COMMAND_INSTR (0x6d , 0x14 ),
1327+ ILI9881C_COMMAND_INSTR (0x6e , 0x02 ),
1328+ ILI9881C_COMMAND_INSTR (0x6f , 0x02 ),
1329+ ILI9881C_COMMAND_INSTR (0x70 , 0x02 ),
1330+ ILI9881C_COMMAND_INSTR (0x71 , 0x02 ),
1331+ ILI9881C_COMMAND_INSTR (0x72 , 0x02 ),
1332+ ILI9881C_COMMAND_INSTR (0x73 , 0x02 ),
1333+ ILI9881C_COMMAND_INSTR (0x74 , 0x02 ),
1334+ ILI9881C_COMMAND_INSTR (0x75 , 0x0e ),
1335+ ILI9881C_COMMAND_INSTR (0x76 , 0x0f ),
1336+ ILI9881C_COMMAND_INSTR (0x77 , 0x0c ),
1337+ ILI9881C_COMMAND_INSTR (0x78 , 0x0d ),
1338+ ILI9881C_COMMAND_INSTR (0x79 , 0x06 ),
1339+ ILI9881C_COMMAND_INSTR (0x7a , 0x07 ),
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 , 0x01 ),
1345+ ILI9881C_COMMAND_INSTR (0x80 , 0x00 ),
1346+ ILI9881C_COMMAND_INSTR (0x81 , 0x02 ),
1347+ ILI9881C_COMMAND_INSTR (0x82 , 0x14 ),
1348+ ILI9881C_COMMAND_INSTR (0x83 , 0x15 ),
1349+ ILI9881C_COMMAND_INSTR (0x84 , 0x02 ),
1350+ ILI9881C_COMMAND_INSTR (0x85 , 0x02 ),
1351+ ILI9881C_COMMAND_INSTR (0x86 , 0x02 ),
1352+ ILI9881C_COMMAND_INSTR (0x87 , 0x02 ),
1353+ ILI9881C_COMMAND_INSTR (0x88 , 0x02 ),
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 , 0x33 ),
1360+ ILI9881C_COMMAND_INSTR (0x3B , 0x98 ),
1361+ ILI9881C_COMMAND_INSTR (0x3a , 0x94 ),
1362+ ILI9881C_COMMAND_INSTR (0x8D , 0x14 ),
1363+ ILI9881C_COMMAND_INSTR (0x87 , 0xBA ),
1364+ ILI9881C_COMMAND_INSTR (0x26 , 0x76 ),
1365+ ILI9881C_COMMAND_INSTR (0xB2 , 0xD1 ),
1366+ ILI9881C_COMMAND_INSTR (0xB5 , 0x06 ),
1367+ ILI9881C_COMMAND_INSTR (0x38 , 0x01 ),
1368+ ILI9881C_COMMAND_INSTR (0x39 , 0x00 ),
1369+ ILI9881C_SWITCH_PAGE_INSTR (1 ),
1370+ ILI9881C_COMMAND_INSTR (0x22 , 0x0A ),
1371+ ILI9881C_COMMAND_INSTR (0x31 , 0x00 ),
1372+ ILI9881C_COMMAND_INSTR (0x53 , 0x7d ),
1373+ ILI9881C_COMMAND_INSTR (0x55 , 0x8f ),
1374+ ILI9881C_COMMAND_INSTR (0x40 , 0x33 ),
1375+ ILI9881C_COMMAND_INSTR (0x50 , 0x96 ),
1376+ ILI9881C_COMMAND_INSTR (0x51 , 0x96 ),
1377+ ILI9881C_COMMAND_INSTR (0x60 , 0x23 ),
1378+ ILI9881C_COMMAND_INSTR (0xA0 , 0x08 ),
1379+ ILI9881C_COMMAND_INSTR (0xA1 , 0x1d ),
1380+ ILI9881C_COMMAND_INSTR (0xA2 , 0x2a ),
1381+ ILI9881C_COMMAND_INSTR (0xA3 , 0x10 ),
1382+ ILI9881C_COMMAND_INSTR (0xA4 , 0x15 ),
1383+ ILI9881C_COMMAND_INSTR (0xA5 , 0x28 ),
1384+ ILI9881C_COMMAND_INSTR (0xA6 , 0x1c ),
1385+ ILI9881C_COMMAND_INSTR (0xA7 , 0x1d ),
1386+ ILI9881C_COMMAND_INSTR (0xA8 , 0x7e ),
1387+ ILI9881C_COMMAND_INSTR (0xA9 , 0x1d ),
1388+ ILI9881C_COMMAND_INSTR (0xAA , 0x29 ),
1389+ ILI9881C_COMMAND_INSTR (0xAB , 0x6b ),
1390+ ILI9881C_COMMAND_INSTR (0xAC , 0x1a ),
1391+ ILI9881C_COMMAND_INSTR (0xAD , 0x18 ),
1392+ ILI9881C_COMMAND_INSTR (0xAE , 0x4b ),
1393+ ILI9881C_COMMAND_INSTR (0xAF , 0x20 ),
1394+ ILI9881C_COMMAND_INSTR (0xB0 , 0x27 ),
1395+ ILI9881C_COMMAND_INSTR (0xB1 , 0x50 ),
1396+ ILI9881C_COMMAND_INSTR (0xB2 , 0x64 ),
1397+ ILI9881C_COMMAND_INSTR (0xB3 , 0x39 ),
1398+ ILI9881C_COMMAND_INSTR (0xC0 , 0x08 ),
1399+ ILI9881C_COMMAND_INSTR (0xC1 , 0x1d ),
1400+ ILI9881C_COMMAND_INSTR (0xC2 , 0x2a ),
1401+ ILI9881C_COMMAND_INSTR (0xC3 , 0x10 ),
1402+ ILI9881C_COMMAND_INSTR (0xC4 , 0x15 ),
1403+ ILI9881C_COMMAND_INSTR (0xC5 , 0x28 ),
1404+ ILI9881C_COMMAND_INSTR (0xC6 , 0x1c ),
1405+ ILI9881C_COMMAND_INSTR (0xC7 , 0x1d ),
1406+ ILI9881C_COMMAND_INSTR (0xC8 , 0x7e ),
1407+ ILI9881C_COMMAND_INSTR (0xC9 , 0x1d ),
1408+ ILI9881C_COMMAND_INSTR (0xCA , 0x29 ),
1409+ ILI9881C_COMMAND_INSTR (0xCB , 0x6b ),
1410+ ILI9881C_COMMAND_INSTR (0xCC , 0x1a ),
1411+ ILI9881C_COMMAND_INSTR (0xCD , 0x18 ),
1412+ ILI9881C_COMMAND_INSTR (0xCE , 0x4b ),
1413+ ILI9881C_COMMAND_INSTR (0xCF , 0x20 ),
1414+ ILI9881C_COMMAND_INSTR (0xD0 , 0x27 ),
1415+ ILI9881C_COMMAND_INSTR (0xD1 , 0x50 ),
1416+ ILI9881C_COMMAND_INSTR (0xD2 , 0x64 ),
1417+ ILI9881C_COMMAND_INSTR (0xD3 , 0x39 ),
1418+ };
1419+
12271420static inline struct ili9881c * panel_to_ili9881c (struct drm_panel * panel )
12281421{
12291422 return container_of (panel , struct ili9881c , panel );
@@ -1450,6 +1643,23 @@ static const struct drm_display_mode am8001280g_default_mode = {
14501643 .height_mm = 151 ,
14511644};
14521645
1646+ static const struct drm_display_mode rpi_7inch_default_mode = {
1647+ .clock = 83330 ,
1648+
1649+ .hdisplay = 720 ,
1650+ .hsync_start = 720 + 239 ,
1651+ .hsync_end = 720 + 239 + 33 ,
1652+ .htotal = 720 + 239 + 33 + 50 ,
1653+
1654+ .vdisplay = 1280 ,
1655+ .vsync_start = 1280 + 20 ,
1656+ .vsync_end = 1280 + 20 + 2 ,
1657+ .vtotal = 1280 + 20 + 2 + 30 ,
1658+
1659+ .width_mm = 90 ,
1660+ .height_mm = 151 ,
1661+ };
1662+
14531663static int ili9881c_get_modes (struct drm_panel * panel ,
14541664 struct drm_connector * connector )
14551665{
@@ -1612,13 +1822,22 @@ static const struct ili9881c_desc am8001280g_desc = {
16121822 MIPI_DSI_CLOCK_NON_CONTINUOUS | MIPI_DSI_MODE_LPM ,
16131823};
16141824
1825+ static const struct ili9881c_desc rpi_7inch_desc = {
1826+ .init = rpi_7inch_init ,
1827+ .init_length = ARRAY_SIZE (rpi_7inch_init ),
1828+ .mode = & rpi_7inch_default_mode ,
1829+ .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_LPM ,
1830+ .lanes = 2 ,
1831+ };
1832+
16151833static const struct of_device_id ili9881c_of_match [] = {
16161834 { .compatible = "bananapi,lhr050h41" , .data = & lhr050h41_desc },
16171835 { .compatible = "feixin,k101-im2byl02" , .data = & k101_im2byl02_desc },
16181836 { .compatible = "startek,kd050hdfia020" , .data = & kd050hdfia020_desc },
16191837 { .compatible = "tdo,tl050hdv35" , .data = & tl050hdv35_desc },
16201838 { .compatible = "wanchanglong,w552946aba" , .data = & w552946aba_desc },
16211839 { .compatible = "ampire,am8001280g" , .data = & am8001280g_desc },
1840+ { .compatible = "raspberrypi,dsi-7inch" , & rpi_7inch_desc },
16221841 { }
16231842};
16241843MODULE_DEVICE_TABLE (of , ili9881c_of_match );
0 commit comments