diff mbox

[U-Boot] sunxi: gpio: add missing compatible strings

Message ID 20170629101031.3954-1-andre.przywara@arm.com
State Rejected
Delegated to: Jagannadha Sutradharudu Teki
Headers show

Commit Message

Andre Przywara June 29, 2017, 10:10 a.m. UTC
The sunxi GPIO driver is missing some compatible strings for recent
SoCs. While most of the sunxi GPIO code seems to not rely on this (and
so works anyway), the sunxi_name_to_gpio() function does and fails at
the moment (for instance when resolving the MMC CD pin name).
Add the compatible strings for the A64, H5 and V3s, which were missing
from the list. This now covers all pinctrl nodes in our own DTs.
Strictly speaking the V3s has only ports B, C, E, F and G, but I think
the other SoCs have gaps in there as well and for the pin number
computation this does not matter.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
 drivers/gpio/sunxi_gpio.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Icenowy Zheng June 29, 2017, 10:26 a.m. UTC | #1
于 2017年6月29日 GMT+08:00 下午6:10:31, Andre Przywara <andre.przywara@arm.com> 写到:
>The sunxi GPIO driver is missing some compatible strings for recent
>SoCs. While most of the sunxi GPIO code seems to not rely on this (and
>so works anyway), the sunxi_name_to_gpio() function does and fails at
>the moment (for instance when resolving the MMC CD pin name).
>Add the compatible strings for the A64, H5 and V3s, which were missing
>from the list. This now covers all pinctrl nodes in our own DTs.
>Strictly speaking the V3s has only ports B, C, E, F and G, but I think
>the other SoCs have gaps in there as well and for the pin number

Yes, the current U-Boot driver doesn't care gaps at all, and I remember
A64 has also no A bank.

>computation this does not matter.
>
>Signed-off-by: Andre Przywara <andre.przywara@arm.com>
>---
> drivers/gpio/sunxi_gpio.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
>diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c
>index b47cc66..d20a7e7 100644
>--- a/drivers/gpio/sunxi_gpio.c
>+++ b/drivers/gpio/sunxi_gpio.c
>@@ -353,12 +353,16 @@ static const struct udevice_id sunxi_gpio_ids[] =
>{
> 	ID("allwinner,sun8i-a83t-pinctrl",	a_all),
> 	ID("allwinner,sun8i-h3-pinctrl",	a_all),
> 	ID("allwinner,sun8i-r40-pinctrl",	a_all),
>+	ID("allwinner,sun8i-v3s-pinctrl",	a_all),
> 	ID("allwinner,sun9i-a80-pinctrl",	a_all),
>+	ID("allwinner,sun50i-a64-pinctrl",	a_all),
>+	ID("allwinner,sun50i-h5-pinctrl",	a_all),
> 	ID("allwinner,sun6i-a31-r-pinctrl",	l_2),
> 	ID("allwinner,sun8i-a23-r-pinctrl",	l_1),
> 	ID("allwinner,sun8i-a83t-r-pinctrl",	l_1),
> 	ID("allwinner,sun8i-h3-r-pinctrl",	l_1),
> 	ID("allwinner,sun9i-a80-r-pinctrl",	l_3),
>+	ID("allwinner,sun50i-a64-r-pinctrl",	l_1),
> 	{ }
> };
>
Jagan Teki Aug. 11, 2017, 11:16 a.m. UTC | #2
On Thu, Jun 29, 2017 at 3:56 PM, Icenowy Zheng <icenowy@aosc.io> wrote:
>
>
> 于 2017年6月29日 GMT+08:00 下午6:10:31, Andre Przywara <andre.przywara@arm.com> 写到:
>>The sunxi GPIO driver is missing some compatible strings for recent
>>SoCs. While most of the sunxi GPIO code seems to not rely on this (and
>>so works anyway), the sunxi_name_to_gpio() function does and fails at
>>the moment (for instance when resolving the MMC CD pin name).
>>Add the compatible strings for the A64, H5 and V3s, which were missing
>>from the list. This now covers all pinctrl nodes in our own DTs.
>>Strictly speaking the V3s has only ports B, C, E, F and G, but I think
>>the other SoCs have gaps in there as well and for the pin number
>
> Yes, the current U-Boot driver doesn't care gaps at all, and I remember
> A64 has also no A bank.

then better have this change only when it required to do so.

thanks!
Andre Przywara Sept. 18, 2017, 9:01 p.m. UTC | #3
On 11/08/17 12:16, Jagan Teki wrote:

Hi,

> On Thu, Jun 29, 2017 at 3:56 PM, Icenowy Zheng <icenowy@aosc.io> wrote:
>>
>>
>> 于 2017年6月29日 GMT+08:00 下午6:10:31, Andre Przywara <andre.przywara@arm.com> 写到:
>>> The sunxi GPIO driver is missing some compatible strings for recent
>>> SoCs. While most of the sunxi GPIO code seems to not rely on this (and
>>> so works anyway), the sunxi_name_to_gpio() function does and fails at
>>> the moment (for instance when resolving the MMC CD pin name).
>>> Add the compatible strings for the A64, H5 and V3s, which were missing
>> >from the list. This now covers all pinctrl nodes in our own DTs.
>>> Strictly speaking the V3s has only ports B, C, E, F and G, but I think
>>> the other SoCs have gaps in there as well and for the pin number
>>
>> Yes, the current U-Boot driver doesn't care gaps at all, and I remember
>> A64 has also no A bank.
> 
> then better have this change only when it required to do so.

Huh? I think there is a misunderstanding here:
My last sentence was pointing out that the description in this file is a
bit sloppy, since the naming "a_all" suggests all banks are there.
However what it actually means is that it starts counting from bank A
and uses consecutive registers - in contrast to the "-r-pinctrl" types.
And my understanding is that Icenowy just confirmed that.

And we need this change since we want (and can!) support the other
pinctrl devices as well - as mentioned in my commit message.

At the moment we fail to resolve the MMC CD pin name on the A64 and H5,
and this patch fixes that.

So are there objections to taking this patch? Am I missing something here?

Cheers,
Andre.
diff mbox

Patch

diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c
index b47cc66..d20a7e7 100644
--- a/drivers/gpio/sunxi_gpio.c
+++ b/drivers/gpio/sunxi_gpio.c
@@ -353,12 +353,16 @@  static const struct udevice_id sunxi_gpio_ids[] = {
 	ID("allwinner,sun8i-a83t-pinctrl",	a_all),
 	ID("allwinner,sun8i-h3-pinctrl",	a_all),
 	ID("allwinner,sun8i-r40-pinctrl",	a_all),
+	ID("allwinner,sun8i-v3s-pinctrl",	a_all),
 	ID("allwinner,sun9i-a80-pinctrl",	a_all),
+	ID("allwinner,sun50i-a64-pinctrl",	a_all),
+	ID("allwinner,sun50i-h5-pinctrl",	a_all),
 	ID("allwinner,sun6i-a31-r-pinctrl",	l_2),
 	ID("allwinner,sun8i-a23-r-pinctrl",	l_1),
 	ID("allwinner,sun8i-a83t-r-pinctrl",	l_1),
 	ID("allwinner,sun8i-h3-r-pinctrl",	l_1),
 	ID("allwinner,sun9i-a80-r-pinctrl",	l_3),
+	ID("allwinner,sun50i-a64-r-pinctrl",	l_1),
 	{ }
 };