1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
2819833afSPeter Tyser /*
3819833afSPeter Tyser  * Edge Port Memory Map
4819833afSPeter Tyser  *
5819833afSPeter Tyser  * Copyright (C) 2004-2008 Freescale Semiconductor, Inc.
6819833afSPeter Tyser  * TsiChung Liew (Tsi-Chung.Liew@freescale.com)
7819833afSPeter Tyser  */
8819833afSPeter Tyser 
9819833afSPeter Tyser #ifndef __EPORT_H__
10819833afSPeter Tyser #define __EPORT_H__
11819833afSPeter Tyser 
12819833afSPeter Tyser /* Edge Port Module (EPORT) */
13819833afSPeter Tyser typedef struct eport {
14819833afSPeter Tyser #ifdef CONFIG_MCF547x_8x
15819833afSPeter Tyser 	u16 par;	/* 0x00 */
16819833afSPeter Tyser 	u16 res0;	/* 0x02 */
17819833afSPeter Tyser 	u8 ddr;		/* 0x04 */
18819833afSPeter Tyser 	u8 ier;		/* 0x05 */
19819833afSPeter Tyser 	u16 res1;	/* 0x06 */
20819833afSPeter Tyser 	u8 dr;		/* 0x08 */
21819833afSPeter Tyser 	u8 pdr;		/* 0x09 */
22819833afSPeter Tyser 	u16 res2;	/* 0x0A */
23819833afSPeter Tyser 	u8 fr;		/* 0x0C */
24819833afSPeter Tyser 	u8 res3[3];	/* 0x0D */
25819833afSPeter Tyser #else
26819833afSPeter Tyser 	u16 par;	/* 0x00 Pin Assignment */
27819833afSPeter Tyser 	u8 ddr;		/* 0x02 Data Direction */
28819833afSPeter Tyser 	u8 ier;		/* 0x03 Interrupt Enable */
29819833afSPeter Tyser 	u8 dr;		/* 0x04 Data */
30819833afSPeter Tyser 	u8 pdr;		/* 0x05 Pin Data */
31819833afSPeter Tyser 	u8 fr;		/* 0x06 Flag */
32819833afSPeter Tyser 	u8 res0;
33819833afSPeter Tyser #endif
34819833afSPeter Tyser } eport_t;
35819833afSPeter Tyser 
36819833afSPeter Tyser /* EPPAR */
37819833afSPeter Tyser #define EPORT_PAR_EPPA1(x)		(((x)&0x0003)<<2)
38819833afSPeter Tyser #define EPORT_PAR_EPPA2(x)		(((x)&0x0003)<<4)
39819833afSPeter Tyser #define EPORT_PAR_EPPA3(x)		(((x)&0x0003)<<6)
40819833afSPeter Tyser #define EPORT_PAR_EPPA4(x)		(((x)&0x0003)<<8)
41819833afSPeter Tyser #define EPORT_PAR_EPPA5(x)		(((x)&0x0003)<<10)
42819833afSPeter Tyser #define EPORT_PAR_EPPA6(x)		(((x)&0x0003)<<12)
43819833afSPeter Tyser #define EPORT_PAR_EPPA7(x)		(((x)&0x0003)<<14)
44819833afSPeter Tyser #define EPORT_PAR_LEVEL			(0)
45819833afSPeter Tyser #define EPORT_PAR_RISING		(1)
46819833afSPeter Tyser #define EPORT_PAR_FALLING		(2)
47819833afSPeter Tyser #define EPORT_PAR_BOTH			(3)
48819833afSPeter Tyser #define EPORT_PAR_EPPA7_LEVEL		(0x0000)
49819833afSPeter Tyser #define EPORT_PAR_EPPA7_RISING		(0x4000)
50819833afSPeter Tyser #define EPORT_PAR_EPPA7_FALLING		(0x8000)
51819833afSPeter Tyser #define EPORT_PAR_EPPA7_BOTH		(0xC000)
52819833afSPeter Tyser #define EPORT_PAR_EPPA6_LEVEL		(0x0000)
53819833afSPeter Tyser #define EPORT_PAR_EPPA6_RISING		(0x1000)
54819833afSPeter Tyser #define EPORT_PAR_EPPA6_FALLING		(0x2000)
55819833afSPeter Tyser #define EPORT_PAR_EPPA6_BOTH		(0x3000)
56819833afSPeter Tyser #define EPORT_PAR_EPPA5_LEVEL		(0x0000)
57819833afSPeter Tyser #define EPORT_PAR_EPPA5_RISING		(0x0400)
58819833afSPeter Tyser #define EPORT_PAR_EPPA5_FALLING		(0x0800)
59819833afSPeter Tyser #define EPORT_PAR_EPPA5_BOTH		(0x0C00)
60819833afSPeter Tyser #define EPORT_PAR_EPPA4_LEVEL		(0x0000)
61819833afSPeter Tyser #define EPORT_PAR_EPPA4_RISING		(0x0100)
62819833afSPeter Tyser #define EPORT_PAR_EPPA4_FALLING		(0x0200)
63819833afSPeter Tyser #define EPORT_PAR_EPPA4_BOTH		(0x0300)
64819833afSPeter Tyser #define EPORT_PAR_EPPA3_LEVEL		(0x0000)
65819833afSPeter Tyser #define EPORT_PAR_EPPA3_RISING		(0x0040)
66819833afSPeter Tyser #define EPORT_PAR_EPPA3_FALLING		(0x0080)
67819833afSPeter Tyser #define EPORT_PAR_EPPA3_BOTH		(0x00C0)
68819833afSPeter Tyser #define EPORT_PAR_EPPA2_LEVEL		(0x0000)
69819833afSPeter Tyser #define EPORT_PAR_EPPA2_RISING		(0x0010)
70819833afSPeter Tyser #define EPORT_PAR_EPPA2_FALLING		(0x0020)
71819833afSPeter Tyser #define EPORT_PAR_EPPA2_BOTH		(0x0030)
72819833afSPeter Tyser #define EPORT_PAR_EPPA1_LEVEL		(0x0000)
73819833afSPeter Tyser #define EPORT_PAR_EPPA1_RISING		(0x0004)
74819833afSPeter Tyser #define EPORT_PAR_EPPA1_FALLING		(0x0008)
75819833afSPeter Tyser #define EPORT_PAR_EPPA1_BOTH		(0x000C)
76819833afSPeter Tyser 
77819833afSPeter Tyser /* EPDDR */
78819833afSPeter Tyser #define EPORT_DDR_EPDD1			(0x02)
79819833afSPeter Tyser #define EPORT_DDR_EPDD2			(0x04)
80819833afSPeter Tyser #define EPORT_DDR_EPDD3			(0x08)
81819833afSPeter Tyser #define EPORT_DDR_EPDD4			(0x10)
82819833afSPeter Tyser #define EPORT_DDR_EPDD5			(0x20)
83819833afSPeter Tyser #define EPORT_DDR_EPDD6			(0x40)
84819833afSPeter Tyser #define EPORT_DDR_EPDD7			(0x80)
85819833afSPeter Tyser 
86819833afSPeter Tyser /* EPIER */
87819833afSPeter Tyser #define EPORT_IER_EPIE1			(0x02)
88819833afSPeter Tyser #define EPORT_IER_EPIE2			(0x04)
89819833afSPeter Tyser #define EPORT_IER_EPIE3			(0x08)
90819833afSPeter Tyser #define EPORT_IER_EPIE4			(0x10)
91819833afSPeter Tyser #define EPORT_IER_EPIE5			(0x20)
92819833afSPeter Tyser #define EPORT_IER_EPIE6			(0x40)
93819833afSPeter Tyser #define EPORT_IER_EPIE7			(0x80)
94819833afSPeter Tyser 
95819833afSPeter Tyser /* EPDR */
96819833afSPeter Tyser #define EPORT_DR_EPD1			(0x02)
97819833afSPeter Tyser #define EPORT_DR_EPD2			(0x04)
98819833afSPeter Tyser #define EPORT_DR_EPD3			(0x08)
99819833afSPeter Tyser #define EPORT_DR_EPD4			(0x10)
100819833afSPeter Tyser #define EPORT_DR_EPD5			(0x20)
101819833afSPeter Tyser #define EPORT_DR_EPD6			(0x40)
102819833afSPeter Tyser #define EPORT_DR_EPD7			(0x80)
103819833afSPeter Tyser 
104819833afSPeter Tyser /* EPPDR */
105819833afSPeter Tyser #define EPORT_PDR_EPPD1			(0x02)
106819833afSPeter Tyser #define EPORT_PDR_EPPD2			(0x04)
107819833afSPeter Tyser #define EPORT_PDR_EPPD3			(0x08)
108819833afSPeter Tyser #define EPORT_PDR_EPPD4			(0x10)
109819833afSPeter Tyser #define EPORT_PDR_EPPD5			(0x20)
110819833afSPeter Tyser #define EPORT_PDR_EPPD6			(0x40)
111819833afSPeter Tyser #define EPORT_PDR_EPPD7			(0x80)
112819833afSPeter Tyser 
113819833afSPeter Tyser /* EPFR */
114819833afSPeter Tyser #define EPORT_FR_EPF1			(0x02)
115819833afSPeter Tyser #define EPORT_FR_EPF2			(0x04)
116819833afSPeter Tyser #define EPORT_FR_EPF3			(0x08)
117819833afSPeter Tyser #define EPORT_FR_EPF4			(0x10)
118819833afSPeter Tyser #define EPORT_FR_EPF5			(0x20)
119819833afSPeter Tyser #define EPORT_FR_EPF6			(0x40)
120819833afSPeter Tyser #define EPORT_FR_EPF7			(0x80)
121819833afSPeter Tyser 
122819833afSPeter Tyser #endif				/* __EPORT_H__ */
123