[PATCH] ARM: dts: sun8i-h2-plus-bananapi-m2-zero: add gpio-line-names

Michael Klein michael at fossekall.de
Mon Nov 23 04:43:00 EST 2020


On Mon, Nov 23, 2020 at 12:39:07PM +0800, Chen-Yu Tsai wrote:
>On Sat, Nov 21, 2020 at 2:28 AM Michael Klein <michael at fossekall.de> wrote:
>>
>> Thank you for having a look at the patch!
>>
>> On Fri, Nov 20, 2020 at 04:52:52PM +0100, Maxime Ripard wrote:
>> >On Sun, Nov 15, 2020 at 11:24:25PM +0100, Michael Klein wrote:
>> >> Add gpio-line-names as documented in the Banana Pi wiki [1] and in the
>> >> schematics [2].
>> >>
>> >> [1]: http://wiki.banana-pi.org/Banana_Pi_BPI-M2_ZERO#GPIO_PIN_define
>> >> [2]: https://drive.google.com/file/d/0B4PAo2nW2KfnMW5sVkxWSW9qa28/view
>> >>
>> >> Signed-off-by: Michael Klein <michael at fossekall.de>
>> >> ---
>> >>  .../dts/sun8i-h2-plus-bananapi-m2-zero.dts    | 64 +++++++++++++++++++
>> >>  1 file changed, 64 insertions(+)
>> >>
>> >> diff --git a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
>> >> index 4c6704e4c57e..b4ddfaf01b45 100644
>> >> --- a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
>> >> +++ b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
>> >> @@ -136,6 +136,70 @@ bluetooth {
>> >>
>> >>  };
>> >>
>> >> +&pio {
>> >> +    gpio-line-names =
>> >> +            /* PA */
>> >> +            "UART2-TX", "UART2-RX", "UART2-RTS", "UART2-CTS",
>> >> +                    "UART0-TXD", "UART0-RXD", "PWM1", "PA7-EINT7",
>> >> +            "PA8-EINT8", "PA9-EINT9", "PA10-EINT10", "TWI0-SCK",
>> >> +                    "TWI0-SDA", "UART3-TX", "UART3-RX", "UART3-RTS",
>> >> +            "UART3-CTS", "PA17-EINT17", "TWI1-SCK", "TWI1-SDA",
>> >> +                    "PA20-EINT20", "PA21-EINT21", "", "",
>> >> +            "", "", "", "", "", "", "", "",
>> >
>> >IIRC, the point is to have the pin names that the vendor publishes.
>> >
>> >Looking at Documentation/devicetree/bindings/gpio/gpio.txt, it says:
>> >
>> >"""
>> >Optionally, a GPIO controller may have a "gpio-line-names" property. This is
>> >an array of strings defining the names of the GPIO lines going out of the
>> >GPIO controller. This name should be the most meaningful producer name
>> >for the system, such as a rail name indicating the usage. Package names
>> >such as pin name are discouraged: such lines have opaque names (since they
>> >are by definition generic purpose) and such names are usually not very
>> >helpful.
>> >"""
>> >
>> >In this case, from the link you gave above, I think having the CON*-P*
>> >names make more sense.
>>
>> Hm, but these are the pin names (of the connector) and should thus not
>> be used, right?
>>
>> For e.g. the PA0 pin, the wiki link gives three candidates:
>>
>> - CON2-P13 (GPIO Pin Name -> pin 13 of the 40 pin GPIO header)
>> - UART2-TX (Default Function)
>> - PA0-EINT0 (Function2 : GPIO)
>>
>> IMHO, the CON*-P* name is the least helpful of the above, as it tells
>> nothing about the usage. I'm not sure about the other two names, though.
>
>I believe the function names are pretty useless in this case, as you
>cannot use the GPIO subsystem to mux functions. That is what pinctrl
>does. And in our case, the pinctrl drivers already know all the
>available functions each pin has.
>
>Using the pin count and connector name provides the user direct mapping
>of the software representation of the pin against the actual pin on the
>hardware. The user can then proceed to request and use that pin.

Thank you for the explanation, that makes sense. I'll update the patch 
then.

Michael



More information about the linux-arm-kernel mailing list