/* SPDX-License-Identifier: GPL-2.0 */ /************************************************************************ * Copyright 2004 - 2011, Hisilicon Tech. Co., Ltd. * ALL RIGHTS RESERVED * FileName: hi_gpio.h * Description:use gpio opreate * * History: * Version Date Author DefectNum Description * 0.01 2011-3-17 chenqiang NULL Create this file. ************************************************************************ */ #ifndef __DRV_GPIO_EXT_H__ #define __DRV_GPIO_EXT_H__ #include "hi_type.h" #define HI_ERR_GPIO_NOT_INIT (int)(0x80470003) #define HI_ERR_GPIO_INVALID_PARA (int)(0x80470004) #define HI_ERR_GPIO_NULL_PTR (int)(0x80470005) #define HI_ERR_GPIO_INVALID_OPT (int)(0x80470006) #if 0 #if defined(CHIP_TYPE_hi3716cv200) \ || defined(CHIP_TYPE_hi3716mv400) \ || defined(CHIP_TYPE_hi3718cv100) \ || defined(CHIP_TYPE_hi3719cv100) \ || defined(CHIP_TYPE_hi3718mv100) \ || defined(CHIP_TYPE_hi3719mv100) \ || defined(CHIP_TYPE_hi3798mv100) \ || defined(CHIP_TYPE_hi3796mv100) || defined(CHIP_TYPE_hi3716dv100)\ || defined(CHIP_TYPE_hi3716mv410) \ || defined(CHIP_TYPE_hi3716mv420) \ || defined(CHIP_TYPE_hi3798cv200_a) \ || defined(CHIP_TYPE_hi3798cv200_b) \ || defined(CHIP_TYPE_hi3798cv200) \ || defined(CHIP_TYPE_hi3798mv200) \ || defined(CHIP_TYPE_hi3798mv200_a) #define REG_BASE_GPIO5 0xF8004000 #elif defined(CHIP_TYPE_hi3796cv100) \ || defined(CHIP_TYPE_hi3798cv100) #define REG_BASE_GPIO5 0xF8B25000 #else #error YOU MUST DEFINE CHIP_TYPE! #endif #endif /**GPIO output type*/ /** CNcomment:GPIO */ enum HI_UNF_GPIO_OUTPUTTYPE_E { HI_UNF_GPIO_OUTPUTTYPE_CMOS, HI_UNF_GPIO_OUTPUTTYPE_OD, HI_UNF_GPIO_OUTPUTTYPE_BUTT, }; int HI_DRV_GPIO_Init(void); /*param[in] u32GpioNo :gpio No.,for example the No. of GPIO5_1 is 41(5*8+1); *param[in] u32DirBit: 0 - output, 1 - input */ int HI_DRV_GPIO_SetDirBit(unsigned int u32GpioNo, unsigned int u32DirBit); int HI_DRV_GPIO_GetDirBit(unsigned int u32GpioNo, unsigned int *pu32DirBit); int HI_DRV_GPIO_ReadBit(unsigned int u32GpioNo, unsigned int *pu32BitValue); int HI_DRV_GPIO_WriteBit(unsigned int u32GpioNo, unsigned int u32BitValue); int HI_DRV_GPIO_SetOutputType(unsigned int u32GpioNo, enum HI_UNF_GPIO_OUTPUTTYPE_E enOutputType); int HI_DRV_GPIO_GetOutputType(unsigned int u32GpioNo, enum HI_UNF_GPIO_OUTPUTTYPE_E *penOutputType); #endif