Path: blob/master/arch/sh/boards/mach-sdk7786/gpio.c
15126 views
/*1* SDK7786 FPGA USRGPIR Support.2*3* Copyright (C) 2010 Paul Mundt4*5* This file is subject to the terms and conditions of the GNU General Public6* License. See the file "COPYING" in the main directory of this archive7* for more details.8*/9#include <linux/init.h>10#include <linux/interrupt.h>11#include <linux/gpio.h>12#include <linux/irq.h>13#include <linux/kernel.h>14#include <linux/spinlock.h>15#include <linux/io.h>16#include <mach/fpga.h>1718#define NR_FPGA_GPIOS 81920static const char *usrgpir_gpio_names[NR_FPGA_GPIOS] = {21"in0", "in1", "in2", "in3", "in4", "in5", "in6", "in7",22};2324static int usrgpir_gpio_direction_input(struct gpio_chip *chip, unsigned gpio)25{26/* always in */27return 0;28}2930static int usrgpir_gpio_get(struct gpio_chip *chip, unsigned gpio)31{32return !!(fpga_read_reg(USRGPIR) & (1 << gpio));33}3435static struct gpio_chip usrgpir_gpio_chip = {36.label = "sdk7786-fpga",37.names = usrgpir_gpio_names,38.direction_input = usrgpir_gpio_direction_input,39.get = usrgpir_gpio_get,40.base = -1, /* don't care */41.ngpio = NR_FPGA_GPIOS,42};4344static int __init usrgpir_gpio_setup(void)45{46return gpiochip_add(&usrgpir_gpio_chip);47}48device_initcall(usrgpir_gpio_setup);495051