1dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner/*
2dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner *  include/asm-sh/gpio.h
3dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner *
42967dab1ae37e30f1b71316513b49fd25c42eabeMagnus Damm * Generic GPIO API and pinmux table support for SuperH.
5dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner *
62967dab1ae37e30f1b71316513b49fd25c42eabeMagnus Damm * Copyright (c) 2008 Magnus Damm
7dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner *
8dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner * This file is subject to the terms and conditions of the GNU General Public
9dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner * License.  See the file "COPYING" in the main directory of this archive
10dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner * for more details.
11dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner */
12dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner#ifndef __ASM_SH_GPIO_H
13dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner#define __ASM_SH_GPIO_H
14dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner
15e4b41dbd60e30463cc8fab21ed45b7d6227fc338Paul Mundt#include <linux/kernel.h>
16550109378450e7982101f299d41a80e8efc759eaPaul Mundt#include <linux/errno.h>
17550109378450e7982101f299d41a80e8efc759eaPaul Mundt
18dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner#if defined(CONFIG_CPU_SH3)
19f15cbe6f1a4b4d9df59142fc8e4abb973302cf44Paul Mundt#include <cpu/gpio.h>
20dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner#endif
21dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner
2269edbba0021a48fe034849501513930f6175cb5dMagnus Damm#define ARCH_NR_GPIOS 512
23fae4339919c741f89f7e293b8c646207e1df28e1Magnus Damm#include <linux/sh_pfc.h>
2469edbba0021a48fe034849501513930f6175cb5dMagnus Damm
2569edbba0021a48fe034849501513930f6175cb5dMagnus Damm#ifdef CONFIG_GPIOLIB
2669edbba0021a48fe034849501513930f6175cb5dMagnus Damm
2769edbba0021a48fe034849501513930f6175cb5dMagnus Dammstatic inline int gpio_get_value(unsigned gpio)
2869edbba0021a48fe034849501513930f6175cb5dMagnus Damm{
2969edbba0021a48fe034849501513930f6175cb5dMagnus Damm	return __gpio_get_value(gpio);
3069edbba0021a48fe034849501513930f6175cb5dMagnus Damm}
3169edbba0021a48fe034849501513930f6175cb5dMagnus Damm
3269edbba0021a48fe034849501513930f6175cb5dMagnus Dammstatic inline void gpio_set_value(unsigned gpio, int value)
3369edbba0021a48fe034849501513930f6175cb5dMagnus Damm{
3469edbba0021a48fe034849501513930f6175cb5dMagnus Damm	__gpio_set_value(gpio, value);
3569edbba0021a48fe034849501513930f6175cb5dMagnus Damm}
3669edbba0021a48fe034849501513930f6175cb5dMagnus Damm
3769edbba0021a48fe034849501513930f6175cb5dMagnus Dammstatic inline int gpio_cansleep(unsigned gpio)
3869edbba0021a48fe034849501513930f6175cb5dMagnus Damm{
3969edbba0021a48fe034849501513930f6175cb5dMagnus Damm	return __gpio_cansleep(gpio);
4069edbba0021a48fe034849501513930f6175cb5dMagnus Damm}
4169edbba0021a48fe034849501513930f6175cb5dMagnus Damm
4269edbba0021a48fe034849501513930f6175cb5dMagnus Dammstatic inline int gpio_to_irq(unsigned gpio)
4369edbba0021a48fe034849501513930f6175cb5dMagnus Damm{
44532f3759d71d1fceb494212187dacc5a78295dc3Paul Mundt	return __gpio_to_irq(gpio);
4569edbba0021a48fe034849501513930f6175cb5dMagnus Damm}
4669edbba0021a48fe034849501513930f6175cb5dMagnus Damm
4769edbba0021a48fe034849501513930f6175cb5dMagnus Dammstatic inline int irq_to_gpio(unsigned int irq)
4869edbba0021a48fe034849501513930f6175cb5dMagnus Damm{
49532f3759d71d1fceb494212187dacc5a78295dc3Paul Mundt	return -ENOSYS;
5069edbba0021a48fe034849501513930f6175cb5dMagnus Damm}
5169edbba0021a48fe034849501513930f6175cb5dMagnus Damm
5269edbba0021a48fe034849501513930f6175cb5dMagnus Damm#endif /* CONFIG_GPIOLIB */
5369edbba0021a48fe034849501513930f6175cb5dMagnus Damm
54dfc5ed2a939baf08f9385a8c6249b719cac63665Markus Brunner#endif /* __ASM_SH_GPIO_H */
55