[PATCH RFC] serial: imx: support an enable-gpio

Rob Herring robh at kernel.org
Mon Apr 3 13:25:23 PDT 2017


On Mon, Apr 3, 2017 at 10:01 AM, Fabio Estevam <festevam at gmail.com> wrote:
> Hi Uwe,
>
> On Wed, Jul 13, 2016 at 6:01 AM, Uwe Kleine-König
> <u.kleine-koenig at pengutronix.de> wrote:
>> A part of my machine looks as follows (simplified):
>>
>> ,------------------------.
>> | ,---------.            |
>> | |  imx25  o--RX----◁---o---
>> | |         o--GPIO--'   |
>> | `---------'            |
>> `------------------------'
>>
>> that is, there is a driver on the RX line that must be enabled before
>> the UART can be used. (That is necessary because the default mux of the
>> RX pad after reset is an output.)
>>
>> To represent this in the device tree I do:
>>
>>         pinctrl_uart5: uart5 {
>>                 fsl,pins = <
>>                         ...
>>                         MX25_PAD_LBA__UART5_RXD         0x00000000
>>                         MX25_PAD_CS5__GPIO_3_21         0x00002001
>>                         ...
>>         };
>>
>>         &uart5 {
>>                 pinctrl-names = "default";
>>                 pinctrl-0 = <&pinctrl_uart5>;
>>
>>                 enable-gpio = <&gpio3 21 GPIO_ACTIVE_LOW>;

enable-gpios

I imagine you already know this needs documentation. Make it common please.

>>                 ...
>>         };
>>
>> This way it's ensured that the gpio is only enabled when the LBA pad is
>> muxed as RX (together with the bootloader that sets the GPIO high).
>>
>> Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
>
> Since this is not imx serial specific it could be made more generic.
>
> What about extending
> Documentation/devicetree/bindings/serial/slave-device.txt to handle
> this GPIO, or maybe a regulator?

This is more like a phy than a device you talk to. It could also be
something like an RS-232 xcvr enable (no one has done that already?).
I think it belongs in the uart's node. You could additionally have an
enable-gpios for a slave device.

Rob



More information about the linux-arm-kernel mailing list