Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pinctrl: Ingenic: Add missing parts for X1830.

Add lcd pinctrl driver for X1830.

Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
Link: https://lore.kernel.org/r/1581851828-3493-3-git-send-email-zhouyanjie@wanyeetech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

周琰杰 (Zhou Yanjie) and committed by
Linus Walleij
b2954743 3c827873

+31
+31
drivers/pinctrl/pinctrl-ingenic.c
··· 1437 1437 static int x1830_i2c0_pins[] = { 0x0c, 0x0d, }; 1438 1438 static int x1830_i2c1_pins[] = { 0x39, 0x3a, }; 1439 1439 static int x1830_i2c2_pins[] = { 0x5b, 0x5c, }; 1440 + static int x1830_lcd_rgb_18bit_pins[] = { 1441 + 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 1442 + 0x68, 0x69, 0x6c, 0x6d, 0x6e, 0x6f, 1443 + 0x70, 0x71, 0x72, 0x73, 0x76, 0x77, 1444 + 0x78, 0x79, 0x7a, 0x7b, 1445 + }; 1446 + static int x1830_lcd_slcd_8bit_pins[] = { 1447 + 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x6c, 0x6d, 1448 + 0x69, 0x72, 0x73, 0x7b, 0x7a, 1449 + }; 1450 + static int x1830_lcd_slcd_16bit_pins[] = { 1451 + 0x6e, 0x6f, 0x70, 0x71, 0x76, 0x77, 0x78, 0x79, 1452 + }; 1440 1453 static int x1830_pwm_pwm0_b_pins[] = { 0x31, }; 1441 1454 static int x1830_pwm_pwm0_c_pins[] = { 0x4b, }; 1442 1455 static int x1830_pwm_pwm1_b_pins[] = { 0x32, }; ··· 1499 1486 static int x1830_i2c0_funcs[] = { 1, 1, }; 1500 1487 static int x1830_i2c1_funcs[] = { 0, 0, }; 1501 1488 static int x1830_i2c2_funcs[] = { 1, 1, }; 1489 + static int x1830_lcd_rgb_18bit_funcs[] = { 1490 + 0, 0, 0, 0, 0, 0, 1491 + 0, 0, 0, 0, 0, 0, 1492 + 0, 0, 0, 0, 0, 0, 1493 + 0, 0, 0, 0, 1494 + }; 1495 + static int x1830_lcd_slcd_8bit_funcs[] = { 1496 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1497 + }; 1498 + static int x1830_lcd_slcd_16bit_funcs[] = { 1, 1, 1, 1, 1, 1, 1, 1, }; 1502 1499 static int x1830_pwm_pwm0_b_funcs[] = { 0, }; 1503 1500 static int x1830_pwm_pwm0_c_funcs[] = { 1, }; 1504 1501 static int x1830_pwm_pwm1_b_funcs[] = { 0, }; ··· 1557 1534 INGENIC_PIN_GROUP("i2c0-data", x1830_i2c0), 1558 1535 INGENIC_PIN_GROUP("i2c1-data", x1830_i2c1), 1559 1536 INGENIC_PIN_GROUP("i2c2-data", x1830_i2c2), 1537 + INGENIC_PIN_GROUP("lcd-rgb-18bit", x1830_lcd_rgb_18bit), 1538 + INGENIC_PIN_GROUP("lcd-slcd-8bit", x1830_lcd_slcd_8bit), 1539 + INGENIC_PIN_GROUP("lcd-slcd-16bit", x1830_lcd_slcd_16bit), 1540 + { "lcd-no-pins", }, 1560 1541 INGENIC_PIN_GROUP("pwm0-b", x1830_pwm_pwm0_b), 1561 1542 INGENIC_PIN_GROUP("pwm0-c", x1830_pwm_pwm0_c), 1562 1543 INGENIC_PIN_GROUP("pwm1-b", x1830_pwm_pwm1_b), ··· 1599 1572 static const char *x1830_i2c0_groups[] = { "i2c0-data", }; 1600 1573 static const char *x1830_i2c1_groups[] = { "i2c1-data", }; 1601 1574 static const char *x1830_i2c2_groups[] = { "i2c2-data", }; 1575 + static const char *x1830_lcd_groups[] = { 1576 + "lcd-rgb-18bit", "lcd-slcd-8bit", "lcd-slcd-16bit", "lcd-no-pins", 1577 + }; 1602 1578 static const char *x1830_pwm0_groups[] = { "pwm0-b", "pwm0-c", }; 1603 1579 static const char *x1830_pwm1_groups[] = { "pwm1-b", "pwm1-c", }; 1604 1580 static const char *x1830_pwm2_groups[] = { "pwm2-c-8", "pwm2-c-13", }; ··· 1623 1593 { "i2c0", x1830_i2c0_groups, ARRAY_SIZE(x1830_i2c0_groups), }, 1624 1594 { "i2c1", x1830_i2c1_groups, ARRAY_SIZE(x1830_i2c1_groups), }, 1625 1595 { "i2c2", x1830_i2c2_groups, ARRAY_SIZE(x1830_i2c2_groups), }, 1596 + { "lcd", x1830_lcd_groups, ARRAY_SIZE(x1830_lcd_groups), }, 1626 1597 { "pwm0", x1830_pwm0_groups, ARRAY_SIZE(x1830_pwm0_groups), }, 1627 1598 { "pwm1", x1830_pwm1_groups, ARRAY_SIZE(x1830_pwm1_groups), }, 1628 1599 { "pwm2", x1830_pwm2_groups, ARRAY_SIZE(x1830_pwm2_groups), },