[PATCH] arm: dts: sun7i-a20-bananapi: name the GPIO lines

Chen-Yu Tsai wens at csie.org
Fri Jul 22 08:47:16 PDT 2016


On Fri, Jul 22, 2016 at 10:55 PM, Linus Walleij
<linus.walleij at linaro.org> wrote:
> On Thu, Jul 14, 2016 at 1:47 PM, Oleksij Rempel <linux at rempel-privat.de> wrote:
>
>> This names the GPIO lines on the Banana Pi board in accordance with
>> the A20_Banana_Pi v1.4 Specification.
>>
>> This will make these line names reflect through to userspace
>> so that they can easily be identified and used with the new
>> character device ABI.
>>
>> Some care has been taken to name all lines, not just those used
>> by the external connectors, also lines that are muxed into some
>> other function than GPIO: these are named "[FOO]" so that users
>> can see with lsgpio what all lines are used for.
>>
>> Ps: most of the text was taken from Linux Wallej patch.
>
> LinuS
>
>>
>> Cc: devicetree at vger.kernel.org
>> Cc: Linus Walleij <linus.walleij at linaro.org>
>> Cc: linux-arm-kernel at lists.infradead.org
>> Cc: Chen-Yu Tsai <wens at csie.org>
>> Signed-off-by: Oleksij Rempel <linux at rempel-privat.de>
>
> Nice usecase!
>
>> +       /*
>> +        * Legend: proper name = the GPIO line is used as GPIO
>> +        *         NC = not connected (not routed from the SoC)
>> +        *         "[PER]" = pin is muxed for peripheral (not GPIO)
>> +        *         "" = no idea, schematic doesn't say, could be
>> +        *              unrouted (not connected to any external pin)
>> +        *         LSEC = Low Speed External Connector
>> +        *         HSEC = High Speed External Connector

I don't see LSEC/HSEC used anywhere?

>> +        */
>
> So maybe we should make this naming convention a suggested
> standard. People seem to like it.

One question about this whole thing: how extensively should we add
the names? Only for exposed pins? Or every pin that's routed/used?

>> +       gpio-line-names =
>> +               /* PA */
>> +               "[ERXD3]", "[ERXD2]", "[ERXD1]", "[ERXD0]", "[ETXD3]",
>> +                       "[ETXD2]", "[ETXD1]", "[ETXD0]",
>> +               "[ERXCK]", "[ERXERR]", "[ERXDV]", "[EMDC]", "[EMDIO]",
>> +                       "[ETXEN]", "[ETXCK]", "[ECRS]",
>> +               "[ECOL]", "[ETXERR]", "", "", "", "", "", "",
>> +               "", "", "", "", "", "", "", "",
>> +               /* PB */
>> +               "[PMU-SCK]", "[PMU-SDA]", "", "", "", "NC", "NC", "NC",
>> +               "NC", "[USB0-DRV]", "NC", "NC", "NC", "NC", "", "",
>> +               "", "", "", "", "SCL", "SDA", "", "",
>
> Are these bit-banged SCL and SDA for doing I2C with
> GPIO? Otherwise you probably want to name them "[SCL]" and "[SDA]"

There's an actual I2C controller backing them.

>
>> +               "TXD0", "RXD0", "IO-1", "PH3", "[USB0-IDDET]", "PH5", "", "",
>
> Same here. You probably want "[TXD0]" etc unless you're bit-banging
> the serial port. "IO-1" sounds like a real GPIO though and should
> probably be named like that without [] and "PH3" what is that really?
> A device-muxed pin or some kind of GPIO?

PH3 is actually the pin name. The vendor uses "IO-7" and "IO-8" as function
names for PH3 and PH5, but actually names them "NC":

    http://www.bananapi.org/p/product.html

>
>> +               "", "", "[SD0-DET]", "", "", "", "", "",
>> +               "NC", "", "", "", "IO-4", "IO-5", "NC", "[EMAC-PWR-EN]",
>
> So these seem correct too.
>
>> +               "[LED1]", "NC", "NC", "NC", "", "", "", "",
>
> "LED1" seems like the right name, if this is a GPIO used to drive
> a LED.

This is GPIO based.

>
>> +               "", "", "", "IO-GCLK", "NC", "NC", "NC", "NC",
>
> WHat is IO-GCLK? A real GPIO line used for toggling a clock?
> Or a hardware clock signal? In the first case it it correctly named,
> in the other case it should be "[IO-GCLK]".

According to the schematics this is a PWM output.

Regards
ChenYu

>
>> +               "NC", "NC", "[SPI-CE0]", "[SPI-CLK]", "[SPI-MOSI]",
>> +                       "[SPI-MISO]", "[SPI-CE1]", "NC",
>> +               "IO-6", "IO-3", "IO-2", "IO-0", "", "", "", "",
>
> Looks right.
>
> Yours,
> Linus Walleij



More information about the linux-arm-kernel mailing list