/* * at91 pinctrl driver based on at91 pinmux core * * Copyright (C) 2011-2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> * * Under GPLv2 only */#include<linux/clk.h>#include<linux/err.h>#include<linux/init.h>#include<linux/module.h>#include<linux/of.h>#include<linux/of_device.h>#include<linux/of_address.h>#include<linux/of_irq.h>#include<linux/slab.h>#include<linux/interrupt.h>#include<linux/irq.h>#include<linux/irqdomain.h>#include<linux/io.h>#include<linux/gpio.h>#include<linux/pinctrl/machine.h>#include<linux/pinctrl/pinconf.h>#include<linux/pinctrl/pinctrl.h>#include<linux/pinctrl/pinmux.h>/* Since we request GPIOs from ourself */#include<linux/pinctrl/consumer.h>#include<asm/mach/irq.h>#include<mach/hardware.h>#include<mach/at91_pio.h>#include"core.h"#define MAX_NB_GPIO_PER_BANK 32structat91_pinctrl_mux_ops;structat91_gpio_chip{structgpio_chipchip;structpinctrl_gpio_rangerange;struct