19fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass/*
29fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass * include/asm-mips/pmc-sierra/msp71xx/gpio.h
39fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass *
49fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass * This program is free software; you can redistribute it and/or modify
59fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass * it under the terms of the GNU General Public License version 2 as
69fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass * published by the Free Software Foundation.
79fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass *
89fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass * @author Patrick Glass <patrickglass@gmail.com>
99fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass */
109fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass
119fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass#ifndef __PMC_MSP71XX_GPIO_H
129fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass#define __PMC_MSP71XX_GPIO_H
139fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass
149fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass/* Max number of gpio's is 28 on chip plus 3 banks of I2C IO Expanders */
159fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass#define ARCH_NR_GPIOS (28 + (3 * 8))
169fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass
179fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass/* new generic GPIO API - see Documentation/gpio.txt */
189fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass#include <asm-generic/gpio.h>
199fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass
209fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass#define gpio_get_value	__gpio_get_value
219fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass#define gpio_set_value	__gpio_set_value
229fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass#define gpio_cansleep	__gpio_cansleep
239fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass
249fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass/* Setup calls for the gpio and gpio extended */
259fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glassextern void msp71xx_init_gpio(void);
269fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glassextern void msp71xx_init_gpio_extended(void);
279fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glassextern int msp71xx_set_output_drive(unsigned gpio, int value);
289fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass
299fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass/* Custom output drive functionss */
309fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glassstatic inline int gpio_set_output_drive(unsigned gpio, int value)
319fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass{
329fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass	return msp71xx_set_output_drive(gpio, value);
339fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass}
349fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass
359fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass/* IRQ's are not supported for gpio lines */
369fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glassstatic inline int gpio_to_irq(unsigned gpio)
379fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass{
389fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass	return -EINVAL;
399fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass}
409fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass
419fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glassstatic inline int irq_to_gpio(unsigned irq)
429fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass{
439fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass	return -EINVAL;
449fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass}
459fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass
469fa32c6b0275ab1e8b19f74fbfa3ed8411345db6Patrick Glass#endif /* __PMC_MSP71XX_GPIO_H */
47