1 #ifndef __RKCAMSYS_GPIO_H__
2 #define __RKCAMSYS_GPIO_H__
5 //#include <asm/gpio.h>
7 #if defined(CONFIG_ARCH_ROCKCHIP)
8 #define RK30_PIN0_PA0 (0)
10 #define GPIO_BANKS (9)
13 static inline unsigned int camsys_gpio_group_pin(unsigned char *io_name)
15 unsigned char *pin_char;
18 if (strstr(io_name, "PA")) {
19 pin_char = strstr(io_name, "PA");
21 pin = *pin_char - 0x30;
22 } else if (strstr(io_name, "PB")) {
23 pin_char = strstr(io_name, "PB");
25 pin = *pin_char - 0x30;
27 } else if (strstr(io_name, "PC")) {
28 pin_char = strstr(io_name, "PC");
30 pin = *pin_char - 0x30;
32 } else if (strstr(io_name, "PD")) {
33 pin_char = strstr(io_name, "PD");
35 pin = *pin_char - 0x30;
42 static inline unsigned int camsys_gpio_group(unsigned char *io_name)
46 if (strstr(io_name,"PIN0")) {
48 } else if (strstr(io_name,"PIN1")) {
50 } else if (strstr(io_name,"PIN2")) {
52 } else if (strstr(io_name,"PIN3")) {
54 } else if (strstr(io_name,"PIN4")) {
56 } else if (strstr(io_name,"PIN5")) {
58 } else if (strstr(io_name,"PIN6")) {
60 } else if (strstr(io_name,"PIN7")) {
62 } else if (strstr(io_name,"PIN8")) {
69 static inline unsigned int camsys_gpio_get(unsigned char *io_name)
73 unsigned int group_pin;
75 #if (defined(CONFIG_ARCH_RK3066B) || defined(CONFIG_ARCH_RK3188) || defined(CONFIG_ARCH_RK319X) ||defined(CONFIG_ARCH_ROCKCHIP))
76 if (strstr(io_name, "RK30_")) {
78 group = camsys_gpio_group(io_name);
79 group_pin = camsys_gpio_group_pin(io_name);
81 if (group >= GPIO_BANKS) {
84 gpio += group*NUM_GROUP + group_pin;