Commit e88a1475 authored by Hans Binderup's avatar Hans Binderup Committed by Alberto Escolar
Browse files

drivers: gpio: mspm0: Add support for GPIO_GET_DIRECTION



This commit implements the gpio_get_direction handle for the gpio_mspm0
driver.

Signed-off-by: default avatarHans Binderup <habi@bang-olufsen.dk>
parent 8bc98ead
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -296,6 +296,22 @@ static int gpio_mspm0_pin_get_config(const struct device *port, gpio_pin_t pin,
}
#endif

#ifdef CONFIG_GPIO_GET_DIRECTION
static int gpio_mspm0_port_get_direction(const struct device *port,
					 gpio_port_pins_t map,
					 gpio_port_pins_t *inputs,
					 gpio_port_pins_t *outputs)
{
	const struct gpio_mspm0_config *config = port->config;

	map &= config->common.port_pin_mask;
	*inputs = map & ~config->base->DOE31_0;
	*outputs = map & config->base->DOE31_0;

	return 0;
}
#endif /* CONFIG_GPIO_GET_DIRECTION */

static DEVICE_API(gpio, gpio_mspm0_driver_api) = {
	.pin_configure = gpio_mspm0_pin_configure,
#ifdef CONFIG_GPIO_GET_CONFIG
@@ -309,6 +325,9 @@ static DEVICE_API(gpio, gpio_mspm0_driver_api) = {
	.pin_interrupt_configure = gpio_mspm0_pin_interrupt_configure,
	.manage_callback = gpio_mspm0_manage_callback,
	.get_pending_int = gpio_mspm0_get_pending_int,
#ifdef CONFIG_GPIO_GET_DIRECTION
	.port_get_direction = gpio_mspm0_port_get_direction,
#endif /* CONFIG_GPIO_GET_DIRECTION */
};

#define GPIO_DEVICE_INIT(n, __suffix, __base_addr)						\