summaryrefslogtreecommitdiff
path: root/bsp
diff options
context:
space:
mode:
authorliufeilong <[email protected]>2019-08-21 13:40:57 +0800
committerliufeilong <[email protected]>2019-08-21 13:40:57 +0800
commit3ac168c9f61e26e181cee32a964d31b6f5807adb (patch)
tree7ea838704c8abd8d1e9e2313c4947e7d8ac5d0e3 /bsp
parent418757fa6732fca3ba9d33ea6daad054f06612fd (diff)
更正gpio框架中断方式宏定义与1c底层中断方式宏定义不一致问题
Diffstat (limited to 'bsp')
-rw-r--r--bsp/ls1cdev/drivers/drv_gpio.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/bsp/ls1cdev/drivers/drv_gpio.c b/bsp/ls1cdev/drivers/drv_gpio.c
index 5afdae5caa..2203db7775 100644
--- a/bsp/ls1cdev/drivers/drv_gpio.c
+++ b/bsp/ls1cdev/drivers/drv_gpio.c
@@ -73,8 +73,24 @@ rt_err_t ls1c_pin_attach_irq(struct rt_device *device, rt_int32_t pin,
{
unsigned int gpio = pin;
char irq_name[10];
-
- gpio_set_irq_type(gpio, mode);
+ rt_uint32_t type;
+ switch (mode)
+ {
+ case PIN_IRQ_MODE_RISING:
+ type=IRQ_TYPE_EDGE_RISING;
+ break;
+ case PIN_IRQ_MODE_FALLING:
+ type=IRQ_TYPE_EDGE_FALLING;
+ break;
+ case PIN_IRQ_MODE_HIGH_LEVEL:
+ type=IRQ_TYPE_LEVEL_HIGH;
+ break;
+ case PIN_IRQ_MODE_LOW_LEVEL:
+ type=IRQ_TYPE_LEVEL_LOW;
+ break;
+ }
+ gpio_set_irq_type(gpio, type);
+
rt_sprintf(irq_name, "PIN_%d", gpio);
rt_hw_interrupt_install(LS1C_GPIO_TO_IRQ(gpio), (rt_isr_handler_t)hdr, args, irq_name);