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

📄 gpio.h

📁 RT-Thread是发展中的下一代微内核嵌入式实时操作系统
💻 H
字号:
/*
 * File      : gpio.h
 * This file is part of RT-Thread RTOS
 * COPYRIGHT (C) 2006, 2007, RT-Thread Develop Team
 *
 * The license and distribution terms for this file may be
 * found in the file LICENSE in this distribution or at
 * http://openlab.rt-thread.com/license/LICENSE
 *
 * Change Logs:
 * Date           Author       Notes
 * 2007-03-26     bernard xiong
 */

#ifndef __GPIO_H__
#define __GPIO_H__

#include <rtthread.h>
#include <pxa270.h>

#define _GPLR(x)	(*(volatile unsigned int*)(0x40E00000 + (((x) & 0x60) >> 3)))
#define _GPDR(x)	(*(volatile unsigned int*)(0x40E0000C + (((x) & 0x60) >> 3)))
#define _GPSR(x)	(*(volatile unsigned int*)(0x40E00018 + (((x) & 0x60) >> 3)))
#define _GPCR(x)	(*(volatile unsigned int*)(0x40E00024 + (((x) & 0x60) >> 3)))
#define _GRER(x)	(*(volatile unsigned int*)(0x40E00030 + (((x) & 0x60) >> 3)))
#define _GFER(x)	(*(volatile unsigned int*)(0x40E0003C + (((x) & 0x60) >> 3)))
#define _GEDR(x)	(*(volatile unsigned int*)(0x40E00048 + (((x) & 0x60) >> 3)))
#define _GAFR(x)	(*(volatile unsigned int*)(0x40E00054 + (((x) & 0x70) >> 2)))

#define PXA2X0_GPIO_GPLR(x) 	(*((((x) & 0x7f) < 96) ? &_GPLR(x) : &PXA2X0_GPIO_GPLR3))
#define PXA2X0_GPIO_GPDR(x)		(*((((x) & 0x7f) < 96) ? &_GPDR(x) : &PXA2X0_GPIO_GPDR3))
#define PXA2X0_GPIO_GPSR(x)		(*((((x) & 0x7f) < 96) ? &_GPSR(x) : &PXA2X0_GPIO_GPSR3))
#define PXA2X0_GPIO_GPCR(x)		(*((((x) & 0x7f) < 96) ? &_GPCR(x) : &PXA2X0_GPIO_GPCR3))
#define PXA2X0_GPIO_GRER(x)		(*((((x) & 0x7f) < 96) ? &_GRER(x) : &PXA2X0_GPIO_GRER3))
#define PXA2X0_GPIO_GFER(x)		(*((((x) & 0x7f) < 96) ? &_GFER(x) : &PXA2X0_GPIO_GFER3))
#define PXA2X0_GPIO_GEDR(x)		(*((((x) & 0x7f) < 96) ? &_GEDR(x) : &PXA2X0_GPIO_GEDR3))
#define PXA2X0_GPIO_GAFR(x)		(*((((x) & 0x7f) < 96) ? &_GAFR(x) : \
	((((x) & 0x7f) < 112) ? &PXA2X0_GPIO_GAFR3_L : &PXA2X0_GPIO_GAFR3_U)))

#define PXA2X0_GPIO_FN_SHIFT(x)	(((x) & 0xf) * 2)
#define	PXA2X0_GPIO_BIT(x)		(1u << ((x) & 0x1f))

#define	PXA2X0_GPIO_IN		  		0x00	/* Regular GPIO input pin */
#define	PXA2X0_GPIO_OUT	  			0x10	/* Regular GPIO output pin */
#define	PXA2X0_GPIO_ALT_FN_1_IN		0x01	/* Alternate function 1 input */
#define	PXA2X0_GPIO_ALT_FN_1_OUT	0x11	/* Alternate function 1 output */
#define	PXA2X0_GPIO_ALT_FN_2_IN		0x02	/* Alternate function 2 input */
#define	PXA2X0_GPIO_ALT_FN_2_OUT	0x12	/* Alternate function 2 output */
#define	PXA2X0_GPIO_ALT_FN_3_IN		0x03	/* Alternate function 3 input */
#define	PXA2X0_GPIO_ALT_FN_3_OUT	0x13	/* Alternate function 3 output */
#define	PXA2X0_GPIO_SET				0x20	/* Initial state is Set */
#define	PXA2X0_GPIO_CLR				0x00	/* Initial state is Clear */
#define PXA2X0_GPIO_FN				0x03	/* function mask */

rt_uint32 rt_hw_gpio_get_function(rt_uint32 gpio);
rt_uint32 rt_hw_gpio_set_function(rt_uint32 gpio, rt_uint32 fn);

#endif

⌨️ 快捷键说明

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