/*
 * Copyright (C) 2013 Apple Inc. All rights reserved.
 *
 * This document is the property of Apple Inc.
 * It is considered confidential and proprietary.
 *
 * This document may not be reproduced or transmitted in any form,
 * in whole or in part, without the express written permission of
 * Apple Inc.
 */
#ifndef __PLATFORM_PINCONFIG_H
#define __PLATFORM_PINCONFIG_H

/* Default S7002 SoC Pin Configuration */
#define NAND_DRIVE_STR   (DRIVE_X2 | SLOW_SLEW)

static const uint32_t gpio_default_cfg[GPIO_0_GROUP_COUNT * GPIOPADPINS] = {
/* Port  0 */
	CFG_DISABLED,							// I2S0_MCK		->
	CFG_DISABLED,							// I2S1_MCK		->
	CFG_DISABLED,							// SD_CLKOUT		->
	CFG_DISABLED,							// SD_CMD_IO		->
	CFG_DISABLED,							// SD_DATA_IO[0]	->
	CFG_DISABLED,							// SD_DATA_IO[1]	->
	CFG_DISABLED,							// SD_DATA_IO[2]	->
	CFG_DISABLED,							// SD_DATA_IO[3]	->

/* Port  1 */
	CFG_DISABLED,							// SDIO_IRQ		->
	CFG_DISABLED,							// WL_HOST_WAKE		->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->

/* Port  2 */
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->

/* Port  3 */
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->

/* Port  4 */
	CFG_DISABLED,							// GPIO0		-> 
	CFG_DISABLED,							// GPIO1		-> 
	CFG_DISABLED,							// GPIO2		-> BOOT_CONFIG[0]
	CFG_DISABLED,							// GPIO3		-> BOOT_CONFIG[1]
	CFG_DISABLED,							// GPIO4		-> BOOT_CONFIG[2]
	CFG_DISABLED,							// GPIO5		-> BOOT_CONFIG[3]
	CFG_DISABLED,							// GPIO6		-> BOARD_ID[3]
	CFG_DISABLED,							// GPIO7		->

/* Port  5 */
	CFG_DISABLED,							// GPIO8		-> 
	CFG_DISABLED,							// GPIO9		-> 
	CFG_DISABLED,							// GPIO10		-> 
	CFG_DISABLED,							// GPIO11		-> 
	CFG_DISABLED,							// GPIO12		->
	CFG_DISABLED,							// GPIO13		->
	CFG_DISABLED,							// GPIO14		->
	CFG_DISABLED,							// GPIO15		->

/* Port  6 */
	CFG_DISABLED,							// I2C1_SDA		->
	CFG_DISABLED,							// I2C1_SCL		->
	CFG_DISABLED,							// I2S0_LRCK		->
	CFG_DISABLED,							// I2S0_BCLK		->
	CFG_DISABLED,							// I2S0_DOUT		->
	CFG_DISABLED,							// I2S0_DIN		->
	CFG_DISABLED,							// I2S1_LRCK		->
	CFG_DISABLED,							// I2S1_BCLK		->

/* Port  7 */
	CFG_DISABLED,							// I2S1_DOUT		->
	CFG_DISABLED,							// I2S1_DIN		->
	CFG_DISABLED,							// UART1_TXD		->
	CFG_DISABLED,							// UART1_RXD		->
	CFG_DISABLED,							// UART1_RTSN		->
	CFG_DISABLED,							// UART1_CTSN		->
	CFG_DISABLED,							// UART2_TXD		->
	CFG_DISABLED,							// UART2_RXD		->

/* Port  8 */
	CFG_DISABLED,							// UART2_RTSN		->
	CFG_DISABLED,							// UART2_CTSN		->
	CFG_DISABLED,							// UART4_TXD		->
	CFG_DISABLED,							// UART4_RXD		->
	CFG_DISABLED,							// UART3_RTXD		->
	CFG_DISABLED,							// CLK32K_OUT		->
	CFG_DISABLED,							// TEST_CLKOUT		->
	CFG_DISABLED,							// GPIO16		-> 

/* Port  9 */
	CFG_DISABLED,							// GPIO17		->
	CFG_DISABLED,							// GPIO18		-> 
	CFG_DISABLED,							// TMR32_PWM1		->
	CFG_DISABLED,							// TMR32_PWM2		->
	CFG_DISABLED,							// TMR32_PWM3		->
	CFG_DISABLED,							// DISP_TE		->
	CFG_DISABLED,							// GPIO19		->
	CFG_DISABLED | NAND_DRIVE_STR,					// NAND_CEN[0]		->

/* Port  10 */
	CFG_DISABLED | NAND_DRIVE_STR,					// NAND_CEN[1]		->
	CFG_DISABLED | PULL_DOWN | NAND_DRIVE_STR,			// NAND_IO[7]		->
	CFG_DISABLED | PULL_DOWN | NAND_DRIVE_STR,			// NAND_IO[6]		->
	CFG_DISABLED | PULL_DOWN | NAND_DRIVE_STR,			// NAND_IO[5]		->
	CFG_DISABLED | PULL_DOWN | NAND_DRIVE_STR,			// NAND_IO[4]		->
	CFG_DISABLED | PULL_DOWN | NAND_DRIVE_STR,			// NAND_DQS		->
	CFG_DISABLED | PULL_UP | NAND_DRIVE_STR,			// NAND_REN		->
	CFG_DISABLED | PULL_DOWN | NAND_DRIVE_STR,			// NAND_IO[3]		->

/* Port  11 */
	CFG_DISABLED | PULL_DOWN | NAND_DRIVE_STR,			// NAND_IO[2]		->
	CFG_DISABLED | PULL_DOWN | NAND_DRIVE_STR,			// NAND_IO[1]		->
	CFG_DISABLED | PULL_DOWN | NAND_DRIVE_STR,			// NAND_IO[0]		->
	CFG_DISABLED | PULL_UP | NAND_DRIVE_STR,			// NAND_WEN		->
	CFG_DISABLED | PULL_DOWN | NAND_DRIVE_STR,			// NAND_CLE		->
	CFG_DISABLED | PULL_DOWN | NAND_DRIVE_STR,			// NAND_ALE		->
	CFG_DISABLED,							// I2C0_SDA		->
	CFG_DISABLED,							// I2C0_SCL		->

/* Port  12 */
	CFG_DISABLED,							// DISPLAY_SYNC		->
	CFG_DISABLED,							// SPI0_SCLK		-> SPI0_SCLK/BOARD_ID[0]
	CFG_DISABLED,							// SPI0_MOSI		-> SPI0_MOSI/BOARD_ID[1]
	CFG_DISABLED,							// SPI0_MISO		-> SPI0_MISO/BOARD_ID[2]
	CFG_DISABLED,							// SPI0_SSIN		->
	CFG_DISABLED,							// UART0_TXD		->
	CFG_DISABLED,							// UART0_RXD		->
	CFG_DISABLED,							// SPI1_SCLK		->

/* Port  13 */
	CFG_DISABLED,							// SPI1_MOSI		->
	CFG_DISABLED,							// SPI1_MISO		->
	CFG_DISABLED,							// SPI1_SSIN		->
	CFG_DISABLED,							// GPIO20		->
	CFG_DISABLED,							// GPIO21		->
	CFG_DISABLED,							// GPIO22		->
	CFG_DISABLED,							// GPIO23		->
	CFG_DISABLED,							// GPIO24		->

/* Port  14 */
	CFG_DISABLED,							// GPIO25		-> 
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->

/* Port  15 */
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->

/* Port  16 */
	CFG_DISABLED,							// ENET_MDC		->
	CFG_DISABLED,							// ENET_MDIO		->
	CFG_DISABLED,							// RMII_RXER		->
	CFG_DISABLED,							// RMII_TXEN		->
	CFG_DISABLED,							// RMII_CLK		->
	CFG_DISABLED,							// RMII_TXD[0]		->
	CFG_DISABLED,							// RMII_TXD[1]		->
	CFG_DISABLED,							// RMII_RXD[0]		->

/* Port  17 */
	CFG_DISABLED,							// RMII_RXD[1]		->
	CFG_DISABLED,							// RMII_RXD[0]		->
	CFG_DISABLED,							// RMII_CRSDV		->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
};

static const uint32_t gpio_1_default_cfg[GPIO_1_GROUP_COUNT * GPIOPADPINS] = {
/* Port  0 */
	CFG_IN,								// REQUEST_DFU1		->
	CFG_IN,								// REQUEST_DFU2		->
	CFG_IN | PULL_DOWN,						// DOCK_CONNECT		->
	CFG_DISABLED,							// CLK32K_IN		->
	CFG_DISABLED,							// SPU_UART0_TXD	->
	CFG_DISABLED,							// SPU_UART0_RXD	->
	CFG_DISABLED,							// SPU_UART0_RTSN	->
	CFG_DISABLED,							// SPU_UART0_CTSN	->

/* Port  1 */
	CFG_DISABLED,							// SPU_UART1_TXD	->
	CFG_DISABLED,							// SPU_UART1_RXD	->
	CFG_DISABLED,							// SPU_UART1_RTSN	->
	CFG_DISABLED,							// SPU_UART1_CTSN	->
	CFG_DISABLED,							// SPU_GPIO[0]		->
	CFG_DISABLED,							// SPU_GPIO[1]		->
	CFG_DISABLED,							// SPU_GPIO[2]		->
	CFG_DISABLED,							// SPU_GPIO[3]		->

/* Port  2 */
	CFG_DISABLED,							// SPU_GPIO[4]		->
	CFG_DISABLED,							// SPU_GPIO[5]		->
	CFG_DISABLED,							// SPU_GPIO[6]		->
	CFG_DISABLED,							// SPU_GPIO[7]		->
	CFG_DISABLED,							// SPU_GPIO[8]		->
	CFG_DISABLED | PULL_DOWN,					// DFU_STATUS		->
	CFG_IN | PULL_DOWN,						// FORCE_DFU		->
	CFG_DISABLED,							// POWER_GOOD		->

/* Port  3 */
	CFG_DISABLED,							// SOC_VDD_HI_LO	->
	CFG_DISABLED,							// SOC_VDD_ALL_ON	->
	CFG_DISABLED | PULL_DOWN,					// DOCK_ATTENTION	->
	CFG_DISABLED,							// PMU_HOST_WAKE	->
	CFG_DISABLED,							// SPU_SPI_SCLK		->
	CFG_DISABLED,							// SPU_SPI_MOSI		->
	CFG_DISABLED,							// SPU_SPI_MISO		->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[0]	->

/* Port  4 */
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[1]	->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[2]	->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[3]	->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[4]	->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[5]	->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[6]	->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[7]	->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[8]	->

/* Port  5 */
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[9]	->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[10]	->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[11]	->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[12]	->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[13]	->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[14]	->
	CFG_DISABLED,							// SPU_SPI_CS_TRIG[15]	->
	CFG_DISABLED,							// SPU_GPIO[9]		->

/* Port  6 */
	CFG_DISABLED,							// SPU_I2C_SDA		->
	CFG_DISABLED,							// SPU_I2C_SCL		->
	CFG_DISABLED,							// WDOG			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->

/* Port  7 */
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->

/* Port  8 */
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// RESETN		->	RESET_L
	CFG_DISABLED,							// JTAG_TRSTN		->
	CFG_DISABLED,							// JTAG_SEL		->
	CFG_DISABLED,							// JTAG_TCK		->
	CFG_DISABLED,							// JTAG_TMS		->
	CFG_DISABLED,							// JTAG_TRTCK		->
	CFG_DISABLED,							// JTAG_TDO		->

/* Port  9 */
	CFG_DISABLED,							// JTAG_TDI		->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
	CFG_DISABLED,							// NULL			->
};

#endif /* ! __PLATFORM_PINCONFIG_H */
