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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxx> 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@xxxxxxxxxxxx>
>> ---
>>  .../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



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux