1 /* SPDX-License-Identifier: GPL-2.0-or-later * 1 2 /* 3 * Table of the Omap register configurations f 4 * PULL_DWN combinations. 5 * 6 * Copyright (C) 2004 - 2008 Texas Instruments 7 * Copyright (C) 2003 - 2008 Nokia Corporation 8 * 9 * Written by Tony Lindgren 10 * 11 * NOTE: Please use the following naming style 12 * For example, W8_1610_MMC2_DAT0, where 13 * - W8 = ball 14 * - 1610 = 1510 or 1610, none if c 15 * - MMC2_DAT0 = function 16 */ 17 18 #ifndef __ASM_ARCH_MUX_H 19 #define __ASM_ARCH_MUX_H 20 21 #include <linux/soc/ti/omap1-mux.h> 22 23 #define PU_PD_SEL_NA 0 /* No 24 #define PULL_DWN_CTRL_NA 0 /* No 25 26 #ifdef CONFIG_OMAP_MUX_DEBUG 27 #define MUX_REG(reg, mode_offset, mode) .mux_r 28 .mux_r 29 .mask_ 30 .mask 31 32 #define PULL_REG(reg, bit, status) .pull_ 33 .pull_ 34 .pull_ 35 .pull_ 36 37 #define PU_PD_REG(reg, status) .pu_pd 38 .pu_pd 39 .pu_pd 40 41 #define MUX_REG_7XX(reg, mode_offset, mode) .m 42 .mux_r 43 .mask_ 44 .mask 45 46 #define PULL_REG_7XX(reg, bit, status) .pull_ 47 .pull_ 48 .pull_ 49 .pull_ 50 51 #else 52 53 #define MUX_REG(reg, mode_offset, mode) .mux_r 54 .mask_ 55 .mask 56 57 #define PULL_REG(reg, bit, status) .pull_ 58 .pull_ 59 .pull_ 60 61 #define PU_PD_REG(reg, status) .pu_pd 62 .pu_pd 63 64 #define MUX_REG_7XX(reg, mode_offset, mode) \ 65 .mux_r 66 .mask_ 67 .mask 68 69 #define PULL_REG_7XX(reg, bit, status) .pull_ 70 .pull_ 71 .pull_ 72 73 #endif /* CONFIG_OMAP_MUX_DEBUG */ 74 75 #define MUX_CFG(desc, mux_reg, mode_offset, mo 76 pull_reg, pull_bit, pull_statu 77 pu_pd_reg, pu_pd_status, debug 78 { 79 .name = desc, 80 .debug = debug_status, 81 MUX_REG(mux_reg, mode_offset, mode) 82 PULL_REG(pull_reg, pull_bit, pull_stat 83 PU_PD_REG(pu_pd_reg, pu_pd_status) 84 }, 85 86 87 /* 88 * OMAP730/850 has a slightly different config 89 * - config regs are the OMAP7XX_IO_CONF_x reg 90 * not the FUNC_MUX_CTRL_x regs from hardwar 91 * - for pull-up/down, only has one enable bit 92 * as mux config 93 */ 94 #define MUX_CFG_7XX(desc, mux_reg, mode_offset 95 pull_bit, pull_status, debu 96 { 97 .name = desc, 98 .debug = debug_status, 99 MUX_REG_7XX(mux_reg, mode_offset, mode 100 PULL_REG_7XX(mux_reg, pull_bit, pull_s 101 PU_PD_REG(NA, 0) \ 102 }, 103 104 struct pin_config { 105 char *name; 106 const unsigned int mux_reg; 107 unsigned char debug; 108 109 const unsigned char mask_offset; 110 const unsigned char mask; 111 112 const char *pull_name; 113 const unsigned int pull_reg; 114 const unsigned char pull_val; 115 const unsigned char pull_bit; 116 117 const char *pu_pd_name; 118 const unsigned int pu_pd_reg; 119 const unsigned char pu_pd_val; 120 121 #if defined(CONFIG_OMAP_MUX_DEBUG) || defi 122 const char *mux_reg_name; 123 #endif 124 125 }; 126 127 struct omap_mux_cfg { 128 struct pin_config *pins; 129 unsigned long size; 130 int (*cfg_reg)(con 131 }; 132 133 #ifdef CONFIG_OMAP_MUX 134 /* setup pin muxing in Linux */ 135 extern int omap1_mux_init(void); 136 extern int omap_mux_register(struct omap_mux_c 137 #else 138 /* boot loader does it all (no warnings from C 139 static inline int omap1_mux_init(void) { retur 140 #endif 141 142 extern int omap2_mux_init(void); 143 144 #endif 145
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.