[RFC] GPIO-based flow control in the cpm_uart driver

Anton Vorontsov avorontsov at ru.mvista.com
Tue Apr 15 23:40:07 EST 2008


On Tue, Apr 15, 2008 at 03:22:33PM +0200, Laurent Pinchart wrote:
> Hi everybody,
> 
> I'm implementing flow control and modem control lines support in the cpm_uart 
> driver.
> 
> The implementation is based on the GPIO lib. Modem control lines are described 
> in the device tree as GPIO resources and accessed through the OF GPIO 
> bindings. The I/O ports have to be initialized as GPIOs in the 
> platform-specific code.
> 
> Reading and writing the modem control lines isn't an issue, but activating 
> hardware flow control is more complex. The driver needs to turn dedicated 
> functions on and off for the RTS and CTS signals, and the GPIO API doesn't 
> provide a way to access the PPAR* registers (which does make sense - although 
> arguably - as PPAR* control specific functions, not GPIOs).
> 
> Hardcoding RTS and CTS lines control in the driver is not an option I want to 
> consider. Extending the GPIO API to handled special functions has been nacked 
> in the past (see 
> http://ozlabs.org/pipermail/linuxppc-dev/2008-February/051241.html). An 
> option would be to export gpio_to_chip from drivers/gpio/gpiolib.c and use 
> cpm1/2_set_pin in the cpm_uart driver.

Since you have successfuly ported QE USB controller onto CPM USB
hardware, now it's obvious that we will need generic gpio_set_dedicated()
function. So I would rather beg David to accept gpio_set_dedicated()
approach instead of exporting gpio_to_chip(). That way we'll kill two
birds with one stone.

-- 
Anton Vorontsov
email: cbouatmailru at gmail.com
irc://irc.freenode.net/bd2



More information about the Linuxppc-dev mailing list