63 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | |
| 
 | |
| This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | |
| be copied by any method or incorporated into another program without
 | |
| the express written consent of Aerospace C.Power. This Information or any portion
 | |
| thereof remains the property of Aerospace C.Power. The Information contained herein
 | |
| is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | |
| liability for its use in any way and conveys no license or title under
 | |
| any patent or copyright and makes no representation or warranty that this
 | |
| Information is free from patent or copyright infringement.
 | |
| 
 | |
| ****************************************************************************/
 | |
| /*
 | |
|  * Notice :
 | |
|  * This iot_xxx.h file, belongs to HAL level. iot_xxx_api.h is a part of this.
 | |
|  * The bellows are ready for HW & HAL/CVG/MAC level, limited for APP level.
 | |
|  */
 | |
| #ifndef __IOT_GPIO_H__
 | |
| #define __IOT_GPIO_H__
 | |
| 
 | |
| #include "iot_gpio_api.h"
 | |
| 
 | |
| enum gpio_int_isr_mode
 | |
| {
 | |
|     /* ISR runs in interrupt enviroment */
 | |
|     GPIO_INT_ISR,
 | |
|     /* ISR runs in task enviroment */
 | |
|     GPIO_INT_ISR_TASK,
 | |
|     /* ISR runs in interrupt enviroment and interrupt disabled before ISR. */
 | |
|     GPIO_INT_ISR_AUTO_STOP,
 | |
|     /* ISR runs in task enviroment and interrupt disabled before ISR. */
 | |
|     GPIO_INT_ISR_TASK_AUTO_STOP,
 | |
|     /* Invalid value */
 | |
|     GPIO_INT_ISR_INVALID
 | |
| };
 | |
| 
 | |
| /*
 | |
|  * @brief iot_gpio_get_inner_gpio_num() - Get count of GPIOs on chip.
 | |
|  * @return : The count of GPIOs.
 | |
|  */
 | |
| int iot_gpio_get_inner_gpio_num(void);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_gpio_interrupt_config_detail() - This function should be called
 | |
|  * after iot_gpio_open_as_interrupt() to configure an interrupt.
 | |
|  * @param gpio: GPIO-NO that starts from 'Zero'.
 | |
|  * @param mode: Interrupt trigger mode.@see enum int_trigger_mode.
 | |
|  * @param isr:  Interrupt call-back function. It's a function pionter
 | |
|  * like int (*isr)(int).
 | |
|  * @param arg:  Argument for isr.
 | |
|  * @param isr_mode: Interrupt mode when interrupt occurs.
 | |
|  *                  See enum gpio_int_isr_mode.
 | |
|  * @return ERR_FAIL -- Operation failed.
 | |
|  * @return ERR_OK -- Operation Successful.
 | |
|  */
 | |
| int iot_gpio_interrupt_config_detail(int gpio,
 | |
|     enum gpio_int_trigger_mode mode,
 | |
|     iot_gpio_isr_func isr, int arg, int isr_mode);
 | |
| 
 | |
| #endif
 |