/********************************************************************************
|
* Copyright: (C) 2019 LingYun IoT System Studio
|
* All rights reserved.
|
*
|
* Filename: at91_sysGpioDef.h
|
* Description: This head file
|
*
|
* Version: 1.0.0(2019年08月26日)
|
* Author: Guo Wenxue <guowenxue@gmail.com>
|
* ChangeLog: 1, Release initial version on "2019年08月26日 21时46分02秒"
|
*
|
********************************************************************************/
|
|
#ifndef _AT91_SYSGPIODEF_H_
|
#define _AT91_SYSGPIODEF_H_
|
|
#include <ctype.h>
|
#include <stdlib.h>
|
|
#define PA(x) "pioA"#x
|
#define PB(x) "pioB"#x
|
#define PC(x) "pioC"#x
|
#define PD(x) "pioD"#x
|
#define PE(x) "pioE"#x
|
|
/* SAMA5D44 devided all GPIOs into 5 groups(PA,PB,PC,PD,PE), and each group control 32 Pins
|
*
|
* This macro used convert PAx,PBx...,PEx to Pin number: 0~158
|
* s should be: PA0-PA31, PB0-PB31, PC0-PC31, PD0-PD31, PE0-PE30(158)
|
*/
|
#define at91_port2pin(p) ((tolower(p[3])-'a')*32 + atoi(p+4) )
|
|
|
/*+-----------------------------------------------------+
|
*| GPIO PortA: PA0~PA31 defined as "pioA0"-"pioA31" |
|
*+-----------------------------------------------------+*/
|
|
#define PA0 PA(0)
|
#define PA1 PA(1)
|
#define PA2 PA(2)
|
#define PA3 PA(3)
|
#define PA4 PA(4)
|
#define PA5 PA(5)
|
#define PA6 PA(6)
|
#define PA7 PA(7)
|
#define PA8 PA(8)
|
#define PA9 PA(9)
|
#define PA10 PA(10)
|
#define PA11 PA(11)
|
#define PA12 PA(12)
|
#define PA13 PA(13)
|
#define PA14 PA(14)
|
#define PA15 PA(15)
|
#define PA16 PA(16)
|
#define PA17 PA(17)
|
#define PA18 PA(18)
|
#define PA19 PA(19)
|
#define PA20 PA(20)
|
#define PA21 PA(21)
|
#define PA22 PA(22)
|
#define PA23 PA(23)
|
#define PA24 PA(24)
|
#define PA25 PA(25)
|
#define PA26 PA(26)
|
#define PA27 PA(27)
|
#define PA28 PA(28)
|
#define PA29 PA(29)
|
#define PA30 PA(30)
|
#define PA31 PA(31)
|
|
|
/*+-----------------------------------------------------+
|
*| GPIO PortB: PB0~PB31 defined as "pioB0"-"pioB31" |
|
*+-----------------------------------------------------+*/
|
|
#define PB0 PB(0)
|
#define PB1 PB(1)
|
#define PB2 PB(2)
|
#define PB3 PB(3)
|
#define PB4 PB(4)
|
#define PB5 PB(5)
|
#define PB6 PB(6)
|
#define PB7 PB(7)
|
#define PB8 PB(8)
|
#define PB9 PB(9)
|
#define PB10 PB(10)
|
#define PB11 PB(11)
|
#define PB12 PB(12)
|
#define PB13 PB(13)
|
#define PB14 PB(14)
|
#define PB15 PB(15)
|
#define PB16 PB(16)
|
#define PB17 PB(17)
|
#define PB18 PB(18)
|
#define PB19 PB(19)
|
#define PB20 PB(20)
|
#define PB21 PB(21)
|
#define PB22 PB(22)
|
#define PB23 PB(23)
|
#define PB24 PB(24)
|
#define PB25 PB(25)
|
#define PB26 PB(26)
|
#define PB27 PB(27)
|
#define PB28 PB(28)
|
#define PB29 PB(29)
|
#define PB30 PB(30)
|
#define PB31 PB(31)
|
|
/*+-----------------------------------------------------+
|
*| GPIO PortC: PC0~PC31 defined as "pioC0"-"pioC31" |
|
*+-----------------------------------------------------+*/
|
|
#define PC0 PC(0)
|
#define PC1 PC(1)
|
#define PC2 PC(2)
|
#define PC3 PC(3)
|
#define PC4 PC(4)
|
#define PC5 PC(5)
|
#define PC6 PC(6)
|
#define PC7 PC(7)
|
#define PC8 PC(8)
|
#define PC9 PC(9)
|
#define PC10 PC(10)
|
#define PC11 PC(11)
|
#define PC12 PC(12)
|
#define PC13 PC(13)
|
#define PC14 PC(14)
|
#define PC15 PC(15)
|
#define PC16 PC(16)
|
#define PC17 PC(17)
|
#define PC18 PC(18)
|
#define PC19 PC(19)
|
#define PC20 PC(20)
|
#define PC21 PC(21)
|
#define PC22 PC(22)
|
#define PC23 PC(23)
|
#define PC24 PC(24)
|
#define PC25 PC(25)
|
#define PC26 PC(26)
|
#define PC27 PC(27)
|
#define PC28 PC(28)
|
#define PC29 PC(29)
|
#define PC30 PC(30)
|
#define PC31 PC(31)
|
|
/*+-----------------------------------------------------+
|
*| GPIO PortD: PD0~PD31 defined as "pioD0"-"pioD31" |
|
*+-----------------------------------------------------+*/
|
|
#define PD0 PD(0)
|
#define PD1 PD(1)
|
#define PD2 PD(2)
|
#define PD3 PD(3)
|
#define PD4 PD(4)
|
#define PD5 PD(5)
|
#define PD6 PD(6)
|
#define PD7 PD(7)
|
#define PD8 PD(8)
|
#define PD9 PD(9)
|
#define PD10 PD(10)
|
#define PD11 PD(11)
|
#define PD12 PD(12)
|
#define PD13 PD(13)
|
#define PD14 PD(14)
|
#define PD15 PD(15)
|
#define PD16 PD(16)
|
#define PD17 PD(17)
|
#define PD18 PD(18)
|
#define PD19 PD(19)
|
#define PD20 PD(20)
|
#define PD21 PD(21)
|
#define PD22 PD(22)
|
#define PD23 PD(23)
|
#define PD24 PD(24)
|
#define PD25 PD(25)
|
#define PD26 PD(26)
|
#define PD27 PD(27)
|
#define PD28 PD(28)
|
#define PD29 PD(29)
|
#define PD30 PD(30)
|
#define PD31 PD(31)
|
|
/*+-----------------------------------------------------+
|
*| GPIO PortE: PE0~PE30 defined as "pioE0"-"pioE30" |
|
*+-----------------------------------------------------+*/
|
|
#define PE0 PE(0)
|
#define PE1 PE(1)
|
#define PE2 PE(2)
|
#define PE3 PE(3)
|
#define PE4 PE(4)
|
#define PE5 PE(5)
|
#define PE6 PE(6)
|
#define PE7 PE(7)
|
#define PE8 PE(8)
|
#define PE9 PE(9)
|
#define PE10 PE(10)
|
#define PE11 PE(11)
|
#define PE12 PE(12)
|
#define PE13 PE(13)
|
#define PE14 PE(14)
|
#define PE15 PE(15)
|
#define PE16 PE(16)
|
#define PE17 PE(17)
|
#define PE18 PE(18)
|
#define PE19 PE(19)
|
#define PE20 PE(20)
|
#define PE21 PE(21)
|
#define PE22 PE(22)
|
#define PE23 PE(23)
|
#define PE24 PE(24)
|
#define PE25 PE(25)
|
#define PE26 PE(26)
|
#define PE27 PE(27)
|
#define PE28 PE(28)
|
#define PE29 PE(29)
|
#define PE30 PE(30)
|
|
|
#endif /* ----- #ifndef _AT91_SYSGPIODEF_H_ ----- */
|