18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * arch/arm/plat-omap/include/mach/mux.h
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Table of the Omap register configurations for the FUNC_MUX and
68c2ecf20Sopenharmony_ci * PULL_DWN combinations.
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci * Copyright (C) 2004 - 2008 Texas Instruments Inc.
98c2ecf20Sopenharmony_ci * Copyright (C) 2003 - 2008 Nokia Corporation
108c2ecf20Sopenharmony_ci *
118c2ecf20Sopenharmony_ci * Written by Tony Lindgren
128c2ecf20Sopenharmony_ci *
138c2ecf20Sopenharmony_ci * NOTE: Please use the following naming style for new pin entries.
148c2ecf20Sopenharmony_ci *	 For example, W8_1610_MMC2_DAT0, where:
158c2ecf20Sopenharmony_ci *	 - W8	     = ball
168c2ecf20Sopenharmony_ci *	 - 1610	     = 1510 or 1610, none if common for both 1510 and 1610
178c2ecf20Sopenharmony_ci *	 - MMC2_DAT0 = function
188c2ecf20Sopenharmony_ci */
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci#ifndef __ASM_ARCH_MUX_H
218c2ecf20Sopenharmony_ci#define __ASM_ARCH_MUX_H
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci#define PU_PD_SEL_NA		0	/* No pu_pd reg available */
248c2ecf20Sopenharmony_ci#define PULL_DWN_CTRL_NA	0	/* No pull-down control needed */
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci#ifdef	CONFIG_OMAP_MUX_DEBUG
278c2ecf20Sopenharmony_ci#define MUX_REG(reg, mode_offset, mode) .mux_reg_name = "FUNC_MUX_CTRL_"#reg, \
288c2ecf20Sopenharmony_ci					.mux_reg = FUNC_MUX_CTRL_##reg, \
298c2ecf20Sopenharmony_ci					.mask_offset = mode_offset, \
308c2ecf20Sopenharmony_ci					.mask = mode,
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci#define PULL_REG(reg, bit, status)	.pull_name = "PULL_DWN_CTRL_"#reg, \
338c2ecf20Sopenharmony_ci					.pull_reg = PULL_DWN_CTRL_##reg, \
348c2ecf20Sopenharmony_ci					.pull_bit = bit, \
358c2ecf20Sopenharmony_ci					.pull_val = status,
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci#define PU_PD_REG(reg, status)		.pu_pd_name = "PU_PD_SEL_"#reg, \
388c2ecf20Sopenharmony_ci					.pu_pd_reg = PU_PD_SEL_##reg, \
398c2ecf20Sopenharmony_ci					.pu_pd_val = status,
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci#define MUX_REG_7XX(reg, mode_offset, mode) .mux_reg_name = "OMAP7XX_IO_CONF_"#reg, \
428c2ecf20Sopenharmony_ci					.mux_reg = OMAP7XX_IO_CONF_##reg, \
438c2ecf20Sopenharmony_ci					.mask_offset = mode_offset, \
448c2ecf20Sopenharmony_ci					.mask = mode,
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci#define PULL_REG_7XX(reg, bit, status)	.pull_name = "OMAP7XX_IO_CONF_"#reg, \
478c2ecf20Sopenharmony_ci					.pull_reg = OMAP7XX_IO_CONF_##reg, \
488c2ecf20Sopenharmony_ci					.pull_bit = bit, \
498c2ecf20Sopenharmony_ci					.pull_val = status,
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci#else
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci#define MUX_REG(reg, mode_offset, mode) .mux_reg = FUNC_MUX_CTRL_##reg, \
548c2ecf20Sopenharmony_ci					.mask_offset = mode_offset, \
558c2ecf20Sopenharmony_ci					.mask = mode,
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci#define PULL_REG(reg, bit, status)	.pull_reg = PULL_DWN_CTRL_##reg, \
588c2ecf20Sopenharmony_ci					.pull_bit = bit, \
598c2ecf20Sopenharmony_ci					.pull_val = status,
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci#define PU_PD_REG(reg, status)		.pu_pd_reg = PU_PD_SEL_##reg, \
628c2ecf20Sopenharmony_ci					.pu_pd_val = status,
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci#define MUX_REG_7XX(reg, mode_offset, mode) \
658c2ecf20Sopenharmony_ci					.mux_reg = OMAP7XX_IO_CONF_##reg, \
668c2ecf20Sopenharmony_ci					.mask_offset = mode_offset, \
678c2ecf20Sopenharmony_ci					.mask = mode,
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci#define PULL_REG_7XX(reg, bit, status)	.pull_reg = OMAP7XX_IO_CONF_##reg, \
708c2ecf20Sopenharmony_ci					.pull_bit = bit, \
718c2ecf20Sopenharmony_ci					.pull_val = status,
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci#endif /* CONFIG_OMAP_MUX_DEBUG */
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci#define MUX_CFG(desc, mux_reg, mode_offset, mode,	\
768c2ecf20Sopenharmony_ci		pull_reg, pull_bit, pull_status,	\
778c2ecf20Sopenharmony_ci		pu_pd_reg, pu_pd_status, debug_status)	\
788c2ecf20Sopenharmony_ci{							\
798c2ecf20Sopenharmony_ci	.name =	 desc,					\
808c2ecf20Sopenharmony_ci	.debug = debug_status,				\
818c2ecf20Sopenharmony_ci	MUX_REG(mux_reg, mode_offset, mode)		\
828c2ecf20Sopenharmony_ci	PULL_REG(pull_reg, pull_bit, pull_status)	\
838c2ecf20Sopenharmony_ci	PU_PD_REG(pu_pd_reg, pu_pd_status)		\
848c2ecf20Sopenharmony_ci},
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci/*
888c2ecf20Sopenharmony_ci * OMAP730/850 has a slightly different config for the pin mux.
898c2ecf20Sopenharmony_ci * - config regs are the OMAP7XX_IO_CONF_x regs (see omap7xx.h) regs and
908c2ecf20Sopenharmony_ci *   not the FUNC_MUX_CTRL_x regs from hardware.h
918c2ecf20Sopenharmony_ci * - for pull-up/down, only has one enable bit which is in the same register
928c2ecf20Sopenharmony_ci *   as mux config
938c2ecf20Sopenharmony_ci */
948c2ecf20Sopenharmony_ci#define MUX_CFG_7XX(desc, mux_reg, mode_offset, mode,	\
958c2ecf20Sopenharmony_ci		   pull_bit, pull_status, debug_status)\
968c2ecf20Sopenharmony_ci{							\
978c2ecf20Sopenharmony_ci	.name =	 desc,					\
988c2ecf20Sopenharmony_ci	.debug = debug_status,				\
998c2ecf20Sopenharmony_ci	MUX_REG_7XX(mux_reg, mode_offset, mode)		\
1008c2ecf20Sopenharmony_ci	PULL_REG_7XX(mux_reg, pull_bit, pull_status)	\
1018c2ecf20Sopenharmony_ci	PU_PD_REG(NA, 0)		\
1028c2ecf20Sopenharmony_ci},
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_cistruct pin_config {
1058c2ecf20Sopenharmony_ci	char 			*name;
1068c2ecf20Sopenharmony_ci	const unsigned int 	mux_reg;
1078c2ecf20Sopenharmony_ci	unsigned char		debug;
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci	const unsigned char mask_offset;
1108c2ecf20Sopenharmony_ci	const unsigned char mask;
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ci	const char *pull_name;
1138c2ecf20Sopenharmony_ci	const unsigned int pull_reg;
1148c2ecf20Sopenharmony_ci	const unsigned char pull_val;
1158c2ecf20Sopenharmony_ci	const unsigned char pull_bit;
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci	const char *pu_pd_name;
1188c2ecf20Sopenharmony_ci	const unsigned int pu_pd_reg;
1198c2ecf20Sopenharmony_ci	const unsigned char pu_pd_val;
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci#if	defined(CONFIG_OMAP_MUX_DEBUG) || defined(CONFIG_OMAP_MUX_WARNINGS)
1228c2ecf20Sopenharmony_ci	const char *mux_reg_name;
1238c2ecf20Sopenharmony_ci#endif
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci};
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_cienum omap7xx_index {
1288c2ecf20Sopenharmony_ci	/* OMAP 730 keyboard */
1298c2ecf20Sopenharmony_ci	E2_7XX_KBR0,
1308c2ecf20Sopenharmony_ci	J7_7XX_KBR1,
1318c2ecf20Sopenharmony_ci	E1_7XX_KBR2,
1328c2ecf20Sopenharmony_ci	F3_7XX_KBR3,
1338c2ecf20Sopenharmony_ci	D2_7XX_KBR4,
1348c2ecf20Sopenharmony_ci	C2_7XX_KBC0,
1358c2ecf20Sopenharmony_ci	D3_7XX_KBC1,
1368c2ecf20Sopenharmony_ci	E4_7XX_KBC2,
1378c2ecf20Sopenharmony_ci	F4_7XX_KBC3,
1388c2ecf20Sopenharmony_ci	E3_7XX_KBC4,
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ci	/* USB */
1418c2ecf20Sopenharmony_ci	AA17_7XX_USB_DM,
1428c2ecf20Sopenharmony_ci	W16_7XX_USB_PU_EN,
1438c2ecf20Sopenharmony_ci	W17_7XX_USB_VBUSI,
1448c2ecf20Sopenharmony_ci	W18_7XX_USB_DMCK_OUT,
1458c2ecf20Sopenharmony_ci	W19_7XX_USB_DCRST,
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci	/* MMC */
1488c2ecf20Sopenharmony_ci	MMC_7XX_CMD,
1498c2ecf20Sopenharmony_ci	MMC_7XX_CLK,
1508c2ecf20Sopenharmony_ci	MMC_7XX_DAT0,
1518c2ecf20Sopenharmony_ci
1528c2ecf20Sopenharmony_ci	/* I2C */
1538c2ecf20Sopenharmony_ci	I2C_7XX_SCL,
1548c2ecf20Sopenharmony_ci	I2C_7XX_SDA,
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci	/* SPI */
1578c2ecf20Sopenharmony_ci	SPI_7XX_1,
1588c2ecf20Sopenharmony_ci	SPI_7XX_2,
1598c2ecf20Sopenharmony_ci	SPI_7XX_3,
1608c2ecf20Sopenharmony_ci	SPI_7XX_4,
1618c2ecf20Sopenharmony_ci	SPI_7XX_5,
1628c2ecf20Sopenharmony_ci	SPI_7XX_6,
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ci	/* UART */
1658c2ecf20Sopenharmony_ci	UART_7XX_1,
1668c2ecf20Sopenharmony_ci	UART_7XX_2,
1678c2ecf20Sopenharmony_ci};
1688c2ecf20Sopenharmony_ci
1698c2ecf20Sopenharmony_cienum omap1xxx_index {
1708c2ecf20Sopenharmony_ci	/* UART1 (BT_UART_GATING)*/
1718c2ecf20Sopenharmony_ci	UART1_TX = 0,
1728c2ecf20Sopenharmony_ci	UART1_RTS,
1738c2ecf20Sopenharmony_ci
1748c2ecf20Sopenharmony_ci	/* UART2 (COM_UART_GATING)*/
1758c2ecf20Sopenharmony_ci	UART2_TX,
1768c2ecf20Sopenharmony_ci	UART2_RX,
1778c2ecf20Sopenharmony_ci	UART2_CTS,
1788c2ecf20Sopenharmony_ci	UART2_RTS,
1798c2ecf20Sopenharmony_ci
1808c2ecf20Sopenharmony_ci	/* UART3 (GIGA_UART_GATING) */
1818c2ecf20Sopenharmony_ci	UART3_TX,
1828c2ecf20Sopenharmony_ci	UART3_RX,
1838c2ecf20Sopenharmony_ci	UART3_CTS,
1848c2ecf20Sopenharmony_ci	UART3_RTS,
1858c2ecf20Sopenharmony_ci	UART3_CLKREQ,
1868c2ecf20Sopenharmony_ci	UART3_BCLK,	/* 12MHz clock out */
1878c2ecf20Sopenharmony_ci	Y15_1610_UART3_RTS,
1888c2ecf20Sopenharmony_ci
1898c2ecf20Sopenharmony_ci	/* PWT & PWL */
1908c2ecf20Sopenharmony_ci	PWT,
1918c2ecf20Sopenharmony_ci	PWL,
1928c2ecf20Sopenharmony_ci
1938c2ecf20Sopenharmony_ci	/* USB master generic */
1948c2ecf20Sopenharmony_ci	R18_USB_VBUS,
1958c2ecf20Sopenharmony_ci	R18_1510_USB_GPIO0,
1968c2ecf20Sopenharmony_ci	W4_USB_PUEN,
1978c2ecf20Sopenharmony_ci	W4_USB_CLKO,
1988c2ecf20Sopenharmony_ci	W4_USB_HIGHZ,
1998c2ecf20Sopenharmony_ci	W4_GPIO58,
2008c2ecf20Sopenharmony_ci
2018c2ecf20Sopenharmony_ci	/* USB1 master */
2028c2ecf20Sopenharmony_ci	USB1_SUSP,
2038c2ecf20Sopenharmony_ci	USB1_SEO,
2048c2ecf20Sopenharmony_ci	W13_1610_USB1_SE0,
2058c2ecf20Sopenharmony_ci	USB1_TXEN,
2068c2ecf20Sopenharmony_ci	USB1_TXD,
2078c2ecf20Sopenharmony_ci	USB1_VP,
2088c2ecf20Sopenharmony_ci	USB1_VM,
2098c2ecf20Sopenharmony_ci	USB1_RCV,
2108c2ecf20Sopenharmony_ci	USB1_SPEED,
2118c2ecf20Sopenharmony_ci	R13_1610_USB1_SPEED,
2128c2ecf20Sopenharmony_ci	R13_1710_USB1_SE0,
2138c2ecf20Sopenharmony_ci
2148c2ecf20Sopenharmony_ci	/* USB2 master */
2158c2ecf20Sopenharmony_ci	USB2_SUSP,
2168c2ecf20Sopenharmony_ci	USB2_VP,
2178c2ecf20Sopenharmony_ci	USB2_TXEN,
2188c2ecf20Sopenharmony_ci	USB2_VM,
2198c2ecf20Sopenharmony_ci	USB2_RCV,
2208c2ecf20Sopenharmony_ci	USB2_SEO,
2218c2ecf20Sopenharmony_ci	USB2_TXD,
2228c2ecf20Sopenharmony_ci
2238c2ecf20Sopenharmony_ci	/* OMAP-1510 GPIO */
2248c2ecf20Sopenharmony_ci	R18_1510_GPIO0,
2258c2ecf20Sopenharmony_ci	R19_1510_GPIO1,
2268c2ecf20Sopenharmony_ci	M14_1510_GPIO2,
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ci	/* OMAP1610 GPIO */
2298c2ecf20Sopenharmony_ci	P18_1610_GPIO3,
2308c2ecf20Sopenharmony_ci	Y15_1610_GPIO17,
2318c2ecf20Sopenharmony_ci
2328c2ecf20Sopenharmony_ci	/* OMAP-1710 GPIO */
2338c2ecf20Sopenharmony_ci	R18_1710_GPIO0,
2348c2ecf20Sopenharmony_ci	V2_1710_GPIO10,
2358c2ecf20Sopenharmony_ci	N21_1710_GPIO14,
2368c2ecf20Sopenharmony_ci	W15_1710_GPIO40,
2378c2ecf20Sopenharmony_ci
2388c2ecf20Sopenharmony_ci	/* MPUIO */
2398c2ecf20Sopenharmony_ci	MPUIO2,
2408c2ecf20Sopenharmony_ci	N15_1610_MPUIO2,
2418c2ecf20Sopenharmony_ci	MPUIO4,
2428c2ecf20Sopenharmony_ci	MPUIO5,
2438c2ecf20Sopenharmony_ci	T20_1610_MPUIO5,
2448c2ecf20Sopenharmony_ci	W11_1610_MPUIO6,
2458c2ecf20Sopenharmony_ci	V10_1610_MPUIO7,
2468c2ecf20Sopenharmony_ci	W11_1610_MPUIO9,
2478c2ecf20Sopenharmony_ci	V10_1610_MPUIO10,
2488c2ecf20Sopenharmony_ci	W10_1610_MPUIO11,
2498c2ecf20Sopenharmony_ci	E20_1610_MPUIO13,
2508c2ecf20Sopenharmony_ci	U20_1610_MPUIO14,
2518c2ecf20Sopenharmony_ci	E19_1610_MPUIO15,
2528c2ecf20Sopenharmony_ci
2538c2ecf20Sopenharmony_ci	/* MCBSP2 */
2548c2ecf20Sopenharmony_ci	MCBSP2_CLKR,
2558c2ecf20Sopenharmony_ci	MCBSP2_CLKX,
2568c2ecf20Sopenharmony_ci	MCBSP2_DR,
2578c2ecf20Sopenharmony_ci	MCBSP2_DX,
2588c2ecf20Sopenharmony_ci	MCBSP2_FSR,
2598c2ecf20Sopenharmony_ci	MCBSP2_FSX,
2608c2ecf20Sopenharmony_ci
2618c2ecf20Sopenharmony_ci	/* MCBSP3 */
2628c2ecf20Sopenharmony_ci	MCBSP3_CLKX,
2638c2ecf20Sopenharmony_ci
2648c2ecf20Sopenharmony_ci	/* Misc ballouts */
2658c2ecf20Sopenharmony_ci	BALLOUT_V8_ARMIO3,
2668c2ecf20Sopenharmony_ci	N20_HDQ,
2678c2ecf20Sopenharmony_ci
2688c2ecf20Sopenharmony_ci	/* OMAP-1610 MMC2 */
2698c2ecf20Sopenharmony_ci	W8_1610_MMC2_DAT0,
2708c2ecf20Sopenharmony_ci	V8_1610_MMC2_DAT1,
2718c2ecf20Sopenharmony_ci	W15_1610_MMC2_DAT2,
2728c2ecf20Sopenharmony_ci	R10_1610_MMC2_DAT3,
2738c2ecf20Sopenharmony_ci	Y10_1610_MMC2_CLK,
2748c2ecf20Sopenharmony_ci	Y8_1610_MMC2_CMD,
2758c2ecf20Sopenharmony_ci	V9_1610_MMC2_CMDDIR,
2768c2ecf20Sopenharmony_ci	V5_1610_MMC2_DATDIR0,
2778c2ecf20Sopenharmony_ci	W19_1610_MMC2_DATDIR1,
2788c2ecf20Sopenharmony_ci	R18_1610_MMC2_CLKIN,
2798c2ecf20Sopenharmony_ci
2808c2ecf20Sopenharmony_ci	/* OMAP-1610 External Trace Interface */
2818c2ecf20Sopenharmony_ci	M19_1610_ETM_PSTAT0,
2828c2ecf20Sopenharmony_ci	L15_1610_ETM_PSTAT1,
2838c2ecf20Sopenharmony_ci	L18_1610_ETM_PSTAT2,
2848c2ecf20Sopenharmony_ci	L19_1610_ETM_D0,
2858c2ecf20Sopenharmony_ci	J19_1610_ETM_D6,
2868c2ecf20Sopenharmony_ci	J18_1610_ETM_D7,
2878c2ecf20Sopenharmony_ci
2888c2ecf20Sopenharmony_ci	/* OMAP16XX GPIO */
2898c2ecf20Sopenharmony_ci	P20_1610_GPIO4,
2908c2ecf20Sopenharmony_ci	V9_1610_GPIO7,
2918c2ecf20Sopenharmony_ci	W8_1610_GPIO9,
2928c2ecf20Sopenharmony_ci	N20_1610_GPIO11,
2938c2ecf20Sopenharmony_ci	N19_1610_GPIO13,
2948c2ecf20Sopenharmony_ci	P10_1610_GPIO22,
2958c2ecf20Sopenharmony_ci	V5_1610_GPIO24,
2968c2ecf20Sopenharmony_ci	AA20_1610_GPIO_41,
2978c2ecf20Sopenharmony_ci	W19_1610_GPIO48,
2988c2ecf20Sopenharmony_ci	M7_1610_GPIO62,
2998c2ecf20Sopenharmony_ci	V14_16XX_GPIO37,
3008c2ecf20Sopenharmony_ci	R9_16XX_GPIO18,
3018c2ecf20Sopenharmony_ci	L14_16XX_GPIO49,
3028c2ecf20Sopenharmony_ci
3038c2ecf20Sopenharmony_ci	/* OMAP-1610 uWire */
3048c2ecf20Sopenharmony_ci	V19_1610_UWIRE_SCLK,
3058c2ecf20Sopenharmony_ci	U18_1610_UWIRE_SDI,
3068c2ecf20Sopenharmony_ci	W21_1610_UWIRE_SDO,
3078c2ecf20Sopenharmony_ci	N14_1610_UWIRE_CS0,
3088c2ecf20Sopenharmony_ci	P15_1610_UWIRE_CS3,
3098c2ecf20Sopenharmony_ci	N15_1610_UWIRE_CS1,
3108c2ecf20Sopenharmony_ci
3118c2ecf20Sopenharmony_ci	/* OMAP-1610 SPI */
3128c2ecf20Sopenharmony_ci	U19_1610_SPIF_SCK,
3138c2ecf20Sopenharmony_ci	U18_1610_SPIF_DIN,
3148c2ecf20Sopenharmony_ci	P20_1610_SPIF_DIN,
3158c2ecf20Sopenharmony_ci	W21_1610_SPIF_DOUT,
3168c2ecf20Sopenharmony_ci	R18_1610_SPIF_DOUT,
3178c2ecf20Sopenharmony_ci	N14_1610_SPIF_CS0,
3188c2ecf20Sopenharmony_ci	N15_1610_SPIF_CS1,
3198c2ecf20Sopenharmony_ci	T19_1610_SPIF_CS2,
3208c2ecf20Sopenharmony_ci	P15_1610_SPIF_CS3,
3218c2ecf20Sopenharmony_ci
3228c2ecf20Sopenharmony_ci	/* OMAP-1610 Flash */
3238c2ecf20Sopenharmony_ci	L3_1610_FLASH_CS2B_OE,
3248c2ecf20Sopenharmony_ci	M8_1610_FLASH_CS2B_WE,
3258c2ecf20Sopenharmony_ci
3268c2ecf20Sopenharmony_ci	/* First MMC */
3278c2ecf20Sopenharmony_ci	MMC_CMD,
3288c2ecf20Sopenharmony_ci	MMC_DAT1,
3298c2ecf20Sopenharmony_ci	MMC_DAT2,
3308c2ecf20Sopenharmony_ci	MMC_DAT0,
3318c2ecf20Sopenharmony_ci	MMC_CLK,
3328c2ecf20Sopenharmony_ci	MMC_DAT3,
3338c2ecf20Sopenharmony_ci
3348c2ecf20Sopenharmony_ci	/* OMAP-1710 MMC CMDDIR and DATDIR0 */
3358c2ecf20Sopenharmony_ci	M15_1710_MMC_CLKI,
3368c2ecf20Sopenharmony_ci	P19_1710_MMC_CMDDIR,
3378c2ecf20Sopenharmony_ci	P20_1710_MMC_DATDIR0,
3388c2ecf20Sopenharmony_ci
3398c2ecf20Sopenharmony_ci	/* OMAP-1610 USB0 alternate pin configuration */
3408c2ecf20Sopenharmony_ci	W9_USB0_TXEN,
3418c2ecf20Sopenharmony_ci	AA9_USB0_VP,
3428c2ecf20Sopenharmony_ci	Y5_USB0_RCV,
3438c2ecf20Sopenharmony_ci	R9_USB0_VM,
3448c2ecf20Sopenharmony_ci	V6_USB0_TXD,
3458c2ecf20Sopenharmony_ci	W5_USB0_SE0,
3468c2ecf20Sopenharmony_ci	V9_USB0_SPEED,
3478c2ecf20Sopenharmony_ci	V9_USB0_SUSP,
3488c2ecf20Sopenharmony_ci
3498c2ecf20Sopenharmony_ci	/* USB2 */
3508c2ecf20Sopenharmony_ci	W9_USB2_TXEN,
3518c2ecf20Sopenharmony_ci	AA9_USB2_VP,
3528c2ecf20Sopenharmony_ci	Y5_USB2_RCV,
3538c2ecf20Sopenharmony_ci	R9_USB2_VM,
3548c2ecf20Sopenharmony_ci	V6_USB2_TXD,
3558c2ecf20Sopenharmony_ci	W5_USB2_SE0,
3568c2ecf20Sopenharmony_ci
3578c2ecf20Sopenharmony_ci	/* 16XX UART */
3588c2ecf20Sopenharmony_ci	R13_1610_UART1_TX,
3598c2ecf20Sopenharmony_ci	V14_16XX_UART1_RX,
3608c2ecf20Sopenharmony_ci	R14_1610_UART1_CTS,
3618c2ecf20Sopenharmony_ci	AA15_1610_UART1_RTS,
3628c2ecf20Sopenharmony_ci	R9_16XX_UART2_RX,
3638c2ecf20Sopenharmony_ci	L14_16XX_UART3_RX,
3648c2ecf20Sopenharmony_ci
3658c2ecf20Sopenharmony_ci	/* I2C OMAP-1610 */
3668c2ecf20Sopenharmony_ci	I2C_SCL,
3678c2ecf20Sopenharmony_ci	I2C_SDA,
3688c2ecf20Sopenharmony_ci
3698c2ecf20Sopenharmony_ci	/* Keypad */
3708c2ecf20Sopenharmony_ci	F18_1610_KBC0,
3718c2ecf20Sopenharmony_ci	D20_1610_KBC1,
3728c2ecf20Sopenharmony_ci	D19_1610_KBC2,
3738c2ecf20Sopenharmony_ci	E18_1610_KBC3,
3748c2ecf20Sopenharmony_ci	C21_1610_KBC4,
3758c2ecf20Sopenharmony_ci	G18_1610_KBR0,
3768c2ecf20Sopenharmony_ci	F19_1610_KBR1,
3778c2ecf20Sopenharmony_ci	H14_1610_KBR2,
3788c2ecf20Sopenharmony_ci	E20_1610_KBR3,
3798c2ecf20Sopenharmony_ci	E19_1610_KBR4,
3808c2ecf20Sopenharmony_ci	N19_1610_KBR5,
3818c2ecf20Sopenharmony_ci
3828c2ecf20Sopenharmony_ci	/* Power management */
3838c2ecf20Sopenharmony_ci	T20_1610_LOW_PWR,
3848c2ecf20Sopenharmony_ci
3858c2ecf20Sopenharmony_ci	/* MCLK Settings */
3868c2ecf20Sopenharmony_ci	V5_1710_MCLK_ON,
3878c2ecf20Sopenharmony_ci	V5_1710_MCLK_OFF,
3888c2ecf20Sopenharmony_ci	R10_1610_MCLK_ON,
3898c2ecf20Sopenharmony_ci	R10_1610_MCLK_OFF,
3908c2ecf20Sopenharmony_ci
3918c2ecf20Sopenharmony_ci	/* CompactFlash controller */
3928c2ecf20Sopenharmony_ci	P11_1610_CF_CD2,
3938c2ecf20Sopenharmony_ci	R11_1610_CF_IOIS16,
3948c2ecf20Sopenharmony_ci	V10_1610_CF_IREQ,
3958c2ecf20Sopenharmony_ci	W10_1610_CF_RESET,
3968c2ecf20Sopenharmony_ci	W11_1610_CF_CD1,
3978c2ecf20Sopenharmony_ci
3988c2ecf20Sopenharmony_ci	/* parallel camera */
3998c2ecf20Sopenharmony_ci	J15_1610_CAM_LCLK,
4008c2ecf20Sopenharmony_ci	J18_1610_CAM_D7,
4018c2ecf20Sopenharmony_ci	J19_1610_CAM_D6,
4028c2ecf20Sopenharmony_ci	J14_1610_CAM_D5,
4038c2ecf20Sopenharmony_ci	K18_1610_CAM_D4,
4048c2ecf20Sopenharmony_ci	K19_1610_CAM_D3,
4058c2ecf20Sopenharmony_ci	K15_1610_CAM_D2,
4068c2ecf20Sopenharmony_ci	K14_1610_CAM_D1,
4078c2ecf20Sopenharmony_ci	L19_1610_CAM_D0,
4088c2ecf20Sopenharmony_ci	L18_1610_CAM_VS,
4098c2ecf20Sopenharmony_ci	L15_1610_CAM_HS,
4108c2ecf20Sopenharmony_ci	M19_1610_CAM_RSTZ,
4118c2ecf20Sopenharmony_ci	Y15_1610_CAM_OUTCLK,
4128c2ecf20Sopenharmony_ci
4138c2ecf20Sopenharmony_ci	/* serial camera */
4148c2ecf20Sopenharmony_ci	H19_1610_CAM_EXCLK,
4158c2ecf20Sopenharmony_ci	Y12_1610_CCP_CLKP,
4168c2ecf20Sopenharmony_ci	W13_1610_CCP_CLKM,
4178c2ecf20Sopenharmony_ci	W14_1610_CCP_DATAP,
4188c2ecf20Sopenharmony_ci	Y14_1610_CCP_DATAM,
4198c2ecf20Sopenharmony_ci
4208c2ecf20Sopenharmony_ci};
4218c2ecf20Sopenharmony_ci
4228c2ecf20Sopenharmony_cistruct omap_mux_cfg {
4238c2ecf20Sopenharmony_ci	struct pin_config	*pins;
4248c2ecf20Sopenharmony_ci	unsigned long		size;
4258c2ecf20Sopenharmony_ci	int			(*cfg_reg)(const struct pin_config *cfg);
4268c2ecf20Sopenharmony_ci};
4278c2ecf20Sopenharmony_ci
4288c2ecf20Sopenharmony_ci#ifdef	CONFIG_OMAP_MUX
4298c2ecf20Sopenharmony_ci/* setup pin muxing in Linux */
4308c2ecf20Sopenharmony_ciextern int omap1_mux_init(void);
4318c2ecf20Sopenharmony_ciextern int omap_mux_register(struct omap_mux_cfg *);
4328c2ecf20Sopenharmony_ciextern int omap_cfg_reg(unsigned long reg_cfg);
4338c2ecf20Sopenharmony_ci#else
4348c2ecf20Sopenharmony_ci/* boot loader does it all (no warnings from CONFIG_OMAP_MUX_WARNINGS) */
4358c2ecf20Sopenharmony_cistatic inline int omap1_mux_init(void) { return 0; }
4368c2ecf20Sopenharmony_cistatic inline int omap_cfg_reg(unsigned long reg_cfg) { return 0; }
4378c2ecf20Sopenharmony_ci#endif
4388c2ecf20Sopenharmony_ci
4398c2ecf20Sopenharmony_ciextern int omap2_mux_init(void);
4408c2ecf20Sopenharmony_ci
4418c2ecf20Sopenharmony_ci#endif
442