[PATCH] ARM/serial: at91: switch atmel serial to use gpiolib

Linus Walleij linus.walleij at linaro.org
Wed Nov 6 04:16:45 EST 2013


On Tue, Nov 5, 2013 at 5:28 PM, Jean-Christophe PLAGNIOL-VILLARD
<plagnioj at jcrosoft.com> wrote:
> On 13:35 Tue 05 Nov     , Linus Walleij wrote:

>> +     /*
>> +      * AT91RM9200 Errata #39: RTS0 is not internally connected
>> +      * to PA21. We need to drive the pin as a GPIO.
>> +      */
>> +     if (gpio_is_valid(atmel_port->rts_gpio) &&
>> +         port->mapbase == AT91RM9200_BASE_US0) {

> not really a fon of this hack
>
> if we use a uart for rs485 we need to use a gpio for rts too

Hm it was completely unnecessary anyway, as I now specify
the RTS pin per UART instance, it will only be valid for
those setting it right.

>> +     /*
>> +      * In theory the GPIO pin controlling RTS could be zero and
>> +      * this would be an improper check, but we know that the only
>> +      * existing case is != 0 and it's nice to use the zero-initialized
>> +      * structs to indicate "no RTS GPIO" instead of open-coding some
>> +      * invalid value everywhere.
>> +      */
>> +     if (pdata->rts_gpio > 0) {

>         this can not work 0 is a valid gpio if you do this you need to update
>         ALL the bard filee too to set it as -EINVAL;

Isn't it the other way around? I did this exactly to avoid updating
all the boardfiles, as the rts_gpio == 0 for all those not
defining it. This is why I test for > 0.

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list