blob: b03f2d378d6766c3bf4a222505dc89a8fa364bf2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
/* linux/arch/arm/mach-exynos/include/mach/regs-gpio.h
*
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* EXYNOS4 - GPIO (including EINT) register definitions
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ASM_ARCH_REGS_GPIO_H
#define __ASM_ARCH_REGS_GPIO_H __FILE__
#include <mach/map.h>
#include <mach/irqs.h>
#if defined(CONFIG_ARCH_EXYNOS4)
#define EINT_BASE_ADD S5P_VA_GPIO2
#define EINT_GPIO_0(x) EXYNOS4_GPX0(x)
#define EINT_GPIO_1(x) EXYNOS4_GPX1(x)
#define EINT_GPIO_2(x) EXYNOS4_GPX2(x)
#define EINT_GPIO_3(x) EXYNOS4_GPX3(x)
#elif defined(CONFIG_ARCH_EXYNOS5)
#define EINT_BASE_ADD S5P_VA_GPIO1
#define EINT_GPIO_0(x) EXYNOS5_GPX0(x)
#define EINT_GPIO_1(x) EXYNOS5_GPX1(x)
#define EINT_GPIO_2(x) EXYNOS5_GPX2(x)
#define EINT_GPIO_3(x) EXYNOS5_GPX3(x)
#else
#error "ARCH_EXYNOS* is not defined"
#endif
#define EXYNOS_EINT40CON (EINT_BASE_ADD + 0xE00)
#define S5P_EINT_CON(x) (EXYNOS_EINT40CON + ((x) * 0x4))
#define EXYNOS_EINT40FLTCON0 (EINT_BASE_ADD + 0xE80)
#define S5P_EINT_FLTCON(x) (EXYNOS_EINT40FLTCON0 + ((x) * 0x4))
#define EXYNOS_EINT40MASK (EINT_BASE_ADD + 0xF00)
#define S5P_EINT_MASK(x) (EXYNOS_EINT40MASK + ((x) * 0x4))
#define EXYNOS_EINT40PEND (EINT_BASE_ADD + 0xF40)
#define S5P_EINT_PEND(x) (EXYNOS_EINT40PEND + ((x) * 0x4))
#define EINT_REG_NR(x) (EINT_OFFSET(x) >> 3)
#define eint_irq_to_bit(irq) (1 << (EINT_OFFSET(irq) & 0x7))
#define EINT_MODE S3C_GPIO_SFN(0xf)
#endif /* __ASM_ARCH_REGS_GPIO_H */
|