⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpio.h

📁 atheros ar531x gpio driver
💻 H
字号:
/* gpio.h */#ifndef _GPIO_H#define _GPIO_H

typedef unsigned int	MV_U32;

#define MV_GPP_MAX_GROUP    1
#define MV_BAD_PARAM        0x04

#define INTER_REGS_BASE	0xF1000000

#define MV_16BIT_LE(X)  (X) 
#define MV_32BIT_LE(X)  (X)
#define MV_64BIT_LE(X)  (X)

/* No Fast Swap implementation (in assembler) for ARM */
#define MV_32BIT_LE_FAST(val)            MV_32BIT_LE(val)
#define MV_16BIT_LE_FAST(val)            MV_16BIT_LE(val) 

/* CPU architecture dependent 32, 16, 8 bit read/write IO addresses */
#define MV_MEMIO32_WRITE(addr, data)	\    ((*((volatile unsigned int*)(addr))) = ((unsigned int)(data)))
#define MV_MEMIO32_READ(addr)       	\    ((*((volatile unsigned int*)(addr))))#define MV_MEMIO16_WRITE(addr, data)	\    ((*((volatile unsigned short*)(addr))) = ((unsigned short)(data)))
#define MV_MEMIO16_READ(addr)       	\    ((*((volatile unsigned short*)(addr))))#define MV_MEMIO8_WRITE(addr, data) 	\    ((*((volatile unsigned char*)(addr))) = ((unsigned char)(data)))#define MV_MEMIO8_READ(addr)        	((*((volatile unsigned char*)(addr))))/* 32bit read in little endian mode */
static __inline MV_U32 MV_MEMIO_LE32_READ(MV_U32 addr)
{
	MV_U32 data;
	data= (MV_U32)MV_MEMIO32_READ(addr);
	return (MV_U32)MV_32BIT_LE_FAST(data);
}

#define MV_MEMIO_LE32_WRITE(addr, data)		MV_MEMIO32_WRITE(addr, MV_32BIT_LE_FAST(data))
#define MV_REG_READ(offset)					(MV_MEMIO_LE32_READ(INTER_REGS_BASE | (offset)))
#define MV_REG_WRITE(offset, val)			(MV_MEMIO_LE32_WRITE((INTER_REGS_BASE | (offset)), (val)))

#define GPP_DATA_OUT_REG(grp)				0x10100#define GPP_DATA_OUT_EN_REG(grp)			0x10104#define GPP_BLINK_EN_REG(grp)				0x10108#define GPP_DATA_IN_POL_REG(grp)			0x1010C#define GPP_DATA_IN_REG(grp)				0x10110#define GPP_INT_CAUSE_REG(grp)				0x10114#define GPP_INT_MASK_REG(grp)				0x10118#define GPP_INT_LVL_REG(grp)				0x1011c

#define NO_BIT      0x00000000
#define BIT0        0x00000001
#define BIT1        0x00000002
#define BIT2        0x00000004
#define BIT3        0x00000008
#define BIT4        0x00000010
#define BIT5        0x00000020
#define BIT6        0x00000040
#define BIT7        0x00000080
#define BIT8        0x00000100
#define BIT9        0x00000200
#define BIT10       0x00000400
#define BIT11       0x00000800
#define BIT12       0x00001000
#define BIT13       0x00002000
#define BIT14       0x00004000
#define BIT15       0x00008000
#define BIT16       0x00010000
#define BIT17       0x00020000
#define BIT18       0x00040000
#define BIT19       0x00080000
#define BIT20       0x00100000
#define BIT21       0x00200000
#define BIT22       0x00400000
#define BIT23       0x00800000
#define BIT24       0x01000000
#define BIT25       0x02000000
#define BIT26       0x04000000
#define BIT27       0x08000000
#define BIT28       0x10000000
#define BIT29       0x20000000
#define BIT30       0x40000000
#define BIT31       0x80000000


#define    MV_GPP0  BIT0
#define    MV_GPP1  BIT1
#define    MV_GPP2  BIT2
#define    MV_GPP3  BIT3
#define    MV_GPP4  BIT4
#define    MV_GPP5  BIT5
#define    MV_GPP6  BIT6
#define    MV_GPP7  BIT7
#define    MV_GPP8  BIT8
#define    MV_GPP9  BIT9
#define    MV_GPP10 BIT10
#define    MV_GPP11 BIT11
#define    MV_GPP12 BIT12
#define    MV_GPP13 BIT13
#define    MV_GPP14 BIT14
#define    MV_GPP15 BIT15
#define    MV_GPP16 BIT16
#define    MV_GPP17 BIT17
#define    MV_GPP18 BIT18
#define    MV_GPP19 BIT19
#define    MV_GPP20 BIT20
#define    MV_GPP21 BIT21
#define    MV_GPP22 BIT22
#define    MV_GPP23 BIT23
#define    MV_GPP24 BIT24
#define    MV_GPP25 BIT25
#define    MV_GPP26 BIT26
#define    MV_GPP27 BIT27
#define    MV_GPP28 BIT28
#define    MV_GPP29 BIT29
#define    MV_GPP30 BIT30
#define    MV_GPP31 BIT31
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -