@ -320,13 +320,15 @@ static int gpio_rza2m_pin_configure(const struct device *port_dev, gpio_pin_t pi
return - ENOTSUP ;
return - ENOTSUP ;
}
}
if ( ! flags ) {
/* Disconnected mode */
gpio_rza2m_pin_configure_as_gpio ( port_dev , pin , RZA2M_PDR_HIZ ) ;
} else if ( ! ( flags & GPIO_OPEN_DRAIN ) ) {
/* Configure pin direction */
/* Configure pin direction */
if ( flags & GPIO_OUTPUT ) {
if ( flags & GPIO_OUTPUT ) {
gpio_rza2m_pin_configure_as_gpio ( port_dev , pin , RZA2M_PDR_OUTPUT ) ;
gpio_rza2m_pin_configure_as_gpio ( port_dev , pin , RZA2M_PDR_OUTPUT ) ;
} else if ( flags & GPIO_INPUT ) {
} else if ( flags & GPIO_INPUT ) {
gpio_rza2m_pin_configure_as_gpio ( port_dev , pin , RZA2M_PDR_INPUT ) ;
gpio_rza2m_pin_configure_as_gpio ( port_dev , pin , RZA2M_PDR_INPUT ) ;
} else {
return - ENOTSUP ;
}
}
/* Configure pin drive strength */
/* Configure pin drive strength */
@ -342,21 +344,6 @@ static int gpio_rza2m_pin_configure(const struct device *port_dev, gpio_pin_t pi
} else if ( flags & GPIO_OUTPUT_INIT_LOW ) {
} else if ( flags & GPIO_OUTPUT_INIT_LOW ) {
ret = gpio_rza2m_port_clear_bits_raw ( port_dev , BIT ( pin ) ) ;
ret = gpio_rza2m_port_clear_bits_raw ( port_dev , BIT ( pin ) ) ;
}
}
/* Configure pin interrupt */
if ( flags & GPIO_INT_ENABLE ) {
if ( flags & GPIO_INT_LOW_0 ) {
return - ENOTSUP ;
}
enum gpio_int_mode mode =
( flags & GPIO_INT_EDGE ) ? GPIO_INT_MODE_EDGE : GPIO_INT_MODE_LEVEL ;
enum gpio_int_trig trig = GPIO_INT_TRIG_HIGH ;
ret = gpio_rza2m_pin_interrupt_configure ( port_dev , pin , mode , trig ) ;
} else if ( flags & GPIO_INT_DISABLE ) {
ret = gpio_rza2m_pin_interrupt_configure ( port_dev , pin , GPIO_INT_MODE_DISABLED ,
GPIO_INT_TRIG_HIGH ) ;
}
}
return ret ;
return ret ;