@ -32,9 +32,6 @@
@@ -32,9 +32,6 @@
/* the rest are for general (non-interrupt) config */
# define IOCFG_GEN_MASK (~IOCFG_INT_MASK)
/* GPIO all DIOs mask */
# define GPIO_DIO_ALL_MASK 0xFFFFFFFF
struct gpio_cc13xx_cc26xx_data {
/* gpio_driver_data needs to be first */
struct gpio_driver_data common ;
@ -131,30 +128,33 @@ static int gpio_cc13xx_cc26xx_port_get_raw(const struct device *port,
@@ -131,30 +128,33 @@ static int gpio_cc13xx_cc26xx_port_get_raw(const struct device *port,
{
__ASSERT_NO_MSG ( value ! = NULL ) ;
* value = HWREG ( GPIO_BASE + GPIO_O_DIN31_0 ) & GPIO_DIO_ALL_MASK ;
* value = GPIO_readMultiDio ( GPIO_DIO_ALL_MASK ) ;
return 0 ;
}
static int gpio_cc13xx_cc26xx_port_set_bits_raw ( const struct device * port , uint32_t mask )
static int gpio_cc13xx_cc26xx_port_set_masked_raw ( const struct device * port ,
uint32_t mask ,
uint32_t value )
{
HWREG ( GPIO_BASE + GPIO_O_DOUTSET31_0 ) = mask ;
GPIO_setMultiDio ( mask & value ) ;
GPIO_clearMultiDio ( mask & ~ value ) ;
return 0 ;
}
static int gpio_cc13xx_cc26xx_port_clear_bits_raw ( const struct device * port , uint32_t mask )
static int gpio_cc13xx_cc26xx_port_set_bits_raw ( const struct device * port ,
uint32_t mask )
{
HWREG ( GPIO_BASE + GPIO_O_DOUTCLR31_0 ) = mask ;
GPIO_setMultiDio ( mask ) ;
return 0 ;
}
static int gpio_cc13xx_cc26xx_port_set_masked _raw ( const struct device * port , uint32_t mask ,
uint32_t value )
static int gpio_cc13xx_cc26xx_port_clear_bits _raw ( const struct device * port ,
uint32_t mask )
{
gpio_cc13xx_cc26xx_port_set_bits_raw ( port , mask & value ) ;
gpio_cc13xx_cc26xx_port_clear_bits_raw ( port , mask & ~ value ) ;
GPIO_clearMultiDio ( mask ) ;
return 0 ;
}
@ -162,7 +162,7 @@ static int gpio_cc13xx_cc26xx_port_set_masked_raw(const struct device *port, uin
@@ -162,7 +162,7 @@ static int gpio_cc13xx_cc26xx_port_set_masked_raw(const struct device *port, uin
static int gpio_cc13xx_cc26xx_port_toggle_bits ( const struct device * port ,
uint32_t mask )
{
HWREG ( GPIO_BASE + GPIO_O_DOUTTGL31_0 ) = mask ;
GPIO_toggleMultiDio ( mask ) ;
return 0 ;
}
@ -209,16 +209,16 @@ static int gpio_cc13xx_cc26xx_manage_callback(const struct device *port,
@@ -209,16 +209,16 @@ static int gpio_cc13xx_cc26xx_manage_callback(const struct device *port,
static uint32_t gpio_cc13xx_cc26xx_get_pending_int ( const struct device * dev )
{
return HWREG ( GPIO_BASE + GPIO_O_EVFLAGS31_0 ) & GPIO_DIO_ALL_MASK ;
return GPIO_getEventMultiDio ( GPIO_DIO_ALL_MASK ) ;
}
static void gpio_cc13xx_cc26xx_isr ( const struct device * dev )
{
struct gpio_cc13xx_cc26xx_data * data = dev - > data ;
uint32_t status = HWREG ( GPIO_BASE + GPIO_O_EVFLAGS31_0 ) & GPIO_DIO_ALL_MASK ;
uint32_t status = GPIO_getEventMultiDio ( GPIO_DIO_ALL_MASK ) ;
HWREG ( GPIO_BASE + GPIO_O_EVFLAGS31_0 ) = status ;
GPIO_clearEventMultiDio ( status ) ;
gpio_fire_callbacks ( & data - > callbacks , dev , status ) ;
}