1/* 2 * arch/arm/mach-tegra/include/mach/gpio.h 3 * 4 * Copyright (C) 2010 Google, Inc. 5 * 6 * Author: 7 * Erik Gilling <konkers@google.com> 8 * 9 * This software is licensed under the terms of the GNU General Public 10 * License version 2, as published by the Free Software Foundation, and 11 * may be copied, distributed, and modified under those terms. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 */ 19 20#ifndef __MACH_TEGRA_GPIO_H 21#define __MACH_TEGRA_GPIO_H 22 23#include <mach/irqs.h> 24 25#define ARCH_NR_GPIOS INT_GPIO_NR 26 27#include <asm-generic/gpio.h> 28 29#define gpio_get_value __gpio_get_value 30#define gpio_set_value __gpio_set_value 31#define gpio_cansleep __gpio_cansleep 32 33#define TEGRA_GPIO_TO_IRQ(gpio) (INT_GPIO_BASE + (gpio)) 34#define TEGRA_IRQ_TO_GPIO(irq) ((gpio) - INT_GPIO_BASE) 35 36static inline int gpio_to_irq(unsigned int gpio) 37{ 38 if (gpio < ARCH_NR_GPIOS) 39 return INT_GPIO_BASE + gpio; 40 return -EINVAL; 41} 42 43static inline int irq_to_gpio(unsigned int irq) 44{ 45 if ((irq >= INT_GPIO_BASE) && (irq < INT_GPIO_BASE + INT_GPIO_NR)) 46 return irq - INT_GPIO_BASE; 47 return -EINVAL; 48} 49 50void tegra_gpio_enable(int gpio); 51void tegra_gpio_disable(int gpio); 52 53#endif 54