/*
 * arch/arm/mach-pxa/include/mach/mfp-pxa930.h
 *
 * PXA930 specific MFP configuration definitions
 *
 * Copyright (C) 2007-2008 Marvell International Ltd.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2 as
 *  published by the Free Software Foundation.
 */

#ifndef __ASM_ARCH_MFP_PXA9xx_H
#define __ASM_ARCH_MFP_PXA9xx_H

#include <mach/mfp-pxa3xx.h>

/* GPIO */
#define GPIO46_GPIO		MFP_CFG(GPIO46, AF0)
#define GPIO49_GPIO		MFP_CFG(GPIO49, AF0)
#define GPIO50_GPIO		MFP_CFG(GPIO50, AF0)
#define GPIO51_GPIO		MFP_CFG(GPIO51, AF0)
#define GPIO52_GPIO		MFP_CFG(GPIO52, AF0)
#define GPIO56_GPIO		MFP_CFG(GPIO56, AF0)
#define GPIO58_GPIO		MFP_CFG(GPIO58, AF0)
#define GPIO59_GPIO		MFP_CFG(GPIO59, AF0)
#define GPIO60_GPIO		MFP_CFG(GPIO60, AF0)
#define GPIO61_GPIO		MFP_CFG(GPIO61, AF0)
#define GPIO62_GPIO		MFP_CFG(GPIO62, AF0)

#define GSIM_UCLK_GPIO_79	MFP_CFG(GSIM_UCLK, AF0)
#define GSIM_UIO_GPIO_80	MFP_CFG(GSIM_UIO, AF0)
#define GSIM_nURST_GPIO_81	MFP_CFG(GSIM_nURST, AF0)
#define GSIM_UDET_GPIO_82	MFP_CFG(GSIM_UDET, AF0)

#define DF_IO15_GPIO_28		MFP_CFG(DF_IO15, AF0)
#define DF_IO14_GPIO_29		MFP_CFG(DF_IO14, AF0)
#define DF_IO13_GPIO_30		MFP_CFG(DF_IO13, AF0)
#define DF_IO12_GPIO_31		MFP_CFG(DF_IO12, AF0)
#define DF_IO11_GPIO_32		MFP_CFG(DF_IO11, AF0)
#define DF_IO10_GPIO_33		MFP_CFG(DF_IO10, AF0)
#define DF_IO9_GPIO_34		MFP_CFG(DF_IO9, AF0)
#define DF_IO8_GPIO_35		MFP_CFG(DF_IO8, AF0)
#define DF_IO7_GPIO_36		MFP_CFG(DF_IO7, AF0)
#define DF_IO6_GPIO_37		MFP_CFG(DF_IO6, AF0)
#define DF_IO5_GPIO_38		MFP_CFG(DF_IO5, AF0)
#define DF_IO4_GPIO_39		MFP_CFG(DF_IO4, AF0)
#define DF_IO3_GPIO_40		MFP_CFG(DF_IO3, AF0)
#define DF_IO2_GPIO_41		MFP_CFG(DF_IO2, AF0)
#define DF_IO1_GPIO_42		MFP_CFG(DF_IO1, AF0)
#define DF_IO0_GPIO_43		MFP_CFG(DF_IO0, AF0)
#define DF_nCS0_GPIO_44		MFP_CFG(DF_nCS0, AF0)
#define DF_nCS1_GPIO_45		MFP_CFG(DF_nCS1, AF0)
#define DF_nWE_GPIO_46		MFP_CFG(DF_nWE, AF0)
#define DF_nRE_nOE_GPIO_47	MFP_CFG(DF_nRE_nOE, AF0)
#define DF_CLE_nOE_GPIO_48	MFP_CFG(DF_CLE_nOE, AF0)
#define DF_nADV1_ALE_GPIO_49	MFP_CFG(DF_nADV1_ALE, AF0)
#define DF_nADV2_ALE_GPIO_50	MFP_CFG(DF_nADV2_ALE, AF0)
#define DF_INT_RnB_GPIO_51	MFP_CFG(DF_INT_RnB, AF0)
#define DF_SCLK_E_GPIO_52	MFP_CFG(DF_SCLK_E, AF0)

#define DF_ADDR0_GPIO_53	MFP_CFG(DF_ADDR0, AF0)
#define DF_ADDR1_GPIO_54	MFP_CFG(DF_ADDR1, AF0)
#define DF_ADDR2_GPIO_55	MFP_CFG(DF_ADDR2, AF0)
#define DF_ADDR3_GPIO_56	MFP_CFG(DF_ADDR3, AF0)
#define nXCVREN_GPIO_57		MFP_CFG(nXCVREN, AF0)
#define nLUA_GPIO_58		MFP_CFG(nLUA, AF0)
#define nLLA_GPIO_59		MFP_CFG(nLLA, AF0)
#define nBE0_GPIO_60		MFP_CFG(nBE0, AF0)
#define nBE1_GPIO_61		MFP_CFG(nBE1, AF0)
#define RDY_GPIO_62		MFP_CFG(RDY, AF0)
#define PMIC_INT_GPIO83		MFP_CFG_LPM(PMIC_INT, AF0, PULL_HIGH)

/* Chip Select */
#define DF_nCS0_nCS2		MFP_CFG_LPM(DF_nCS0, AF3, PULL_HIGH)
#define DF_nCS1_nCS3		MFP_CFG_LPM(DF_nCS1, AF3, PULL_HIGH)

/* AC97 */
#define GPIO83_BAC97_SYSCLK	MFP_CFG(GPIO83, AF3)
#define GPIO84_BAC97_SDATA_IN0	MFP_CFG(GPIO84, AF3)
#define GPIO85_BAC97_BITCLK	MFP_CFG(GPIO85, AF3)
#define GPIO86_BAC97_nRESET	MFP_CFG(GPIO86, AF3)
#define GPIO87_BAC97_SYNC	MFP_CFG(GPIO87, AF3)
#define GPIO88_BAC97_SDATA_OUT	MFP_CFG(GPIO88, AF3)

/* I2C */
#define GPIO39_CI2C_SCL		MFP_CFG_LPM(GPIO39, AF3, PULL_HIGH)
#define GPIO40_CI2C_SDA		MFP_CFG_LPM(GPIO40, AF3, PULL_HIGH)

#define GPIO51_CI2C_SCL		MFP_CFG_LPM(GPIO51, AF3, PULL_HIGH)
#define GPIO52_CI2C_SDA		MFP_CFG_LPM(GPIO52, AF3, PULL_HIGH)

#define GPIO63_CI2C_SCL		MFP_CFG_LPM(GPIO63, AF4, PULL_HIGH)
#define GPIO64_CI2C_SDA		MFP_CFG_LPM(GPIO64, AF4, PULL_HIGH)

#define GPIO73_CI2C_SCL		MFP_CFG_LPM(GPIO73, AF1, PULL_HIGH)
#define GPIO74_CI2C_SDA		MFP_CFG_LPM(GPIO74, AF1, PULL_HIGH)

#define GPIO77_CI2C_SCL		MFP_CFG_LPM(GPIO77, AF2, PULL_HIGH)
#define GPIO78_CI2C_SDA		MFP_CFG_LPM(GPIO78, AF2, PULL_HIGH)

#define GPIO89_CI2C_SCL		MFP_CFG_LPM(GPIO89, AF1, PULL_HIGH)
#define GPIO90_CI2C_SDA		MFP_CFG_LPM(GPIO90, AF1, PULL_HIGH)

#define GPIO95_CI2C_SCL		MFP_CFG_LPM(GPIO95, AF1, PULL_HIGH)
#define GPIO96_CI2C_SDA		MFP_CFG_LPM(GPIO96, AF1, PULL_HIGH)

#define GPIO97_CI2C_SCL		MFP_CFG_LPM(GPIO97, AF3, PULL_HIGH)
#define GPIO98_CI2C_SDA		MFP_CFG_LPM(GPIO98, AF3, PULL_HIGH)

/* QCI */
#define GPIO63_CI_DD_9		MFP_CFG_LPM(GPIO63, AF1, PULL_LOW)
#define GPIO64_CI_DD_8		MFP_CFG_LPM(GPIO64, AF1, PULL_LOW)
#define GPIO65_CI_DD_7		MFP_CFG_LPM(GPIO65, AF1, PULL_LOW)
#define GPIO66_CI_DD_6		MFP_CFG_LPM(GPIO66, AF1, PULL_LOW)
#define GPIO67_CI_DD_5		MFP_CFG_LPM(GPIO67, AF1, PULL_LOW)
#define GPIO68_CI_DD_4		MFP_CFG_LPM(GPIO68, AF1, PULL_LOW)
#define GPIO69_CI_DD_3		MFP_CFG_LPM(GPIO69, AF1, PULL_LOW)
#define GPIO70_CI_DD_2		MFP_CFG_LPM(GPIO70, AF1, PULL_LOW)
#define GPIO71_CI_DD_1		MFP_CFG_LPM(GPIO71, AF1, PULL_LOW)
#define GPIO72_CI_DD_0		MFP_CFG_LPM(GPIO72, AF1, PULL_LOW)
#define GPIO73_CI_HSYNC		MFP_CFG_LPM(GPIO73, AF1, PULL_LOW)
#define GPIO74_CI_VSYNC		MFP_CFG_LPM(GPIO74, AF1, PULL_LOW)
#define GPIO75_CI_MCLK		MFP_CFG_LPM(GPIO75, AF1, PULL_LOW)
#define GPIO76_CI_PCLK		MFP_CFG_LPM(GPIO76, AF1, PULL_LOW)

/* KEYPAD */
#define GPIO4_KP_DKIN_4		MFP_CFG_LPM(GPIO4, AF3, FLOAT)
#define GPIO5_KP_DKIN_5		MFP_CFG_LPM(GPIO5, AF3, FLOAT)
#define GPIO6_KP_DKIN_6		MFP_CFG_LPM(GPIO6, AF3, FLOAT)
#define GPIO7_KP_DKIN_7		MFP_CFG_LPM(GPIO7, AF3, FLOAT)
#define GPIO8_KP_DKIN_4		MFP_CFG_LPM(GPIO8, AF3, FLOAT)
#define GPIO9_KP_DKIN_5		MFP_CFG_LPM(GPIO9, AF3, FLOAT)
#define GPIO10_KP_DKIN_6	MFP_CFG_LPM(GPIO10, AF3, FLOAT)
#define GPIO11_KP_DKIN_7	MFP_CFG_LPM(GPIO11, AF3, FLOAT)

#define GPIO12_KP_DKIN_0	MFP_CFG_LPM(GPIO12, AF2, FLOAT)
#define GPIO13_KP_DKIN_1	MFP_CFG_LPM(GPIO13, AF2, FLOAT)
#define GPIO14_KP_DKIN_2	MFP_CFG_LPM(GPIO14, AF2, FLOAT)
#define GPIO15_KP_DKIN_3	MFP_CFG_LPM(GPIO15, AF2, FLOAT)

#define GPIO41_KP_DKIN_0	MFP_CFG_LPM(GPIO41, AF2, FLOAT)
#define GPIO42_KP_DKIN_1	MFP_CFG_LPM(GPIO42, AF2, FLOAT)
#define GPIO43_KP_DKIN_2	MFP_CFG_LPM(GPIO43, AF2, FLOAT)
#define GPIO44_KP_DKIN_3	MFP_CFG_LPM(GPIO44, AF2, FLOAT)
#define GPIO41_KP_DKIN_4	MFP_CFG_LPM(GPIO41, AF4, FLOAT)
#define GPIO42_KP_DKIN_5	MFP_CFG_LPM(GPIO42, AF4, FLOAT)

#define GPIO0_KP_MKIN_0		MFP_CFG_LPM(GPIO0, AF1, FLOAT)
#define GPIO2_KP_MKIN_1		MFP_CFG_LPM(GPIO2, AF1, FLOAT)
#define GPIO4_KP_MKIN_2		MFP_CFG_LPM(GPIO4, AF1, FLOAT)
#define GPIO6_KP_MKIN_3		MFP_CFG_LPM(GPIO6, AF1, FLOAT)
#define GPIO8_KP_MKIN_4		MFP_CFG_LPM(GPIO8, AF1, FLOAT)
#define GPIO10_KP_MKIN_5	MFP_CFG_LPM(GPIO10, AF1, FLOAT)
#define GPIO12_KP_MKIN_6	MFP_CFG_LPM(GPIO12, AF1, FLOAT)
#define GPIO14_KP_MKIN_7	MFP_CFG(GPIO14, AF1)
#define GPIO35_KP_MKIN_5	MFP_CFG(GPIO35, AF4)

#define GPIO1_KP_MKOUT_0	MFP_CFG_LPM(GPIO1, AF1, DRIVE_HIGH)
#define GPIO3_KP_MKOUT_1	MFP_CFG_LPM(GPIO3, AF1, DRIVE_HIGH)
#define GPIO5_KP_MKOUT_2	MFP_CFG_LPM(GPIO5, AF1, DRIVE_HIGH)
#define GPIO7_KP_MKOUT_3	MFP_CFG_LPM(GPIO7, AF1, DRIVE_HIGH)
#define GPIO9_KP_MKOUT_4	MFP_CFG_LPM(GPIO9, AF1, DRIVE_HIGH)
#define GPIO11_KP_MKOUT_5	MFP_CFG_LPM(GPIO11, AF1, DRIVE_HIGH)
#define GPIO13_KP_MKOUT_6	MFP_CFG_LPM(GPIO13, AF1, DRIVE_HIGH)
#define GPIO15_KP_MKOUT_7	MFP_CFG_LPM(GPIO15, AF1, DRIVE_HIGH)
#define GPIO36_KP_MKOUT_5	MFP_CFG_LPM(GPIO36, AF4, DRIVE_HIGH)

/* LCD */
#define GPIO17_LCD_FCLK_RD	MFP_CFG(GPIO17, AF1)
#define GPIO18_LCD_LCLK_A0	MFP_CFG(GPIO18, AF1)
#define GPIO19_LCD_PCLK_WR	MFP_CFG(GPIO19, AF1)
#define GPIO20_LCD_BIAS		MFP_CFG(GPIO20, AF1)
#define GPIO21_LCD_CS		MFP_CFG(GPIO21, AF1)
#define GPIO22_LCD_CS2		MFP_CFG(GPIO22, AF2)
#define GPIO22_LCD_VSYNC	MFP_CFG(GPIO22, AF1)
#define GPIO23_LCD_DD0		MFP_CFG(GPIO23, AF1)
#define GPIO24_LCD_DD1		MFP_CFG(GPIO24, AF1)
#define GPIO25_LCD_DD2		MFP_CFG(GPIO25, AF1)
#define GPIO26_LCD_DD3		MFP_CFG(GPIO26, AF1)
#define GPIO27_LCD_DD4		MFP_CFG(GPIO27, AF1)
#define GPIO28_LCD_DD5		MFP_CFG(GPIO28, AF1)
#define GPIO29_LCD_DD6		MFP_CFG(GPIO29, AF1)
#define GPIO30_LCD_DD7		MFP_CFG(GPIO30, AF1)
#define GPIO31_LCD_DD8		MFP_CFG(GPIO31, AF1)
#define GPIO32_LCD_DD9		MFP_CFG(GPIO32, AF1)
