1 /* Copyright (C) 2013 Jonas Jensen <jonas.jensen@gmail.com>
2 * This program is free software; you can redistribute it and/or modify it
3 * under the terms of the GNU General Public License as published by the
4 * Free Software Foundation; either version 2 of the License,
5 * or (at your option) any later version. */
7 #ifndef __MACH_GPIO_H__
8 #define __MACH_GPIO_H__
10 #include <mach/irqs.h>
11 /* #include <asm-generic/gpio.h> */
13 #define GPIO_EM1240_HIGH 1
14 #define GPIO_EM1240_LOW 0
15 #define GPIO_EM1240_OUTPUT 1
16 #define GPIO_EM1240_INPUT 0
18 #define SW_READY_GPIO (1<<27)
19 #define SW_RESET_GPIO (1<<25)
21 #define GPIO_RTC_SCLK (1<<5) /* GPIO5 */
22 #define GPIO_RTC_DATA (1<<6) /* GPIO6 */
23 #define GPIO_RTC_RESET (1<<7) /* GPIO7 */
24 #define GPIO_RTC_MASK (GPIO_RTC_SCLK | GPIO_RTC_DATA | GPIO_RTC_RESET)
26 #define GPIO_DATA_OUT(base_addr) (base_addr + 0x00)
27 #define GPIO_DATA_IN(base_addr) (base_addr + 0x04)
28 #define GPIO_PIN_DIRECTION(base_addr) (base_addr + 0x08)
30 #define GPIO_RTC_RESERVED(base_addr) (base_addr + 0x0C)
31 #define GPIO_RTC_DATA_SET(base_addr) (base_addr + 0x10)
32 #define GPIO_RTC_DATA_CLEAR(base_addr) (base_addr + 0x14)
33 #define GPIO_RTC_PIN_PULL_ENABLE(base_addr) (base_addr + 0x18)
34 #define GPIO_RTC_PIN_PULL_TYPE(base_addr) (base_addr + 0x1C)
35 #define GPIO_RTC_INT_ENABLE(base_addr) (base_addr + 0x20)
36 #define GPIO_RTC_INT_RAW_STATE(base_addr) (base_addr + 0x24)
37 #define GPIO_RTC_INT_MASKED_STATE(base_addr) (base_addr + 0x28)
38 #define GPIO_RTC_INT_MASK(base_addr) (base_addr + 0x2C)
39 #define GPIO_RTC_INT_CLEAR(base_addr) (base_addr + 0x30)
40 #define GPIO_RTC_INT_TRIGGER(base_addr) (base_addr + 0x34)
41 #define GPIO_RTC_INT_BOTH(base_addr) (base_addr + 0x38)
42 #define GPIO_RTC_INT_RISE_NEG(base_addr) (base_addr + 0x3C)
43 #define GPIO_RTC_BOUNCE_ENABLE(base_addr) (base_addr + 0x40)
44 #define GPIO_RTC_BOUNCE_PRE_SCALE(base_addr) (base_addr + 0x44)
47 #define GPIO_RTC_PROTECT_W 0x8E
48 #define GPIO_RTC_PROTECT_R 0x8F
49 #define GPIO_RTC_YEAR_W 0x8C
50 #define GPIO_RTC_YEAR_R 0x8D
51 #define GPIO_RTC_DAY_W 0x8A
52 #define GPIO_RTC_DAY_R 0x8B
53 #define GPIO_RTC_MONTH_W 0x88
54 #define GPIO_RTC_MONTH_R 0x89
55 #define GPIO_RTC_DATE_W 0x86
56 #define GPIO_RTC_DATE_R 0x87
57 #define GPIO_RTC_HOURS_W 0x84
58 #define GPIO_RTC_HOURS_R 0x85
59 #define GPIO_RTC_MINUTES_W 0x82
60 #define GPIO_RTC_MINUTES_R 0x83
61 #define GPIO_RTC_SECONDS_W 0x80
62 #define GPIO_RTC_SECONDS_R 0x81
63 #define GPIO_RTC_DELAY_TIME 8 /* 8 usecond */
64 #define GPIO_RTC_IS_OPEN 0x01 /* means /dev/rtc is in use */
65 #define GPIO_PIO(x) (1 << x)
69 extern __init_or_module
void moxart_gpio_mp_set(u32 gpio
);
70 extern __init_or_module
void moxart_gpio_mp_clear(u32 gpio
);
71 extern __init_or_module
void moxart_gpio_inout(u32 gpio
, bool inout
);
72 extern __init_or_module
void moxart_gpio_set(u32 gpio
, bool highlow
);
73 extern __init_or_module u32
moxart_gpio_get(u32 gpio
);
74 extern __init_or_module
void moxart_gpio_write_byte(u8 data
);
75 extern __init_or_module u8
moxart_gpio_read_byte(void);
77 #endif /* __ASSEMBLY__ */
80 #endif /* __MACH_GPIO_H__ */