drivers: gpio: mcux_igpio: Convert driver to new DT_INST macros
Convert driver to use DT_INST macros and remove related board per instance Kconfig symbol usage. Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
parent
542e8c8d09
commit
50129f8dd7
9 changed files with 40 additions and 305 deletions
|
@ -12,16 +12,6 @@ choice CODE_LOCATION
|
|||
default CODE_FLEXSPI
|
||||
endchoice
|
||||
|
||||
if GPIO_MCUX_IGPIO
|
||||
|
||||
config GPIO_MCUX_IGPIO_1
|
||||
default y
|
||||
|
||||
config GPIO_MCUX_IGPIO_2
|
||||
default y
|
||||
|
||||
endif # GPIO_MCUX_IGPIO
|
||||
|
||||
config I2C_1
|
||||
default y
|
||||
depends on I2C_MCUX_LPI2C
|
||||
|
|
|
@ -12,16 +12,6 @@ choice CODE_LOCATION
|
|||
default CODE_FLEXSPI
|
||||
endchoice
|
||||
|
||||
if GPIO_MCUX_IGPIO
|
||||
|
||||
config GPIO_MCUX_IGPIO_2
|
||||
default y
|
||||
|
||||
config GPIO_MCUX_IGPIO_3
|
||||
default y
|
||||
|
||||
endif # GPIO_MCUX_IGPIO
|
||||
|
||||
config I2C_1
|
||||
default y
|
||||
depends on I2C_MCUX_LPI2C
|
||||
|
|
|
@ -16,16 +16,6 @@ choice DATA_LOCATION
|
|||
default DATA_SEMC
|
||||
endchoice
|
||||
|
||||
if GPIO_MCUX_IGPIO
|
||||
|
||||
config GPIO_MCUX_IGPIO_1
|
||||
default y
|
||||
|
||||
config GPIO_MCUX_IGPIO_5
|
||||
default y
|
||||
|
||||
endif # GPIO_MCUX_IGPIO
|
||||
|
||||
if I2C_MCUX_LPI2C
|
||||
|
||||
config I2C_1
|
||||
|
|
|
@ -20,25 +20,6 @@ config DISK_ACCESS_USDHC1
|
|||
default y
|
||||
depends on DISK_ACCESS_USDHC
|
||||
|
||||
if GPIO_MCUX_IGPIO
|
||||
|
||||
config GPIO_MCUX_IGPIO_1
|
||||
default y
|
||||
|
||||
config GPIO_MCUX_IGPIO_2
|
||||
default y if DISK_ACCESS_USDHC1
|
||||
|
||||
config GPIO_MCUX_IGPIO_3
|
||||
default n
|
||||
|
||||
config GPIO_MCUX_IGPIO_4
|
||||
default n
|
||||
|
||||
config GPIO_MCUX_IGPIO_5
|
||||
default y
|
||||
|
||||
endif # GPIO_MCUX_IGPIO
|
||||
|
||||
config I2C
|
||||
default y if LVGL
|
||||
|
||||
|
|
|
@ -17,16 +17,6 @@ choice DATA_LOCATION
|
|||
default DATA_SEMC
|
||||
endchoice
|
||||
|
||||
if GPIO_MCUX_IGPIO
|
||||
|
||||
config GPIO_MCUX_IGPIO_1
|
||||
default y
|
||||
|
||||
config GPIO_MCUX_IGPIO_5
|
||||
default y
|
||||
|
||||
endif # GPIO_MCUX_IGPIO
|
||||
|
||||
config I2C
|
||||
default y if LVGL
|
||||
|
||||
|
|
|
@ -16,16 +16,6 @@ choice DATA_LOCATION
|
|||
default DATA_SEMC
|
||||
endchoice
|
||||
|
||||
if GPIO_MCUX_IGPIO
|
||||
|
||||
config GPIO_MCUX_IGPIO_1
|
||||
default y
|
||||
|
||||
config GPIO_MCUX_IGPIO_5
|
||||
default y
|
||||
|
||||
endif # GPIO_MCUX_IGPIO
|
||||
|
||||
config I2C
|
||||
default y if LVGL
|
||||
|
||||
|
|
|
@ -20,25 +20,6 @@ config DISK_ACCESS_USDHC1
|
|||
default y
|
||||
depends on DISK_ACCESS_USDHC
|
||||
|
||||
if GPIO_MCUX_IGPIO
|
||||
|
||||
config GPIO_MCUX_IGPIO_1
|
||||
default y
|
||||
|
||||
config GPIO_MCUX_IGPIO_2
|
||||
default y if DISK_ACCESS_USDHC1
|
||||
|
||||
config GPIO_MCUX_IGPIO_3
|
||||
default n
|
||||
|
||||
config GPIO_MCUX_IGPIO_4
|
||||
default n
|
||||
|
||||
config GPIO_MCUX_IGPIO_5
|
||||
default y
|
||||
|
||||
endif # GPIO_MCUX_IGPIO
|
||||
|
||||
config UART_MCUX_LPUART_1
|
||||
default y
|
||||
depends on UART_MCUX_LPUART
|
||||
|
|
|
@ -3,37 +3,8 @@
|
|||
# Copyright (c) 2017, NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
menuconfig GPIO_MCUX_IGPIO
|
||||
config GPIO_MCUX_IGPIO
|
||||
bool "MCUX IGPIO driver"
|
||||
depends on HAS_MCUX_IGPIO
|
||||
help
|
||||
Enable the MCUX IGPIO driver.
|
||||
|
||||
if GPIO_MCUX_IGPIO
|
||||
|
||||
config GPIO_MCUX_IGPIO_1
|
||||
bool "Port 1"
|
||||
help
|
||||
Enable Port 1.
|
||||
|
||||
config GPIO_MCUX_IGPIO_2
|
||||
bool "Port 2"
|
||||
help
|
||||
Enable Port 2.
|
||||
|
||||
config GPIO_MCUX_IGPIO_3
|
||||
bool "Port 3"
|
||||
help
|
||||
Enable Port 3.
|
||||
|
||||
config GPIO_MCUX_IGPIO_4
|
||||
bool "Port 4"
|
||||
help
|
||||
Enable Port 4.
|
||||
|
||||
config GPIO_MCUX_IGPIO_5
|
||||
bool "Port 5"
|
||||
help
|
||||
Enable Port 5.
|
||||
|
||||
endif # GPIO_MCUX_IGPIO
|
||||
|
|
|
@ -224,192 +224,44 @@ static const struct gpio_driver_api mcux_igpio_driver_api = {
|
|||
.disable_callback = mcux_igpio_disable_callback,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_GPIO_MCUX_IGPIO_1
|
||||
static int mcux_igpio_1_init(struct device *dev);
|
||||
#define MCUX_IGPIO_IRQ_INIT(n, i) \
|
||||
do { \
|
||||
IRQ_CONNECT(DT_INST_IRQ_BY_IDX(n, i, irq), \
|
||||
DT_INST_IRQ_BY_IDX(n, i, priority), \
|
||||
mcux_igpio_port_isr, \
|
||||
DEVICE_GET(mcux_igpio_##n), 0); \
|
||||
\
|
||||
irq_enable(DT_INST_IRQ_BY_IDX(n, i, irq)); \
|
||||
} while (1)
|
||||
|
||||
static const struct mcux_igpio_config mcux_igpio_1_config = {
|
||||
.common = {
|
||||
.port_pin_mask = GPIO_PORT_PIN_MASK_FROM_DT_INST(0),
|
||||
},
|
||||
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_1_BASE_ADDRESS,
|
||||
};
|
||||
#define MCUX_IGPIO_INIT(n) \
|
||||
static int mcux_igpio_##n##_init(struct device *dev); \
|
||||
\
|
||||
static const struct mcux_igpio_config mcux_igpio_##n##_config = {\
|
||||
.common = { \
|
||||
.port_pin_mask = GPIO_PORT_PIN_MASK_FROM_DT_INST(n),\
|
||||
}, \
|
||||
.base = (GPIO_Type *)DT_INST_REG_ADDR(n), \
|
||||
}; \
|
||||
\
|
||||
static struct mcux_igpio_data mcux_igpio_##n##_data; \
|
||||
\
|
||||
DEVICE_AND_API_INIT(mcux_igpio_##n, DT_INST_LABEL(n), \
|
||||
mcux_igpio_##n##_init, \
|
||||
&mcux_igpio_##n##_data, \
|
||||
&mcux_igpio_##n##_config, \
|
||||
POST_KERNEL, \
|
||||
CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, \
|
||||
&mcux_igpio_driver_api); \
|
||||
\
|
||||
static int mcux_igpio_##n##_init(struct device *dev) \
|
||||
{ \
|
||||
MCUX_IGPIO_IRQ_INIT(n, 0); \
|
||||
\
|
||||
IF_ENABLED(DT_INST_IRQ_HAS_IDX(n, 1), \
|
||||
(MCUX_IGPIO_IRQ_INIT(n, 1);)) \
|
||||
\
|
||||
return 0; \
|
||||
}
|
||||
|
||||
static struct mcux_igpio_data mcux_igpio_1_data;
|
||||
|
||||
DEVICE_AND_API_INIT(mcux_igpio_1, DT_NXP_IMX_GPIO_GPIO_1_LABEL,
|
||||
mcux_igpio_1_init,
|
||||
&mcux_igpio_1_data, &mcux_igpio_1_config,
|
||||
POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT,
|
||||
&mcux_igpio_driver_api);
|
||||
|
||||
static int mcux_igpio_1_init(struct device *dev)
|
||||
{
|
||||
IRQ_CONNECT(DT_NXP_IMX_GPIO_GPIO_1_IRQ_0,
|
||||
DT_NXP_IMX_GPIO_GPIO_1_IRQ_0_PRIORITY,
|
||||
mcux_igpio_port_isr, DEVICE_GET(mcux_igpio_1), 0);
|
||||
|
||||
irq_enable(DT_NXP_IMX_GPIO_GPIO_1_IRQ_0);
|
||||
|
||||
#if defined(DT_NXP_IMX_GPIO_GPIO_1_IRQ_1) && defined(DT_NXP_IMX_GPIO_GPIO_1_IRQ_1_PRIORITY)
|
||||
IRQ_CONNECT(DT_NXP_IMX_GPIO_GPIO_1_IRQ_1,
|
||||
DT_NXP_IMX_GPIO_GPIO_1_IRQ_1_PRIORITY,
|
||||
mcux_igpio_port_isr, DEVICE_GET(mcux_igpio_1), 0);
|
||||
|
||||
irq_enable(DT_NXP_IMX_GPIO_GPIO_1_IRQ_1);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_GPIO_MCUX_IGPIO_1 */
|
||||
|
||||
#ifdef CONFIG_GPIO_MCUX_IGPIO_2
|
||||
static int mcux_igpio_2_init(struct device *dev);
|
||||
|
||||
static const struct mcux_igpio_config mcux_igpio_2_config = {
|
||||
.common = {
|
||||
.port_pin_mask = GPIO_PORT_PIN_MASK_FROM_DT_INST(1),
|
||||
},
|
||||
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_2_BASE_ADDRESS,
|
||||
};
|
||||
|
||||
static struct mcux_igpio_data mcux_igpio_2_data;
|
||||
|
||||
DEVICE_AND_API_INIT(mcux_igpio_2, DT_NXP_IMX_GPIO_GPIO_2_LABEL,
|
||||
mcux_igpio_2_init,
|
||||
&mcux_igpio_2_data, &mcux_igpio_2_config,
|
||||
POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT,
|
||||
&mcux_igpio_driver_api);
|
||||
|
||||
static int mcux_igpio_2_init(struct device *dev)
|
||||
{
|
||||
IRQ_CONNECT(DT_NXP_IMX_GPIO_GPIO_2_IRQ_0,
|
||||
DT_NXP_IMX_GPIO_GPIO_2_IRQ_0_PRIORITY,
|
||||
mcux_igpio_port_isr, DEVICE_GET(mcux_igpio_2), 0);
|
||||
|
||||
irq_enable(DT_NXP_IMX_GPIO_GPIO_2_IRQ_0);
|
||||
|
||||
#if defined(DT_NXP_IMX_GPIO_GPIO_2_IRQ_1) && defined(DT_NXP_IMX_GPIO_GPIO_2_IRQ_1_PRIORITY)
|
||||
IRQ_CONNECT(DT_NXP_IMX_GPIO_GPIO_2_IRQ_1,
|
||||
DT_NXP_IMX_GPIO_GPIO_2_IRQ_1_PRIORITY,
|
||||
mcux_igpio_port_isr, DEVICE_GET(mcux_igpio_2), 0);
|
||||
|
||||
irq_enable(DT_NXP_IMX_GPIO_GPIO_2_IRQ_1);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_GPIO_MCUX_IGPIO_2 */
|
||||
|
||||
#ifdef CONFIG_GPIO_MCUX_IGPIO_3
|
||||
static int mcux_igpio_3_init(struct device *dev);
|
||||
|
||||
static const struct mcux_igpio_config mcux_igpio_3_config = {
|
||||
.common = {
|
||||
.port_pin_mask = GPIO_PORT_PIN_MASK_FROM_DT_INST(2),
|
||||
},
|
||||
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_3_BASE_ADDRESS,
|
||||
};
|
||||
|
||||
static struct mcux_igpio_data mcux_igpio_3_data;
|
||||
|
||||
DEVICE_AND_API_INIT(mcux_igpio_3, DT_NXP_IMX_GPIO_GPIO_3_LABEL,
|
||||
mcux_igpio_3_init,
|
||||
&mcux_igpio_3_data, &mcux_igpio_3_config,
|
||||
POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT,
|
||||
&mcux_igpio_driver_api);
|
||||
|
||||
static int mcux_igpio_3_init(struct device *dev)
|
||||
{
|
||||
IRQ_CONNECT(DT_NXP_IMX_GPIO_GPIO_3_IRQ_0,
|
||||
DT_NXP_IMX_GPIO_GPIO_3_IRQ_0_PRIORITY,
|
||||
mcux_igpio_port_isr, DEVICE_GET(mcux_igpio_3), 0);
|
||||
|
||||
irq_enable(DT_NXP_IMX_GPIO_GPIO_3_IRQ_0);
|
||||
|
||||
#if defined(DT_NXP_IMX_GPIO_GPIO_3_IRQ_1) && defined(DT_NXP_IMX_GPIO_GPIO_3_IRQ_1_PRIORITY)
|
||||
IRQ_CONNECT(DT_NXP_IMX_GPIO_GPIO_3_IRQ_1,
|
||||
DT_NXP_IMX_GPIO_GPIO_3_IRQ_1_PRIORITY,
|
||||
mcux_igpio_port_isr, DEVICE_GET(mcux_igpio_3), 0);
|
||||
|
||||
irq_enable(DT_NXP_IMX_GPIO_GPIO_3_IRQ_1);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_GPIO_MCUX_IGPIO_3 */
|
||||
|
||||
#ifdef CONFIG_GPIO_MCUX_IGPIO_4
|
||||
static int mcux_igpio_4_init(struct device *dev);
|
||||
|
||||
static const struct mcux_igpio_config mcux_igpio_4_config = {
|
||||
.common = {
|
||||
.port_pin_mask = GPIO_PORT_PIN_MASK_FROM_DT_INST(3),
|
||||
},
|
||||
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_4_BASE_ADDRESS,
|
||||
};
|
||||
|
||||
static struct mcux_igpio_data mcux_igpio_4_data;
|
||||
|
||||
DEVICE_AND_API_INIT(mcux_igpio_4, DT_NXP_IMX_GPIO_GPIO_4_LABEL,
|
||||
mcux_igpio_4_init,
|
||||
&mcux_igpio_4_data, &mcux_igpio_4_config,
|
||||
POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT,
|
||||
&mcux_igpio_driver_api);
|
||||
|
||||
static int mcux_igpio_4_init(struct device *dev)
|
||||
{
|
||||
IRQ_CONNECT(DT_NXP_IMX_GPIO_GPIO_4_IRQ_0,
|
||||
DT_NXP_IMX_GPIO_GPIO_4_IRQ_0_PRIORITY,
|
||||
mcux_igpio_port_isr, DEVICE_GET(mcux_igpio_4), 0);
|
||||
|
||||
irq_enable(DT_NXP_IMX_GPIO_GPIO_4_IRQ_0);
|
||||
|
||||
#if defined(DT_NXP_IMX_GPIO_GPIO_4_IRQ_1) && defined(DT_NXP_IMX_GPIO_GPIO_4_IRQ_1_PRIORITY)
|
||||
IRQ_CONNECT(DT_NXP_IMX_GPIO_GPIO_4_IRQ_1,
|
||||
DT_NXP_IMX_GPIO_GPIO_4_IRQ_1_PRIORITY,
|
||||
mcux_igpio_port_isr, DEVICE_GET(mcux_igpio_4), 0);
|
||||
|
||||
irq_enable(DT_NXP_IMX_GPIO_GPIO_4_IRQ_1);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_GPIO_MCUX_IGPIO_4 */
|
||||
|
||||
#ifdef CONFIG_GPIO_MCUX_IGPIO_5
|
||||
static int mcux_igpio_5_init(struct device *dev);
|
||||
|
||||
static const struct mcux_igpio_config mcux_igpio_5_config = {
|
||||
.common = {
|
||||
.port_pin_mask = GPIO_PORT_PIN_MASK_FROM_DT_INST(4),
|
||||
},
|
||||
.base = (GPIO_Type *)DT_NXP_IMX_GPIO_GPIO_5_BASE_ADDRESS,
|
||||
};
|
||||
|
||||
static struct mcux_igpio_data mcux_igpio_5_data;
|
||||
|
||||
DEVICE_AND_API_INIT(mcux_igpio_5, DT_NXP_IMX_GPIO_GPIO_5_LABEL,
|
||||
mcux_igpio_5_init,
|
||||
&mcux_igpio_5_data, &mcux_igpio_5_config,
|
||||
POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT,
|
||||
&mcux_igpio_driver_api);
|
||||
|
||||
static int mcux_igpio_5_init(struct device *dev)
|
||||
{
|
||||
IRQ_CONNECT(DT_NXP_IMX_GPIO_GPIO_5_IRQ_0,
|
||||
DT_NXP_IMX_GPIO_GPIO_5_IRQ_0_PRIORITY,
|
||||
mcux_igpio_port_isr, DEVICE_GET(mcux_igpio_5), 0);
|
||||
|
||||
irq_enable(DT_NXP_IMX_GPIO_GPIO_5_IRQ_0);
|
||||
|
||||
#if defined(DT_NXP_IMX_GPIO_GPIO_5_IRQ_1) && defined(DT_NXP_IMX_GPIO_GPIO_5_IRQ_1_PRIORITY)
|
||||
IRQ_CONNECT(DT_NXP_IMX_GPIO_GPIO_5_IRQ_1,
|
||||
DT_NXP_IMX_GPIO_GPIO_5_IRQ_1_PRIORITY,
|
||||
mcux_igpio_port_isr, DEVICE_GET(mcux_igpio_5), 0);
|
||||
|
||||
irq_enable(DT_NXP_IMX_GPIO_GPIO_5_IRQ_1);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_GPIO_MCUX_IGPIO_5 */
|
||||
DT_INST_FOREACH(MCUX_IGPIO_INIT)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue