gpio.h
来自「for mips adm5120 uclibc-0.9.19 toolchain」· C头文件 代码 · 共 260 行
H
260 行
#ifndef __IDT_GPIO_H__#define __IDT_GPIO_H__/******************************************************************************* * * Copyright 2002 Integrated Device Technology, Inc. * All rights reserved. * * GPIO register definition. * * File : $Id: gpio.h,v 1.1 2004/10/15 12:47:26 brianc Exp $ * * Author : ryan.holmQVist@idt.com * Date : 20011005 * Update : * $Log: gpio.h,v $ * Revision 1.1 2004/10/15 12:47:26 brianc * Readd the file * * Revision 1.1.1.1 2004/03/29 00:54:44 daniell * Initialized the project * * Revision 1.2 2003/07/30 18:20:38 stevel * MR: 1-2IQL9 * * Add IDT and ATI Xilleon LSP's, and update related drivers. * * Revision 1.1.2.1 2003/02/15 00:06:01 stevel * New IDT board support: 79EB438 and 79RP355. Also support for * boot from PROM on 79S334A, 79EB355, 79RP355, and 79EB438. * * Revision 1.2 2002/06/06 18:34:04 astichte * Added XXX_PhysicalAddress and XXX_VirtualAddress * * Revision 1.1 2002/05/29 17:33:22 sysarch * jba File moved from vcode/include/idt/acacia * * ******************************************************************************/enum{ GPIO0_PhysicalAddress = 0x18048000, GPIO_PhysicalAddress = GPIO0_PhysicalAddress, // Default GPIO0_VirtualAddress = 0xb8048000, GPIO_VirtualAddress = GPIO0_VirtualAddress, // Default} ;typedef struct{ unsigned int gpiofunc; /* GPIO Function Register * gpiofunc[x]==0 bit = gpio * func[x]==1 bit = altfunc */ unsigned int gpiocfg; /* GPIO Configuration Register * gpiocfg[x]==0 bit = input * gpiocfg[x]==1 bit = output */ unsigned int gpiod; /* GPIO Data Register * gpiod[x] read/write gpio pinX status */ unsigned int gpioilevel; /* GPIO Interrupt Status Register * interrupt level (see gpioistat) */ unsigned int gpioistat; /* Gpio Interrupt Status Register * istat[x] = (gpiod[x] == level[x]) * cleared in ISR (STICKY bits) */ unsigned int gpionmien; /* GPIO Non-maskable Interrupt Enable Register */} volatile * GPIO_t ;typedef enum{ GPIO_gpio_v = 0, // gpiofunc use pin as GPIO. GPIO_alt_v = 1, // gpiofunc use pin as alt. GPIO_input_v = 0, // gpiocfg use pin as input. GPIO_output_v = 1, // gpiocfg use pin as output. GPIO_pin0_b = 0, GPIO_pin0_m = 0x00000001, GPIO_pin1_b = 1, GPIO_pin1_m = 0x00000002, GPIO_pin2_b = 2, GPIO_pin2_m = 0x00000004, GPIO_pin3_b = 3, GPIO_pin3_m = 0x00000008, GPIO_pin4_b = 4, GPIO_pin4_m = 0x00000010, GPIO_pin5_b = 5, GPIO_pin5_m = 0x00000020, GPIO_pin6_b = 6, GPIO_pin6_m = 0x00000040, GPIO_pin7_b = 7, GPIO_pin7_m = 0x00000080, GPIO_pin8_b = 8, GPIO_pin8_m = 0x00000100, GPIO_pin9_b = 9, GPIO_pin9_m = 0x00000200, GPIO_pin10_b = 10, GPIO_pin10_m = 0x00000400, GPIO_pin11_b = 11, GPIO_pin11_m = 0x00000800, GPIO_pin12_b = 12, GPIO_pin12_m = 0x00001000, GPIO_pin13_b = 13, GPIO_pin13_m = 0x00002000, GPIO_pin14_b = 14, GPIO_pin14_m = 0x00004000, GPIO_pin15_b = 15, GPIO_pin15_m = 0x00008000, GPIO_pin16_b = 16, GPIO_pin16_m = 0x00010000, GPIO_pin17_b = 17, GPIO_pin17_m = 0x00020000, GPIO_pin18_b = 18, GPIO_pin18_m = 0x00040000, GPIO_pin19_b = 19, GPIO_pin19_m = 0x00080000, GPIO_pin20_b = 20, GPIO_pin20_m = 0x00100000, GPIO_pin21_b = 21, GPIO_pin21_m = 0x00200000, GPIO_pin22_b = 22, GPIO_pin22_m = 0x00400000, GPIO_pin23_b = 23, GPIO_pin23_m = 0x00800000, GPIO_pin24_b = 24, GPIO_pin24_m = 0x01000000, GPIO_pin25_b = 25, GPIO_pin25_m = 0x02000000, GPIO_pin26_b = 26, GPIO_pin26_m = 0x04000000, GPIO_pin27_b = 27, GPIO_pin27_m = 0x08000000, GPIO_pin28_b = 28, GPIO_pin28_m = 0x10000000, GPIO_pin29_b = 29, GPIO_pin29_m = 0x20000000, GPIO_pin30_b = 30, GPIO_pin30_m = 0x40000000, GPIO_pin31_b = 31, GPIO_pin31_m = 0x80000000,// Alternate function pins. Corrsponding gpiofunc bit set to GPIO_alt_v. GPIO_u0sout_b = GPIO_pin0_b, // UART 0 serial out. GPIO_u0sout_m = GPIO_pin0_m, GPIO_u0sout_cfg_v = GPIO_output_v, GPIO_u0sinp_b = GPIO_pin1_b, // UART 0 serial in. GPIO_u0sinp_m = GPIO_pin1_m, GPIO_u0sinp_cfg_v = GPIO_input_v, GPIO_u0rin_b = GPIO_pin2_b, // UART 0 ring indic. GPIO_u0rin_m = GPIO_pin2_m, GPIO_u0rin_cfg_v = GPIO_input_v, GPIO_u0dcdn_b = GPIO_pin3_b, // UART 0 data carr.det. GPIO_u0dcdn_m = GPIO_pin3_m, GPIO_u0dcdn_cfg_v = GPIO_input_v, GPIO_u0dtrn_b = GPIO_pin4_b, // UART 0 data term rdy. GPIO_u0dtrn_m = GPIO_pin4_m, GPIO_u0dtrn_cfg_v = GPIO_output_v, GPIO_u0dsrn_b = GPIO_pin5_b, // UART 0 data set rdy. GPIO_u0dsrn_m = GPIO_pin5_m, GPIO_u0dsrn_cfg_v = GPIO_input_v, GPIO_u0rtsn_b = GPIO_pin6_b, // UART 0 req. to send. GPIO_u0rtsn_m = GPIO_pin6_m, GPIO_u0rtsn_cfg_v = GPIO_output_v, GPIO_u0ctsn_b = GPIO_pin7_b, // UART 0 clear to send. GPIO_u0ctsn_m = GPIO_pin7_m, GPIO_u0ctsn_cfg_v = GPIO_input_v, GPIO_u1sout_b = GPIO_pin8_b, // UART 1 serial out. GPIO_u1sout_m = GPIO_pin8_m, GPIO_u1sout_cfg_v = GPIO_output_v, GPIO_u1sinp_b = GPIO_pin9_b, // UART 1 serial in. GPIO_u1sinp_m = GPIO_pin9_m, GPIO_u1sinp_cfg_v = GPIO_input_v, GPIO_u1dtrn_b = GPIO_pin10_b, // UART 1 data term rdy. GPIO_u1dtrn_m = GPIO_pin10_m, GPIO_u1dtrn_cfg_v = GPIO_output_v, GPIO_u1dsrn_b = GPIO_pin11_b, // UART 1 data set rdy. GPIO_u1dsrn_m = GPIO_pin11_m, GPIO_u1dsrn_cfg_v = GPIO_input_v, GPIO_u1rtsn_b = GPIO_pin12_b, // UART 1 req. to send. GPIO_u1rtsn_m = GPIO_pin12_m, GPIO_u1rtsn_cfg_v = GPIO_output_v, GPIO_u1ctsn_b = GPIO_pin13_b, // UART 1 clear to send. GPIO_u1ctsn_m = GPIO_pin13_m, GPIO_u1ctsn_cfg_v = GPIO_input_v, GPIO_dmareqn0_b = GPIO_pin14_b, // Ext. DMA 0 request GPIO_dmareqn0_m = GPIO_pin14_m, GPIO_dmareqn0_cfg_v = GPIO_input_v, GPIO_dmareqn1_b = GPIO_pin15_b, // Ext. DMA 1 request GPIO_dmareqn1_m = GPIO_pin15_m, GPIO_dmareqn1_cfg_v = GPIO_input_v, GPIO_dmadonen0_b = GPIO_pin16_b, // Ext. DMA 0 done GPIO_dmadonen0_m = GPIO_pin16_m, GPIO_dmadonen0_cfg_v = GPIO_input_v, GPIO_dmadonen1_b = GPIO_pin17_b, // Ext. DMA 1 done GPIO_dmadonen1_m = GPIO_pin17_m, GPIO_dmadonen1_cfg_v = GPIO_input_v, GPIO_dmafinn0_b = GPIO_pin18_b, // Ext. DMA 0 finished GPIO_dmafinn0_m = GPIO_pin18_m, GPIO_dmafinn0_cfg_v = GPIO_output_v, GPIO_dmafinn1_b = GPIO_pin19_b, // Ext. DMA 1 finished GPIO_dmafinn1_m = GPIO_pin19_m, GPIO_dmafinn1_cfg_v = GPIO_output_v, GPIO_maddr22_b = GPIO_pin20_b, // M&P bus bit 22. GPIO_maddr22_m = GPIO_pin20_m, GPIO_maddr22_cfg_v = GPIO_output_v, GPIO_maddr23_b = GPIO_pin21_b, // M&P bus bit 23. GPIO_maddr23_m = GPIO_pin21_m, GPIO_maddr23_cfg_v = GPIO_output_v, GPIO_maddr24_b = GPIO_pin22_b, // M&P bus bit 24. GPIO_maddr24_m = GPIO_pin22_m, GPIO_maddr24_cfg_v = GPIO_output_v, GPIO_maddr25_b = GPIO_pin23_b, // M&P bus bit 25. GPIO_maddr25_m = GPIO_pin23_m, GPIO_maddr25_cfg_v = GPIO_output_v, GPIO_afspare6_b = GPIO_pin24_b, // reserved. GPIO_afspare6_m = GPIO_pin24_m, GPIO_afspare6_cfg_v = GPIO_input_v, GPIO_afspare5_b = GPIO_pin25_b, // reserved. GPIO_afspare5_m = GPIO_pin25_m, GPIO_afspare5_cfg_v = GPIO_input_v, GPIO_afspare4_b = GPIO_pin26_b, // reserved. GPIO_afspare4_m = GPIO_pin26_m, GPIO_afspare4_cfg_v = GPIO_input_v, GPIO_afspare3_b = GPIO_pin27_b, // reserved. GPIO_afspare3_m = GPIO_pin27_m, GPIO_afspare3_cfg_v = GPIO_input_v, GPIO_afspare2_b = GPIO_pin28_b, // reserved. GPIO_afspare2_m = GPIO_pin28_m, GPIO_afspare2_cfg_v = GPIO_input_v, GPIO_afspare1_b = GPIO_pin29_b, // reserved. GPIO_afspare1_m = GPIO_pin29_m, GPIO_afspare1_cfg_v = GPIO_input_v, GPIO_pcimuintn_b = GPIO_pin30_b, // PCI messaging int. GPIO_pcimuintn_m = GPIO_pin30_m, GPIO_pcimuintn_cfg_v = GPIO_output_v, GPIO_rngclk_b = GPIO_pin31_b, // RNG external clock GPIO_rngclk_m = GPIO_pin31_m, GPIO_rncclk_cfg_v = GPIO_input_v,} GPIO_DEFS_t;#endif // __IDT_GPIO_H__
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?