/*
 *    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 DVT and PVT boards.
 *
 */

static struct omap_board_mux diamond_dvt_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

	// 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

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

	OMAP3_MUX(CAM_D2,		  	OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT         | OMAP_PIN_OFF_INPUT_PULLDOWN ), // GPIO_101

	// 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 | OMAP_PIN_OFF_WAKEUPENABLE), //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_PULLUP		     | OMAP_PIN_OFF_INPUT_PULLUP ), // 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 | OMAP_PIN_OFF_WAKEUPENABLE ), // 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

	// Assign CAM_D11 to GPIO_110 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(CAM_D11,        	OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT         | OMAP_PIN_OFF_INPUT_PULLDOWN ), // GPIO_110

	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_MODE0 | OMAP_PIN_INPUT                                        ), // MCSPI1_CLK
    OMAP3_MUX(MCSPI1_SIMO,      OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT                                       ), // MCSPI1_SIMO
    OMAP3_MUX(MCSPI1_SOMI,      OMAP_MUX_MODE0 | OMAP_PIN_INPUT                                        ), // MCSPI1_SOMI
	OMAP3_MUX(MCSPI1_CS0,     	OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN                               ), // MCSPI1_CS0

	// 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_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused
	OMAP3_MUX(MCSPI2_SIMO,      OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// 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_MODE7 | OMAP_PIN_INPUT_PULLDOWN | OMAP_PIN_OFF_INPUT_PULLDOWN ), // Unused

	// 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_PULLUP ), // UART2_TX
	OMAP3_MUX(MCBSP3_FSX,		OMAP_MUX_MODE1 | OMAP_PIN_INPUT			 | OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE ), // 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

	// Assign MCBSP1_FSX to GPIO_161 used as a push-pull, active high
	// output BATT_DISCONNECT for the battery management circuit.

	OMAP3_MUX(MCBSP1_FSX,	  	OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT	     | OMAP_PIN_OFF_OUTPUT_LOW     ), // GPIO_161

	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 }
};
