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

📄 gpio.h

📁 linux 内核源代码
💻 H
字号:
/* * File:         arch/blackfin/kernel/bfin_gpio.h * Based on: * Author:	 Michael Hennerich (hennerich@blackfin.uclinux.org) * * Created: * Description: * * Modified: *               Copyright 2004-2006 Analog Devices Inc. * * Bugs:         Enter bugs at http://blackfin.uclinux.org/ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see the file COPYING, or write * to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA *//**  Number     BF537/6/4    BF561    BF533/2/1*             BF527/5/2**  GPIO_0       PF0         PF0        PF0*  GPIO_1       PF1         PF1        PF1*  GPIO_2       PF2         PF2        PF2*  GPIO_3       PF3         PF3        PF3*  GPIO_4       PF4         PF4        PF4*  GPIO_5       PF5         PF5        PF5*  GPIO_6       PF6         PF6        PF6*  GPIO_7       PF7         PF7        PF7*  GPIO_8       PF8         PF8        PF8*  GPIO_9       PF9         PF9        PF9*  GPIO_10      PF10        PF10       PF10*  GPIO_11      PF11        PF11       PF11*  GPIO_12      PF12        PF12       PF12*  GPIO_13      PF13        PF13       PF13*  GPIO_14      PF14        PF14       PF14*  GPIO_15      PF15        PF15       PF15*  GPIO_16      PG0         PF16*  GPIO_17      PG1         PF17*  GPIO_18      PG2         PF18*  GPIO_19      PG3         PF19*  GPIO_20      PG4         PF20*  GPIO_21      PG5         PF21*  GPIO_22      PG6         PF22*  GPIO_23      PG7         PF23*  GPIO_24      PG8         PF24*  GPIO_25      PG9         PF25*  GPIO_26      PG10        PF26*  GPIO_27      PG11        PF27*  GPIO_28      PG12        PF28*  GPIO_29      PG13        PF29*  GPIO_30      PG14        PF30*  GPIO_31      PG15        PF31*  GPIO_32      PH0         PF32*  GPIO_33      PH1         PF33*  GPIO_34      PH2         PF34*  GPIO_35      PH3         PF35*  GPIO_36      PH4         PF36*  GPIO_37      PH5         PF37*  GPIO_38      PH6         PF38*  GPIO_39      PH7         PF39*  GPIO_40      PH8         PF40*  GPIO_41      PH9         PF41*  GPIO_42      PH10        PF42*  GPIO_43      PH11        PF43*  GPIO_44      PH12        PF44*  GPIO_45      PH13        PF45*  GPIO_46      PH14        PF46*  GPIO_47      PH15        PF47*/#ifndef __ARCH_BLACKFIN_GPIO_H__#define __ARCH_BLACKFIN_GPIO_H__#define gpio_bank(x) ((x) >> 4)#define gpio_bit(x)  (1<<((x) & 0xF))#define gpio_sub_n(x) ((x) & 0xF)#define GPIO_BANKSIZE 16#define	GPIO_0	0#define	GPIO_1	1#define	GPIO_2	2#define	GPIO_3	3#define	GPIO_4	4#define	GPIO_5	5#define	GPIO_6	6#define	GPIO_7	7#define	GPIO_8	8#define	GPIO_9	9#define	GPIO_10	10#define	GPIO_11	11#define	GPIO_12	12#define	GPIO_13	13#define	GPIO_14	14#define	GPIO_15	15#define	GPIO_16	16#define	GPIO_17	17#define	GPIO_18	18#define	GPIO_19	19#define	GPIO_20	20#define	GPIO_21	21#define	GPIO_22	22#define	GPIO_23	23#define	GPIO_24	24#define	GPIO_25	25#define	GPIO_26	26#define	GPIO_27	27#define	GPIO_28	28#define	GPIO_29	29#define	GPIO_30	30#define	GPIO_31	31#define	GPIO_32	32#define	GPIO_33	33#define	GPIO_34	34#define	GPIO_35	35#define	GPIO_36	36#define	GPIO_37	37#define	GPIO_38	38#define	GPIO_39	39#define	GPIO_40	40#define	GPIO_41	41#define	GPIO_42	42#define	GPIO_43	43#define	GPIO_44	44#define	GPIO_45	45#define	GPIO_46	46#define	GPIO_47	47#define PERIPHERAL_USAGE 1#define GPIO_USAGE 0#ifdef BF533_FAMILY#define MAX_BLACKFIN_GPIOS 16#define	GPIO_PF0	0#define	GPIO_PF1	1#define	GPIO_PF2	2#define	GPIO_PF3	3#define	GPIO_PF4	4#define	GPIO_PF5	5#define	GPIO_PF6	6#define	GPIO_PF7	7#define	GPIO_PF8	8#define	GPIO_PF9	9#define	GPIO_PF10	10#define	GPIO_PF11	11#define	GPIO_PF12	12#define	GPIO_PF13	13#define	GPIO_PF14	14#define	GPIO_PF15	15#endif#if defined(BF527_FAMILY) || defined(BF537_FAMILY)#define MAX_BLACKFIN_GPIOS 48#define	GPIO_PF0	0#define	GPIO_PF1	1#define	GPIO_PF2	2#define	GPIO_PF3	3#define	GPIO_PF4	4#define	GPIO_PF5	5#define	GPIO_PF6	6#define	GPIO_PF7	7#define	GPIO_PF8	8#define	GPIO_PF9	9#define	GPIO_PF10	10#define	GPIO_PF11	11#define	GPIO_PF12	12#define	GPIO_PF13	13#define	GPIO_PF14	14#define	GPIO_PF15	15#define	GPIO_PG0	16#define	GPIO_PG1	17#define	GPIO_PG2	18#define	GPIO_PG3	19#define	GPIO_PG4	20#define	GPIO_PG5	21#define	GPIO_PG6	22#define	GPIO_PG7	23#define	GPIO_PG8	24#define	GPIO_PG9	25#define	GPIO_PG10      	26#define	GPIO_PG11      	27#define	GPIO_PG12      	28#define	GPIO_PG13      	29#define	GPIO_PG14      	30#define	GPIO_PG15      	31#define	GPIO_PH0	32#define	GPIO_PH1	33#define	GPIO_PH2	34#define	GPIO_PH3	35#define	GPIO_PH4	36#define	GPIO_PH5	37#define	GPIO_PH6	38#define	GPIO_PH7	39#define	GPIO_PH8	40#define	GPIO_PH9	41#define	GPIO_PH10      	42#define	GPIO_PH11      	43#define	GPIO_PH12      	44#define	GPIO_PH13      	45#define	GPIO_PH14      	46#define	GPIO_PH15      	47#define PORT_F GPIO_PF0#define PORT_G GPIO_PG0#define PORT_H GPIO_PH0#endif#ifdef BF548_FAMILY#include <asm-blackfin/mach-bf548/gpio.h>#endif#ifdef BF561_FAMILY#define MAX_BLACKFIN_GPIOS 48#define	GPIO_PF0	0#define	GPIO_PF1	1#define	GPIO_PF2	2#define	GPIO_PF3	3#define	GPIO_PF4	4#define	GPIO_PF5	5#define	GPIO_PF6	6#define	GPIO_PF7	7#define	GPIO_PF8	8#define	GPIO_PF9	9#define	GPIO_PF10	10#define	GPIO_PF11	11#define	GPIO_PF12	12#define	GPIO_PF13	13#define	GPIO_PF14	14#define	GPIO_PF15	15#define	GPIO_PF16	16#define	GPIO_PF17	17#define	GPIO_PF18	18#define	GPIO_PF19	19#define	GPIO_PF20	20#define	GPIO_PF21	21#define	GPIO_PF22	22#define	GPIO_PF23	23#define	GPIO_PF24	24#define	GPIO_PF25	25#define	GPIO_PF26	26#define	GPIO_PF27	27#define	GPIO_PF28	28#define	GPIO_PF29	29#define	GPIO_PF30	30#define	GPIO_PF31	31#define	GPIO_PF32	32#define	GPIO_PF33	33#define	GPIO_PF34	34#define	GPIO_PF35	35#define	GPIO_PF36	36#define	GPIO_PF37	37#define	GPIO_PF38	38#define	GPIO_PF39	39#define	GPIO_PF40	40#define	GPIO_PF41	41#define	GPIO_PF42	42#define	GPIO_PF43	43#define	GPIO_PF44	44#define	GPIO_PF45	45#define	GPIO_PF46	46#define	GPIO_PF47	47#define PORT_FIO0 GPIO_0#define PORT_FIO1 GPIO_16#define PORT_FIO2 GPIO_32#endif#ifndef __ASSEMBLY__/************************************************************* FUNCTIONS: Blackfin General Purpose Ports Access Functions** INPUTS/OUTPUTS:* gpio - GPIO Number between 0 and MAX_BLACKFIN_GPIOS*** DESCRIPTION: These functions abstract direct register access*              to Blackfin processor General Purpose*              Ports Regsiters** CAUTION: These functions do not belong to the GPIO Driver API************************************************************** MODIFICATION HISTORY :**************************************************************/#ifndef BF548_FAMILYvoid set_gpio_dir(unsigned short, unsigned short);void set_gpio_inen(unsigned short, unsigned short);void set_gpio_polar(unsigned short, unsigned short);void set_gpio_edge(unsigned short, unsigned short);void set_gpio_both(unsigned short, unsigned short);void set_gpio_data(unsigned short, unsigned short);void set_gpio_maska(unsigned short, unsigned short);void set_gpio_maskb(unsigned short, unsigned short);void set_gpio_toggle(unsigned short);void set_gpiop_dir(unsigned short, unsigned short);void set_gpiop_inen(unsigned short, unsigned short);void set_gpiop_polar(unsigned short, unsigned short);void set_gpiop_edge(unsigned short, unsigned short);void set_gpiop_both(unsigned short, unsigned short);void set_gpiop_data(unsigned short, unsigned short);void set_gpiop_maska(unsigned short, unsigned short);void set_gpiop_maskb(unsigned short, unsigned short);unsigned short get_gpio_dir(unsigned short);unsigned short get_gpio_inen(unsigned short);unsigned short get_gpio_polar(unsigned short);unsigned short get_gpio_edge(unsigned short);unsigned short get_gpio_both(unsigned short);unsigned short get_gpio_maska(unsigned short);unsigned short get_gpio_maskb(unsigned short);unsigned short get_gpio_data(unsigned short);unsigned short get_gpiop_dir(unsigned short);unsigned short get_gpiop_inen(unsigned short);unsigned short get_gpiop_polar(unsigned short);unsigned short get_gpiop_edge(unsigned short);unsigned short get_gpiop_both(unsigned short);unsigned short get_gpiop_maska(unsigned short);unsigned short get_gpiop_maskb(unsigned short);unsigned short get_gpiop_data(unsigned short);struct gpio_port_t {	unsigned short data;	unsigned short dummy1;	unsigned short data_clear;	unsigned short dummy2;	unsigned short data_set;	unsigned short dummy3;	unsigned short toggle;	unsigned short dummy4;	unsigned short maska;	unsigned short dummy5;	unsigned short maska_clear;	unsigned short dummy6;	unsigned short maska_set;	unsigned short dummy7;	unsigned short maska_toggle;	unsigned short dummy8;	unsigned short maskb;	unsigned short dummy9;	unsigned short maskb_clear;	unsigned short dummy10;	unsigned short maskb_set;	unsigned short dummy11;	unsigned short maskb_toggle;	unsigned short dummy12;	unsigned short dir;	unsigned short dummy13;	unsigned short polar;	unsigned short dummy14;	unsigned short edge;	unsigned short dummy15;	unsigned short both;	unsigned short dummy16;	unsigned short inen;};#endif#ifdef CONFIG_PM#define PM_WAKE_RISING	0x1#define PM_WAKE_FALLING	0x2#define PM_WAKE_HIGH	0x4#define PM_WAKE_LOW	0x8#define PM_WAKE_BOTH_EDGES	(PM_WAKE_RISING | PM_WAKE_FALLING)int gpio_pm_wakeup_request(unsigned short gpio, unsigned char type);void gpio_pm_wakeup_free(unsigned short gpio);unsigned int gpio_pm_setup(void);void gpio_pm_restore(void);struct gpio_port_s {	unsigned short data;	unsigned short data_clear;	unsigned short data_set;	unsigned short toggle;	unsigned short maska;	unsigned short maska_clear;	unsigned short maska_set;	unsigned short maska_toggle;	unsigned short maskb;	unsigned short maskb_clear;	unsigned short maskb_set;	unsigned short maskb_toggle;	unsigned short dir;	unsigned short polar;	unsigned short edge;	unsigned short both;	unsigned short inen;	unsigned short fer;	unsigned short reserved;};#endif /*CONFIG_PM*//************************************************************* FUNCTIONS: Blackfin GPIO Driver** INPUTS/OUTPUTS:* gpio - GPIO Number between 0 and MAX_BLACKFIN_GPIOS*** DESCRIPTION: Blackfin GPIO Driver API** CAUTION:************************************************************** MODIFICATION HISTORY :**************************************************************/int gpio_request(unsigned short, const char *);void gpio_free(unsigned short);void gpio_set_value(unsigned short gpio, unsigned short arg);unsigned short gpio_get_value(unsigned short gpio);#ifndef BF548_FAMILY#define gpio_get_value(gpio) 		get_gpio_data(gpio)#define gpio_set_value(gpio, value)	set_gpio_data(gpio, value)#endifvoid gpio_direction_input(unsigned short gpio);void gpio_direction_output(unsigned short gpio);#include <asm-generic/gpio.h>		/* cansleep wrappers */#include <asm/irq.h>static inline int gpio_to_irq(unsigned gpio){	return (gpio + GPIO_IRQ_BASE);}static inline int irq_to_gpio(unsigned irq){	return (irq - GPIO_IRQ_BASE);}#endif /* __ASSEMBLY__ */#endif /* __ARCH_BLACKFIN_GPIO_H__ */

⌨️ 快捷键说明

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