I am looking for help in enabling a gpio based RTS in omap-serial for RS485 communication. I am not using the 8250 driver as it does not yet support RS485. I have a GPIO pin assigned as rts-gpio. I have verified that the GPIO is working with manual manipulation via sysfs and a scope. To do this I cannot declare 'rs485-enabled-at-boot-time' in device tree.
When using a device tree with 'rs485-enabled-at-boot-time' in my pin definition, I do see omap-serial take this GPIO via /sys/kernel/debug/gpio. However it always low. The 485 transceiver we are using TI iso1176t has active-high driver enable and active low receiver enable. The port is configured via ioctl correctly upon open, but when any bidirectional app tries to use, I never see the state of rts-GPIO change. It seems once omap-serial grabs this GPIO pin, it is forever low. All my other GPIO muxing/assignments work just fine.
| part/component |
description |
notes |
| am335x | cpu | |
| iso1176t | 485 transceiver | |
| image build | yocto fido/poky (1.8.1) | |
| kernel (current) | 3.14.64 | |
| serial driver | omap-serial | |
| port | uart4 | |
| RTS-GPIO based | GPIO22 |