drivers: gpio_mcux_igpio: add support for pin validation
Add the common config structure as a prefix of the driver-specific config structure and use the devicetree GPIO pin counts to initialize it. Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
This commit is contained in:
parent
56f975fbb4
commit
c446588523
1 changed files with 17 additions and 0 deletions
|
@ -14,6 +14,8 @@
|
||||||
#include "gpio_utils.h"
|
#include "gpio_utils.h"
|
||||||
|
|
||||||
struct mcux_igpio_config {
|
struct mcux_igpio_config {
|
||||||
|
/* gpio_driver_config needs to be first */
|
||||||
|
struct gpio_driver_config common;
|
||||||
GPIO_Type *base;
|
GPIO_Type *base;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -256,6 +258,9 @@ static const struct gpio_driver_api mcux_igpio_driver_api = {
|
||||||
static int mcux_igpio_1_init(struct device *dev);
|
static int mcux_igpio_1_init(struct device *dev);
|
||||||
|
|
||||||
static const struct mcux_igpio_config mcux_igpio_1_config = {
|
static const struct mcux_igpio_config mcux_igpio_1_config = {
|
||||||
|
.common = {
|
||||||
|
.port_pin_mask = GPIO_PORT_PIN_MASK_FROM_NGPIOS(DT_INST_0_NXP_IMX_GPIO_NGPIOS),
|
||||||
|
},
|
||||||
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_1_BASE_ADDRESS,
|
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_1_BASE_ADDRESS,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -291,6 +296,9 @@ static int mcux_igpio_1_init(struct device *dev)
|
||||||
static int mcux_igpio_2_init(struct device *dev);
|
static int mcux_igpio_2_init(struct device *dev);
|
||||||
|
|
||||||
static const struct mcux_igpio_config mcux_igpio_2_config = {
|
static const struct mcux_igpio_config mcux_igpio_2_config = {
|
||||||
|
.common = {
|
||||||
|
.port_pin_mask = GPIO_PORT_PIN_MASK_FROM_NGPIOS(DT_INST_1_NXP_IMX_GPIO_NGPIOS),
|
||||||
|
},
|
||||||
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_2_BASE_ADDRESS,
|
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_2_BASE_ADDRESS,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -326,6 +334,9 @@ static int mcux_igpio_2_init(struct device *dev)
|
||||||
static int mcux_igpio_3_init(struct device *dev);
|
static int mcux_igpio_3_init(struct device *dev);
|
||||||
|
|
||||||
static const struct mcux_igpio_config mcux_igpio_3_config = {
|
static const struct mcux_igpio_config mcux_igpio_3_config = {
|
||||||
|
.common = {
|
||||||
|
.port_pin_mask = GPIO_PORT_PIN_MASK_FROM_NGPIOS(DT_INST_2_NXP_IMX_GPIO_NGPIOS),
|
||||||
|
},
|
||||||
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_3_BASE_ADDRESS,
|
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_3_BASE_ADDRESS,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -361,6 +372,9 @@ static int mcux_igpio_3_init(struct device *dev)
|
||||||
static int mcux_igpio_4_init(struct device *dev);
|
static int mcux_igpio_4_init(struct device *dev);
|
||||||
|
|
||||||
static const struct mcux_igpio_config mcux_igpio_4_config = {
|
static const struct mcux_igpio_config mcux_igpio_4_config = {
|
||||||
|
.common = {
|
||||||
|
.port_pin_mask = GPIO_PORT_PIN_MASK_FROM_NGPIOS(DT_INST_3_NXP_IMX_GPIO_NGPIOS),
|
||||||
|
},
|
||||||
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_4_BASE_ADDRESS,
|
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_4_BASE_ADDRESS,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -396,6 +410,9 @@ static int mcux_igpio_4_init(struct device *dev)
|
||||||
static int mcux_igpio_5_init(struct device *dev);
|
static int mcux_igpio_5_init(struct device *dev);
|
||||||
|
|
||||||
static const struct mcux_igpio_config mcux_igpio_5_config = {
|
static const struct mcux_igpio_config mcux_igpio_5_config = {
|
||||||
|
.common = {
|
||||||
|
.port_pin_mask = GPIO_PORT_PIN_MASK_FROM_NGPIOS(DT_INST_4_NXP_IMX_GPIO_NGPIOS),
|
||||||
|
},
|
||||||
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_5_BASE_ADDRESS,
|
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_5_BASE_ADDRESS,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue