2021-01-20 12:06:08

by Paul Cercueil

[permalink] [raw]
Subject: [PATCH] pinctrl: ingenic: Improve JZ4760 support

- Add otg function and otg-vbus group.

- Add lcd-8bit, lcd-16bit, lcd-18bit, lcd-generic and lcd-special
groups. Change the lcd-24bit group so that it only selects the pins
that aren't in the lcd-18bit and lcd-generic groups (which breaks
Device Tree in theory, but there is none out there for any JZ4760
based board, yet). Remove the lcd-no-pins group which is just useless.

Signed-off-by: Paul Cercueil <[email protected]>
---
drivers/pinctrl/pinctrl-ingenic.c | 38 +++++++++++++++++++++++--------
1 file changed, 28 insertions(+), 10 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-ingenic.c b/drivers/pinctrl/pinctrl-ingenic.c
index 76fec77c5b67..f2746125b077 100644
--- a/drivers/pinctrl/pinctrl-ingenic.c
+++ b/drivers/pinctrl/pinctrl-ingenic.c
@@ -376,12 +376,21 @@ static int jz4760_cim_pins[] = {
0x26, 0x27, 0x28, 0x29,
0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31,
};
+static int jz4760_lcd_8bit_pins[] = {
+ 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x4c,
+ 0x4d, 0x52, 0x53,
+};
+static int jz4760_lcd_16bit_pins[] = {
+ 0x4e, 0x4f, 0x50, 0x51, 0x56, 0x57, 0x58, 0x59,
+};
+static int jz4760_lcd_18bit_pins[] = {
+ 0x5a, 0x5b,
+};
static int jz4760_lcd_24bit_pins[] = {
- 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
- 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
- 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
- 0x58, 0x59, 0x5a, 0x5b,
+ 0x40, 0x41, 0x4a, 0x4b, 0x54, 0x55,
};
+static int jz4760_lcd_special_pins[] = { 0x40, 0x41, 0x4a, 0x54 };
+static int jz4760_lcd_generic_pins[] = { 0x49, };
static int jz4760_pwm_pwm0_pins[] = { 0x80, };
static int jz4760_pwm_pwm1_pins[] = { 0x81, };
static int jz4760_pwm_pwm2_pins[] = { 0x82, };
@@ -390,6 +399,7 @@ static int jz4760_pwm_pwm4_pins[] = { 0x84, };
static int jz4760_pwm_pwm5_pins[] = { 0x85, };
static int jz4760_pwm_pwm6_pins[] = { 0x6a, };
static int jz4760_pwm_pwm7_pins[] = { 0x6b, };
+static int jz4760_otg_pins[] = { 0x8a, };

static u8 jz4760_uart3_data_funcs[] = { 0, 1, };
static u8 jz4760_mmc0_1bit_a_funcs[] = { 1, 1, 0, };
@@ -436,8 +446,12 @@ static const struct group_desc jz4760_groups[] = {
INGENIC_PIN_GROUP("i2c0-data", jz4760_i2c0, 0),
INGENIC_PIN_GROUP("i2c1-data", jz4760_i2c1, 0),
INGENIC_PIN_GROUP("cim-data", jz4760_cim, 0),
+ INGENIC_PIN_GROUP("lcd-8bit", jz4760_lcd_8bit, 0),
+ INGENIC_PIN_GROUP("lcd-16bit", jz4760_lcd_16bit, 0),
+ INGENIC_PIN_GROUP("lcd-18bit", jz4760_lcd_18bit, 0),
INGENIC_PIN_GROUP("lcd-24bit", jz4760_lcd_24bit, 0),
- { "lcd-no-pins", },
+ INGENIC_PIN_GROUP("lcd-generic", jz4760_lcd_generic, 0),
+ INGENIC_PIN_GROUP("lcd-special", jz4760_lcd_special, 1),
INGENIC_PIN_GROUP("pwm0", jz4760_pwm_pwm0, 0),
INGENIC_PIN_GROUP("pwm1", jz4760_pwm_pwm1, 0),
INGENIC_PIN_GROUP("pwm2", jz4760_pwm_pwm2, 0),
@@ -446,6 +460,7 @@ static const struct group_desc jz4760_groups[] = {
INGENIC_PIN_GROUP("pwm5", jz4760_pwm_pwm5, 0),
INGENIC_PIN_GROUP("pwm6", jz4760_pwm_pwm6, 0),
INGENIC_PIN_GROUP("pwm7", jz4760_pwm_pwm7, 0),
+ INGENIC_PIN_GROUP("otg-vbus", jz4760_otg, 0),
};

static const char *jz4760_uart0_groups[] = { "uart0-data", "uart0-hwflow", };
@@ -477,7 +492,10 @@ static const char *jz4760_cs6_groups[] = { "nemc-cs6", };
static const char *jz4760_i2c0_groups[] = { "i2c0-data", };
static const char *jz4760_i2c1_groups[] = { "i2c1-data", };
static const char *jz4760_cim_groups[] = { "cim-data", };
-static const char *jz4760_lcd_groups[] = { "lcd-24bit", "lcd-no-pins", };
+static const char *jz4760_lcd_groups[] = {
+ "lcd-8bit", "lcd-16bit", "lcd-18bit", "lcd-24bit",
+ "lcd-special", "lcd-generic",
+};
static const char *jz4760_pwm0_groups[] = { "pwm0", };
static const char *jz4760_pwm1_groups[] = { "pwm1", };
static const char *jz4760_pwm2_groups[] = { "pwm2", };
@@ -486,6 +504,7 @@ static const char *jz4760_pwm4_groups[] = { "pwm4", };
static const char *jz4760_pwm5_groups[] = { "pwm5", };
static const char *jz4760_pwm6_groups[] = { "pwm6", };
static const char *jz4760_pwm7_groups[] = { "pwm7", };
+static const char *jz4760_otg_groups[] = { "otg-vbus", };

static const struct function_desc jz4760_functions[] = {
{ "uart0", jz4760_uart0_groups, ARRAY_SIZE(jz4760_uart0_groups), },
@@ -514,6 +533,7 @@ static const struct function_desc jz4760_functions[] = {
{ "pwm5", jz4760_pwm5_groups, ARRAY_SIZE(jz4760_pwm5_groups), },
{ "pwm6", jz4760_pwm6_groups, ARRAY_SIZE(jz4760_pwm6_groups), },
{ "pwm7", jz4760_pwm7_groups, ARRAY_SIZE(jz4760_pwm7_groups), },
+ { "otg", jz4760_otg_groups, ARRAY_SIZE(jz4760_otg_groups), },
};

static const struct ingenic_chip_info jz4760_chip_info = {
@@ -648,7 +668,6 @@ static int jz4770_mac_rmii_pins[] = {
0xa9, 0xab, 0xaa, 0xac, 0xa5, 0xa4, 0xad, 0xae, 0xa6, 0xa8,
};
static int jz4770_mac_mii_pins[] = { 0xa7, 0xaf, };
-static int jz4770_otg_pins[] = { 0x8a, };

static const struct group_desc jz4770_groups[] = {
INGENIC_PIN_GROUP("uart0-data", jz4770_uart0_data, 0),
@@ -747,7 +766,7 @@ static const struct group_desc jz4770_groups[] = {
INGENIC_PIN_GROUP("pwm7", jz4770_pwm_pwm7, 0),
INGENIC_PIN_GROUP("mac-rmii", jz4770_mac_rmii, 0),
INGENIC_PIN_GROUP("mac-mii", jz4770_mac_mii, 0),
- INGENIC_PIN_GROUP("otg-vbus", jz4770_otg, 0),
+ INGENIC_PIN_GROUP("otg-vbus", jz4760_otg, 0),
};

static const char *jz4770_uart0_groups[] = { "uart0-data", "uart0-hwflow", };
@@ -808,7 +827,6 @@ static const char *jz4770_pwm5_groups[] = { "pwm5", };
static const char *jz4770_pwm6_groups[] = { "pwm6", };
static const char *jz4770_pwm7_groups[] = { "pwm7", };
static const char *jz4770_mac_groups[] = { "mac-rmii", "mac-mii", };
-static const char *jz4770_otg_groups[] = { "otg-vbus", };

static const struct function_desc jz4770_functions[] = {
{ "uart0", jz4770_uart0_groups, ARRAY_SIZE(jz4770_uart0_groups), },
@@ -841,7 +859,7 @@ static const struct function_desc jz4770_functions[] = {
{ "pwm6", jz4770_pwm6_groups, ARRAY_SIZE(jz4770_pwm6_groups), },
{ "pwm7", jz4770_pwm7_groups, ARRAY_SIZE(jz4770_pwm7_groups), },
{ "mac", jz4770_mac_groups, ARRAY_SIZE(jz4770_mac_groups), },
- { "otg", jz4770_otg_groups, ARRAY_SIZE(jz4770_otg_groups), },
+ { "otg", jz4760_otg_groups, ARRAY_SIZE(jz4760_otg_groups), },
};

static const struct ingenic_chip_info jz4770_chip_info = {
--
2.29.2


2021-01-20 13:28:54

by H. Nikolaus Schaller

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: ingenic: Improve JZ4760 support


> Am 20.01.2021 um 12:07 schrieb Paul Cercueil <[email protected]>:
>
> - Add otg function and otg-vbus group.
>
> - Add lcd-8bit, lcd-16bit, lcd-18bit, lcd-generic and lcd-special
> groups. Change the lcd-24bit group so that it only selects the pins
> that aren't in the lcd-18bit and lcd-generic groups (which breaks
> Device Tree in theory, but there is none out there for any JZ4760
> based board, yet). Remove the lcd-no-pins group which is just useless.

Does this mean it is also usless for the other Ingenic SoC?
Background: we are working on jz4730 support and have simply copied it.

>
> Signed-off-by: Paul Cercueil <[email protected]>
> ---
> drivers/pinctrl/pinctrl-ingenic.c | 38 +++++++++++++++++++++++--------
> 1 file changed, 28 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/pinctrl/pinctrl-ingenic.c b/drivers/pinctrl/pinctrl-ingenic.c
> index 76fec77c5b67..f2746125b077 100644
> --- a/drivers/pinctrl/pinctrl-ingenic.c
> +++ b/drivers/pinctrl/pinctrl-ingenic.c
> @@ -376,12 +376,21 @@ static int jz4760_cim_pins[] = {
> 0x26, 0x27, 0x28, 0x29,
> 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31,
> };
> +static int jz4760_lcd_8bit_pins[] = {
> + 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x4c,
> + 0x4d, 0x52, 0x53,
> +};
> +static int jz4760_lcd_16bit_pins[] = {
> + 0x4e, 0x4f, 0x50, 0x51, 0x56, 0x57, 0x58, 0x59,
> +};
> +static int jz4760_lcd_18bit_pins[] = {
> + 0x5a, 0x5b,
> +};
> static int jz4760_lcd_24bit_pins[] = {
> - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
> - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
> - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
> - 0x58, 0x59, 0x5a, 0x5b,
> + 0x40, 0x41, 0x4a, 0x4b, 0x54, 0x55,
> };
> +static int jz4760_lcd_special_pins[] = { 0x40, 0x41, 0x4a, 0x54 };
> +static int jz4760_lcd_generic_pins[] = { 0x49, };
> static int jz4760_pwm_pwm0_pins[] = { 0x80, };
> static int jz4760_pwm_pwm1_pins[] = { 0x81, };
> static int jz4760_pwm_pwm2_pins[] = { 0x82, };
> @@ -390,6 +399,7 @@ static int jz4760_pwm_pwm4_pins[] = { 0x84, };
> static int jz4760_pwm_pwm5_pins[] = { 0x85, };
> static int jz4760_pwm_pwm6_pins[] = { 0x6a, };
> static int jz4760_pwm_pwm7_pins[] = { 0x6b, };
> +static int jz4760_otg_pins[] = { 0x8a, };
>
> static u8 jz4760_uart3_data_funcs[] = { 0, 1, };
> static u8 jz4760_mmc0_1bit_a_funcs[] = { 1, 1, 0, };
> @@ -436,8 +446,12 @@ static const struct group_desc jz4760_groups[] = {
> INGENIC_PIN_GROUP("i2c0-data", jz4760_i2c0, 0),
> INGENIC_PIN_GROUP("i2c1-data", jz4760_i2c1, 0),
> INGENIC_PIN_GROUP("cim-data", jz4760_cim, 0),
> + INGENIC_PIN_GROUP("lcd-8bit", jz4760_lcd_8bit, 0),
> + INGENIC_PIN_GROUP("lcd-16bit", jz4760_lcd_16bit, 0),
> + INGENIC_PIN_GROUP("lcd-18bit", jz4760_lcd_18bit, 0),
> INGENIC_PIN_GROUP("lcd-24bit", jz4760_lcd_24bit, 0),
> - { "lcd-no-pins", },
> + INGENIC_PIN_GROUP("lcd-generic", jz4760_lcd_generic, 0),
> + INGENIC_PIN_GROUP("lcd-special", jz4760_lcd_special, 1),
> INGENIC_PIN_GROUP("pwm0", jz4760_pwm_pwm0, 0),
> INGENIC_PIN_GROUP("pwm1", jz4760_pwm_pwm1, 0),
> INGENIC_PIN_GROUP("pwm2", jz4760_pwm_pwm2, 0),
> @@ -446,6 +460,7 @@ static const struct group_desc jz4760_groups[] = {
> INGENIC_PIN_GROUP("pwm5", jz4760_pwm_pwm5, 0),
> INGENIC_PIN_GROUP("pwm6", jz4760_pwm_pwm6, 0),
> INGENIC_PIN_GROUP("pwm7", jz4760_pwm_pwm7, 0),
> + INGENIC_PIN_GROUP("otg-vbus", jz4760_otg, 0),
> };
>
> static const char *jz4760_uart0_groups[] = { "uart0-data", "uart0-hwflow", };
> @@ -477,7 +492,10 @@ static const char *jz4760_cs6_groups[] = { "nemc-cs6", };
> static const char *jz4760_i2c0_groups[] = { "i2c0-data", };
> static const char *jz4760_i2c1_groups[] = { "i2c1-data", };
> static const char *jz4760_cim_groups[] = { "cim-data", };
> -static const char *jz4760_lcd_groups[] = { "lcd-24bit", "lcd-no-pins", };
> +static const char *jz4760_lcd_groups[] = {
> + "lcd-8bit", "lcd-16bit", "lcd-18bit", "lcd-24bit",
> + "lcd-special", "lcd-generic",
> +};
> static const char *jz4760_pwm0_groups[] = { "pwm0", };
> static const char *jz4760_pwm1_groups[] = { "pwm1", };
> static const char *jz4760_pwm2_groups[] = { "pwm2", };
> @@ -486,6 +504,7 @@ static const char *jz4760_pwm4_groups[] = { "pwm4", };
> static const char *jz4760_pwm5_groups[] = { "pwm5", };
> static const char *jz4760_pwm6_groups[] = { "pwm6", };
> static const char *jz4760_pwm7_groups[] = { "pwm7", };
> +static const char *jz4760_otg_groups[] = { "otg-vbus", };
>
> static const struct function_desc jz4760_functions[] = {
> { "uart0", jz4760_uart0_groups, ARRAY_SIZE(jz4760_uart0_groups), },
> @@ -514,6 +533,7 @@ static const struct function_desc jz4760_functions[] = {
> { "pwm5", jz4760_pwm5_groups, ARRAY_SIZE(jz4760_pwm5_groups), },
> { "pwm6", jz4760_pwm6_groups, ARRAY_SIZE(jz4760_pwm6_groups), },
> { "pwm7", jz4760_pwm7_groups, ARRAY_SIZE(jz4760_pwm7_groups), },
> + { "otg", jz4760_otg_groups, ARRAY_SIZE(jz4760_otg_groups), },
> };
>
> static const struct ingenic_chip_info jz4760_chip_info = {
> @@ -648,7 +668,6 @@ static int jz4770_mac_rmii_pins[] = {
> 0xa9, 0xab, 0xaa, 0xac, 0xa5, 0xa4, 0xad, 0xae, 0xa6, 0xa8,
> };
> static int jz4770_mac_mii_pins[] = { 0xa7, 0xaf, };
> -static int jz4770_otg_pins[] = { 0x8a, };
>
> static const struct group_desc jz4770_groups[] = {
> INGENIC_PIN_GROUP("uart0-data", jz4770_uart0_data, 0),
> @@ -747,7 +766,7 @@ static const struct group_desc jz4770_groups[] = {
> INGENIC_PIN_GROUP("pwm7", jz4770_pwm_pwm7, 0),
> INGENIC_PIN_GROUP("mac-rmii", jz4770_mac_rmii, 0),
> INGENIC_PIN_GROUP("mac-mii", jz4770_mac_mii, 0),
> - INGENIC_PIN_GROUP("otg-vbus", jz4770_otg, 0),
> + INGENIC_PIN_GROUP("otg-vbus", jz4760_otg, 0),
> };
>
> static const char *jz4770_uart0_groups[] = { "uart0-data", "uart0-hwflow", };
> @@ -808,7 +827,6 @@ static const char *jz4770_pwm5_groups[] = { "pwm5", };
> static const char *jz4770_pwm6_groups[] = { "pwm6", };
> static const char *jz4770_pwm7_groups[] = { "pwm7", };
> static const char *jz4770_mac_groups[] = { "mac-rmii", "mac-mii", };
> -static const char *jz4770_otg_groups[] = { "otg-vbus", };
>
> static const struct function_desc jz4770_functions[] = {
> { "uart0", jz4770_uart0_groups, ARRAY_SIZE(jz4770_uart0_groups), },
> @@ -841,7 +859,7 @@ static const struct function_desc jz4770_functions[] = {
> { "pwm6", jz4770_pwm6_groups, ARRAY_SIZE(jz4770_pwm6_groups), },
> { "pwm7", jz4770_pwm7_groups, ARRAY_SIZE(jz4770_pwm7_groups), },
> { "mac", jz4770_mac_groups, ARRAY_SIZE(jz4770_mac_groups), },
> - { "otg", jz4770_otg_groups, ARRAY_SIZE(jz4770_otg_groups), },
> + { "otg", jz4760_otg_groups, ARRAY_SIZE(jz4760_otg_groups), },
> };
>
> static const struct ingenic_chip_info jz4770_chip_info = {
> --
> 2.29.2
>

2021-01-20 14:15:30

by Paul Cercueil

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: ingenic: Improve JZ4760 support



Le mer. 20 janv. 2021 ? 14:13, H. Nikolaus Schaller
<[email protected]> a ?crit :
>
>> Am 20.01.2021 um 12:07 schrieb Paul Cercueil <[email protected]>:
>>
>> - Add otg function and otg-vbus group.
>>
>> - Add lcd-8bit, lcd-16bit, lcd-18bit, lcd-generic and lcd-special
>> groups. Change the lcd-24bit group so that it only selects the pins
>> that aren't in the lcd-18bit and lcd-generic groups (which breaks
>> Device Tree in theory, but there is none out there for any JZ4760
>> based board, yet). Remove the lcd-no-pins group which is just
>> useless.
>
> Does this mean it is also usless for the other Ingenic SoC?
> Background: we are working on jz4730 support and have simply copied
> it.

Yes, you can remove it.

-Paul

>>
>> Signed-off-by: Paul Cercueil <[email protected]>
>> ---
>> drivers/pinctrl/pinctrl-ingenic.c | 38
>> +++++++++++++++++++++++--------
>> 1 file changed, 28 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/pinctrl/pinctrl-ingenic.c
>> b/drivers/pinctrl/pinctrl-ingenic.c
>> index 76fec77c5b67..f2746125b077 100644
>> --- a/drivers/pinctrl/pinctrl-ingenic.c
>> +++ b/drivers/pinctrl/pinctrl-ingenic.c
>> @@ -376,12 +376,21 @@ static int jz4760_cim_pins[] = {
>> 0x26, 0x27, 0x28, 0x29,
>> 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31,
>> };
>> +static int jz4760_lcd_8bit_pins[] = {
>> + 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x4c,
>> + 0x4d, 0x52, 0x53,
>> +};
>> +static int jz4760_lcd_16bit_pins[] = {
>> + 0x4e, 0x4f, 0x50, 0x51, 0x56, 0x57, 0x58, 0x59,
>> +};
>> +static int jz4760_lcd_18bit_pins[] = {
>> + 0x5a, 0x5b,
>> +};
>> static int jz4760_lcd_24bit_pins[] = {
>> - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
>> - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
>> - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
>> - 0x58, 0x59, 0x5a, 0x5b,
>> + 0x40, 0x41, 0x4a, 0x4b, 0x54, 0x55,
>> };
>> +static int jz4760_lcd_special_pins[] = { 0x40, 0x41, 0x4a, 0x54 };
>> +static int jz4760_lcd_generic_pins[] = { 0x49, };
>> static int jz4760_pwm_pwm0_pins[] = { 0x80, };
>> static int jz4760_pwm_pwm1_pins[] = { 0x81, };
>> static int jz4760_pwm_pwm2_pins[] = { 0x82, };
>> @@ -390,6 +399,7 @@ static int jz4760_pwm_pwm4_pins[] = { 0x84, };
>> static int jz4760_pwm_pwm5_pins[] = { 0x85, };
>> static int jz4760_pwm_pwm6_pins[] = { 0x6a, };
>> static int jz4760_pwm_pwm7_pins[] = { 0x6b, };
>> +static int jz4760_otg_pins[] = { 0x8a, };
>>
>> static u8 jz4760_uart3_data_funcs[] = { 0, 1, };
>> static u8 jz4760_mmc0_1bit_a_funcs[] = { 1, 1, 0, };
>> @@ -436,8 +446,12 @@ static const struct group_desc jz4760_groups[]
>> = {
>> INGENIC_PIN_GROUP("i2c0-data", jz4760_i2c0, 0),
>> INGENIC_PIN_GROUP("i2c1-data", jz4760_i2c1, 0),
>> INGENIC_PIN_GROUP("cim-data", jz4760_cim, 0),
>> + INGENIC_PIN_GROUP("lcd-8bit", jz4760_lcd_8bit, 0),
>> + INGENIC_PIN_GROUP("lcd-16bit", jz4760_lcd_16bit, 0),
>> + INGENIC_PIN_GROUP("lcd-18bit", jz4760_lcd_18bit, 0),
>> INGENIC_PIN_GROUP("lcd-24bit", jz4760_lcd_24bit, 0),
>> - { "lcd-no-pins", },
>> + INGENIC_PIN_GROUP("lcd-generic", jz4760_lcd_generic, 0),
>> + INGENIC_PIN_GROUP("lcd-special", jz4760_lcd_special, 1),
>> INGENIC_PIN_GROUP("pwm0", jz4760_pwm_pwm0, 0),
>> INGENIC_PIN_GROUP("pwm1", jz4760_pwm_pwm1, 0),
>> INGENIC_PIN_GROUP("pwm2", jz4760_pwm_pwm2, 0),
>> @@ -446,6 +460,7 @@ static const struct group_desc jz4760_groups[]
>> = {
>> INGENIC_PIN_GROUP("pwm5", jz4760_pwm_pwm5, 0),
>> INGENIC_PIN_GROUP("pwm6", jz4760_pwm_pwm6, 0),
>> INGENIC_PIN_GROUP("pwm7", jz4760_pwm_pwm7, 0),
>> + INGENIC_PIN_GROUP("otg-vbus", jz4760_otg, 0),
>> };
>>
>> static const char *jz4760_uart0_groups[] = { "uart0-data",
>> "uart0-hwflow", };
>> @@ -477,7 +492,10 @@ static const char *jz4760_cs6_groups[] = {
>> "nemc-cs6", };
>> static const char *jz4760_i2c0_groups[] = { "i2c0-data", };
>> static const char *jz4760_i2c1_groups[] = { "i2c1-data", };
>> static const char *jz4760_cim_groups[] = { "cim-data", };
>> -static const char *jz4760_lcd_groups[] = { "lcd-24bit",
>> "lcd-no-pins", };
>> +static const char *jz4760_lcd_groups[] = {
>> + "lcd-8bit", "lcd-16bit", "lcd-18bit", "lcd-24bit",
>> + "lcd-special", "lcd-generic",
>> +};
>> static const char *jz4760_pwm0_groups[] = { "pwm0", };
>> static const char *jz4760_pwm1_groups[] = { "pwm1", };
>> static const char *jz4760_pwm2_groups[] = { "pwm2", };
>> @@ -486,6 +504,7 @@ static const char *jz4760_pwm4_groups[] = {
>> "pwm4", };
>> static const char *jz4760_pwm5_groups[] = { "pwm5", };
>> static const char *jz4760_pwm6_groups[] = { "pwm6", };
>> static const char *jz4760_pwm7_groups[] = { "pwm7", };
>> +static const char *jz4760_otg_groups[] = { "otg-vbus", };
>>
>> static const struct function_desc jz4760_functions[] = {
>> { "uart0", jz4760_uart0_groups, ARRAY_SIZE(jz4760_uart0_groups), },
>> @@ -514,6 +533,7 @@ static const struct function_desc
>> jz4760_functions[] = {
>> { "pwm5", jz4760_pwm5_groups, ARRAY_SIZE(jz4760_pwm5_groups), },
>> { "pwm6", jz4760_pwm6_groups, ARRAY_SIZE(jz4760_pwm6_groups), },
>> { "pwm7", jz4760_pwm7_groups, ARRAY_SIZE(jz4760_pwm7_groups), },
>> + { "otg", jz4760_otg_groups, ARRAY_SIZE(jz4760_otg_groups), },
>> };
>>
>> static const struct ingenic_chip_info jz4760_chip_info = {
>> @@ -648,7 +668,6 @@ static int jz4770_mac_rmii_pins[] = {
>> 0xa9, 0xab, 0xaa, 0xac, 0xa5, 0xa4, 0xad, 0xae, 0xa6, 0xa8,
>> };
>> static int jz4770_mac_mii_pins[] = { 0xa7, 0xaf, };
>> -static int jz4770_otg_pins[] = { 0x8a, };
>>
>> static const struct group_desc jz4770_groups[] = {
>> INGENIC_PIN_GROUP("uart0-data", jz4770_uart0_data, 0),
>> @@ -747,7 +766,7 @@ static const struct group_desc jz4770_groups[]
>> = {
>> INGENIC_PIN_GROUP("pwm7", jz4770_pwm_pwm7, 0),
>> INGENIC_PIN_GROUP("mac-rmii", jz4770_mac_rmii, 0),
>> INGENIC_PIN_GROUP("mac-mii", jz4770_mac_mii, 0),
>> - INGENIC_PIN_GROUP("otg-vbus", jz4770_otg, 0),
>> + INGENIC_PIN_GROUP("otg-vbus", jz4760_otg, 0),
>> };
>>
>> static const char *jz4770_uart0_groups[] = { "uart0-data",
>> "uart0-hwflow", };
>> @@ -808,7 +827,6 @@ static const char *jz4770_pwm5_groups[] = {
>> "pwm5", };
>> static const char *jz4770_pwm6_groups[] = { "pwm6", };
>> static const char *jz4770_pwm7_groups[] = { "pwm7", };
>> static const char *jz4770_mac_groups[] = { "mac-rmii", "mac-mii", };
>> -static const char *jz4770_otg_groups[] = { "otg-vbus", };
>>
>> static const struct function_desc jz4770_functions[] = {
>> { "uart0", jz4770_uart0_groups, ARRAY_SIZE(jz4770_uart0_groups), },
>> @@ -841,7 +859,7 @@ static const struct function_desc
>> jz4770_functions[] = {
>> { "pwm6", jz4770_pwm6_groups, ARRAY_SIZE(jz4770_pwm6_groups), },
>> { "pwm7", jz4770_pwm7_groups, ARRAY_SIZE(jz4770_pwm7_groups), },
>> { "mac", jz4770_mac_groups, ARRAY_SIZE(jz4770_mac_groups), },
>> - { "otg", jz4770_otg_groups, ARRAY_SIZE(jz4770_otg_groups), },
>> + { "otg", jz4760_otg_groups, ARRAY_SIZE(jz4760_otg_groups), },
>> };
>>
>> static const struct ingenic_chip_info jz4770_chip_info = {
>> --
>> 2.29.2
>>
>


2021-01-21 12:22:16

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: ingenic: Improve JZ4760 support

On Wed, Jan 20, 2021 at 12:07 PM Paul Cercueil <[email protected]> wrote:

> - Add otg function and otg-vbus group.
>
> - Add lcd-8bit, lcd-16bit, lcd-18bit, lcd-generic and lcd-special
> groups. Change the lcd-24bit group so that it only selects the pins
> that aren't in the lcd-18bit and lcd-generic groups (which breaks
> Device Tree in theory, but there is none out there for any JZ4760
> based board, yet). Remove the lcd-no-pins group which is just useless.
>
> Signed-off-by: Paul Cercueil <[email protected]>

Patch applied.

Yours,
Linus Walleij