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