| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | /* * Copyright (C) ST-Ericsson SA 2010 * * License terms: GNU General Public License (GPL) version 2 */#include <linux/kernel.h>#include <linux/init.h>#include <linux/bug.h>#include <linux/string.h>#include <linux/pinctrl/machine.h>#include <linux/platform_data/pinctrl-nomadik.h>#include <asm/mach-types.h>#include <mach/hardware.h>#include "pins-db8500.h"#include "board-mop500.h"enum custom_pin_cfg_t {	PINS_FOR_DEFAULT,	PINS_FOR_U9500,};static enum custom_pin_cfg_t pinsfor;/* These simply sets bias for pins */#define BIAS(a,b) static unsigned long a[] = { b }BIAS(pd, PIN_PULL_DOWN);BIAS(in_nopull, PIN_INPUT_NOPULL);BIAS(in_nopull_slpm_nowkup, PIN_INPUT_NOPULL|PIN_SLPM_WAKEUP_DISABLE);BIAS(in_pu, PIN_INPUT_PULLUP);BIAS(in_pd, PIN_INPUT_PULLDOWN);BIAS(out_hi, PIN_OUTPUT_HIGH);BIAS(out_lo, PIN_OUTPUT_LOW);BIAS(out_lo_slpm_nowkup, PIN_OUTPUT_LOW|PIN_SLPM_WAKEUP_DISABLE);/* These also force them into GPIO mode */BIAS(gpio_in_pu, PIN_INPUT_PULLUP|PIN_GPIOMODE_ENABLED);BIAS(gpio_in_pd, PIN_INPUT_PULLDOWN|PIN_GPIOMODE_ENABLED);BIAS(gpio_in_pu_slpm_gpio_nopull, PIN_INPUT_PULLUP|PIN_GPIOMODE_ENABLED|PIN_SLPM_GPIO|PIN_SLPM_INPUT_NOPULL);BIAS(gpio_in_pd_slpm_gpio_nopull, PIN_INPUT_PULLDOWN|PIN_GPIOMODE_ENABLED|PIN_SLPM_GPIO|PIN_SLPM_INPUT_NOPULL);BIAS(gpio_out_hi, PIN_OUTPUT_HIGH|PIN_GPIOMODE_ENABLED);BIAS(gpio_out_lo, PIN_OUTPUT_LOW|PIN_GPIOMODE_ENABLED);/* Sleep modes */BIAS(slpm_in_nopull_wkup, PIN_SLEEPMODE_ENABLED|	PIN_SLPM_DIR_INPUT|PIN_SLPM_PULL_NONE|PIN_SLPM_WAKEUP_ENABLE);BIAS(slpm_in_wkup_pdis, PIN_SLEEPMODE_ENABLED|	PIN_SLPM_DIR_INPUT|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);BIAS(slpm_wkup_pdis, PIN_SLEEPMODE_ENABLED|	PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);BIAS(slpm_out_lo_pdis, PIN_SLEEPMODE_ENABLED|	PIN_SLPM_OUTPUT_LOW|PIN_SLPM_WAKEUP_DISABLE|PIN_SLPM_PDIS_DISABLED);BIAS(slpm_out_lo_wkup, PIN_SLEEPMODE_ENABLED|	PIN_SLPM_OUTPUT_LOW|PIN_SLPM_WAKEUP_ENABLE);BIAS(slpm_out_lo_wkup_pdis, PIN_SLEEPMODE_ENABLED|	PIN_SLPM_OUTPUT_LOW|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);BIAS(slpm_out_hi_wkup_pdis, PIN_SLEEPMODE_ENABLED|PIN_SLPM_OUTPUT_HIGH|	PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);BIAS(slpm_in_nopull_wkup_pdis, PIN_SLEEPMODE_ENABLED|	PIN_SLPM_INPUT_NOPULL|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);BIAS(slpm_in_pu_wkup_pdis_en, PIN_SLEEPMODE_ENABLED|PIN_SLPM_INPUT_PULLUP|	PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_ENABLED);BIAS(slpm_out_wkup_pdis, PIN_SLEEPMODE_ENABLED|	PIN_SLPM_DIR_OUTPUT|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);BIAS(out_lo_wkup_pdis, PIN_SLPM_OUTPUT_LOW|	PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);BIAS(in_wkup_pdis_en, PIN_SLPM_DIR_INPUT|PIN_SLPM_WAKEUP_ENABLE|	PIN_SLPM_PDIS_ENABLED);BIAS(in_wkup_pdis, PIN_SLPM_DIR_INPUT|PIN_SLPM_WAKEUP_ENABLE|	PIN_SLPM_PDIS_DISABLED);BIAS(out_wkup_pdis, PIN_SLPM_DIR_OUTPUT|PIN_SLPM_WAKEUP_ENABLE|	PIN_SLPM_PDIS_DISABLED);
 |