|  | @@ -0,0 +1,186 @@
 | 
	
		
			
				|  |  | +/*
 | 
	
		
			
				|  |  | + * Copyright (C) 2010 Nokia
 | 
	
		
			
				|  |  | + * Copyright (C) 2010 Texas Instruments
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * 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.
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#include <linux/module.h>
 | 
	
		
			
				|  |  | +#include <linux/init.h>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#include "mux.h"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#ifdef CONFIG_OMAP_MUX
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#define _OMAP2430_MUXENTRY(M0, g, m0, m1, m2, m3, m4, m5, m6, m7)		\
 | 
	
		
			
				|  |  | +{									\
 | 
	
		
			
				|  |  | +	.reg_offset	= (OMAP2430_CONTROL_PADCONF_##M0##_OFFSET),	\
 | 
	
		
			
				|  |  | +	.gpio		= (g),						\
 | 
	
		
			
				|  |  | +	.muxnames	= { m0, m1, m2, m3, m4, m5, m6, m7 },		\
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#define _OMAP2430_MUXENTRY(M0, g, m0, m1, m2, m3, m4, m5, m6, m7)		\
 | 
	
		
			
				|  |  | +{									\
 | 
	
		
			
				|  |  | +	.reg_offset	= (OMAP2430_CONTROL_PADCONF_##M0##_OFFSET),	\
 | 
	
		
			
				|  |  | +	.gpio		= (g),						\
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#define _OMAP2430_BALLENTRY(M0, bb, bt)					\
 | 
	
		
			
				|  |  | +{									\
 | 
	
		
			
				|  |  | +	.reg_offset	= (OMAP2430_CONTROL_PADCONF_##M0##_OFFSET),	\
 | 
	
		
			
				|  |  | +	.balls		= { bb, bt },					\
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/*
 | 
	
		
			
				|  |  | + * Superset of all mux modes for omap2430
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +static struct omap_mux __initdata omap2430_muxmodes[] = {
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_D0, 133,
 | 
	
		
			
				|  |  | +		"cam_d0", "hw_dbg0", "sti_dout", "gpio_133",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d2", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_D10, 146,
 | 
	
		
			
				|  |  | +		"cam_d10", NULL, NULL, "gpio_146",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d12", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_D11, 145,
 | 
	
		
			
				|  |  | +		"cam_d11", NULL, NULL, "gpio_145",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d13", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_D1, 132,
 | 
	
		
			
				|  |  | +		"cam_d1", "hw_dbg1", "sti_din", "gpio_132",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d3", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_D2, 129,
 | 
	
		
			
				|  |  | +		"cam_d2", "hw_dbg2", "mcbsp1_clkx", "gpio_129",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d4", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_D3, 128,
 | 
	
		
			
				|  |  | +		"cam_d3", "hw_dbg3", "mcbsp1_dr", "gpio_128",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d5", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_D4, 143,
 | 
	
		
			
				|  |  | +		"cam_d4", "hw_dbg4", "mcbsp1_fsr", "gpio_143",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d6", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_D5, 112,
 | 
	
		
			
				|  |  | +		"cam_d5", "hw_dbg5", "mcbsp1_clkr", "gpio_112",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d7", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_D6, 137,
 | 
	
		
			
				|  |  | +		"cam_d6", "hw_dbg6", NULL, "gpio_137",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d8", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_D7, 136,
 | 
	
		
			
				|  |  | +		"cam_d7", "hw_dbg7", NULL, "gpio_136",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d9", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_D8, 135,
 | 
	
		
			
				|  |  | +		"cam_d8", "hw_dbg8", NULL, "gpio_135",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d10", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_D9, 134,
 | 
	
		
			
				|  |  | +		"cam_d9", "hw_dbg9", NULL, "gpio_134",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d11", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_HS, 11,
 | 
	
		
			
				|  |  | +		"cam_hs", "hw_dbg10", "mcbsp1_dx", "gpio_11",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d1", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_LCLK, 0,
 | 
	
		
			
				|  |  | +		"cam_lclk", NULL, "mcbsp_clks", NULL,
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_c1", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_VS, 12,
 | 
	
		
			
				|  |  | +		"cam_vs", "hw_dbg11", "mcbsp1_fsx", "gpio_12",
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_d0", "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(CAM_XCLK, 0,
 | 
	
		
			
				|  |  | +		"cam_xclk", NULL, "sti_clk", NULL,
 | 
	
		
			
				|  |  | +		NULL, NULL, "etk_c2", NULL),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_ACBIAS, 48,
 | 
	
		
			
				|  |  | +		"dss_acbias", NULL, "mcbsp2_fsx", "gpio_48",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA0, 40,
 | 
	
		
			
				|  |  | +		"dss_data0", "uart1_cts", NULL, "gpio_40",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA10, 128,
 | 
	
		
			
				|  |  | +		"dss_data10", "sdi_data1n", NULL, "gpio_128",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA11, 129,
 | 
	
		
			
				|  |  | +		"dss_data11", "sdi_data1p", NULL, "gpio_129",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA12, 130,
 | 
	
		
			
				|  |  | +		"dss_data12", "sdi_data2n", NULL, "gpio_130",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA13, 131,
 | 
	
		
			
				|  |  | +		"dss_data13", "sdi_data2p", NULL, "gpio_131",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA14, 132,
 | 
	
		
			
				|  |  | +		"dss_data14", "sdi_data3n", NULL, "gpio_132",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA15, 133,
 | 
	
		
			
				|  |  | +		"dss_data15", "sdi_data3p", NULL, "gpio_133",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA16, 46,
 | 
	
		
			
				|  |  | +		"dss_data16", NULL, NULL, "gpio_46",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA17, 47,
 | 
	
		
			
				|  |  | +		"dss_data17", NULL, NULL, "gpio_47",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA1, 41,
 | 
	
		
			
				|  |  | +		"dss_data1", "uart1_rts", NULL, "gpio_41",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA2, 42,
 | 
	
		
			
				|  |  | +		"dss_data2", "uart1_tx", NULL, "gpio_42",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA3, 43,
 | 
	
		
			
				|  |  | +		"dss_data3", "uart1_rx", NULL, "gpio_43",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA4, 44,
 | 
	
		
			
				|  |  | +		"dss_data4", "uart3_rx_irrx", NULL, "gpio_44",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA5, 45,
 | 
	
		
			
				|  |  | +		"dss_data5", "uart3_tx_irtx", NULL, "gpio_45",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA6, 144,
 | 
	
		
			
				|  |  | +		"dss_data6", NULL, NULL, "gpio_144",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA7, 147,
 | 
	
		
			
				|  |  | +		"dss_data7", NULL, NULL, "gpio_147",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA8, 38,
 | 
	
		
			
				|  |  | +		"dss_data8", NULL, NULL, "gpio_38",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_DATA9, 39,
 | 
	
		
			
				|  |  | +		"dss_data9", NULL, NULL, "gpio_39",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(DSS_HSYNC, 110,
 | 
	
		
			
				|  |  | +		"dss_hsync", NULL, NULL, "gpio_110",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(GPIO_113, 113,
 | 
	
		
			
				|  |  | +		"gpio_113", "mcbsp2_clkx", NULL, "gpio_113",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(GPIO_114, 114,
 | 
	
		
			
				|  |  | +		"gpio_114", "mcbsp2_fsx", NULL, "gpio_114",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(GPIO_115, 115,
 | 
	
		
			
				|  |  | +		"gpio_115", "mcbsp2_dr", NULL, "gpio_115",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(GPIO_116, 116,
 | 
	
		
			
				|  |  | +		"gpio_116", "mcbsp2_dx", NULL, "gpio_116",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(GPIO_128, 128,
 | 
	
		
			
				|  |  | +		"gpio_128", NULL, "sti_din", "gpio_128",
 | 
	
		
			
				|  |  | +		NULL, "sys_boot0", NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(GPIO_129, 129,
 | 
	
		
			
				|  |  | +		"gpio_129", NULL, "sti_dout", "gpio_129",
 | 
	
		
			
				|  |  | +		NULL, "sys_boot1", NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(GPIO_130, 130,
 | 
	
		
			
				|  |  | +		"gpio_130", NULL, NULL, "gpio_130",
 | 
	
		
			
				|  |  | +		"jtag_emu2", "sys_boot2", NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(GPIO_131, 131,
 | 
	
		
			
				|  |  | +		"gpio_131", NULL, NULL, "gpio_131",
 | 
	
		
			
				|  |  | +		"jtag_emu3", "sys_boot3", NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(GPIO_132, 132,
 | 
	
		
			
				|  |  | +		"gpio_132", NULL, NULL, "gpio_132",
 | 
	
		
			
				|  |  | +		NULL, "sys_boot4", NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(GPIO_133, 133,
 | 
	
		
			
				|  |  | +		"gpio_133", NULL, NULL, "gpio_133",
 | 
	
		
			
				|  |  | +		NULL, "sys_boot5", NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(GPIO_134, 134,
 | 
	
		
			
				|  |  | +		"gpio_134", "ccp_datn", NULL, "gpio_134",
 | 
	
		
			
				|  |  | +		NULL, NULL, NULL, "safe_mode"),
 | 
	
		
			
				|  |  | +	_OMAP2430_MUXENTRY(GPIO_135, 135,
 | 
	
		
			
				|  |  | +		"gpio_135", "ccp_datp", NULL, "gpio_135",
 |