Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0043c1df authored by Lee Jones's avatar Lee Jones Committed by Linus Walleij
Browse files

serial: st-asc: Use new GPIOD API to obtain RTS pin



The commits mentioned below adapt the GPIO API to allow more information
to be passed directly through devm_get_gpiod_from_child() in the first
instance.  This facilitates the removal of subsequent calls, such as
gpiod_direction_output().  This patch firstly moves to utilise the new
API and secondly removes the now superfluous call do set the direction.

Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Suggested-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
[Also drop the header file dummies that only this driver was using]
Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent f759921c
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -575,14 +575,15 @@ static void asc_set_termios(struct uart_port *port, struct ktermios *termios,
			pinctrl_select_state(ascport->pinctrl,
					     ascport->states[NO_HW_FLOWCTRL]);

			gpiod =	devm_get_gpiod_from_child(port->dev, "rts",
							  &np->fwnode);
			if (!IS_ERR(gpiod)) {
				gpiod_direction_output(gpiod, 0);
			gpiod = devm_fwnode_get_gpiod_from_child(port->dev,
								 "rts",
								 &np->fwnode,
								 GPIOD_OUT_LOW,
								 np->name);
			if (!IS_ERR(gpiod))
				ascport->rts = gpiod;
		}
	}
	}

	if ((baud < 19200) && !ascport->force_m1) {
		asc_out(port, ASC_BAUDRATE, (port->uartclk / (16 * baud)));
+0 −16
Original line number Diff line number Diff line
@@ -143,15 +143,6 @@ struct gpio_desc *devm_fwnode_get_index_gpiod_from_child(struct device *dev,
						struct fwnode_handle *child,
						enum gpiod_flags flags,
						const char *label);
/* FIXME: delete this helper when users are switched over */
static inline struct gpio_desc *devm_get_gpiod_from_child(struct device *dev,
			  const char *con_id, struct fwnode_handle *child)
{
	return devm_fwnode_get_index_gpiod_from_child(dev, con_id,
						      0, child,
						      GPIOD_ASIS,
						      "?");
}

#else /* CONFIG_GPIOLIB */

@@ -444,13 +435,6 @@ struct gpio_desc *devm_fwnode_get_index_gpiod_from_child(struct device *dev,
	return ERR_PTR(-ENOSYS);
}

/* FIXME: delete this when all users are switched over */
static inline struct gpio_desc *devm_get_gpiod_from_child(struct device *dev,
			  const char *con_id, struct fwnode_handle *child)
{
	return ERR_PTR(-ENOSYS);
}

#endif /* CONFIG_GPIOLIB */

static inline