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 |