/*
 *    Copyright (c) 2010-2011 Nest, Inc.
 *
 *      Author: Grant Erickson <grant@nestlabs.com>
 *
 *    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.
 *
 *    Description:
 *      This file implements the pin multiplexer settings for the Nest
 *      Diamond prototype boards.
 *
 */

static struct omap_board_mux diamond_prototype_mux[] __initdata = {
	OMAP3_MUX(SYS_NIRQ,			OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP   | OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE),

	// SDRC
	OMAP3_MUX(SDRC_A13,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_A14,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D31,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D31,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D30,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D29,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D28,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D27,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D26,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D25,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D24,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D23,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D22,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D21,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D20,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D19,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D18,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D17,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_D16,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_CKE1,		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_NCS1,		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_DM2,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_DM3,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_DQS2,		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDRC_DQS3,		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// DSS
	OMAP3_MUX(DSS_ACBIAS,		OMAP_MUX_MODE0							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_ACBIAS
	OMAP3_MUX(DSS_PCLK,			OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_PCLK
	OMAP3_MUX(DSS_HSYNC,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_HSYNC
	OMAP3_MUX(DSS_VSYNC,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_VSYNC
	OMAP3_MUX(DSS_DATA0,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA0
	OMAP3_MUX(DSS_DATA1,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA1
	OMAP3_MUX(DSS_DATA2,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA2
	OMAP3_MUX(DSS_DATA3,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA3
	OMAP3_MUX(DSS_DATA4,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA4
	OMAP3_MUX(DSS_DATA5,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA5
	OMAP3_MUX(DSS_DATA6,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA6
	OMAP3_MUX(DSS_DATA7,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA7
	OMAP3_MUX(DSS_DATA8,		OMAP_MUX_MODE0							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA8
	OMAP3_MUX(DSS_DATA9,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA9
	OMAP3_MUX(DSS_DATA10,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA10
	OMAP3_MUX(DSS_DATA11,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA11
	OMAP3_MUX(DSS_DATA12,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA12
	OMAP3_MUX(DSS_DATA13,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA13
	OMAP3_MUX(DSS_DATA14,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA14
	OMAP3_MUX(DSS_DATA15,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA15
	OMAP3_MUX(DSS_DATA16,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA16
	OMAP3_MUX(DSS_DATA17,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA17
	OMAP3_MUX(DSS_DATA18,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA18
	OMAP3_MUX(DSS_DATA19,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA19
	OMAP3_MUX(DSS_DATA20,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA20
	OMAP3_MUX(DSS_DATA21,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA21
	OMAP3_MUX(DSS_DATA22,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA22
	OMAP3_MUX(DSS_DATA23,		OMAP_MUX_MODE0 							 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // DSS_DATA23

	// MMC1
	OMAP3_MUX(SDMMC1_CLK,		OMAP_MUX_MODE7  						 | OMAP_PIN_OFF_INPUT_PULLUP   ), // Unused
	OMAP3_MUX(SDMMC1_CMD,		OMAP_MUX_MODE7  						 | OMAP_PIN_OFF_INPUT_PULLUP   ), // Unused
	OMAP3_MUX(SDMMC1_DAT0,		OMAP_MUX_MODE7  						 | OMAP_PIN_OFF_INPUT_PULLUP   ), // Unused
	OMAP3_MUX(SDMMC1_DAT1,		OMAP_MUX_MODE7  						 | OMAP_PIN_OFF_INPUT_PULLUP   ), // Unused
	OMAP3_MUX(SDMMC1_DAT2,		OMAP_MUX_MODE7  						 | OMAP_PIN_OFF_INPUT_PULLUP   ), // Unused
	OMAP3_MUX(SDMMC1_DAT3,		OMAP_MUX_MODE7  						 | OMAP_PIN_OFF_INPUT_PULLUP   ), // Unused

	OMAP3_MUX(GPIO_126,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused 
	OMAP3_MUX(GPIO_129,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// MMC2
	/*
	OMAP3_MUX(SDMMC2_CLK,		OMAP_MUX_MODE0  						 | OMAP_PIN_OFF_INPUT_PULLUP   ), // 
	OMAP3_MUX(SDMMC2_CMD,		OMAP_MUX_MODE0  						 | OMAP_PIN_OFF_INPUT_PULLUP   ), // 
	OMAP3_MUX(SDMMC2_DAT0,		OMAP_MUX_MODE0  						 | OMAP_PIN_OFF_INPUT_PULLUP   ), // 
	OMAP3_MUX(SDMMC2_DAT1,		OMAP_MUX_MODE0  						 | OMAP_PIN_OFF_INPUT_PULLUP   ), // 
	OMAP3_MUX(SDMMC2_DAT2,		OMAP_MUX_MODE0  						 | OMAP_PIN_OFF_INPUT_PULLUP   ), // 
	OMAP3_MUX(SDMMC2_DAT3,		OMAP_MUX_MODE0  						 | OMAP_PIN_OFF_INPUT_PULLUP   ), // 
	*/
	OMAP3_MUX(SDMMC2_DAT4,		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDMMC2_DAT5,		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDMMC2_DAT6,		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(SDMMC2_DAT7,		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// GPMC
	OMAP3_MUX(GPMC_A1,     		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(GPMC_A2,     		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(GPMC_A3,     		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(GPMC_A4,     		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(GPMC_A5,     		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(GPMC_A6,     		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(GPMC_A7,     		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(GPMC_A8,     		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// Assign GPMC_A9 to GPIO_42 used as a push-pull, active-high
	// output to INTUSB_SUSPEND to the TUSB2551 USB PHY SUSPEND
	// internal circuit deactivation signal.

	OMAP3_MUX(GPMC_A9,			OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT		 | OMAP_PIN_OFF_OUTPUT_HIGH    ), // GPIO_42

	OMAP3_MUX(GPMC_A10,    		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// NAND
	/*
	OMAP3_MUX(GPMC_NCS0,		OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_INPUT_PULLUP),
	// NBO OMAP3_MUX(GPMC_NCS1,  OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_INPUT_PULLUP),
	// NBO OMAP3_MUX(GPMC_NCS2,  OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_INPUT_PULLUP),
	*/

	OMAP3_MUX(GPMC_NCS3,		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(GPMC_NCS4,		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(GPMC_NCS5,		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	/*
	OMAP3_MUX(GPMC_NWE,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_NOE,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_HIGH),
	OMAP3_MUX(GPMC_D0,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D1,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D2,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D3,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D4,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D5,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D6,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D7,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D8,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D9,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D10,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D11,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D12,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D13,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D14,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	OMAP3_MUX(GPMC_D15,			OMAP_MUX_MODE0 | OMAP_PIN_OFF_OUTPUT_LOW),
	*/

	OMAP3_MUX(GPMC_CLK,			OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// Assign GPMC_NBE1 to GPIO_61 used as a push-pull output to the
	// ZigBee active-low reset.

	OMAP3_MUX(GPMC_NBE1,		OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT		 | OMAP_PIN_OFF_OUTPUT_LOW     ), // GPIO_61

	// UART3
	OMAP3_MUX(UART3_CTS_RCTX,	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(UART3_RTS_SD,		OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(UART3_RX_IRRX,	OMAP_MUX_MODE0 | OMAP_PIN_INPUT          | OMAP_PIN_OFF_INPUT_PULLDOWN ), // UART3_RX_IRRX
	OMAP3_MUX(UART3_TX_IRTX,	OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT         | OMAP_PIN_OFF_INPUT_PULLUP   ), // UART3_TX_IRTX

	// Debug console UART
	OMAP3_MUX(UART1_RTS,      	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // UART1_RTS
	OMAP3_MUX(UART1_CTS,      	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // UART1_CTS

	// Assign I2C3_SCL to GPIO_184 used as a push-pull active-low
	// output OFN_RESET_L to the Avago ADBS A320 Optical Finger
	// Navigation (OFN) sensor NRST input.

	OMAP3_MUX(I2C3_SCL,			OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT         | OMAP_PIN_OFF_INPUT_PULLDOWN ), // GPIO_184

	// Assign I2C3_SDA to GPIO_185 used as a push-pull active-high
	// output OFN_SHUTDOWN to the Avago ADBS A320 Optical Finger
	// Navigation (OFN) sensor SHTDWN input.

	OMAP3_MUX(I2C3_SDA,			OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT         | OMAP_PIN_OFF_INPUT_PULLDOWN ), // GPIO_185

	// Camera
	OMAP3_MUX(CAM_XCLKA,      	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(CAM_XCLKB,      	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(CAM_PCLK,       	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(CAM_VS,         	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(CAM_HS,         	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(CAM_FLD,        	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(CAM_WEN,        	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(CAM_STROBE,     	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(CAM_D0,         	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(CAM_D1,         	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(CAM_D2,         	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// Wi-Fi
	//
	// Assign CAM_D3 to GPIO_102 used as a push-pull, active high
	// WL_IRQ interrupt input from the TI WL1270 wireless Ethernet.

	OMAP3_MUX(CAM_D3,			OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP   | OMAP_PIN_OFF_INPUT_PULLUP   ), // GPIO_102

	// Assign CAM_D4 to GPIO_103 used as a push-pull, active high
	// WL_EN enable output to the TI WL1270 wireless Ethernet.

	OMAP3_MUX(CAM_D4,			OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT         | OMAP_PIN_OFF_INPUT_PULLUP   ), // GPIO_103

	// Assign CAM_D6 to GPIO_105 used as a push-pull, active-low input
	// LCD_ID from the LCD module flexible printed circuit.

	OMAP3_MUX(CAM_D6,		  	OMAP_MUX_MODE4 | OMAP_PIN_INPUT		     | OMAP_PIN_OFF_INPUT_PULLDOWN ), // GPIO_105

	// Assign CAM_D9 to GPIO_108 used as a push-pull active-low
	// input OFN_MOTION_L from the Avago ADBS A320 Optical Finger
	// Navigation (OFN) sensor MOTION output.

	OMAP3_MUX(CAM_D9,		  	OMAP_MUX_MODE4 | OMAP_PIN_INPUT		     | OMAP_PIN_OFF_INPUT_PULLDOWN ), // GPIO_108

	// Assign CAM_D10 to GPIO_109 used as a push-pull, active low
	// output LCD_nRESET for the Tianma TM025ZDZ01 LCD reset.

	OMAP3_MUX(CAM_D10,        	OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT         | OMAP_PIN_OFF_INPUT_PULLDOWN ), // GPIO_109
	OMAP3_MUX(CAM_D11,        	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	OMAP3_MUX(SYS_CLKOUT2,    	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(HDQ_SIO,        	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// McSPI1

	// Surprisingly, per http://e2e.ti.com/support/dsp/
	// omap_applications_processors/f/447/p/54130/193260.aspx#193260,
	// the SPI clock MUST be configured as an input for the SPI
	// interface to work correctly.

	OMAP3_MUX(MCSPI1_CLK,     	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(MCSPI1_SIMO,    	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(MCSPI1_SOMI,    	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(MCSPI1_CS0,     	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// Assign MCSPI1_CS3 to MM2_TXDAT used as a push-pull,
	// input/output for the TUSB2551 USB PHY VP/D+ data signal.

	OMAP3_MUX(MCSPI1_CS3,		OMAP_MUX_MODE5 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // MM2_TXDAT

	// McSPI2
	OMAP3_MUX(MCSPI2_CLK,       OMAP_MUX_MODE0 | OMAP_PIN_INPUT                                        ), // MCSPI2_CLK
	OMAP3_MUX(MCSPI2_SIMO,      OMAP_MUX_MODE0 | OMAP_PIN_INPUT                                        ), // MCSPI2_SIMO

	// Assign MCSPI2_SOMI to GPT10_PWM_EVT used as a push-pull pulse
	// width modulated (PWM) signal for the Samsung LMS350DF0[13] /
	// Tianma TM025ZDZ01 backlight control.

	OMAP3_MUX(MCSPI2_SOMI,		OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT                                       ), // GPT10_PWM_EVT

	OMAP3_MUX(MCSPI2_CS0,       OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN                               ), // MCSPI2_CS0

	// Assign MCSPI2_CS1 to MM2_TXEN_N used as a push-pull, active-low
	// output to the TUSB2551 USB PHY OE# output (transmit) enable.

	OMAP3_MUX(MCSPI2_CS1,		OMAP_MUX_MODE5 | OMAP_PIN_OUTPUT		 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // MM2_TXEN_N

	// McBSP2
	OMAP3_MUX(MCBSP2_FSX,     	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(MCBSP2_CLKX,    	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(MCBSP2_DR,      	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(MCBSP2_DX,      	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// Assign MCBSP3 as UART2 (Mode 1) for communication with the
	// ZigBee module.

	OMAP3_MUX(MCBSP3_DX,		OMAP_MUX_MODE1 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // UART2_CTS
	OMAP3_MUX(MCBSP3_DR,		OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT		 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // UART2_RTS
	OMAP3_MUX(MCBSP3_CLKX,		OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT		 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // UART2_TX
	OMAP3_MUX(MCBSP3_FSX,		OMAP_MUX_MODE1 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // UART2_RX

	// JTAG_RTCK ??

	// 32 and 187 are not bonded out in any of the AM3703 packages
	// 52, 53, 
	// 63, 64, 
	// 112, 113, 114, 115, 
	// 127, 128, 
	// 144, 145, 146, 147, 
	// 152, 153, 154, 155, 
	// 175, and 176
	// are non-bonded on the AM3703 CUS
	OMAP3_MUX(CHASSIS_ARMIRQ,	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 32
	OMAP3_MUX(CHASSIS_IVAIRQ,	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 187
	OMAP3_MUX(GPMC_NCS1,      	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 52
	OMAP3_MUX(GPMC_NCS2,      	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 53
	OMAP3_MUX(GPMC_WAIT1,     	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 63
	OMAP3_MUX(GPMC_WAIT2,     	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 64
	OMAP3_MUX(CSI2_DX0,       	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 112
	OMAP3_MUX(CSI2_DY0,       	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 113
	OMAP3_MUX(CSI2_DX1,       	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 114
	OMAP3_MUX(CSI2_DY1,       	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 115
	OMAP3_MUX(GPIO_127,       	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 127
	OMAP3_MUX(GPIO_128,       	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 128
	OMAP3_MUX(UART2_CTS,      	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 144
	OMAP3_MUX(UART2_RTS,      	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 145
	OMAP3_MUX(UART2_TX,       	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 146
	OMAP3_MUX(UART2_RX,       	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 147
	OMAP3_MUX(MCBSP4_CLKX,    	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 152
	OMAP3_MUX(MCBSP4_DR,      	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 153
	OMAP3_MUX(MCBSP4_DX,      	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 154
	OMAP3_MUX(MCBSP4_FSX,     	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 155
	OMAP3_MUX(MCSPI1_CS1,     	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 175
	OMAP3_MUX(MCSPI1_CS2,     	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // 176

	// AM37x Device-only High-speed USB (HSUSB) ULPI to the TPS65921 USB 2.0 PHY
	OMAP3_MUX(HSUSB0_DATA0,		OMAP_MUX_MODE0 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // USB
	OMAP3_MUX(HSUSB0_DATA1,		OMAP_MUX_MODE0 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // USB
	OMAP3_MUX(HSUSB0_DATA2,		OMAP_MUX_MODE0 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // USB
	OMAP3_MUX(HSUSB0_DATA3,		OMAP_MUX_MODE0 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // USB
	OMAP3_MUX(HSUSB0_DATA4,		OMAP_MUX_MODE0 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // USB
	OMAP3_MUX(HSUSB0_DATA5,		OMAP_MUX_MODE0 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // USB
	OMAP3_MUX(HSUSB0_DATA6,		OMAP_MUX_MODE0 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // USB
	OMAP3_MUX(HSUSB0_DATA7,		OMAP_MUX_MODE0 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // USB
	OMAP3_MUX(HSUSB0_CLK,  		OMAP_MUX_MODE0 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // USB
	OMAP3_MUX(HSUSB0_STP,  		OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT		 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // USB
	OMAP3_MUX(HSUSB0_DIR,  		OMAP_MUX_MODE0 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // USB
	OMAP3_MUX(HSUSB0_NXT,  		OMAP_MUX_MODE0 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLDOWN ), // USB

	// McBSP1
	OMAP3_MUX(MCBSP1_CLKR,    	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(MCBSP1_FSR,     	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// Assign MCBSP1_DX to GPIO_158 used as a push-pull, active-high
	// output to the ZigBee power supply.

	OMAP3_MUX(MCBSP1_DX,		OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT		 | OMAP_PIN_OFF_OUTPUT_LOW     ), // GPIO_158

	OMAP3_MUX(MCBSP1_DR,      	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(MCBSP_CLKS,     	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(MCBSP1_FSX,     	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	OMAP3_MUX(MCBSP1_CLKX,    	OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// ETK
	OMAP3_MUX(ETK_CLK,        	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_CTL,        	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D0,         	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D1,         	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D2,         	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D3,         	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D4,         	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D5,         	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D6,         	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D7,         	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D8,         	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D9,         	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D10,        	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D11,        	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D12,        	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(ETK_D13,        	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// Assign ETK_D15 to MM2_RCV used as a push-pull input from the
	// TUSB2551 USB PHY RCV signal.

	OMAP3_MUX(ETK_D14,			OMAP_MUX_MODE5 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // MM2_RCV

	// Assign ETK_D15 to MM2_TXSE0 used as a push-pull input/output
	// for the TUSB2551 USB PHY VM/D- data signal.

	OMAP3_MUX(ETK_D15,			OMAP_MUX_MODE5 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // MM2_TXSE0

	{ .reg_offset = OMAP_MUX_TERMINATOR }
};
