[PATCH] gpio: mxs: implement get_direction callback
u.kleine-koenig at pengutronix.de
Mon Nov 17 14:21:27 PST 2014
On Mon, Nov 17, 2014 at 08:02:54PM +0100, Janusz Użycki wrote:
> W dniu 2014-11-17 o 19:42, Uwe Kleine-König pisze:
> >On Mon, Nov 17, 2014 at 06:07:53PM +0100, Janusz Użycki wrote:
> >>>It looks there could be one more helper useful.
> >>>Both atmel_serial.c and mxs-auart.c checks if the line is
> >>>supported by mctrl_gpio.
> >>>One time it is eg.:
> >>>(s->gpio_irq[UART_GPIO_DCD] > 0)
> >>>another time it is eg.:
> >>>IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(s->gpios, UART_GPIO_RTS))
> >>>The first one is no possible now. The second seems rude.
> >>>bool mctrl_gpio_is_gpio((struct mctrl_gpios *gpios, enum
> >>>mctrl_gpio_idx gidx);
> >>>The name is hard. Moreover the implementation could be very similar
> >>>to mctrl_gpio_to_gpiod(). Any ideas?
> >>The differences:
> >>- faster
> >>- not exported
> >>- used mainly in uart's interrupt
> >>- assumes that struct mctrl_gpios *gpios exists
> >I wonder why you need it at all?!
> If the line is not supported by gpio it could be supported by native
> uart's hardware
> if possible. There are different configurations. One port has the
> lines, other
> which uses the same driver doesn't have.
> Let's look at disable/enable_ms() in atmet_serial.c.
> In mxs-auart DMA is not used if CTS or RTS is gpio line (timming).
For the atmel driver I would expect that it doesn't hurt to set
ATMEL_US_CTSIC if CTS is realized using a gpio. But maybe I'm too
optimistic here. So atmel_enable_ms could look as follows:
struct atmel_uart_port *atmel_port = to_atmel_uart_port(port);
* Interrupt should not be enabled twice
* ukl: is this check really needed?
atmel_port->ms_irq_enabled = true;
UART_PUT_IER(port, ATMEL_US_CTSIC | ATMEL_US_DSRIC | ATMEL_US_RIIC | ATMEL_US_DCDIC);
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
More information about the linux-arm-kernel