Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
unicore32
include
asm
gpio.h
Go to the documentation of this file.
1
/*
2
* linux/arch/unicore32/include/asm/gpio.h
3
*
4
* Code specific to PKUnity SoC and UniCore ISA
5
*
6
* Copyright (C) 2001-2010 GUAN Xue-tao
7
*
8
* This program is free software; you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License version 2 as
10
* published by the Free Software Foundation.
11
*/
12
13
#ifndef __UNICORE_GPIO_H__
14
#define __UNICORE_GPIO_H__
15
16
#include <
linux/io.h
>
17
#include <asm/irq.h>
18
#include <mach/hardware.h>
19
#include <
asm-generic/gpio.h
>
20
21
#define GPI_OTP_INT 0
22
#define GPI_PCI_INTA 1
23
#define GPI_PCI_INTB 2
24
#define GPI_PCI_INTC 3
25
#define GPI_PCI_INTD 4
26
#define GPI_BAT_DET 5
27
#define GPI_SD_CD 6
28
#define GPI_SOFF_REQ 7
29
#define GPI_SD_WP 8
30
#define GPI_LCD_CASE_OFF 9
31
#define GPO_WIFI_EN 10
32
#define GPO_HDD_LED 11
33
#define GPO_VGA_EN 12
34
#define GPO_LCD_EN 13
35
#define GPO_LED_DATA 14
36
#define GPO_LED_CLK 15
37
#define GPO_CAM_PWR_EN 16
38
#define GPO_LCD_VCC_EN 17
39
#define GPO_SOFT_OFF 18
40
#define GPO_BT_EN 19
41
#define GPO_FAN_ON 20
42
#define GPO_SPKR 21
43
#define GPO_SET_V1 23
44
#define GPO_SET_V2 24
45
#define GPO_CPU_HEALTH 25
46
#define GPO_LAN_SEL 26
47
48
#ifdef CONFIG_PUV3_NB0916
49
#define GPI_BTN_TOUCH 14
50
#define GPIO_IN 0x000043ff
/* 1 for input */
51
#define GPIO_OUT 0x0fffbc00
/* 1 for output */
52
#endif
/* CONFIG_PUV3_NB0916 */
53
54
#ifdef CONFIG_PUV3_SMW0919
55
#define GPIO_IN 0x000003ff
/* 1 for input */
56
#define GPIO_OUT 0x0ffffc00
/* 1 for output */
57
#endif
/* CONFIG_PUV3_SMW0919 */
58
59
#ifdef CONFIG_PUV3_DB0913
60
#define GPIO_IN 0x000001df
/* 1 for input */
61
#define GPIO_OUT 0x03fee800
/* 1 for output */
62
#endif
/* CONFIG_PUV3_DB0913 */
63
64
#define GPIO_DIR (~((GPIO_IN) | 0xf0000000))
65
/* 0 input, 1 output */
66
67
static
inline
int
gpio_get_value
(
unsigned
gpio
)
68
{
69
if
(__builtin_constant_p(gpio) && (gpio <=
GPIO_MAX
))
70
return
readl
(
GPIO_GPLR
) &
GPIO_GPIO
(gpio);
71
else
72
return
__gpio_get_value
(gpio);
73
}
74
75
static
inline
void
gpio_set_value
(
unsigned
gpio
,
int
value
)
76
{
77
if
(__builtin_constant_p(gpio) && (gpio <=
GPIO_MAX
))
78
if
(value)
79
writel
(
GPIO_GPIO
(gpio),
GPIO_GPSR
);
80
else
81
writel
(
GPIO_GPIO
(gpio),
GPIO_GPCR
);
82
else
83
__gpio_set_value
(gpio, value);
84
}
85
86
#define gpio_cansleep __gpio_cansleep
87
88
static
inline
unsigned
gpio_to_irq
(
unsigned
gpio)
89
{
90
if
((gpio <
IRQ_GPIOHIGH
) && (
FIELD
(1, 1, gpio) &
readl
(
GPIO_GPIR
)))
91
return
IRQ_GPIOLOW0
+
gpio
;
92
else
93
return
IRQ_GPIO0
+
gpio
;
94
}
95
96
static
inline
unsigned
irq_to_gpio
(
unsigned
irq)
97
{
98
if
(irq <
IRQ_GPIOHIGH
)
99
return
irq -
IRQ_GPIOLOW0
;
100
else
101
return
irq -
IRQ_GPIO0
;
102
}
103
104
#endif
/* __UNICORE_GPIO_H__ */
Generated on Thu Jan 10 2013 12:49:41 for Linux Kernel by
1.8.2