serial: mctrl_gpio: add modem control read routine
mctrl_gpio_get_outputs() returns the state of following signals: RTS, DTR While defining the routine for reading outputs, fix the comment for mctrl_gpio_get() routine as it returns only the state of the input signals. Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
36fd95b17e
commit
bf5cee681e
@ -86,6 +86,24 @@ unsigned int mctrl_gpio_get(struct mctrl_gpios *gpios, unsigned int *mctrl)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mctrl_gpio_get);
|
EXPORT_SYMBOL_GPL(mctrl_gpio_get);
|
||||||
|
|
||||||
|
unsigned int
|
||||||
|
mctrl_gpio_get_outputs(struct mctrl_gpios *gpios, unsigned int *mctrl)
|
||||||
|
{
|
||||||
|
enum mctrl_gpio_idx i;
|
||||||
|
|
||||||
|
for (i = 0; i < UART_GPIO_MAX; i++) {
|
||||||
|
if (gpios->gpio[i] && mctrl_gpios_desc[i].dir_out) {
|
||||||
|
if (gpiod_get_value(gpios->gpio[i]))
|
||||||
|
*mctrl |= mctrl_gpios_desc[i].mctrl;
|
||||||
|
else
|
||||||
|
*mctrl &= ~mctrl_gpios_desc[i].mctrl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return *mctrl;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(mctrl_gpio_get_outputs);
|
||||||
|
|
||||||
struct mctrl_gpios *mctrl_gpio_init_noauto(struct device *dev, unsigned int idx)
|
struct mctrl_gpios *mctrl_gpio_init_noauto(struct device *dev, unsigned int idx)
|
||||||
{
|
{
|
||||||
struct mctrl_gpios *gpios;
|
struct mctrl_gpios *gpios;
|
||||||
|
@ -48,11 +48,18 @@ struct mctrl_gpios;
|
|||||||
void mctrl_gpio_set(struct mctrl_gpios *gpios, unsigned int mctrl);
|
void mctrl_gpio_set(struct mctrl_gpios *gpios, unsigned int mctrl);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get state of the modem control output lines from GPIOs.
|
* Get state of the modem control input lines from GPIOs.
|
||||||
* The mctrl flags are updated and returned.
|
* The mctrl flags are updated and returned.
|
||||||
*/
|
*/
|
||||||
unsigned int mctrl_gpio_get(struct mctrl_gpios *gpios, unsigned int *mctrl);
|
unsigned int mctrl_gpio_get(struct mctrl_gpios *gpios, unsigned int *mctrl);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get state of the modem control output lines from GPIOs.
|
||||||
|
* The mctrl flags are updated and returned.
|
||||||
|
*/
|
||||||
|
unsigned int
|
||||||
|
mctrl_gpio_get_outputs(struct mctrl_gpios *gpios, unsigned int *mctrl);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns the associated struct gpio_desc to the modem line gidx
|
* Returns the associated struct gpio_desc to the modem line gidx
|
||||||
*/
|
*/
|
||||||
@ -107,6 +114,12 @@ unsigned int mctrl_gpio_get(struct mctrl_gpios *gpios, unsigned int *mctrl)
|
|||||||
return *mctrl;
|
return *mctrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline unsigned int
|
||||||
|
mctrl_gpio_get_outputs(struct mctrl_gpios *gpios, unsigned int *mctrl)
|
||||||
|
{
|
||||||
|
return *mctrl;
|
||||||
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
struct gpio_desc *mctrl_gpio_to_gpiod(struct mctrl_gpios *gpios,
|
struct gpio_desc *mctrl_gpio_to_gpiod(struct mctrl_gpios *gpios,
|
||||||
enum mctrl_gpio_idx gidx)
|
enum mctrl_gpio_idx gidx)
|
||||||
|
Loading…
Reference in New Issue
Block a user