From aa8e5cc412d495b6480200c7c2cf2fe8df7a352f Mon Sep 17 00:00:00 2001 From: "Aubr.Cool" Date: Tue, 14 Mar 2017 10:26:49 +0800 Subject: [components] drivers pin irq change apis --- components/drivers/include/drivers/pin.h | 13 +++++++------ components/drivers/misc/pin.c | 13 ++----------- 2 files changed, 9 insertions(+), 17 deletions(-) (limited to 'components/drivers') diff --git a/components/drivers/include/drivers/pin.h b/components/drivers/include/drivers/pin.h index ac35ed3baa..a76798e284 100644 --- a/components/drivers/include/drivers/pin.h +++ b/components/drivers/include/drivers/pin.h @@ -50,6 +50,9 @@ struct rt_device_pin #define PIN_IRQ_MODE_FALLING 0x01 #define PIN_IRQ_MODE_RISING_FALLING 0x02 +#define PIN_IRQ_DISABLE 0x00 +#define PIN_IRQ_ENABLE 0x01 + #define PIN_IRQ_PIN_NONE -1 struct rt_device_pin_mode @@ -64,8 +67,8 @@ struct rt_device_pin_status }; struct rt_pin_irq_hdr { - rt_int32_t pin; - rt_uint32_t mode; + rt_int16_t pin; + rt_uint16_t mode; void (*hdr)(void *args); void *args; }; @@ -79,8 +82,7 @@ struct rt_pin_ops rt_err_t (*pin_attach_irq)(struct rt_device *device, rt_int32_t pin, rt_uint32_t mode, void (*hdr)(void *args), void *args); rt_err_t (*pin_dettach_irq)(struct rt_device *device, rt_int32_t pin); - rt_err_t (*pin_irq_enable)(struct rt_device *device, rt_base_t pin); - rt_err_t (*pin_irq_disable)(struct rt_device *device, rt_base_t pin); + rt_err_t (*pin_irq_enable)(struct rt_device *device, rt_base_t pin, rt_uint32_t enabled); }; int rt_device_pin_register(const char *name, const struct rt_pin_ops *ops, void *user_data); @@ -91,8 +93,7 @@ int rt_pin_read(rt_base_t pin); rt_err_t rt_pin_attach_irq(rt_int32_t pin, rt_uint32_t mode, void (*hdr)(void *args), void *args); rt_err_t rt_pin_dettach_irq(rt_int32_t pin); -rt_err_t pin_irq_enable(rt_base_t pin); -rt_err_t pin_irq_disable(rt_base_t pin); +rt_err_t pin_irq_enable(rt_base_t pin, rt_uint32_t enabled); int rt_device_pin_irq_register(const char *name, const struct rt_pin_ops *ops, void *user_data); diff --git a/components/drivers/misc/pin.c b/components/drivers/misc/pin.c index a3232b8e03..fb139575b4 100644 --- a/components/drivers/misc/pin.c +++ b/components/drivers/misc/pin.c @@ -117,21 +117,12 @@ rt_err_t rt_pin_dettach_irq(rt_int32_t pin) } return RT_ENOSYS; } -rt_err_t pin_irq_enable(rt_base_t pin) +rt_err_t pin_irq_enable(rt_base_t pin, rt_uint32_t enabled) { RT_ASSERT(_hw_pin.ops != RT_NULL); if(_hw_pin.ops->pin_irq_enable) { - return _hw_pin.ops->pin_irq_enable(&_hw_pin.parent, pin); - } - return RT_ENOSYS; -} -rt_err_t pin_irq_disable(rt_base_t pin) -{ - RT_ASSERT(_hw_pin.ops != RT_NULL); - if(_hw_pin.ops->pin_irq_disable) - { - return _hw_pin.ops->pin_irq_disable(&_hw_pin.parent, pin); + return _hw_pin.ops->pin_irq_enable(&_hw_pin.parent, pin, enabled); } return RT_ENOSYS; } -- cgit v1.3.1