Commit 0088903287aa1a7e49a64e83b9e5d4f08aedec69

Authored by Goutam Kumar
Committed by Hebbar, Gururaja
1 parent c51243440a
Exists in master

arm:omap:am335x: Correct KeyPad GPIO numbers

This patch corrects keypwr1 pinmux to gpmc_a6.gpio1_22

Signed-off-by: Goutam Kumar <goutam.kumar@ti.com>
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>

Showing 2 changed files with 3 additions and 3 deletions Inline Diff

arch/arm/mach-omap2/board-am335xevm.c
1 /* 1 /*
2 * Code for AM335X EVM. 2 * Code for AM335X EVM.
3 * 3 *
4 * Copyright (C) 2011 Texas Instruments, Inc. - http://www.ti.com/ 4 * Copyright (C) 2011 Texas Instruments, Inc. - http://www.ti.com/
5 * 5 *
6 * This program is free software; you can redistribute it and/or 6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as 7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation version 2. 8 * published by the Free Software Foundation version 2.
9 * 9 *
10 * This program is distributed "as is" WITHOUT ANY WARRANTY of any 10 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
11 * kind, whether express or implied; without even the implied warranty 11 * kind, whether express or implied; without even the implied warranty
12 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details. 13 * GNU General Public License for more details.
14 */ 14 */
15 #include <linux/kernel.h> 15 #include <linux/kernel.h>
16 #include <linux/init.h> 16 #include <linux/init.h>
17 #include <linux/i2c.h> 17 #include <linux/i2c.h>
18 #include <linux/i2c/at24.h> 18 #include <linux/i2c/at24.h>
19 #include <linux/phy.h> 19 #include <linux/phy.h>
20 #include <linux/gpio.h> 20 #include <linux/gpio.h>
21 #include <linux/spi/spi.h> 21 #include <linux/spi/spi.h>
22 #include <linux/spi/flash.h> 22 #include <linux/spi/flash.h>
23 #ifdef CONFIG_KEYBOARD_GPIO 23 #ifdef CONFIG_KEYBOARD_GPIO
24 #include <linux/gpio_keys.h> 24 #include <linux/gpio_keys.h>
25 #endif 25 #endif
26 #ifdef CONFIG_KEYBOARD_MATRIX 26 #ifdef CONFIG_KEYBOARD_MATRIX
27 #include <linux/input.h> 27 #include <linux/input.h>
28 #include <linux/input/matrix_keypad.h> 28 #include <linux/input/matrix_keypad.h>
29 #endif 29 #endif
30 #include <linux/mtd/mtd.h> 30 #include <linux/mtd/mtd.h>
31 #include <linux/mtd/nand.h> 31 #include <linux/mtd/nand.h>
32 #include <linux/mtd/partitions.h> 32 #include <linux/mtd/partitions.h>
33 #include <linux/platform_device.h> 33 #include <linux/platform_device.h>
34 #include <linux/clk.h> 34 #include <linux/clk.h>
35 #include <linux/err.h> 35 #include <linux/err.h>
36 #include <linux/wl12xx.h> 36 #include <linux/wl12xx.h>
37 #include <linux/ethtool.h> 37 #include <linux/ethtool.h>
38 #include <linux/mfd/tps65910.h> 38 #include <linux/mfd/tps65910.h>
39 39
40 /* LCD controller is similar to DA850 */ 40 /* LCD controller is similar to DA850 */
41 #include <video/da8xx-fb.h> 41 #include <video/da8xx-fb.h>
42 42
43 #include <mach/hardware.h> 43 #include <mach/hardware.h>
44 #include <mach/board-am335xevm.h> 44 #include <mach/board-am335xevm.h>
45 45
46 #include <asm/mach-types.h> 46 #include <asm/mach-types.h>
47 #include <asm/mach/arch.h> 47 #include <asm/mach/arch.h>
48 #include <asm/mach/map.h> 48 #include <asm/mach/map.h>
49 #include <asm/hardware/asp.h> 49 #include <asm/hardware/asp.h>
50 50
51 #include <plat/irqs.h> 51 #include <plat/irqs.h>
52 #include <plat/board.h> 52 #include <plat/board.h>
53 #include <plat/common.h> 53 #include <plat/common.h>
54 #include <plat/lcdc.h> 54 #include <plat/lcdc.h>
55 #include <plat/usb.h> 55 #include <plat/usb.h>
56 #include <plat/mmc.h> 56 #include <plat/mmc.h>
57 57
58 #include "board-flash.h" 58 #include "board-flash.h"
59 #include "cpuidle33xx.h" 59 #include "cpuidle33xx.h"
60 #include "mux.h" 60 #include "mux.h"
61 #include "devices.h" 61 #include "devices.h"
62 #include "hsmmc.h" 62 #include "hsmmc.h"
63 63
64 /* TLK PHY IDs */ 64 /* TLK PHY IDs */
65 #define TLK110_PHY_ID 0x2000A201 65 #define TLK110_PHY_ID 0x2000A201
66 #define TLK110_PHY_MASK 0xfffffff0 66 #define TLK110_PHY_MASK 0xfffffff0
67 67
68 /* BBB PHY IDs */ 68 /* BBB PHY IDs */
69 #define BBB_PHY_ID 0x7c0f1 69 #define BBB_PHY_ID 0x7c0f1
70 #define BBB_PHY_MASK 0xfffffffe 70 #define BBB_PHY_MASK 0xfffffffe
71 71
72 /* TLK110 PHY register offsets */ 72 /* TLK110 PHY register offsets */
73 #define TLK110_COARSEGAIN_REG 0x00A3 73 #define TLK110_COARSEGAIN_REG 0x00A3
74 #define TLK110_LPFHPF_REG 0x00AC 74 #define TLK110_LPFHPF_REG 0x00AC
75 #define TLK110_SPAREANALOG_REG 0x00B9 75 #define TLK110_SPAREANALOG_REG 0x00B9
76 #define TLK110_VRCR_REG 0x00D0 76 #define TLK110_VRCR_REG 0x00D0
77 #define TLK110_SETFFE_REG 0x0107 77 #define TLK110_SETFFE_REG 0x0107
78 #define TLK110_FTSP_REG 0x0154 78 #define TLK110_FTSP_REG 0x0154
79 #define TLK110_ALFATPIDL_REG 0x002A 79 #define TLK110_ALFATPIDL_REG 0x002A
80 #define TLK110_PSCOEF21_REG 0x0096 80 #define TLK110_PSCOEF21_REG 0x0096
81 #define TLK110_PSCOEF3_REG 0x0097 81 #define TLK110_PSCOEF3_REG 0x0097
82 #define TLK110_ALFAFACTOR1_REG 0x002C 82 #define TLK110_ALFAFACTOR1_REG 0x002C
83 #define TLK110_ALFAFACTOR2_REG 0x0023 83 #define TLK110_ALFAFACTOR2_REG 0x0023
84 #define TLK110_CFGPS_REG 0x0095 84 #define TLK110_CFGPS_REG 0x0095
85 #define TLK110_FTSPTXGAIN_REG 0x0150 85 #define TLK110_FTSPTXGAIN_REG 0x0150
86 #define TLK110_SWSCR3_REG 0x000B 86 #define TLK110_SWSCR3_REG 0x000B
87 #define TLK110_SCFALLBACK_REG 0x0040 87 #define TLK110_SCFALLBACK_REG 0x0040
88 #define TLK110_PHYRCR_REG 0x001F 88 #define TLK110_PHYRCR_REG 0x001F
89 89
90 /* TLK110 register writes values */ 90 /* TLK110 register writes values */
91 #define TLK110_COARSEGAIN_VAL 0x0000 91 #define TLK110_COARSEGAIN_VAL 0x0000
92 #define TLK110_LPFHPF_VAL 0x8000 92 #define TLK110_LPFHPF_VAL 0x8000
93 #define TLK110_SPANALOG_VAL 0x0000 93 #define TLK110_SPANALOG_VAL 0x0000
94 #define TLK110_VRCR_VAL 0x0008 94 #define TLK110_VRCR_VAL 0x0008
95 #define TLK110_SETFFE_VAL 0x0605 95 #define TLK110_SETFFE_VAL 0x0605
96 #define TLK110_FTSP_VAL 0x0255 96 #define TLK110_FTSP_VAL 0x0255
97 #define TLK110_ALFATPIDL_VAL 0x7998 97 #define TLK110_ALFATPIDL_VAL 0x7998
98 #define TLK110_PSCOEF21_VAL 0x3A20 98 #define TLK110_PSCOEF21_VAL 0x3A20
99 #define TLK110_PSCOEF3_VAL 0x003F 99 #define TLK110_PSCOEF3_VAL 0x003F
100 #define TLK110_ALFACTOR1_VAL 0xFF80 100 #define TLK110_ALFACTOR1_VAL 0xFF80
101 #define TLK110_ALFACTOR2_VAL 0x021C 101 #define TLK110_ALFACTOR2_VAL 0x021C
102 #define TLK110_CFGPS_VAL 0x0000 102 #define TLK110_CFGPS_VAL 0x0000
103 #define TLK110_FTSPTXGAIN_VAL 0x6A88 103 #define TLK110_FTSPTXGAIN_VAL 0x6A88
104 #define TLK110_SWSCR3_VAL 0x0000 104 #define TLK110_SWSCR3_VAL 0x0000
105 #define TLK110_SCFALLBACK_VAL 0xC11D 105 #define TLK110_SCFALLBACK_VAL 0xC11D
106 #define TLK110_PHYRCR_VAL 0x4000 106 #define TLK110_PHYRCR_VAL 0x4000
107 107
108 #ifdef CONFIG_TLK110_WORKAROUND 108 #ifdef CONFIG_TLK110_WORKAROUND
109 #define am335x_tlk110_phy_init()\ 109 #define am335x_tlk110_phy_init()\
110 do { \ 110 do { \
111 phy_register_fixup_for_uid(TLK110_PHY_ID,\ 111 phy_register_fixup_for_uid(TLK110_PHY_ID,\
112 TLK110_PHY_MASK,\ 112 TLK110_PHY_MASK,\
113 am335x_tlk110_phy_fixup);\ 113 am335x_tlk110_phy_fixup);\
114 } while (0); 114 } while (0);
115 #else 115 #else
116 #define am335x_tlk110_phy_init() do { } while (0); 116 #define am335x_tlk110_phy_init() do { } while (0);
117 #endif 117 #endif
118 118
119 /* Convert GPIO signal to GPIO pin number */ 119 /* Convert GPIO signal to GPIO pin number */
120 #define GPIO_TO_PIN(bank, gpio) (32 * (bank) + (gpio)) 120 #define GPIO_TO_PIN(bank, gpio) (32 * (bank) + (gpio))
121 121
122 static const struct display_panel disp_panel = { 122 static const struct display_panel disp_panel = {
123 WVGA, 123 WVGA,
124 32, 124 32,
125 32, 125 32,
126 COLOR_ACTIVE, 126 COLOR_ACTIVE,
127 }; 127 };
128 128
129 static struct lcd_ctrl_config lcd_cfg = { 129 static struct lcd_ctrl_config lcd_cfg = {
130 &disp_panel, 130 &disp_panel,
131 .ac_bias = 255, 131 .ac_bias = 255,
132 .ac_bias_intrpt = 0, 132 .ac_bias_intrpt = 0,
133 .dma_burst_sz = 16, 133 .dma_burst_sz = 16,
134 .bpp = 32, 134 .bpp = 32,
135 .fdd = 0x80, 135 .fdd = 0x80,
136 .tft_alt_mode = 0, 136 .tft_alt_mode = 0,
137 .stn_565_mode = 0, 137 .stn_565_mode = 0,
138 .mono_8bit_mode = 0, 138 .mono_8bit_mode = 0,
139 .invert_line_clock = 1, 139 .invert_line_clock = 1,
140 .invert_frm_clock = 1, 140 .invert_frm_clock = 1,
141 .sync_edge = 0, 141 .sync_edge = 0,
142 .sync_ctrl = 1, 142 .sync_ctrl = 1,
143 .raster_order = 0, 143 .raster_order = 0,
144 }; 144 };
145 145
146 struct da8xx_lcdc_platform_data TFC_S9700RTWV35TR_01B_pdata = { 146 struct da8xx_lcdc_platform_data TFC_S9700RTWV35TR_01B_pdata = {
147 .manu_name = "ThreeFive", 147 .manu_name = "ThreeFive",
148 .controller_data = &lcd_cfg, 148 .controller_data = &lcd_cfg,
149 .type = "TFC_S9700RTWV35TR_01B", 149 .type = "TFC_S9700RTWV35TR_01B",
150 }; 150 };
151 151
152 /* TSc controller */ 152 /* TSc controller */
153 #include <linux/input/ti_tscadc.h> 153 #include <linux/input/ti_tscadc.h>
154 #include <linux/lis3lv02d.h> 154 #include <linux/lis3lv02d.h>
155 155
156 static struct resource tsc_resources[] = { 156 static struct resource tsc_resources[] = {
157 [0] = { 157 [0] = {
158 .start = AM33XX_TSC_BASE, 158 .start = AM33XX_TSC_BASE,
159 .end = AM33XX_TSC_BASE + SZ_8K - 1, 159 .end = AM33XX_TSC_BASE + SZ_8K - 1,
160 .flags = IORESOURCE_MEM, 160 .flags = IORESOURCE_MEM,
161 }, 161 },
162 [1] = { 162 [1] = {
163 .start = AM33XX_IRQ_ADC_GEN, 163 .start = AM33XX_IRQ_ADC_GEN,
164 .end = AM33XX_IRQ_ADC_GEN, 164 .end = AM33XX_IRQ_ADC_GEN,
165 .flags = IORESOURCE_IRQ, 165 .flags = IORESOURCE_IRQ,
166 }, 166 },
167 }; 167 };
168 168
169 static struct tsc_data am335x_touchscreen_data = { 169 static struct tsc_data am335x_touchscreen_data = {
170 .wires = 4, 170 .wires = 4,
171 .x_plate_resistance = 200, 171 .x_plate_resistance = 200,
172 }; 172 };
173 173
174 static struct platform_device tsc_device = { 174 static struct platform_device tsc_device = {
175 .name = "tsc", 175 .name = "tsc",
176 .id = -1, 176 .id = -1,
177 .dev = { 177 .dev = {
178 .platform_data = &am335x_touchscreen_data, 178 .platform_data = &am335x_touchscreen_data,
179 }, 179 },
180 .num_resources = ARRAY_SIZE(tsc_resources), 180 .num_resources = ARRAY_SIZE(tsc_resources),
181 .resource = tsc_resources, 181 .resource = tsc_resources,
182 }; 182 };
183 183
184 static u8 am335x_iis_serializer_direction1[] = { 184 static u8 am335x_iis_serializer_direction1[] = {
185 INACTIVE_MODE, INACTIVE_MODE, TX_MODE, RX_MODE, 185 INACTIVE_MODE, INACTIVE_MODE, TX_MODE, RX_MODE,
186 INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, 186 INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
187 INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, 187 INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
188 INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, 188 INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
189 }; 189 };
190 190
191 static struct snd_platform_data am335x_evm_snd_data1 = { 191 static struct snd_platform_data am335x_evm_snd_data1 = {
192 .tx_dma_offset = 0x46400000, /* McASP1 */ 192 .tx_dma_offset = 0x46400000, /* McASP1 */
193 .rx_dma_offset = 0x46400000, 193 .rx_dma_offset = 0x46400000,
194 .op_mode = DAVINCI_MCASP_IIS_MODE, 194 .op_mode = DAVINCI_MCASP_IIS_MODE,
195 .num_serializer = ARRAY_SIZE(am335x_iis_serializer_direction1), 195 .num_serializer = ARRAY_SIZE(am335x_iis_serializer_direction1),
196 .tdm_slots = 2, 196 .tdm_slots = 2,
197 .serial_dir = am335x_iis_serializer_direction1, 197 .serial_dir = am335x_iis_serializer_direction1,
198 .asp_chan_q = EVENTQ_2, 198 .asp_chan_q = EVENTQ_2,
199 .version = MCASP_VERSION_3, 199 .version = MCASP_VERSION_3,
200 .txnumevt = 1, 200 .txnumevt = 1,
201 .rxnumevt = 1, 201 .rxnumevt = 1,
202 }; 202 };
203 203
204 static struct omap2_hsmmc_info am335x_mmc[] __initdata = { 204 static struct omap2_hsmmc_info am335x_mmc[] __initdata = {
205 { 205 {
206 .mmc = 1, 206 .mmc = 1,
207 .caps = MMC_CAP_4_BIT_DATA, 207 .caps = MMC_CAP_4_BIT_DATA,
208 .gpio_cd = GPIO_TO_PIN(0, 6), 208 .gpio_cd = GPIO_TO_PIN(0, 6),
209 .gpio_wp = GPIO_TO_PIN(3, 18), 209 .gpio_wp = GPIO_TO_PIN(3, 18),
210 .ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34, /* 3V3 */ 210 .ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34, /* 3V3 */
211 }, 211 },
212 { 212 {
213 .mmc = 0, /* will be set at runtime */ 213 .mmc = 0, /* will be set at runtime */
214 }, 214 },
215 { 215 {
216 .mmc = 0, /* will be set at runtime */ 216 .mmc = 0, /* will be set at runtime */
217 }, 217 },
218 {} /* Terminator */ 218 {} /* Terminator */
219 }; 219 };
220 220
221 221
222 #ifdef CONFIG_OMAP_MUX 222 #ifdef CONFIG_OMAP_MUX
223 static struct omap_board_mux board_mux[] __initdata = { 223 static struct omap_board_mux board_mux[] __initdata = {
224 AM33XX_MUX(I2C0_SDA, OMAP_MUX_MODE0 | AM33XX_SLEWCTRL_SLOW | 224 AM33XX_MUX(I2C0_SDA, OMAP_MUX_MODE0 | AM33XX_SLEWCTRL_SLOW |
225 AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT), 225 AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT),
226 AM33XX_MUX(I2C0_SCL, OMAP_MUX_MODE0 | AM33XX_SLEWCTRL_SLOW | 226 AM33XX_MUX(I2C0_SCL, OMAP_MUX_MODE0 | AM33XX_SLEWCTRL_SLOW |
227 AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT), 227 AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT),
228 { .reg_offset = OMAP_MUX_TERMINATOR }, 228 { .reg_offset = OMAP_MUX_TERMINATOR },
229 }; 229 };
230 #else 230 #else
231 #define board_mux NULL 231 #define board_mux NULL
232 #endif 232 #endif
233 233
234 /* module pin mux structure */ 234 /* module pin mux structure */
235 struct pinmux_config { 235 struct pinmux_config {
236 const char *string_name; /* signal name format */ 236 const char *string_name; /* signal name format */
237 int val; /* Options for the mux register value */ 237 int val; /* Options for the mux register value */
238 }; 238 };
239 239
240 struct evm_dev_cfg { 240 struct evm_dev_cfg {
241 void (*device_init)(int evm_id, int profile); 241 void (*device_init)(int evm_id, int profile);
242 242
243 /* 243 /*
244 * If the device is required on both baseboard & daughter board (ex i2c), 244 * If the device is required on both baseboard & daughter board (ex i2c),
245 * specify DEV_ON_BASEBOARD 245 * specify DEV_ON_BASEBOARD
246 */ 246 */
247 #define DEV_ON_BASEBOARD 0 247 #define DEV_ON_BASEBOARD 0
248 #define DEV_ON_DGHTR_BRD 1 248 #define DEV_ON_DGHTR_BRD 1
249 u32 device_on; 249 u32 device_on;
250 250
251 u32 profile; /* Profiles (0-7) in which the module is present */ 251 u32 profile; /* Profiles (0-7) in which the module is present */
252 }; 252 };
253 253
254 /* AM335X - CPLD Register Offsets */ 254 /* AM335X - CPLD Register Offsets */
255 #define CPLD_DEVICE_HDR 0x00 /* CPLD Header */ 255 #define CPLD_DEVICE_HDR 0x00 /* CPLD Header */
256 #define CPLD_DEVICE_ID 0x04 /* CPLD identification */ 256 #define CPLD_DEVICE_ID 0x04 /* CPLD identification */
257 #define CPLD_DEVICE_REV 0x0C /* Revision of the CPLD code */ 257 #define CPLD_DEVICE_REV 0x0C /* Revision of the CPLD code */
258 #define CPLD_CFG_REG 0x10 /* Configuration Register */ 258 #define CPLD_CFG_REG 0x10 /* Configuration Register */
259 259
260 static struct i2c_client *cpld_client; 260 static struct i2c_client *cpld_client;
261 261
262 static u32 am335x_evm_id; 262 static u32 am335x_evm_id;
263 263
264 static struct omap_board_config_kernel am335x_evm_config[] __initdata = { 264 static struct omap_board_config_kernel am335x_evm_config[] __initdata = {
265 }; 265 };
266 266
267 /* 267 /*
268 * EVM Config held in On-Board eeprom device. 268 * EVM Config held in On-Board eeprom device.
269 * 269 *
270 * Header Format 270 * Header Format
271 * 271 *
272 * Name Size Contents 272 * Name Size Contents
273 * (Bytes) 273 * (Bytes)
274 *------------------------------------------------------------- 274 *-------------------------------------------------------------
275 * Header 4 0xAA, 0x55, 0x33, 0xEE 275 * Header 4 0xAA, 0x55, 0x33, 0xEE
276 * 276 *
277 * Board Name 8 Name for board in ASCII. 277 * Board Name 8 Name for board in ASCII.
278 * example "A33515BB" = "AM335X 278 * example "A33515BB" = "AM335X
279 Low Cost EVM board" 279 Low Cost EVM board"
280 * 280 *
281 * Version 4 Hardware version code for board in 281 * Version 4 Hardware version code for board in
282 * in ASCII. "1.0A" = rev.01.0A 282 * in ASCII. "1.0A" = rev.01.0A
283 * 283 *
284 * Serial Number 12 Serial number of the board. This is a 12 284 * Serial Number 12 Serial number of the board. This is a 12
285 * character string which is WWYY4P16nnnn, where 285 * character string which is WWYY4P16nnnn, where
286 * WW = 2 digit week of the year of production 286 * WW = 2 digit week of the year of production
287 * YY = 2 digit year of production 287 * YY = 2 digit year of production
288 * nnnn = incrementing board number 288 * nnnn = incrementing board number
289 * 289 *
290 * Configuration option 32 Codes(TBD) to show the configuration 290 * Configuration option 32 Codes(TBD) to show the configuration
291 * setup on this board. 291 * setup on this board.
292 * 292 *
293 * Available 32720 Available space for other non-volatile 293 * Available 32720 Available space for other non-volatile
294 * data. 294 * data.
295 */ 295 */
296 struct am335x_evm_eeprom_config { 296 struct am335x_evm_eeprom_config {
297 u32 header; 297 u32 header;
298 u8 name[8]; 298 u8 name[8];
299 char version[4]; 299 char version[4];
300 u8 serial[12]; 300 u8 serial[12];
301 u8 opt[32]; 301 u8 opt[32];
302 }; 302 };
303 303
304 static struct am335x_evm_eeprom_config config; 304 static struct am335x_evm_eeprom_config config;
305 static bool daughter_brd_detected; 305 static bool daughter_brd_detected;
306 306
307 #define GP_EVM_REV_IS_1_0 0x1 307 #define GP_EVM_REV_IS_1_0 0x1
308 #define GP_EVM_REV_IS_1_1A 0x2 308 #define GP_EVM_REV_IS_1_1A 0x2
309 #define GP_EVM_REV_IS_UNKNOWN 0xFF 309 #define GP_EVM_REV_IS_UNKNOWN 0xFF
310 static unsigned int gp_evm_revision = GP_EVM_REV_IS_UNKNOWN; 310 static unsigned int gp_evm_revision = GP_EVM_REV_IS_UNKNOWN;
311 unsigned int gigabit_enable = 1; 311 unsigned int gigabit_enable = 1;
312 312
313 #define EEPROM_MAC_ADDRESS_OFFSET 60 /* 4+8+4+12+32 */ 313 #define EEPROM_MAC_ADDRESS_OFFSET 60 /* 4+8+4+12+32 */
314 #define EEPROM_NO_OF_MAC_ADDR 3 314 #define EEPROM_NO_OF_MAC_ADDR 3
315 static char am335x_mac_addr[EEPROM_NO_OF_MAC_ADDR][ETH_ALEN]; 315 static char am335x_mac_addr[EEPROM_NO_OF_MAC_ADDR][ETH_ALEN];
316 316
317 #define AM335X_EEPROM_HEADER 0xEE3355AA 317 #define AM335X_EEPROM_HEADER 0xEE3355AA
318 318
319 /* current profile if exists else PROFILE_0 on error */ 319 /* current profile if exists else PROFILE_0 on error */
320 static u32 am335x_get_profile_selection(void) 320 static u32 am335x_get_profile_selection(void)
321 { 321 {
322 int val = 0; 322 int val = 0;
323 323
324 if (!cpld_client) 324 if (!cpld_client)
325 /* error checking is not done in func's calling this routine. 325 /* error checking is not done in func's calling this routine.
326 so return profile 0 on error */ 326 so return profile 0 on error */
327 return 0; 327 return 0;
328 328
329 val = i2c_smbus_read_word_data(cpld_client, CPLD_CFG_REG); 329 val = i2c_smbus_read_word_data(cpld_client, CPLD_CFG_REG);
330 if (val < 0) 330 if (val < 0)
331 return 0; /* default to Profile 0 on Error */ 331 return 0; /* default to Profile 0 on Error */
332 else 332 else
333 return val & 0x7; 333 return val & 0x7;
334 } 334 }
335 335
336 /* Module pin mux for LCDC */ 336 /* Module pin mux for LCDC */
337 static struct pinmux_config lcdc_pin_mux[] = { 337 static struct pinmux_config lcdc_pin_mux[] = {
338 {"lcd_data0.lcd_data0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 338 {"lcd_data0.lcd_data0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
339 | AM33XX_PULL_DISA}, 339 | AM33XX_PULL_DISA},
340 {"lcd_data1.lcd_data1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 340 {"lcd_data1.lcd_data1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
341 | AM33XX_PULL_DISA}, 341 | AM33XX_PULL_DISA},
342 {"lcd_data2.lcd_data2", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 342 {"lcd_data2.lcd_data2", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
343 | AM33XX_PULL_DISA}, 343 | AM33XX_PULL_DISA},
344 {"lcd_data3.lcd_data3", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 344 {"lcd_data3.lcd_data3", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
345 | AM33XX_PULL_DISA}, 345 | AM33XX_PULL_DISA},
346 {"lcd_data4.lcd_data4", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 346 {"lcd_data4.lcd_data4", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
347 | AM33XX_PULL_DISA}, 347 | AM33XX_PULL_DISA},
348 {"lcd_data5.lcd_data5", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 348 {"lcd_data5.lcd_data5", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
349 | AM33XX_PULL_DISA}, 349 | AM33XX_PULL_DISA},
350 {"lcd_data6.lcd_data6", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 350 {"lcd_data6.lcd_data6", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
351 | AM33XX_PULL_DISA}, 351 | AM33XX_PULL_DISA},
352 {"lcd_data7.lcd_data7", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 352 {"lcd_data7.lcd_data7", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
353 | AM33XX_PULL_DISA}, 353 | AM33XX_PULL_DISA},
354 {"lcd_data8.lcd_data8", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 354 {"lcd_data8.lcd_data8", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
355 | AM33XX_PULL_DISA}, 355 | AM33XX_PULL_DISA},
356 {"lcd_data9.lcd_data9", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 356 {"lcd_data9.lcd_data9", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
357 | AM33XX_PULL_DISA}, 357 | AM33XX_PULL_DISA},
358 {"lcd_data10.lcd_data10", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 358 {"lcd_data10.lcd_data10", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
359 | AM33XX_PULL_DISA}, 359 | AM33XX_PULL_DISA},
360 {"lcd_data11.lcd_data11", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 360 {"lcd_data11.lcd_data11", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
361 | AM33XX_PULL_DISA}, 361 | AM33XX_PULL_DISA},
362 {"lcd_data12.lcd_data12", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 362 {"lcd_data12.lcd_data12", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
363 | AM33XX_PULL_DISA}, 363 | AM33XX_PULL_DISA},
364 {"lcd_data13.lcd_data13", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 364 {"lcd_data13.lcd_data13", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
365 | AM33XX_PULL_DISA}, 365 | AM33XX_PULL_DISA},
366 {"lcd_data14.lcd_data14", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 366 {"lcd_data14.lcd_data14", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
367 | AM33XX_PULL_DISA}, 367 | AM33XX_PULL_DISA},
368 {"lcd_data15.lcd_data15", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT 368 {"lcd_data15.lcd_data15", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
369 | AM33XX_PULL_DISA}, 369 | AM33XX_PULL_DISA},
370 {"gpmc_ad8.lcd_data16", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, 370 {"gpmc_ad8.lcd_data16", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
371 {"gpmc_ad9.lcd_data17", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, 371 {"gpmc_ad9.lcd_data17", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
372 {"gpmc_ad10.lcd_data18", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, 372 {"gpmc_ad10.lcd_data18", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
373 {"gpmc_ad11.lcd_data19", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, 373 {"gpmc_ad11.lcd_data19", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
374 {"gpmc_ad12.lcd_data20", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, 374 {"gpmc_ad12.lcd_data20", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
375 {"gpmc_ad13.lcd_data21", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, 375 {"gpmc_ad13.lcd_data21", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
376 {"gpmc_ad14.lcd_data22", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, 376 {"gpmc_ad14.lcd_data22", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
377 {"gpmc_ad15.lcd_data23", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, 377 {"gpmc_ad15.lcd_data23", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
378 {"lcd_vsync.lcd_vsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 378 {"lcd_vsync.lcd_vsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
379 {"lcd_hsync.lcd_hsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 379 {"lcd_hsync.lcd_hsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
380 {"lcd_pclk.lcd_pclk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 380 {"lcd_pclk.lcd_pclk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
381 {"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 381 {"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
382 {NULL, 0}, 382 {NULL, 0},
383 }; 383 };
384 384
385 static struct pinmux_config tsc_pin_mux[] = { 385 static struct pinmux_config tsc_pin_mux[] = {
386 {"ain0.ain0", OMAP_MUX_MODE0 | AM33XX_INPUT_EN}, 386 {"ain0.ain0", OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
387 {"ain1.ain1", OMAP_MUX_MODE0 | AM33XX_INPUT_EN}, 387 {"ain1.ain1", OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
388 {"ain2.ain2", OMAP_MUX_MODE0 | AM33XX_INPUT_EN}, 388 {"ain2.ain2", OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
389 {"ain3.ain3", OMAP_MUX_MODE0 | AM33XX_INPUT_EN}, 389 {"ain3.ain3", OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
390 {"vrefp.vrefp", OMAP_MUX_MODE0 | AM33XX_INPUT_EN}, 390 {"vrefp.vrefp", OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
391 {"vrefn.vrefn", OMAP_MUX_MODE0 | AM33XX_INPUT_EN}, 391 {"vrefn.vrefn", OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
392 {NULL, 0}, 392 {NULL, 0},
393 }; 393 };
394 394
395 /* Pin mux for nand flash module */ 395 /* Pin mux for nand flash module */
396 static struct pinmux_config nand_pin_mux[] = { 396 static struct pinmux_config nand_pin_mux[] = {
397 {"gpmc_ad0.gpmc_ad0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 397 {"gpmc_ad0.gpmc_ad0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
398 {"gpmc_ad1.gpmc_ad1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 398 {"gpmc_ad1.gpmc_ad1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
399 {"gpmc_ad2.gpmc_ad2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 399 {"gpmc_ad2.gpmc_ad2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
400 {"gpmc_ad3.gpmc_ad3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 400 {"gpmc_ad3.gpmc_ad3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
401 {"gpmc_ad4.gpmc_ad4", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 401 {"gpmc_ad4.gpmc_ad4", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
402 {"gpmc_ad5.gpmc_ad5", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 402 {"gpmc_ad5.gpmc_ad5", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
403 {"gpmc_ad6.gpmc_ad6", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 403 {"gpmc_ad6.gpmc_ad6", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
404 {"gpmc_ad7.gpmc_ad7", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 404 {"gpmc_ad7.gpmc_ad7", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
405 {"gpmc_wait0.gpmc_wait0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 405 {"gpmc_wait0.gpmc_wait0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
406 {"gpmc_wpn.gpmc_wpn", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP}, 406 {"gpmc_wpn.gpmc_wpn", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
407 {"gpmc_csn0.gpmc_csn0", OMAP_MUX_MODE0 | AM33XX_PULL_DISA}, 407 {"gpmc_csn0.gpmc_csn0", OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
408 {"gpmc_advn_ale.gpmc_advn_ale", OMAP_MUX_MODE0 | AM33XX_PULL_DISA}, 408 {"gpmc_advn_ale.gpmc_advn_ale", OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
409 {"gpmc_oen_ren.gpmc_oen_ren", OMAP_MUX_MODE0 | AM33XX_PULL_DISA}, 409 {"gpmc_oen_ren.gpmc_oen_ren", OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
410 {"gpmc_wen.gpmc_wen", OMAP_MUX_MODE0 | AM33XX_PULL_DISA}, 410 {"gpmc_wen.gpmc_wen", OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
411 {"gpmc_ben0_cle.gpmc_ben0_cle", OMAP_MUX_MODE0 | AM33XX_PULL_DISA}, 411 {"gpmc_ben0_cle.gpmc_ben0_cle", OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
412 {NULL, 0}, 412 {NULL, 0},
413 }; 413 };
414 414
415 /* Module pin mux for SPI fash */ 415 /* Module pin mux for SPI fash */
416 static struct pinmux_config spi0_pin_mux[] = { 416 static struct pinmux_config spi0_pin_mux[] = {
417 {"spi0_sclk.spi0_sclk", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL 417 {"spi0_sclk.spi0_sclk", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL
418 | AM33XX_INPUT_EN}, 418 | AM33XX_INPUT_EN},
419 {"spi0_d0.spi0_d0", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_PULL_UP 419 {"spi0_d0.spi0_d0", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_PULL_UP
420 | AM33XX_INPUT_EN}, 420 | AM33XX_INPUT_EN},
421 {"spi0_d1.spi0_d1", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL 421 {"spi0_d1.spi0_d1", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL
422 | AM33XX_INPUT_EN}, 422 | AM33XX_INPUT_EN},
423 {"spi0_cs0.spi0_cs0", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_PULL_UP 423 {"spi0_cs0.spi0_cs0", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_PULL_UP
424 | AM33XX_INPUT_EN}, 424 | AM33XX_INPUT_EN},
425 {NULL, 0}, 425 {NULL, 0},
426 }; 426 };
427 427
428 /* Module pin mux for SPI flash */ 428 /* Module pin mux for SPI flash */
429 static struct pinmux_config spi1_pin_mux[] = { 429 static struct pinmux_config spi1_pin_mux[] = {
430 {"mcasp0_aclkx.spi1_sclk", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL 430 {"mcasp0_aclkx.spi1_sclk", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL
431 | AM33XX_INPUT_EN}, 431 | AM33XX_INPUT_EN},
432 {"mcasp0_fsx.spi1_d0", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL 432 {"mcasp0_fsx.spi1_d0", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL
433 | AM33XX_PULL_UP | AM33XX_INPUT_EN}, 433 | AM33XX_PULL_UP | AM33XX_INPUT_EN},
434 {"mcasp0_axr0.spi1_d1", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL 434 {"mcasp0_axr0.spi1_d1", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL
435 | AM33XX_INPUT_EN}, 435 | AM33XX_INPUT_EN},
436 {"mcasp0_ahclkr.spi1_cs0", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL 436 {"mcasp0_ahclkr.spi1_cs0", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL
437 | AM33XX_PULL_UP | AM33XX_INPUT_EN}, 437 | AM33XX_PULL_UP | AM33XX_INPUT_EN},
438 {NULL, 0}, 438 {NULL, 0},
439 }; 439 };
440 440
441 /* Module pin mux for rgmii1 */ 441 /* Module pin mux for rgmii1 */
442 static struct pinmux_config rgmii1_pin_mux[] = { 442 static struct pinmux_config rgmii1_pin_mux[] = {
443 {"mii1_txen.rgmii1_tctl", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, 443 {"mii1_txen.rgmii1_tctl", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
444 {"mii1_rxdv.rgmii1_rctl", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, 444 {"mii1_rxdv.rgmii1_rctl", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
445 {"mii1_txd3.rgmii1_td3", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, 445 {"mii1_txd3.rgmii1_td3", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
446 {"mii1_txd2.rgmii1_td2", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, 446 {"mii1_txd2.rgmii1_td2", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
447 {"mii1_txd1.rgmii1_td1", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, 447 {"mii1_txd1.rgmii1_td1", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
448 {"mii1_txd0.rgmii1_td0", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, 448 {"mii1_txd0.rgmii1_td0", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
449 {"mii1_txclk.rgmii1_tclk", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, 449 {"mii1_txclk.rgmii1_tclk", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
450 {"mii1_rxclk.rgmii1_rclk", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, 450 {"mii1_rxclk.rgmii1_rclk", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
451 {"mii1_rxd3.rgmii1_rd3", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, 451 {"mii1_rxd3.rgmii1_rd3", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
452 {"mii1_rxd2.rgmii1_rd2", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, 452 {"mii1_rxd2.rgmii1_rd2", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
453 {"mii1_rxd1.rgmii1_rd1", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, 453 {"mii1_rxd1.rgmii1_rd1", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
454 {"mii1_rxd0.rgmii1_rd0", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, 454 {"mii1_rxd0.rgmii1_rd0", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
455 {"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 455 {"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
456 {"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP}, 456 {"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP},
457 {NULL, 0}, 457 {NULL, 0},
458 }; 458 };
459 459
460 /* Module pin mux for rgmii2 */ 460 /* Module pin mux for rgmii2 */
461 static struct pinmux_config rgmii2_pin_mux[] = { 461 static struct pinmux_config rgmii2_pin_mux[] = {
462 {"gpmc_a0.rgmii2_tctl", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, 462 {"gpmc_a0.rgmii2_tctl", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
463 {"gpmc_a1.rgmii2_rctl", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, 463 {"gpmc_a1.rgmii2_rctl", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
464 {"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, 464 {"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
465 {"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, 465 {"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
466 {"gpmc_a4.rgmii2_td1", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, 466 {"gpmc_a4.rgmii2_td1", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
467 {"gpmc_a5.rgmii2_td0", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, 467 {"gpmc_a5.rgmii2_td0", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
468 {"gpmc_a6.rgmii2_tclk", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, 468 {"gpmc_a6.rgmii2_tclk", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
469 {"gpmc_a7.rgmii2_rclk", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, 469 {"gpmc_a7.rgmii2_rclk", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
470 {"gpmc_a8.rgmii2_rd3", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, 470 {"gpmc_a8.rgmii2_rd3", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
471 {"gpmc_a9.rgmii2_rd2", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, 471 {"gpmc_a9.rgmii2_rd2", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
472 {"gpmc_a10.rgmii2_rd1", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, 472 {"gpmc_a10.rgmii2_rd1", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
473 {"gpmc_a11.rgmii2_rd0", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, 473 {"gpmc_a11.rgmii2_rd0", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
474 {"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 474 {"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
475 {"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP}, 475 {"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP},
476 {NULL, 0}, 476 {NULL, 0},
477 }; 477 };
478 478
479 /* Module pin mux for mii1 */ 479 /* Module pin mux for mii1 */
480 static struct pinmux_config mii1_pin_mux[] = { 480 static struct pinmux_config mii1_pin_mux[] = {
481 {"mii1_rxerr.mii1_rxerr", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, 481 {"mii1_rxerr.mii1_rxerr", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
482 {"mii1_txen.mii1_txen", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 482 {"mii1_txen.mii1_txen", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
483 {"mii1_rxdv.mii1_rxdv", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, 483 {"mii1_rxdv.mii1_rxdv", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
484 {"mii1_txd3.mii1_txd3", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 484 {"mii1_txd3.mii1_txd3", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
485 {"mii1_txd2.mii1_txd2", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 485 {"mii1_txd2.mii1_txd2", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
486 {"mii1_txd1.mii1_txd1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 486 {"mii1_txd1.mii1_txd1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
487 {"mii1_txd0.mii1_txd0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 487 {"mii1_txd0.mii1_txd0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
488 {"mii1_txclk.mii1_txclk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, 488 {"mii1_txclk.mii1_txclk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
489 {"mii1_rxclk.mii1_rxclk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, 489 {"mii1_rxclk.mii1_rxclk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
490 {"mii1_rxd3.mii1_rxd3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, 490 {"mii1_rxd3.mii1_rxd3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
491 {"mii1_rxd2.mii1_rxd2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, 491 {"mii1_rxd2.mii1_rxd2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
492 {"mii1_rxd1.mii1_rxd1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, 492 {"mii1_rxd1.mii1_rxd1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
493 {"mii1_rxd0.mii1_rxd0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, 493 {"mii1_rxd0.mii1_rxd0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
494 {"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 494 {"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
495 {"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP}, 495 {"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP},
496 {NULL, 0}, 496 {NULL, 0},
497 }; 497 };
498 498
499 /* Module pin mux for rmii1 */ 499 /* Module pin mux for rmii1 */
500 static struct pinmux_config rmii1_pin_mux[] = { 500 static struct pinmux_config rmii1_pin_mux[] = {
501 {"mii1_crs.rmii1_crs_dv", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN}, 501 {"mii1_crs.rmii1_crs_dv", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
502 {"mii1_rxerr.mii1_rxerr", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN}, 502 {"mii1_rxerr.mii1_rxerr", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
503 {"mii1_txen.mii1_txen", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, 503 {"mii1_txen.mii1_txen", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
504 {"mii1_txd1.mii1_txd1", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, 504 {"mii1_txd1.mii1_txd1", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
505 {"mii1_txd0.mii1_txd0", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT}, 505 {"mii1_txd0.mii1_txd0", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
506 {"mii1_rxd1.mii1_rxd1", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN}, 506 {"mii1_rxd1.mii1_rxd1", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
507 {"mii1_rxd0.mii1_rxd0", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN}, 507 {"mii1_rxd0.mii1_rxd0", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
508 {"rmii1_refclk.rmii1_refclk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, 508 {"rmii1_refclk.rmii1_refclk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
509 {"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 509 {"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
510 {"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP}, 510 {"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP},
511 {NULL, 0}, 511 {NULL, 0},
512 }; 512 };
513 513
514 static struct pinmux_config i2c1_pin_mux[] = { 514 static struct pinmux_config i2c1_pin_mux[] = {
515 {"spi0_d1.i2c1_sda", OMAP_MUX_MODE2 | AM33XX_SLEWCTRL_SLOW | 515 {"spi0_d1.i2c1_sda", OMAP_MUX_MODE2 | AM33XX_SLEWCTRL_SLOW |
516 AM33XX_PULL_ENBL | AM33XX_INPUT_EN}, 516 AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
517 {"spi0_cs0.i2c1_scl", OMAP_MUX_MODE2 | AM33XX_SLEWCTRL_SLOW | 517 {"spi0_cs0.i2c1_scl", OMAP_MUX_MODE2 | AM33XX_SLEWCTRL_SLOW |
518 AM33XX_PULL_ENBL | AM33XX_INPUT_EN}, 518 AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
519 {NULL, 0}, 519 {NULL, 0},
520 }; 520 };
521 521
522 /* Module pin mux for mcasp1 */ 522 /* Module pin mux for mcasp1 */
523 static struct pinmux_config mcasp1_pin_mux[] = { 523 static struct pinmux_config mcasp1_pin_mux[] = {
524 {"mii1_crs.mcasp1_aclkx", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN}, 524 {"mii1_crs.mcasp1_aclkx", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
525 {"mii1_rxerr.mcasp1_fsx", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN}, 525 {"mii1_rxerr.mcasp1_fsx", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
526 {"mii1_col.mcasp1_axr2", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN}, 526 {"mii1_col.mcasp1_axr2", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
527 {"rmii1_refclk.mcasp1_axr3", OMAP_MUX_MODE4 | 527 {"rmii1_refclk.mcasp1_axr3", OMAP_MUX_MODE4 |
528 AM33XX_PIN_INPUT_PULLDOWN}, 528 AM33XX_PIN_INPUT_PULLDOWN},
529 {NULL, 0}, 529 {NULL, 0},
530 }; 530 };
531 531
532 532
533 /* Module pin mux for mmc0 */ 533 /* Module pin mux for mmc0 */
534 static struct pinmux_config mmc0_pin_mux[] = { 534 static struct pinmux_config mmc0_pin_mux[] = {
535 {"mmc0_dat3.mmc0_dat3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 535 {"mmc0_dat3.mmc0_dat3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
536 {"mmc0_dat2.mmc0_dat2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 536 {"mmc0_dat2.mmc0_dat2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
537 {"mmc0_dat1.mmc0_dat1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 537 {"mmc0_dat1.mmc0_dat1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
538 {"mmc0_dat0.mmc0_dat0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 538 {"mmc0_dat0.mmc0_dat0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
539 {"mmc0_clk.mmc0_clk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 539 {"mmc0_clk.mmc0_clk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
540 {"mmc0_cmd.mmc0_cmd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 540 {"mmc0_cmd.mmc0_cmd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
541 {"mcasp0_aclkr.mmc0_sdwp", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP}, 541 {"mcasp0_aclkr.mmc0_sdwp", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
542 {"spi0_cs1.mmc0_sdcd", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP}, 542 {"spi0_cs1.mmc0_sdcd", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
543 {NULL, 0}, 543 {NULL, 0},
544 }; 544 };
545 545
546 static struct pinmux_config mmc0_no_cd_pin_mux[] = { 546 static struct pinmux_config mmc0_no_cd_pin_mux[] = {
547 {"mmc0_dat3.mmc0_dat3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 547 {"mmc0_dat3.mmc0_dat3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
548 {"mmc0_dat2.mmc0_dat2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 548 {"mmc0_dat2.mmc0_dat2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
549 {"mmc0_dat1.mmc0_dat1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 549 {"mmc0_dat1.mmc0_dat1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
550 {"mmc0_dat0.mmc0_dat0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 550 {"mmc0_dat0.mmc0_dat0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
551 {"mmc0_clk.mmc0_clk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 551 {"mmc0_clk.mmc0_clk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
552 {"mmc0_cmd.mmc0_cmd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 552 {"mmc0_cmd.mmc0_cmd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
553 {"mcasp0_aclkr.mmc0_sdwp", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN}, 553 {"mcasp0_aclkr.mmc0_sdwp", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
554 {NULL, 0}, 554 {NULL, 0},
555 }; 555 };
556 556
557 /* Module pin mux for mmc1 */ 557 /* Module pin mux for mmc1 */
558 static struct pinmux_config mmc1_pin_mux[] = { 558 static struct pinmux_config mmc1_pin_mux[] = {
559 {"gpmc_ad7.mmc1_dat7", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP}, 559 {"gpmc_ad7.mmc1_dat7", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP},
560 {"gpmc_ad6.mmc1_dat6", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP}, 560 {"gpmc_ad6.mmc1_dat6", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP},
561 {"gpmc_ad5.mmc1_dat5", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP}, 561 {"gpmc_ad5.mmc1_dat5", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP},
562 {"gpmc_ad4.mmc1_dat4", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP}, 562 {"gpmc_ad4.mmc1_dat4", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP},
563 {"gpmc_ad3.mmc1_dat3", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP}, 563 {"gpmc_ad3.mmc1_dat3", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP},
564 {"gpmc_ad2.mmc1_dat2", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP}, 564 {"gpmc_ad2.mmc1_dat2", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP},
565 {"gpmc_ad1.mmc1_dat1", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP}, 565 {"gpmc_ad1.mmc1_dat1", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP},
566 {"gpmc_ad0.mmc1_dat0", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP}, 566 {"gpmc_ad0.mmc1_dat0", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP},
567 {"gpmc_csn1.mmc1_clk", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP}, 567 {"gpmc_csn1.mmc1_clk", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP},
568 {"gpmc_csn2.mmc1_cmd", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP}, 568 {"gpmc_csn2.mmc1_cmd", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP},
569 {"gpmc_csn0.mmc1_sdwp", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP}, 569 {"gpmc_csn0.mmc1_sdwp", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
570 {"gpmc_advn_ale.mmc1_sdcd", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP}, 570 {"gpmc_advn_ale.mmc1_sdcd", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
571 {NULL, 0}, 571 {NULL, 0},
572 }; 572 };
573 573
574 /* Module pin mux for uart3 */ 574 /* Module pin mux for uart3 */
575 static struct pinmux_config uart3_pin_mux[] = { 575 static struct pinmux_config uart3_pin_mux[] = {
576 {"spi0_cs1.uart3_rxd", AM33XX_PIN_INPUT_PULLUP}, 576 {"spi0_cs1.uart3_rxd", AM33XX_PIN_INPUT_PULLUP},
577 {"ecap0_in_pwm0_out.uart3_txd", AM33XX_PULL_ENBL}, 577 {"ecap0_in_pwm0_out.uart3_txd", AM33XX_PULL_ENBL},
578 {NULL, 0}, 578 {NULL, 0},
579 }; 579 };
580 580
581 static struct pinmux_config d_can_gp_pin_mux[] = { 581 static struct pinmux_config d_can_gp_pin_mux[] = {
582 {"uart0_ctsn.d_can1_tx", OMAP_MUX_MODE2 | AM33XX_PULL_ENBL}, 582 {"uart0_ctsn.d_can1_tx", OMAP_MUX_MODE2 | AM33XX_PULL_ENBL},
583 {"uart0_rtsn.d_can1_rx", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP}, 583 {"uart0_rtsn.d_can1_rx", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP},
584 {NULL, 0}, 584 {NULL, 0},
585 }; 585 };
586 586
587 static struct pinmux_config d_can_ia_pin_mux[] = { 587 static struct pinmux_config d_can_ia_pin_mux[] = {
588 {"uart0_rxd.d_can0_tx", OMAP_MUX_MODE2 | AM33XX_PULL_ENBL}, 588 {"uart0_rxd.d_can0_tx", OMAP_MUX_MODE2 | AM33XX_PULL_ENBL},
589 {"uart0_txd.d_can0_rx", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP}, 589 {"uart0_txd.d_can0_rx", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP},
590 {NULL, 0}, 590 {NULL, 0},
591 }; 591 };
592 592
593 /* 593 /*
594 * @pin_mux - single module pin-mux structure which defines pin-mux 594 * @pin_mux - single module pin-mux structure which defines pin-mux
595 * details for all its pins. 595 * details for all its pins.
596 */ 596 */
597 static void setup_pin_mux(struct pinmux_config *pin_mux) 597 static void setup_pin_mux(struct pinmux_config *pin_mux)
598 { 598 {
599 int i; 599 int i;
600 600
601 for (i = 0; pin_mux->string_name != NULL; pin_mux++) 601 for (i = 0; pin_mux->string_name != NULL; pin_mux++)
602 omap_mux_init_signal(pin_mux->string_name, pin_mux->val); 602 omap_mux_init_signal(pin_mux->string_name, pin_mux->val);
603 603
604 } 604 }
605 605
606 /* Matrix GPIO Keypad Support for profile-0 only: TODO */ 606 /* Matrix GPIO Keypad Support for profile-0 only: TODO */
607 #ifdef CONFIG_KEYBOARD_MATRIX 607 #ifdef CONFIG_KEYBOARD_MATRIX
608 608
609 /* pinmux for keypad device */ 609 /* pinmux for keypad device */
610 static struct pinmux_config matrix_keypad_pin_mux[] = { 610 static struct pinmux_config matrix_keypad_pin_mux[] = {
611 {"gpmc_a5.gpio1_21", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, 611 {"gpmc_a5.gpio1_21", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
612 {"gpmc_a8.gpio1_24", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, 612 {"gpmc_a8.gpio1_22", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
613 {"gpmc_a9.gpio1_25", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, 613 {"gpmc_a9.gpio1_25", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
614 {"gpmc_a10.gpio1_26", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, 614 {"gpmc_a10.gpio1_26", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
615 {"gpmc_a11.gpio1_27", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, 615 {"gpmc_a11.gpio1_27", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
616 {NULL, 0}, 616 {NULL, 0},
617 }; 617 };
618 618
619 /* Keys mapping */ 619 /* Keys mapping */
620 static const uint32_t am335x_evm_matrix_keys[] = { 620 static const uint32_t am335x_evm_matrix_keys[] = {
621 KEY(0, 0, KEY_MENU), 621 KEY(0, 0, KEY_MENU),
622 KEY(1, 0, KEY_BACK), 622 KEY(1, 0, KEY_BACK),
623 KEY(2, 0, KEY_LEFT), 623 KEY(2, 0, KEY_LEFT),
624 624
625 KEY(0, 1, KEY_RIGHT), 625 KEY(0, 1, KEY_RIGHT),
626 KEY(1, 1, KEY_ENTER), 626 KEY(1, 1, KEY_ENTER),
627 KEY(2, 1, KEY_DOWN), 627 KEY(2, 1, KEY_DOWN),
628 }; 628 };
629 629
630 const struct matrix_keymap_data am335x_evm_keymap_data = { 630 const struct matrix_keymap_data am335x_evm_keymap_data = {
631 .keymap = am335x_evm_matrix_keys, 631 .keymap = am335x_evm_matrix_keys,
632 .keymap_size = ARRAY_SIZE(am335x_evm_matrix_keys), 632 .keymap_size = ARRAY_SIZE(am335x_evm_matrix_keys),
633 }; 633 };
634 634
635 static const unsigned int am335x_evm_keypad_row_gpios[] = { 635 static const unsigned int am335x_evm_keypad_row_gpios[] = {
636 GPIO_TO_PIN(1, 25), GPIO_TO_PIN(1, 26), GPIO_TO_PIN(1, 27) 636 GPIO_TO_PIN(1, 25), GPIO_TO_PIN(1, 26), GPIO_TO_PIN(1, 27)
637 }; 637 };
638 638
639 static const unsigned int am335x_evm_keypad_col_gpios[] = { 639 static const unsigned int am335x_evm_keypad_col_gpios[] = {
640 GPIO_TO_PIN(1, 21), GPIO_TO_PIN(1, 24) 640 GPIO_TO_PIN(1, 21), GPIO_TO_PIN(1, 22)
641 }; 641 };
642 642
643 static struct matrix_keypad_platform_data am335x_evm_keypad_platform_data = { 643 static struct matrix_keypad_platform_data am335x_evm_keypad_platform_data = {
644 .keymap_data = &am335x_evm_keymap_data, 644 .keymap_data = &am335x_evm_keymap_data,
645 .row_gpios = am335x_evm_keypad_row_gpios, 645 .row_gpios = am335x_evm_keypad_row_gpios,
646 .num_row_gpios = ARRAY_SIZE(am335x_evm_keypad_row_gpios), 646 .num_row_gpios = ARRAY_SIZE(am335x_evm_keypad_row_gpios),
647 .col_gpios = am335x_evm_keypad_col_gpios, 647 .col_gpios = am335x_evm_keypad_col_gpios,
648 .num_col_gpios = ARRAY_SIZE(am335x_evm_keypad_col_gpios), 648 .num_col_gpios = ARRAY_SIZE(am335x_evm_keypad_col_gpios),
649 .active_low = false, 649 .active_low = false,
650 .debounce_ms = 5, 650 .debounce_ms = 5,
651 .col_scan_delay_us = 2, 651 .col_scan_delay_us = 2,
652 }; 652 };
653 653
654 static struct platform_device am335x_evm_keyboard = { 654 static struct platform_device am335x_evm_keyboard = {
655 .name = "matrix-keypad", 655 .name = "matrix-keypad",
656 .id = -1, 656 .id = -1,
657 .dev = { 657 .dev = {
658 .platform_data = &am335x_evm_keypad_platform_data, 658 .platform_data = &am335x_evm_keypad_platform_data,
659 }, 659 },
660 }; 660 };
661 661
662 static void matrix_keypad_init(int evm_id, int profile) 662 static void matrix_keypad_init(int evm_id, int profile)
663 { 663 {
664 int err; 664 int err;
665 665
666 setup_pin_mux(matrix_keypad_pin_mux); 666 setup_pin_mux(matrix_keypad_pin_mux);
667 err = platform_device_register(&am335x_evm_keyboard); 667 err = platform_device_register(&am335x_evm_keyboard);
668 if (err) { 668 if (err) {
669 pr_err("failed to register matrix keypad (2x3) device\n"); 669 pr_err("failed to register matrix keypad (2x3) device\n");
670 } 670 }
671 } 671 }
672 #endif 672 #endif
673 673
674 674
675 #ifdef CONFIG_KEYBOARD_GPIO 675 #ifdef CONFIG_KEYBOARD_GPIO
676 /* pinmux for keypad device */ 676 /* pinmux for keypad device */
677 static struct pinmux_config volume_keys_pin_mux[] = { 677 static struct pinmux_config volume_keys_pin_mux[] = {
678 {"spi0_sclk.gpio0_2", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, 678 {"spi0_sclk.gpio0_2", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
679 {"spi0_d0.gpio0_3", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, 679 {"spi0_d0.gpio0_3", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
680 {NULL, 0}, 680 {NULL, 0},
681 }; 681 };
682 682
683 /* Configure GPIOs for Volume Keys */ 683 /* Configure GPIOs for Volume Keys */
684 static struct gpio_keys_button am335x_evm_volume_gpio_buttons[] = { 684 static struct gpio_keys_button am335x_evm_volume_gpio_buttons[] = {
685 { 685 {
686 .code = KEY_VOLUMEUP, 686 .code = KEY_VOLUMEUP,
687 .gpio = GPIO_TO_PIN(0, 2), 687 .gpio = GPIO_TO_PIN(0, 2),
688 .active_low = true, 688 .active_low = true,
689 .desc = "volume-up", 689 .desc = "volume-up",
690 .type = EV_KEY, 690 .type = EV_KEY,
691 .wakeup = 1, 691 .wakeup = 1,
692 }, 692 },
693 { 693 {
694 .code = KEY_VOLUMEDOWN, 694 .code = KEY_VOLUMEDOWN,
695 .gpio = GPIO_TO_PIN(0, 3), 695 .gpio = GPIO_TO_PIN(0, 3),
696 .active_low = true, 696 .active_low = true,
697 .desc = "volume-down", 697 .desc = "volume-down",
698 .type = EV_KEY, 698 .type = EV_KEY,
699 .wakeup = 1, 699 .wakeup = 1,
700 }, 700 },
701 }; 701 };
702 702
703 static struct gpio_keys_platform_data am335x_evm_volume_gpio_key_info = { 703 static struct gpio_keys_platform_data am335x_evm_volume_gpio_key_info = {
704 .buttons = am335x_evm_volume_gpio_buttons, 704 .buttons = am335x_evm_volume_gpio_buttons,
705 .nbuttons = ARRAY_SIZE(am335x_evm_volume_gpio_buttons), 705 .nbuttons = ARRAY_SIZE(am335x_evm_volume_gpio_buttons),
706 }; 706 };
707 707
708 static struct platform_device am335x_evm_volume_keys = { 708 static struct platform_device am335x_evm_volume_keys = {
709 .name = "gpio-keys", 709 .name = "gpio-keys",
710 .id = -1, 710 .id = -1,
711 .dev = { 711 .dev = {
712 .platform_data = &am335x_evm_volume_gpio_key_info, 712 .platform_data = &am335x_evm_volume_gpio_key_info,
713 }, 713 },
714 }; 714 };
715 715
716 static void volume_keys_init(int evm_id, int profile) 716 static void volume_keys_init(int evm_id, int profile)
717 { 717 {
718 int err; 718 int err;
719 719
720 setup_pin_mux(volume_keys_pin_mux); 720 setup_pin_mux(volume_keys_pin_mux);
721 err = platform_device_register(&am335x_evm_volume_keys); 721 err = platform_device_register(&am335x_evm_volume_keys);
722 if (err) 722 if (err)
723 pr_err("failed to register matrix keypad (2x3) device\n"); 723 pr_err("failed to register matrix keypad (2x3) device\n");
724 } 724 }
725 #endif 725 #endif
726 726
727 /* 727 /*
728 * @evm_id - evm id which needs to be configured 728 * @evm_id - evm id which needs to be configured
729 * @dev_cfg - single evm structure which includes 729 * @dev_cfg - single evm structure which includes
730 * all module inits, pin-mux defines 730 * all module inits, pin-mux defines
731 * @profile - if present, else PROFILE_NONE 731 * @profile - if present, else PROFILE_NONE
732 * @dghtr_brd_flg - Whether Daughter board is present or not 732 * @dghtr_brd_flg - Whether Daughter board is present or not
733 */ 733 */
734 static void _configure_device(int evm_id, struct evm_dev_cfg *dev_cfg, 734 static void _configure_device(int evm_id, struct evm_dev_cfg *dev_cfg,
735 int profile) 735 int profile)
736 { 736 {
737 int i; 737 int i;
738 738
739 /* 739 /*
740 * Only General Purpose & Industrial Auto Motro Control 740 * Only General Purpose & Industrial Auto Motro Control
741 * EVM has profiles. So check if this evm has profile. 741 * EVM has profiles. So check if this evm has profile.
742 * If not, ignore the profile comparison 742 * If not, ignore the profile comparison
743 */ 743 */
744 744
745 /* 745 /*
746 * If the device is on baseboard, directly configure it. Else (device on 746 * If the device is on baseboard, directly configure it. Else (device on
747 * Daughter board), check if the daughter card is detected. 747 * Daughter board), check if the daughter card is detected.
748 */ 748 */
749 if (profile == PROFILE_NONE) { 749 if (profile == PROFILE_NONE) {
750 for (i = 0; dev_cfg->device_init != NULL; dev_cfg++) { 750 for (i = 0; dev_cfg->device_init != NULL; dev_cfg++) {
751 if (dev_cfg->device_on == DEV_ON_BASEBOARD) 751 if (dev_cfg->device_on == DEV_ON_BASEBOARD)
752 dev_cfg->device_init(evm_id, profile); 752 dev_cfg->device_init(evm_id, profile);
753 else if (daughter_brd_detected == true) 753 else if (daughter_brd_detected == true)
754 dev_cfg->device_init(evm_id, profile); 754 dev_cfg->device_init(evm_id, profile);
755 } 755 }
756 } else { 756 } else {
757 for (i = 0; dev_cfg->device_init != NULL; dev_cfg++) { 757 for (i = 0; dev_cfg->device_init != NULL; dev_cfg++) {
758 if (dev_cfg->profile & profile) { 758 if (dev_cfg->profile & profile) {
759 if (dev_cfg->device_on == DEV_ON_BASEBOARD) 759 if (dev_cfg->device_on == DEV_ON_BASEBOARD)
760 dev_cfg->device_init(evm_id, profile); 760 dev_cfg->device_init(evm_id, profile);
761 else if (daughter_brd_detected == true) 761 else if (daughter_brd_detected == true)
762 dev_cfg->device_init(evm_id, profile); 762 dev_cfg->device_init(evm_id, profile);
763 } 763 }
764 } 764 }
765 } 765 }
766 } 766 }
767 767
768 #define AM335X_LCD_BL_PIN GPIO_TO_PIN(0, 7) 768 #define AM335X_LCD_BL_PIN GPIO_TO_PIN(0, 7)
769 769
770 /* pinmux for usb0 drvvbus */ 770 /* pinmux for usb0 drvvbus */
771 static struct pinmux_config usb0_pin_mux[] = { 771 static struct pinmux_config usb0_pin_mux[] = {
772 {"usb0_drvvbus.usb0_drvvbus", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 772 {"usb0_drvvbus.usb0_drvvbus", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
773 {NULL, 0}, 773 {NULL, 0},
774 }; 774 };
775 775
776 /* pinmux for usb1 drvvbus */ 776 /* pinmux for usb1 drvvbus */
777 static struct pinmux_config usb1_pin_mux[] = { 777 static struct pinmux_config usb1_pin_mux[] = {
778 {"usb1_drvvbus.usb1_drvvbus", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 778 {"usb1_drvvbus.usb1_drvvbus", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
779 {NULL, 0}, 779 {NULL, 0},
780 }; 780 };
781 781
782 /* pinmux for profibus */ 782 /* pinmux for profibus */
783 static struct pinmux_config profibus_pin_mux[] = { 783 static struct pinmux_config profibus_pin_mux[] = {
784 {"uart1_rxd.pr1_uart0_rxd_mux1", OMAP_MUX_MODE5 | AM33XX_PIN_INPUT}, 784 {"uart1_rxd.pr1_uart0_rxd_mux1", OMAP_MUX_MODE5 | AM33XX_PIN_INPUT},
785 {"uart1_txd.pr1_uart0_txd_mux1", OMAP_MUX_MODE5 | AM33XX_PIN_OUTPUT}, 785 {"uart1_txd.pr1_uart0_txd_mux1", OMAP_MUX_MODE5 | AM33XX_PIN_OUTPUT},
786 {"mcasp0_fsr.pr1_pru0_pru_r30_5", OMAP_MUX_MODE5 | AM33XX_PIN_OUTPUT}, 786 {"mcasp0_fsr.pr1_pru0_pru_r30_5", OMAP_MUX_MODE5 | AM33XX_PIN_OUTPUT},
787 {NULL, 0}, 787 {NULL, 0},
788 }; 788 };
789 789
790 /* Module pin mux for eCAP0 */ 790 /* Module pin mux for eCAP0 */
791 static struct pinmux_config ecap0_pin_mux[] = { 791 static struct pinmux_config ecap0_pin_mux[] = {
792 {"ecap0_in_pwm0_out.gpio0_7", AM33XX_PIN_OUTPUT}, 792 {"ecap0_in_pwm0_out.gpio0_7", AM33XX_PIN_OUTPUT},
793 {NULL, 0}, 793 {NULL, 0},
794 }; 794 };
795 795
796 #define AM335XEVM_WLAN_IRQ_GPIO GPIO_TO_PIN(3, 17) 796 #define AM335XEVM_WLAN_IRQ_GPIO GPIO_TO_PIN(3, 17)
797 797
798 struct wl12xx_platform_data am335xevm_wlan_data = { 798 struct wl12xx_platform_data am335xevm_wlan_data = {
799 .irq = OMAP_GPIO_IRQ(AM335XEVM_WLAN_IRQ_GPIO), 799 .irq = OMAP_GPIO_IRQ(AM335XEVM_WLAN_IRQ_GPIO),
800 .board_ref_clock = WL12XX_REFCLOCK_38_XTAL, /* 38.4Mhz */ 800 .board_ref_clock = WL12XX_REFCLOCK_38_XTAL, /* 38.4Mhz */
801 }; 801 };
802 802
803 /* Module pin mux for wlan and bluetooth */ 803 /* Module pin mux for wlan and bluetooth */
804 static struct pinmux_config mmc2_wl12xx_pin_mux[] = { 804 static struct pinmux_config mmc2_wl12xx_pin_mux[] = {
805 {"gpmc_a1.mmc2_dat0", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP}, 805 {"gpmc_a1.mmc2_dat0", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
806 {"gpmc_a2.mmc2_dat1", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP}, 806 {"gpmc_a2.mmc2_dat1", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
807 {"gpmc_a3.mmc2_dat2", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP}, 807 {"gpmc_a3.mmc2_dat2", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
808 {"gpmc_ben1.mmc2_dat3", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP}, 808 {"gpmc_ben1.mmc2_dat3", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
809 {"gpmc_csn3.mmc2_cmd", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP}, 809 {"gpmc_csn3.mmc2_cmd", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
810 {"gpmc_clk.mmc2_clk", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP}, 810 {"gpmc_clk.mmc2_clk", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
811 {NULL, 0}, 811 {NULL, 0},
812 }; 812 };
813 813
814 static struct pinmux_config uart1_wl12xx_pin_mux[] = { 814 static struct pinmux_config uart1_wl12xx_pin_mux[] = {
815 {"uart1_ctsn.uart1_ctsn", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 815 {"uart1_ctsn.uart1_ctsn", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
816 {"uart1_rtsn.uart1_rtsn", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT}, 816 {"uart1_rtsn.uart1_rtsn", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT},
817 {"uart1_rxd.uart1_rxd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, 817 {"uart1_rxd.uart1_rxd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
818 {"uart1_txd.uart1_txd", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL}, 818 {"uart1_txd.uart1_txd", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL},
819 {NULL, 0}, 819 {NULL, 0},
820 }; 820 };
821 821
822 static struct pinmux_config wl12xx_pin_mux_evm_rev1_1a[] = { 822 static struct pinmux_config wl12xx_pin_mux_evm_rev1_1a[] = {
823 {"gpmc_a0.gpio1_16", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, 823 {"gpmc_a0.gpio1_16", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
824 {"mcasp0_ahclkr.gpio3_17", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, 824 {"mcasp0_ahclkr.gpio3_17", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
825 {"mcasp0_ahclkx.gpio3_21", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, 825 {"mcasp0_ahclkx.gpio3_21", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
826 {NULL, 0}, 826 {NULL, 0},
827 }; 827 };
828 828
829 static struct pinmux_config wl12xx_pin_mux_evm_rev1_0[] = { 829 static struct pinmux_config wl12xx_pin_mux_evm_rev1_0[] = {
830 {"gpmc_csn1.gpio1_30", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, 830 {"gpmc_csn1.gpio1_30", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
831 {"mcasp0_ahclkr.gpio3_17", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, 831 {"mcasp0_ahclkr.gpio3_17", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
832 {"gpmc_csn2.gpio1_31", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, 832 {"gpmc_csn2.gpio1_31", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
833 {NULL, 0}, 833 {NULL, 0},
834 }; 834 };
835 835
836 static int backlight_enable = false; 836 static int backlight_enable = false;
837 837
838 static void enable_ecap0(int evm_id, int profile) 838 static void enable_ecap0(int evm_id, int profile)
839 { 839 {
840 backlight_enable = true; 840 backlight_enable = true;
841 } 841 }
842 842
843 static int __init ecap0_init(void) 843 static int __init ecap0_init(void)
844 { 844 {
845 int status = 0; 845 int status = 0;
846 846
847 if (backlight_enable) { 847 if (backlight_enable) {
848 setup_pin_mux(ecap0_pin_mux); 848 setup_pin_mux(ecap0_pin_mux);
849 849
850 status = gpio_request(AM335X_LCD_BL_PIN, "lcd bl\n"); 850 status = gpio_request(AM335X_LCD_BL_PIN, "lcd bl\n");
851 if (status < 0) 851 if (status < 0)
852 pr_warn("Failed to request gpio for LCD backlight\n"); 852 pr_warn("Failed to request gpio for LCD backlight\n");
853 853
854 gpio_direction_output(AM335X_LCD_BL_PIN, 1); 854 gpio_direction_output(AM335X_LCD_BL_PIN, 1);
855 } 855 }
856 return status; 856 return status;
857 } 857 }
858 late_initcall(ecap0_init); 858 late_initcall(ecap0_init);
859 859
860 static int __init conf_disp_pll(int rate) 860 static int __init conf_disp_pll(int rate)
861 { 861 {
862 struct clk *disp_pll; 862 struct clk *disp_pll;
863 int ret = -EINVAL; 863 int ret = -EINVAL;
864 864
865 disp_pll = clk_get(NULL, "dpll_disp_ck"); 865 disp_pll = clk_get(NULL, "dpll_disp_ck");
866 if (IS_ERR(disp_pll)) { 866 if (IS_ERR(disp_pll)) {
867 pr_err("Cannot clk_get disp_pll\n"); 867 pr_err("Cannot clk_get disp_pll\n");
868 goto out; 868 goto out;
869 } 869 }
870 870
871 ret = clk_set_rate(disp_pll, rate); 871 ret = clk_set_rate(disp_pll, rate);
872 clk_put(disp_pll); 872 clk_put(disp_pll);
873 out: 873 out:
874 return ret; 874 return ret;
875 } 875 }
876 876
877 static void lcdc_init(int evm_id, int profile) 877 static void lcdc_init(int evm_id, int profile)
878 { 878 {
879 879
880 setup_pin_mux(lcdc_pin_mux); 880 setup_pin_mux(lcdc_pin_mux);
881 881
882 if (conf_disp_pll(300000000)) { 882 if (conf_disp_pll(300000000)) {
883 pr_info("Failed configure display PLL, not attempting to" 883 pr_info("Failed configure display PLL, not attempting to"
884 "register LCDC\n"); 884 "register LCDC\n");
885 return; 885 return;
886 } 886 }
887 887
888 if (am33xx_register_lcdc(&TFC_S9700RTWV35TR_01B_pdata)) 888 if (am33xx_register_lcdc(&TFC_S9700RTWV35TR_01B_pdata))
889 pr_info("Failed to register LCDC device\n"); 889 pr_info("Failed to register LCDC device\n");
890 return; 890 return;
891 } 891 }
892 892
893 static void tsc_init(int evm_id, int profile) 893 static void tsc_init(int evm_id, int profile)
894 { 894 {
895 int err; 895 int err;
896 896
897 if (gp_evm_revision == GP_EVM_REV_IS_1_1A) { 897 if (gp_evm_revision == GP_EVM_REV_IS_1_1A) {
898 am335x_touchscreen_data.analog_input = 1; 898 am335x_touchscreen_data.analog_input = 1;
899 pr_info("TSC connected to beta GP EVM\n"); 899 pr_info("TSC connected to beta GP EVM\n");
900 } else { 900 } else {
901 am335x_touchscreen_data.analog_input = 0; 901 am335x_touchscreen_data.analog_input = 0;
902 pr_info("TSC connected to alpha GP EVM\n"); 902 pr_info("TSC connected to alpha GP EVM\n");
903 } 903 }
904 setup_pin_mux(tsc_pin_mux); 904 setup_pin_mux(tsc_pin_mux);
905 err = platform_device_register(&tsc_device); 905 err = platform_device_register(&tsc_device);
906 if (err) 906 if (err)
907 pr_err("failed to register touchscreen device\n"); 907 pr_err("failed to register touchscreen device\n");
908 } 908 }
909 909
910 static void rgmii1_init(int evm_id, int profile) 910 static void rgmii1_init(int evm_id, int profile)
911 { 911 {
912 setup_pin_mux(rgmii1_pin_mux); 912 setup_pin_mux(rgmii1_pin_mux);
913 return; 913 return;
914 } 914 }
915 915
916 static void rgmii2_init(int evm_id, int profile) 916 static void rgmii2_init(int evm_id, int profile)
917 { 917 {
918 setup_pin_mux(rgmii2_pin_mux); 918 setup_pin_mux(rgmii2_pin_mux);
919 return; 919 return;
920 } 920 }
921 921
922 static void mii1_init(int evm_id, int profile) 922 static void mii1_init(int evm_id, int profile)
923 { 923 {
924 setup_pin_mux(mii1_pin_mux); 924 setup_pin_mux(mii1_pin_mux);
925 return; 925 return;
926 } 926 }
927 927
928 static void rmii1_init(int evm_id, int profile) 928 static void rmii1_init(int evm_id, int profile)
929 { 929 {
930 setup_pin_mux(rmii1_pin_mux); 930 setup_pin_mux(rmii1_pin_mux);
931 return; 931 return;
932 } 932 }
933 933
934 static void usb0_init(int evm_id, int profile) 934 static void usb0_init(int evm_id, int profile)
935 { 935 {
936 setup_pin_mux(usb0_pin_mux); 936 setup_pin_mux(usb0_pin_mux);
937 return; 937 return;
938 } 938 }
939 939
940 static void usb1_init(int evm_id, int profile) 940 static void usb1_init(int evm_id, int profile)
941 { 941 {
942 setup_pin_mux(usb1_pin_mux); 942 setup_pin_mux(usb1_pin_mux);
943 return; 943 return;
944 } 944 }
945 945
946 /* setup uart3 */ 946 /* setup uart3 */
947 static void uart3_init(int evm_id, int profile) 947 static void uart3_init(int evm_id, int profile)
948 { 948 {
949 setup_pin_mux(uart3_pin_mux); 949 setup_pin_mux(uart3_pin_mux);
950 return; 950 return;
951 } 951 }
952 952
953 /* NAND partition information */ 953 /* NAND partition information */
954 static struct mtd_partition am335x_nand_partitions[] = { 954 static struct mtd_partition am335x_nand_partitions[] = {
955 /* All the partition sizes are listed in terms of NAND block size */ 955 /* All the partition sizes are listed in terms of NAND block size */
956 { 956 {
957 .name = "SPL", 957 .name = "SPL",
958 .offset = 0, /* Offset = 0x0 */ 958 .offset = 0, /* Offset = 0x0 */
959 .size = SZ_128K, 959 .size = SZ_128K,
960 }, 960 },
961 { 961 {
962 .name = "SPL.backup1", 962 .name = "SPL.backup1",
963 .offset = MTDPART_OFS_APPEND, /* Offset = 0x20000 */ 963 .offset = MTDPART_OFS_APPEND, /* Offset = 0x20000 */
964 .size = SZ_128K, 964 .size = SZ_128K,
965 }, 965 },
966 { 966 {
967 .name = "SPL.backup2", 967 .name = "SPL.backup2",
968 .offset = MTDPART_OFS_APPEND, /* Offset = 0x40000 */ 968 .offset = MTDPART_OFS_APPEND, /* Offset = 0x40000 */
969 .size = SZ_128K, 969 .size = SZ_128K,
970 }, 970 },
971 { 971 {
972 .name = "SPL.backup3", 972 .name = "SPL.backup3",
973 .offset = MTDPART_OFS_APPEND, /* Offset = 0x60000 */ 973 .offset = MTDPART_OFS_APPEND, /* Offset = 0x60000 */
974 .size = SZ_128K, 974 .size = SZ_128K,
975 }, 975 },
976 { 976 {
977 .name = "U-Boot", 977 .name = "U-Boot",
978 .offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */ 978 .offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */
979 .size = 15 * SZ_128K, 979 .size = 15 * SZ_128K,
980 }, 980 },
981 { 981 {
982 .name = "U-Boot Env", 982 .name = "U-Boot Env",
983 .offset = MTDPART_OFS_APPEND, /* Offset = 0x260000 */ 983 .offset = MTDPART_OFS_APPEND, /* Offset = 0x260000 */
984 .size = 1 * SZ_128K, 984 .size = 1 * SZ_128K,
985 }, 985 },
986 { 986 {
987 .name = "Kernel", 987 .name = "Kernel",
988 .offset = MTDPART_OFS_APPEND, /* Offset = 0x280000 */ 988 .offset = MTDPART_OFS_APPEND, /* Offset = 0x280000 */
989 .size = 40 * SZ_128K, 989 .size = 40 * SZ_128K,
990 }, 990 },
991 { 991 {
992 .name = "File System", 992 .name = "File System",
993 .offset = MTDPART_OFS_APPEND, /* Offset = 0x780000 */ 993 .offset = MTDPART_OFS_APPEND, /* Offset = 0x780000 */
994 .size = MTDPART_SIZ_FULL, 994 .size = MTDPART_SIZ_FULL,
995 }, 995 },
996 }; 996 };
997 997
998 /* SPI 0/1 Platform Data */ 998 /* SPI 0/1 Platform Data */
999 /* SPI flash information */ 999 /* SPI flash information */
1000 static struct mtd_partition am335x_spi_partitions[] = { 1000 static struct mtd_partition am335x_spi_partitions[] = {
1001 /* All the partition sizes are listed in terms of erase size */ 1001 /* All the partition sizes are listed in terms of erase size */
1002 { 1002 {
1003 .name = "U-Boot-min", 1003 .name = "U-Boot-min",
1004 .offset = 0, 1004 .offset = 0,
1005 .size = SZ_128K, 1005 .size = SZ_128K,
1006 .mask_flags = MTD_WRITEABLE, /* force read-only */ 1006 .mask_flags = MTD_WRITEABLE, /* force read-only */
1007 }, 1007 },
1008 { 1008 {
1009 .name = "U-Boot", 1009 .name = "U-Boot",
1010 .offset = MTDPART_OFS_APPEND, 1010 .offset = MTDPART_OFS_APPEND,
1011 .size = 2 * SZ_128K, 1011 .size = 2 * SZ_128K,
1012 .mask_flags = MTD_WRITEABLE, /* force read-only */ 1012 .mask_flags = MTD_WRITEABLE, /* force read-only */
1013 }, 1013 },
1014 { 1014 {
1015 .name = "U-Boot Env", 1015 .name = "U-Boot Env",
1016 .offset = MTDPART_OFS_APPEND, 1016 .offset = MTDPART_OFS_APPEND,
1017 .size = 2 * SZ_4K, 1017 .size = 2 * SZ_4K,
1018 }, 1018 },
1019 { 1019 {
1020 .name = "Kernel", 1020 .name = "Kernel",
1021 .offset = MTDPART_OFS_APPEND, 1021 .offset = MTDPART_OFS_APPEND,
1022 .size = 28 * SZ_128K, 1022 .size = 28 * SZ_128K,
1023 }, 1023 },
1024 { 1024 {
1025 .name = "File System", 1025 .name = "File System",
1026 .offset = MTDPART_OFS_APPEND, 1026 .offset = MTDPART_OFS_APPEND,
1027 .size = MTDPART_SIZ_FULL, /* size ~= 1.1 MiB */ 1027 .size = MTDPART_SIZ_FULL, /* size ~= 1.1 MiB */
1028 } 1028 }
1029 }; 1029 };
1030 1030
1031 static const struct flash_platform_data am335x_spi_flash = { 1031 static const struct flash_platform_data am335x_spi_flash = {
1032 .type = "w25q64", 1032 .type = "w25q64",
1033 .name = "spi_flash", 1033 .name = "spi_flash",
1034 .parts = am335x_spi_partitions, 1034 .parts = am335x_spi_partitions,
1035 .nr_parts = ARRAY_SIZE(am335x_spi_partitions), 1035 .nr_parts = ARRAY_SIZE(am335x_spi_partitions),
1036 }; 1036 };
1037 1037
1038 /* 1038 /*
1039 * SPI Flash works at 80Mhz however SPI Controller works at 48MHz. 1039 * SPI Flash works at 80Mhz however SPI Controller works at 48MHz.
1040 * So setup Max speed to be less than that of Controller speed 1040 * So setup Max speed to be less than that of Controller speed
1041 */ 1041 */
1042 static struct spi_board_info am335x_spi0_slave_info[] = { 1042 static struct spi_board_info am335x_spi0_slave_info[] = {
1043 { 1043 {
1044 .modalias = "m25p80", 1044 .modalias = "m25p80",
1045 .platform_data = &am335x_spi_flash, 1045 .platform_data = &am335x_spi_flash,
1046 .irq = -1, 1046 .irq = -1,
1047 .max_speed_hz = 24000000, 1047 .max_speed_hz = 24000000,
1048 .bus_num = 1, 1048 .bus_num = 1,
1049 .chip_select = 0, 1049 .chip_select = 0,
1050 }, 1050 },
1051 }; 1051 };
1052 1052
1053 static struct spi_board_info am335x_spi1_slave_info[] = { 1053 static struct spi_board_info am335x_spi1_slave_info[] = {
1054 { 1054 {
1055 .modalias = "m25p80", 1055 .modalias = "m25p80",
1056 .platform_data = &am335x_spi_flash, 1056 .platform_data = &am335x_spi_flash,
1057 .irq = -1, 1057 .irq = -1,
1058 .max_speed_hz = 12000000, 1058 .max_speed_hz = 12000000,
1059 .bus_num = 2, 1059 .bus_num = 2,
1060 .chip_select = 0, 1060 .chip_select = 0,
1061 }, 1061 },
1062 }; 1062 };
1063 1063
1064 static void evm_nand_init(int evm_id, int profile) 1064 static void evm_nand_init(int evm_id, int profile)
1065 { 1065 {
1066 setup_pin_mux(nand_pin_mux); 1066 setup_pin_mux(nand_pin_mux);
1067 board_nand_init(am335x_nand_partitions, 1067 board_nand_init(am335x_nand_partitions,
1068 ARRAY_SIZE(am335x_nand_partitions), 0, 0); 1068 ARRAY_SIZE(am335x_nand_partitions), 0, 0);
1069 } 1069 }
1070 1070
1071 static struct lis3lv02d_platform_data lis331dlh_pdata = { 1071 static struct lis3lv02d_platform_data lis331dlh_pdata = {
1072 .click_flags = LIS3_CLICK_SINGLE_X | 1072 .click_flags = LIS3_CLICK_SINGLE_X |
1073 LIS3_CLICK_SINGLE_Y | 1073 LIS3_CLICK_SINGLE_Y |
1074 LIS3_CLICK_SINGLE_Z, 1074 LIS3_CLICK_SINGLE_Z,
1075 .wakeup_flags = LIS3_WAKEUP_X_LO | LIS3_WAKEUP_X_HI | 1075 .wakeup_flags = LIS3_WAKEUP_X_LO | LIS3_WAKEUP_X_HI |
1076 LIS3_WAKEUP_Y_LO | LIS3_WAKEUP_Y_HI | 1076 LIS3_WAKEUP_Y_LO | LIS3_WAKEUP_Y_HI |
1077 LIS3_WAKEUP_Z_LO | LIS3_WAKEUP_Z_HI, 1077 LIS3_WAKEUP_Z_LO | LIS3_WAKEUP_Z_HI,
1078 .irq_cfg = LIS3_IRQ1_CLICK | LIS3_IRQ2_CLICK, 1078 .irq_cfg = LIS3_IRQ1_CLICK | LIS3_IRQ2_CLICK,
1079 .wakeup_thresh = 10, 1079 .wakeup_thresh = 10,
1080 .click_thresh_x = 10, 1080 .click_thresh_x = 10,
1081 .click_thresh_y = 10, 1081 .click_thresh_y = 10,
1082 .click_thresh_z = 10, 1082 .click_thresh_z = 10,
1083 .g_range = 2, 1083 .g_range = 2,
1084 .st_min_limits[0] = 120, 1084 .st_min_limits[0] = 120,
1085 .st_min_limits[1] = 120, 1085 .st_min_limits[1] = 120,
1086 .st_min_limits[2] = 140, 1086 .st_min_limits[2] = 140,
1087 .st_max_limits[0] = 550, 1087 .st_max_limits[0] = 550,
1088 .st_max_limits[1] = 550, 1088 .st_max_limits[1] = 550,
1089 .st_max_limits[2] = 750, 1089 .st_max_limits[2] = 750,
1090 }; 1090 };
1091 1091
1092 static struct i2c_board_info am335x_i2c_boardinfo1[] = { 1092 static struct i2c_board_info am335x_i2c_boardinfo1[] = {
1093 { 1093 {
1094 I2C_BOARD_INFO("tlv320aic3x", 0x1b), 1094 I2C_BOARD_INFO("tlv320aic3x", 0x1b),
1095 }, 1095 },
1096 { 1096 {
1097 I2C_BOARD_INFO("lis331dlh", 0x18), 1097 I2C_BOARD_INFO("lis331dlh", 0x18),
1098 .platform_data = &lis331dlh_pdata, 1098 .platform_data = &lis331dlh_pdata,
1099 }, 1099 },
1100 { 1100 {
1101 I2C_BOARD_INFO("tsl2550", 0x39), 1101 I2C_BOARD_INFO("tsl2550", 0x39),
1102 }, 1102 },
1103 { 1103 {
1104 I2C_BOARD_INFO("tmp275", 0x48), 1104 I2C_BOARD_INFO("tmp275", 0x48),
1105 }, 1105 },
1106 }; 1106 };
1107 1107
1108 static void i2c1_init(int evm_id, int profile) 1108 static void i2c1_init(int evm_id, int profile)
1109 { 1109 {
1110 setup_pin_mux(i2c1_pin_mux); 1110 setup_pin_mux(i2c1_pin_mux);
1111 omap_register_i2c_bus(2, 100, am335x_i2c_boardinfo1, 1111 omap_register_i2c_bus(2, 100, am335x_i2c_boardinfo1,
1112 ARRAY_SIZE(am335x_i2c_boardinfo1)); 1112 ARRAY_SIZE(am335x_i2c_boardinfo1));
1113 return; 1113 return;
1114 } 1114 }
1115 1115
1116 /* Setup McASP 1 */ 1116 /* Setup McASP 1 */
1117 static void mcasp1_init(int evm_id, int profile) 1117 static void mcasp1_init(int evm_id, int profile)
1118 { 1118 {
1119 /* Configure McASP */ 1119 /* Configure McASP */
1120 setup_pin_mux(mcasp1_pin_mux); 1120 setup_pin_mux(mcasp1_pin_mux);
1121 am335x_register_mcasp1(&am335x_evm_snd_data1); 1121 am335x_register_mcasp1(&am335x_evm_snd_data1);
1122 return; 1122 return;
1123 } 1123 }
1124 1124
1125 static void mmc1_init(int evm_id, int profile) 1125 static void mmc1_init(int evm_id, int profile)
1126 { 1126 {
1127 setup_pin_mux(mmc1_pin_mux); 1127 setup_pin_mux(mmc1_pin_mux);
1128 1128
1129 am335x_mmc[1].mmc = 2; 1129 am335x_mmc[1].mmc = 2;
1130 am335x_mmc[1].caps = MMC_CAP_4_BIT_DATA; 1130 am335x_mmc[1].caps = MMC_CAP_4_BIT_DATA;
1131 am335x_mmc[1].gpio_cd = GPIO_TO_PIN(3, 15); 1131 am335x_mmc[1].gpio_cd = GPIO_TO_PIN(3, 15);
1132 am335x_mmc[1].gpio_wp = GPIO_TO_PIN(0, 14); 1132 am335x_mmc[1].gpio_wp = GPIO_TO_PIN(0, 14);
1133 am335x_mmc[1].ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34; /* 3V3 */ 1133 am335x_mmc[1].ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34; /* 3V3 */
1134 1134
1135 /* mmc will be initialized when mmc0_init is called */ 1135 /* mmc will be initialized when mmc0_init is called */
1136 return; 1136 return;
1137 } 1137 }
1138 1138
1139 static void mmc2_wl12xx_init(int evm_id, int profile) 1139 static void mmc2_wl12xx_init(int evm_id, int profile)
1140 { 1140 {
1141 setup_pin_mux(mmc2_wl12xx_pin_mux); 1141 setup_pin_mux(mmc2_wl12xx_pin_mux);
1142 1142
1143 am335x_mmc[1].mmc = 3; 1143 am335x_mmc[1].mmc = 3;
1144 am335x_mmc[1].name = "wl1271"; 1144 am335x_mmc[1].name = "wl1271";
1145 am335x_mmc[1].caps = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD 1145 am335x_mmc[1].caps = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD
1146 | MMC_PM_KEEP_POWER; 1146 | MMC_PM_KEEP_POWER;
1147 am335x_mmc[1].nonremovable = true; 1147 am335x_mmc[1].nonremovable = true;
1148 am335x_mmc[1].gpio_cd = -EINVAL; 1148 am335x_mmc[1].gpio_cd = -EINVAL;
1149 am335x_mmc[1].gpio_wp = -EINVAL; 1149 am335x_mmc[1].gpio_wp = -EINVAL;
1150 am335x_mmc[1].ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34; /* 3V3 */ 1150 am335x_mmc[1].ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34; /* 3V3 */
1151 1151
1152 /* mmc will be initialized when mmc0_init is called */ 1152 /* mmc will be initialized when mmc0_init is called */
1153 return; 1153 return;
1154 } 1154 }
1155 1155
1156 static void uart1_wl12xx_init(int evm_id, int profile) 1156 static void uart1_wl12xx_init(int evm_id, int profile)
1157 { 1157 {
1158 setup_pin_mux(uart1_wl12xx_pin_mux); 1158 setup_pin_mux(uart1_wl12xx_pin_mux);
1159 } 1159 }
1160 1160
1161 static void wl12xx_bluetooth_enable(void) 1161 static void wl12xx_bluetooth_enable(void)
1162 { 1162 {
1163 int status = gpio_request(am335xevm_wlan_data.bt_enable_gpio, 1163 int status = gpio_request(am335xevm_wlan_data.bt_enable_gpio,
1164 "bt_en\n"); 1164 "bt_en\n");
1165 if (status < 0) 1165 if (status < 0)
1166 pr_err("Failed to request gpio for bt_enable"); 1166 pr_err("Failed to request gpio for bt_enable");
1167 1167
1168 pr_info("Configure Bluetooth Enable pin...\n"); 1168 pr_info("Configure Bluetooth Enable pin...\n");
1169 gpio_direction_output(am335xevm_wlan_data.bt_enable_gpio, 0); 1169 gpio_direction_output(am335xevm_wlan_data.bt_enable_gpio, 0);
1170 } 1170 }
1171 1171
1172 static int wl12xx_set_power(struct device *dev, int slot, int on, int vdd) 1172 static int wl12xx_set_power(struct device *dev, int slot, int on, int vdd)
1173 { 1173 {
1174 if (on) { 1174 if (on) {
1175 gpio_set_value(am335xevm_wlan_data.wlan_enable_gpio, 1); 1175 gpio_set_value(am335xevm_wlan_data.wlan_enable_gpio, 1);
1176 mdelay(70); 1176 mdelay(70);
1177 } 1177 }
1178 else 1178 else
1179 gpio_set_value(am335xevm_wlan_data.wlan_enable_gpio, 0); 1179 gpio_set_value(am335xevm_wlan_data.wlan_enable_gpio, 0);
1180 1180
1181 return 0; 1181 return 0;
1182 } 1182 }
1183 1183
1184 static void wl12xx_init(int evm_id, int profile) 1184 static void wl12xx_init(int evm_id, int profile)
1185 { 1185 {
1186 struct device *dev; 1186 struct device *dev;
1187 struct omap_mmc_platform_data *pdata; 1187 struct omap_mmc_platform_data *pdata;
1188 int ret; 1188 int ret;
1189 1189
1190 /* Register WLAN and BT enable pins based on the evm board revision */ 1190 /* Register WLAN and BT enable pins based on the evm board revision */
1191 if (gp_evm_revision == GP_EVM_REV_IS_1_1A) { 1191 if (gp_evm_revision == GP_EVM_REV_IS_1_1A) {
1192 am335xevm_wlan_data.wlan_enable_gpio = GPIO_TO_PIN(1, 16); 1192 am335xevm_wlan_data.wlan_enable_gpio = GPIO_TO_PIN(1, 16);
1193 am335xevm_wlan_data.bt_enable_gpio = GPIO_TO_PIN(3, 21); 1193 am335xevm_wlan_data.bt_enable_gpio = GPIO_TO_PIN(3, 21);
1194 } 1194 }
1195 else { 1195 else {
1196 am335xevm_wlan_data.wlan_enable_gpio = GPIO_TO_PIN(1, 30); 1196 am335xevm_wlan_data.wlan_enable_gpio = GPIO_TO_PIN(1, 30);
1197 am335xevm_wlan_data.bt_enable_gpio = GPIO_TO_PIN(1, 31); 1197 am335xevm_wlan_data.bt_enable_gpio = GPIO_TO_PIN(1, 31);
1198 } 1198 }
1199 1199
1200 wl12xx_bluetooth_enable(); 1200 wl12xx_bluetooth_enable();
1201 1201
1202 if (wl12xx_set_platform_data(&am335xevm_wlan_data)) 1202 if (wl12xx_set_platform_data(&am335xevm_wlan_data))
1203 pr_err("error setting wl12xx data\n"); 1203 pr_err("error setting wl12xx data\n");
1204 1204
1205 dev = am335x_mmc[1].dev; 1205 dev = am335x_mmc[1].dev;
1206 if (!dev) { 1206 if (!dev) {
1207 pr_err("wl12xx mmc device initialization failed\n"); 1207 pr_err("wl12xx mmc device initialization failed\n");
1208 goto out; 1208 goto out;
1209 } 1209 }
1210 1210
1211 pdata = dev->platform_data; 1211 pdata = dev->platform_data;
1212 if (!pdata) { 1212 if (!pdata) {
1213 pr_err("Platfrom data of wl12xx device not set\n"); 1213 pr_err("Platfrom data of wl12xx device not set\n");
1214 goto out; 1214 goto out;
1215 } 1215 }
1216 1216
1217 ret = gpio_request_one(am335xevm_wlan_data.wlan_enable_gpio, 1217 ret = gpio_request_one(am335xevm_wlan_data.wlan_enable_gpio,
1218 GPIOF_OUT_INIT_LOW, "wlan_en"); 1218 GPIOF_OUT_INIT_LOW, "wlan_en");
1219 if (ret) { 1219 if (ret) {
1220 pr_err("Error requesting wlan enable gpio: %d\n", ret); 1220 pr_err("Error requesting wlan enable gpio: %d\n", ret);
1221 goto out; 1221 goto out;
1222 } 1222 }
1223 1223
1224 if (gp_evm_revision == GP_EVM_REV_IS_1_1A) 1224 if (gp_evm_revision == GP_EVM_REV_IS_1_1A)
1225 setup_pin_mux(wl12xx_pin_mux_evm_rev1_1a); 1225 setup_pin_mux(wl12xx_pin_mux_evm_rev1_1a);
1226 else 1226 else
1227 setup_pin_mux(wl12xx_pin_mux_evm_rev1_0); 1227 setup_pin_mux(wl12xx_pin_mux_evm_rev1_0);
1228 1228
1229 pdata->slots[0].set_power = wl12xx_set_power; 1229 pdata->slots[0].set_power = wl12xx_set_power;
1230 out: 1230 out:
1231 return; 1231 return;
1232 } 1232 }
1233 1233
1234 static void d_can_init(int evm_id, int profile) 1234 static void d_can_init(int evm_id, int profile)
1235 { 1235 {
1236 switch (evm_id) { 1236 switch (evm_id) {
1237 case IND_AUT_MTR_EVM: 1237 case IND_AUT_MTR_EVM:
1238 if ((profile == PROFILE_0) || (profile == PROFILE_1)) { 1238 if ((profile == PROFILE_0) || (profile == PROFILE_1)) {
1239 setup_pin_mux(d_can_ia_pin_mux); 1239 setup_pin_mux(d_can_ia_pin_mux);
1240 /* Instance Zero */ 1240 /* Instance Zero */
1241 am33xx_d_can_init(0); 1241 am33xx_d_can_init(0);
1242 } 1242 }
1243 break; 1243 break;
1244 case GEN_PURP_EVM: 1244 case GEN_PURP_EVM:
1245 if (profile == PROFILE_1) { 1245 if (profile == PROFILE_1) {
1246 setup_pin_mux(d_can_gp_pin_mux); 1246 setup_pin_mux(d_can_gp_pin_mux);
1247 /* Instance One */ 1247 /* Instance One */
1248 am33xx_d_can_init(1); 1248 am33xx_d_can_init(1);
1249 } 1249 }
1250 break; 1250 break;
1251 default: 1251 default:
1252 break; 1252 break;
1253 } 1253 }
1254 } 1254 }
1255 1255
1256 static void mmc0_init(int evm_id, int profile) 1256 static void mmc0_init(int evm_id, int profile)
1257 { 1257 {
1258 setup_pin_mux(mmc0_pin_mux); 1258 setup_pin_mux(mmc0_pin_mux);
1259 1259
1260 omap2_hsmmc_init(am335x_mmc); 1260 omap2_hsmmc_init(am335x_mmc);
1261 return; 1261 return;
1262 } 1262 }
1263 1263
1264 static void mmc0_no_cd_init(int evm_id, int profile) 1264 static void mmc0_no_cd_init(int evm_id, int profile)
1265 { 1265 {
1266 setup_pin_mux(mmc0_no_cd_pin_mux); 1266 setup_pin_mux(mmc0_no_cd_pin_mux);
1267 1267
1268 omap2_hsmmc_init(am335x_mmc); 1268 omap2_hsmmc_init(am335x_mmc);
1269 return; 1269 return;
1270 } 1270 }
1271 1271
1272 1272
1273 /* setup spi0 */ 1273 /* setup spi0 */
1274 static void spi0_init(int evm_id, int profile) 1274 static void spi0_init(int evm_id, int profile)
1275 { 1275 {
1276 setup_pin_mux(spi0_pin_mux); 1276 setup_pin_mux(spi0_pin_mux);
1277 spi_register_board_info(am335x_spi0_slave_info, 1277 spi_register_board_info(am335x_spi0_slave_info,
1278 ARRAY_SIZE(am335x_spi0_slave_info)); 1278 ARRAY_SIZE(am335x_spi0_slave_info));
1279 return; 1279 return;
1280 } 1280 }
1281 1281
1282 /* setup spi1 */ 1282 /* setup spi1 */
1283 static void spi1_init(int evm_id, int profile) 1283 static void spi1_init(int evm_id, int profile)
1284 { 1284 {
1285 setup_pin_mux(spi1_pin_mux); 1285 setup_pin_mux(spi1_pin_mux);
1286 spi_register_board_info(am335x_spi1_slave_info, 1286 spi_register_board_info(am335x_spi1_slave_info,
1287 ARRAY_SIZE(am335x_spi1_slave_info)); 1287 ARRAY_SIZE(am335x_spi1_slave_info));
1288 return; 1288 return;
1289 } 1289 }
1290 1290
1291 1291
1292 static int beaglebone_phy_fixup(struct phy_device *phydev) 1292 static int beaglebone_phy_fixup(struct phy_device *phydev)
1293 { 1293 {
1294 phydev->supported &= ~(SUPPORTED_100baseT_Half | 1294 phydev->supported &= ~(SUPPORTED_100baseT_Half |
1295 SUPPORTED_100baseT_Full); 1295 SUPPORTED_100baseT_Full);
1296 1296
1297 return 0; 1297 return 0;
1298 } 1298 }
1299 1299
1300 #ifdef CONFIG_TLK110_WORKAROUND 1300 #ifdef CONFIG_TLK110_WORKAROUND
1301 static int am335x_tlk110_phy_fixup(struct phy_device *phydev) 1301 static int am335x_tlk110_phy_fixup(struct phy_device *phydev)
1302 { 1302 {
1303 unsigned int val; 1303 unsigned int val;
1304 1304
1305 /* This is done as a workaround to support TLK110 rev1.0 phy */ 1305 /* This is done as a workaround to support TLK110 rev1.0 phy */
1306 val = phy_read(phydev, TLK110_COARSEGAIN_REG); 1306 val = phy_read(phydev, TLK110_COARSEGAIN_REG);
1307 phy_write(phydev, TLK110_COARSEGAIN_REG, (val | TLK110_COARSEGAIN_VAL)); 1307 phy_write(phydev, TLK110_COARSEGAIN_REG, (val | TLK110_COARSEGAIN_VAL));
1308 1308
1309 val = phy_read(phydev, TLK110_LPFHPF_REG); 1309 val = phy_read(phydev, TLK110_LPFHPF_REG);
1310 phy_write(phydev, TLK110_LPFHPF_REG, (val | TLK110_LPFHPF_VAL)); 1310 phy_write(phydev, TLK110_LPFHPF_REG, (val | TLK110_LPFHPF_VAL));
1311 1311
1312 val = phy_read(phydev, TLK110_SPAREANALOG_REG); 1312 val = phy_read(phydev, TLK110_SPAREANALOG_REG);
1313 phy_write(phydev, TLK110_SPAREANALOG_REG, (val | TLK110_SPANALOG_VAL)); 1313 phy_write(phydev, TLK110_SPAREANALOG_REG, (val | TLK110_SPANALOG_VAL));
1314 1314
1315 val = phy_read(phydev, TLK110_VRCR_REG); 1315 val = phy_read(phydev, TLK110_VRCR_REG);
1316 phy_write(phydev, TLK110_VRCR_REG, (val | TLK110_VRCR_VAL)); 1316 phy_write(phydev, TLK110_VRCR_REG, (val | TLK110_VRCR_VAL));
1317 1317
1318 val = phy_read(phydev, TLK110_SETFFE_REG); 1318 val = phy_read(phydev, TLK110_SETFFE_REG);
1319 phy_write(phydev, TLK110_SETFFE_REG, (val | TLK110_SETFFE_VAL)); 1319 phy_write(phydev, TLK110_SETFFE_REG, (val | TLK110_SETFFE_VAL));
1320 1320
1321 val = phy_read(phydev, TLK110_FTSP_REG); 1321 val = phy_read(phydev, TLK110_FTSP_REG);
1322 phy_write(phydev, TLK110_FTSP_REG, (val | TLK110_FTSP_VAL)); 1322 phy_write(phydev, TLK110_FTSP_REG, (val | TLK110_FTSP_VAL));
1323 1323
1324 val = phy_read(phydev, TLK110_ALFATPIDL_REG); 1324 val = phy_read(phydev, TLK110_ALFATPIDL_REG);
1325 phy_write(phydev, TLK110_ALFATPIDL_REG, (val | TLK110_ALFATPIDL_VAL)); 1325 phy_write(phydev, TLK110_ALFATPIDL_REG, (val | TLK110_ALFATPIDL_VAL));
1326 1326
1327 val = phy_read(phydev, TLK110_PSCOEF21_REG); 1327 val = phy_read(phydev, TLK110_PSCOEF21_REG);
1328 phy_write(phydev, TLK110_PSCOEF21_REG, (val | TLK110_PSCOEF21_VAL)); 1328 phy_write(phydev, TLK110_PSCOEF21_REG, (val | TLK110_PSCOEF21_VAL));
1329 1329
1330 val = phy_read(phydev, TLK110_PSCOEF3_REG); 1330 val = phy_read(phydev, TLK110_PSCOEF3_REG);
1331 phy_write(phydev, TLK110_PSCOEF3_REG, (val | TLK110_PSCOEF3_VAL)); 1331 phy_write(phydev, TLK110_PSCOEF3_REG, (val | TLK110_PSCOEF3_VAL));
1332 1332
1333 val = phy_read(phydev, TLK110_ALFAFACTOR1_REG); 1333 val = phy_read(phydev, TLK110_ALFAFACTOR1_REG);
1334 phy_write(phydev, TLK110_ALFAFACTOR1_REG, (val | TLK110_ALFACTOR1_VAL)); 1334 phy_write(phydev, TLK110_ALFAFACTOR1_REG, (val | TLK110_ALFACTOR1_VAL));
1335 1335
1336 val = phy_read(phydev, TLK110_ALFAFACTOR2_REG); 1336 val = phy_read(phydev, TLK110_ALFAFACTOR2_REG);
1337 phy_write(phydev, TLK110_ALFAFACTOR2_REG, (val | TLK110_ALFACTOR2_VAL)); 1337 phy_write(phydev, TLK110_ALFAFACTOR2_REG, (val | TLK110_ALFACTOR2_VAL));
1338 1338
1339 val = phy_read(phydev, TLK110_CFGPS_REG); 1339 val = phy_read(phydev, TLK110_CFGPS_REG);
1340 phy_write(phydev, TLK110_CFGPS_REG, (val | TLK110_CFGPS_VAL)); 1340 phy_write(phydev, TLK110_CFGPS_REG, (val | TLK110_CFGPS_VAL));
1341 1341
1342 val = phy_read(phydev, TLK110_FTSPTXGAIN_REG); 1342 val = phy_read(phydev, TLK110_FTSPTXGAIN_REG);
1343 phy_write(phydev, TLK110_FTSPTXGAIN_REG, (val | TLK110_FTSPTXGAIN_VAL)); 1343 phy_write(phydev, TLK110_FTSPTXGAIN_REG, (val | TLK110_FTSPTXGAIN_VAL));
1344 1344
1345 val = phy_read(phydev, TLK110_SWSCR3_REG); 1345 val = phy_read(phydev, TLK110_SWSCR3_REG);
1346 phy_write(phydev, TLK110_SWSCR3_REG, (val | TLK110_SWSCR3_VAL)); 1346 phy_write(phydev, TLK110_SWSCR3_REG, (val | TLK110_SWSCR3_VAL));
1347 1347
1348 val = phy_read(phydev, TLK110_SCFALLBACK_REG); 1348 val = phy_read(phydev, TLK110_SCFALLBACK_REG);
1349 phy_write(phydev, TLK110_SCFALLBACK_REG, (val | TLK110_SCFALLBACK_VAL)); 1349 phy_write(phydev, TLK110_SCFALLBACK_REG, (val | TLK110_SCFALLBACK_VAL));
1350 1350
1351 val = phy_read(phydev, TLK110_PHYRCR_REG); 1351 val = phy_read(phydev, TLK110_PHYRCR_REG);
1352 phy_write(phydev, TLK110_PHYRCR_REG, (val | TLK110_PHYRCR_VAL)); 1352 phy_write(phydev, TLK110_PHYRCR_REG, (val | TLK110_PHYRCR_VAL));
1353 1353
1354 return 0; 1354 return 0;
1355 } 1355 }
1356 #endif 1356 #endif
1357 1357
1358 static void profibus_init(int evm_id, int profile) 1358 static void profibus_init(int evm_id, int profile)
1359 { 1359 {
1360 setup_pin_mux(profibus_pin_mux); 1360 setup_pin_mux(profibus_pin_mux);
1361 return; 1361 return;
1362 } 1362 }
1363 1363
1364 /* Low-Cost EVM */ 1364 /* Low-Cost EVM */
1365 static struct evm_dev_cfg low_cost_evm_dev_cfg[] = { 1365 static struct evm_dev_cfg low_cost_evm_dev_cfg[] = {
1366 {rgmii1_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1366 {rgmii1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1367 {usb0_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1367 {usb0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1368 {usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1368 {usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1369 {evm_nand_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1369 {evm_nand_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1370 {NULL, 0, 0}, 1370 {NULL, 0, 0},
1371 }; 1371 };
1372 1372
1373 /* General Purpose EVM */ 1373 /* General Purpose EVM */
1374 static struct evm_dev_cfg gen_purp_evm_dev_cfg[] = { 1374 static struct evm_dev_cfg gen_purp_evm_dev_cfg[] = {
1375 {enable_ecap0, DEV_ON_DGHTR_BRD, (PROFILE_0 | PROFILE_1 | 1375 {enable_ecap0, DEV_ON_DGHTR_BRD, (PROFILE_0 | PROFILE_1 |
1376 PROFILE_2 | PROFILE_7) }, 1376 PROFILE_2 | PROFILE_7) },
1377 {lcdc_init, DEV_ON_DGHTR_BRD, (PROFILE_0 | PROFILE_1 | 1377 {lcdc_init, DEV_ON_DGHTR_BRD, (PROFILE_0 | PROFILE_1 |
1378 PROFILE_2 | PROFILE_7) }, 1378 PROFILE_2 | PROFILE_7) },
1379 {tsc_init, DEV_ON_DGHTR_BRD, (PROFILE_0 | PROFILE_1 | 1379 {tsc_init, DEV_ON_DGHTR_BRD, (PROFILE_0 | PROFILE_1 |
1380 PROFILE_2 | PROFILE_7) }, 1380 PROFILE_2 | PROFILE_7) },
1381 {rgmii1_init, DEV_ON_BASEBOARD, PROFILE_ALL}, 1381 {rgmii1_init, DEV_ON_BASEBOARD, PROFILE_ALL},
1382 {rgmii2_init, DEV_ON_DGHTR_BRD, (PROFILE_1 | PROFILE_2 | 1382 {rgmii2_init, DEV_ON_DGHTR_BRD, (PROFILE_1 | PROFILE_2 |
1383 PROFILE_4 | PROFILE_6) }, 1383 PROFILE_4 | PROFILE_6) },
1384 {usb0_init, DEV_ON_BASEBOARD, PROFILE_ALL}, 1384 {usb0_init, DEV_ON_BASEBOARD, PROFILE_ALL},
1385 {usb1_init, DEV_ON_BASEBOARD, PROFILE_ALL}, 1385 {usb1_init, DEV_ON_BASEBOARD, PROFILE_ALL},
1386 {evm_nand_init, DEV_ON_DGHTR_BRD, 1386 {evm_nand_init, DEV_ON_DGHTR_BRD,
1387 (PROFILE_ALL & ~PROFILE_2 & ~PROFILE_3)}, 1387 (PROFILE_ALL & ~PROFILE_2 & ~PROFILE_3)},
1388 {i2c1_init, DEV_ON_DGHTR_BRD, (PROFILE_ALL & ~PROFILE_2)}, 1388 {i2c1_init, DEV_ON_DGHTR_BRD, (PROFILE_ALL & ~PROFILE_2)},
1389 {mcasp1_init, DEV_ON_DGHTR_BRD, (PROFILE_0 | PROFILE_3 | PROFILE_7) }, 1389 {mcasp1_init, DEV_ON_DGHTR_BRD, (PROFILE_0 | PROFILE_3 | PROFILE_7) },
1390 {mmc1_init, DEV_ON_DGHTR_BRD, PROFILE_2}, 1390 {mmc1_init, DEV_ON_DGHTR_BRD, PROFILE_2},
1391 {mmc2_wl12xx_init, DEV_ON_BASEBOARD, (PROFILE_0 | PROFILE_3 | 1391 {mmc2_wl12xx_init, DEV_ON_BASEBOARD, (PROFILE_0 | PROFILE_3 |
1392 PROFILE_5)}, 1392 PROFILE_5)},
1393 {mmc0_init, DEV_ON_BASEBOARD, (PROFILE_ALL & ~PROFILE_5)}, 1393 {mmc0_init, DEV_ON_BASEBOARD, (PROFILE_ALL & ~PROFILE_5)},
1394 {mmc0_no_cd_init, DEV_ON_BASEBOARD, PROFILE_5}, 1394 {mmc0_no_cd_init, DEV_ON_BASEBOARD, PROFILE_5},
1395 {spi0_init, DEV_ON_DGHTR_BRD, PROFILE_2}, 1395 {spi0_init, DEV_ON_DGHTR_BRD, PROFILE_2},
1396 {uart1_wl12xx_init, DEV_ON_BASEBOARD, (PROFILE_0 | PROFILE_3 | 1396 {uart1_wl12xx_init, DEV_ON_BASEBOARD, (PROFILE_0 | PROFILE_3 |
1397 PROFILE_5)}, 1397 PROFILE_5)},
1398 {wl12xx_init, DEV_ON_BASEBOARD, (PROFILE_0 | PROFILE_3 | PROFILE_5)}, 1398 {wl12xx_init, DEV_ON_BASEBOARD, (PROFILE_0 | PROFILE_3 | PROFILE_5)},
1399 {d_can_init, DEV_ON_DGHTR_BRD, PROFILE_1}, 1399 {d_can_init, DEV_ON_DGHTR_BRD, PROFILE_1},
1400 #ifdef CONFIG_KEYBOARD_MATRIX 1400 #ifdef CONFIG_KEYBOARD_MATRIX
1401 {matrix_keypad_init, DEV_ON_DGHTR_BRD, PROFILE_0}, 1401 {matrix_keypad_init, DEV_ON_DGHTR_BRD, PROFILE_0},
1402 #endif 1402 #endif
1403 #ifdef CONFIG_KEYBOARD_GPIO 1403 #ifdef CONFIG_KEYBOARD_GPIO
1404 {volume_keys_init, DEV_ON_DGHTR_BRD, PROFILE_0}, 1404 {volume_keys_init, DEV_ON_DGHTR_BRD, PROFILE_0},
1405 #endif 1405 #endif
1406 {NULL, 0, 0}, 1406 {NULL, 0, 0},
1407 }; 1407 };
1408 1408
1409 /* Industrial Auto Motor Control EVM */ 1409 /* Industrial Auto Motor Control EVM */
1410 static struct evm_dev_cfg ind_auto_mtrl_evm_dev_cfg[] = { 1410 static struct evm_dev_cfg ind_auto_mtrl_evm_dev_cfg[] = {
1411 {mii1_init, DEV_ON_DGHTR_BRD, PROFILE_ALL}, 1411 {mii1_init, DEV_ON_DGHTR_BRD, PROFILE_ALL},
1412 {usb0_init, DEV_ON_BASEBOARD, PROFILE_ALL}, 1412 {usb0_init, DEV_ON_BASEBOARD, PROFILE_ALL},
1413 {usb1_init, DEV_ON_BASEBOARD, PROFILE_ALL}, 1413 {usb1_init, DEV_ON_BASEBOARD, PROFILE_ALL},
1414 {profibus_init, DEV_ON_DGHTR_BRD, PROFILE_ALL}, 1414 {profibus_init, DEV_ON_DGHTR_BRD, PROFILE_ALL},
1415 {evm_nand_init, DEV_ON_DGHTR_BRD, PROFILE_ALL}, 1415 {evm_nand_init, DEV_ON_DGHTR_BRD, PROFILE_ALL},
1416 {spi1_init, DEV_ON_DGHTR_BRD, PROFILE_ALL}, 1416 {spi1_init, DEV_ON_DGHTR_BRD, PROFILE_ALL},
1417 {uart3_init, DEV_ON_DGHTR_BRD, PROFILE_ALL}, 1417 {uart3_init, DEV_ON_DGHTR_BRD, PROFILE_ALL},
1418 {i2c1_init, DEV_ON_BASEBOARD, PROFILE_ALL}, 1418 {i2c1_init, DEV_ON_BASEBOARD, PROFILE_ALL},
1419 {mmc0_no_cd_init, DEV_ON_BASEBOARD, PROFILE_ALL}, 1419 {mmc0_no_cd_init, DEV_ON_BASEBOARD, PROFILE_ALL},
1420 {NULL, 0, 0}, 1420 {NULL, 0, 0},
1421 }; 1421 };
1422 1422
1423 /* IP-Phone EVM */ 1423 /* IP-Phone EVM */
1424 static struct evm_dev_cfg ip_phn_evm_dev_cfg[] = { 1424 static struct evm_dev_cfg ip_phn_evm_dev_cfg[] = {
1425 {enable_ecap0, DEV_ON_DGHTR_BRD, PROFILE_NONE}, 1425 {enable_ecap0, DEV_ON_DGHTR_BRD, PROFILE_NONE},
1426 {lcdc_init, DEV_ON_DGHTR_BRD, PROFILE_NONE}, 1426 {lcdc_init, DEV_ON_DGHTR_BRD, PROFILE_NONE},
1427 {tsc_init, DEV_ON_DGHTR_BRD, PROFILE_NONE}, 1427 {tsc_init, DEV_ON_DGHTR_BRD, PROFILE_NONE},
1428 {rgmii1_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1428 {rgmii1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1429 {rgmii2_init, DEV_ON_DGHTR_BRD, PROFILE_NONE}, 1429 {rgmii2_init, DEV_ON_DGHTR_BRD, PROFILE_NONE},
1430 {usb0_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1430 {usb0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1431 {usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1431 {usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1432 {evm_nand_init, DEV_ON_DGHTR_BRD, PROFILE_NONE}, 1432 {evm_nand_init, DEV_ON_DGHTR_BRD, PROFILE_NONE},
1433 {i2c1_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1433 {i2c1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1434 {mcasp1_init, DEV_ON_DGHTR_BRD, PROFILE_NONE}, 1434 {mcasp1_init, DEV_ON_DGHTR_BRD, PROFILE_NONE},
1435 {mmc0_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1435 {mmc0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1436 {NULL, 0, 0}, 1436 {NULL, 0, 0},
1437 }; 1437 };
1438 1438
1439 /* Beaglebone < Rev A3 */ 1439 /* Beaglebone < Rev A3 */
1440 static struct evm_dev_cfg beaglebone_old_dev_cfg[] = { 1440 static struct evm_dev_cfg beaglebone_old_dev_cfg[] = {
1441 {rmii1_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1441 {rmii1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1442 {usb0_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1442 {usb0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1443 {usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1443 {usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1444 {mmc0_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1444 {mmc0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1445 {NULL, 0, 0}, 1445 {NULL, 0, 0},
1446 }; 1446 };
1447 1447
1448 /* Beaglebone Rev A3 and after */ 1448 /* Beaglebone Rev A3 and after */
1449 static struct evm_dev_cfg beaglebone_dev_cfg[] = { 1449 static struct evm_dev_cfg beaglebone_dev_cfg[] = {
1450 {mii1_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1450 {mii1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1451 {usb0_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1451 {usb0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1452 {usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1452 {usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1453 {mmc0_init, DEV_ON_BASEBOARD, PROFILE_NONE}, 1453 {mmc0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
1454 {NULL, 0, 0}, 1454 {NULL, 0, 0},
1455 }; 1455 };
1456 1456
1457 static void setup_low_cost_evm(void) 1457 static void setup_low_cost_evm(void)
1458 { 1458 {
1459 pr_info("The board is a AM335x Low Cost EVM.\n"); 1459 pr_info("The board is a AM335x Low Cost EVM.\n");
1460 1460
1461 _configure_device(LOW_COST_EVM, low_cost_evm_dev_cfg, PROFILE_NONE); 1461 _configure_device(LOW_COST_EVM, low_cost_evm_dev_cfg, PROFILE_NONE);
1462 } 1462 }
1463 1463
1464 static void setup_general_purpose_evm(void) 1464 static void setup_general_purpose_evm(void)
1465 { 1465 {
1466 u32 prof_sel = am335x_get_profile_selection(); 1466 u32 prof_sel = am335x_get_profile_selection();
1467 pr_info("The board is general purpose EVM in profile %d\n", prof_sel); 1467 pr_info("The board is general purpose EVM in profile %d\n", prof_sel);
1468 1468
1469 if (!strncmp("1.1A", config.version, 4)) { 1469 if (!strncmp("1.1A", config.version, 4)) {
1470 gp_evm_revision = GP_EVM_REV_IS_1_1A; 1470 gp_evm_revision = GP_EVM_REV_IS_1_1A;
1471 } else if (!strncmp("1.0", config.version, 3)) { 1471 } else if (!strncmp("1.0", config.version, 3)) {
1472 gp_evm_revision = GP_EVM_REV_IS_1_0; 1472 gp_evm_revision = GP_EVM_REV_IS_1_0;
1473 } else { 1473 } else {
1474 pr_err("Found invalid GP EVM revision, falling back to Rev1.1A"); 1474 pr_err("Found invalid GP EVM revision, falling back to Rev1.1A");
1475 gp_evm_revision = GP_EVM_REV_IS_1_1A; 1475 gp_evm_revision = GP_EVM_REV_IS_1_1A;
1476 } 1476 }
1477 1477
1478 if (gp_evm_revision == GP_EVM_REV_IS_1_0) 1478 if (gp_evm_revision == GP_EVM_REV_IS_1_0)
1479 gigabit_enable = 0; 1479 gigabit_enable = 0;
1480 else if (gp_evm_revision == GP_EVM_REV_IS_1_1A) 1480 else if (gp_evm_revision == GP_EVM_REV_IS_1_1A)
1481 gigabit_enable = 1; 1481 gigabit_enable = 1;
1482 1482
1483 _configure_device(GEN_PURP_EVM, gen_purp_evm_dev_cfg, (1L << prof_sel)); 1483 _configure_device(GEN_PURP_EVM, gen_purp_evm_dev_cfg, (1L << prof_sel));
1484 } 1484 }
1485 1485
1486 static void setup_ind_auto_motor_ctrl_evm(void) 1486 static void setup_ind_auto_motor_ctrl_evm(void)
1487 { 1487 {
1488 u32 prof_sel = am335x_get_profile_selection(); 1488 u32 prof_sel = am335x_get_profile_selection();
1489 1489
1490 pr_info("The board is an industrial automation EVM in profile %d\n", 1490 pr_info("The board is an industrial automation EVM in profile %d\n",
1491 prof_sel); 1491 prof_sel);
1492 1492
1493 /* Only Profile 0 is supported */ 1493 /* Only Profile 0 is supported */
1494 if ((1L << prof_sel) != PROFILE_0) { 1494 if ((1L << prof_sel) != PROFILE_0) {
1495 pr_err("AM335X: Only Profile 0 is supported\n"); 1495 pr_err("AM335X: Only Profile 0 is supported\n");
1496 pr_err("Assuming profile 0 & continuing\n"); 1496 pr_err("Assuming profile 0 & continuing\n");
1497 prof_sel = PROFILE_0; 1497 prof_sel = PROFILE_0;
1498 } 1498 }
1499 1499
1500 _configure_device(IND_AUT_MTR_EVM, ind_auto_mtrl_evm_dev_cfg, 1500 _configure_device(IND_AUT_MTR_EVM, ind_auto_mtrl_evm_dev_cfg,
1501 PROFILE_0); 1501 PROFILE_0);
1502 1502
1503 /* Fillup global evmid */ 1503 /* Fillup global evmid */
1504 am33xx_evmid_fillup(IND_AUT_MTR_EVM); 1504 am33xx_evmid_fillup(IND_AUT_MTR_EVM);
1505 1505
1506 /* Initialize TLK110 PHY registers for phy version 1.0 */ 1506 /* Initialize TLK110 PHY registers for phy version 1.0 */
1507 am335x_tlk110_phy_init(); 1507 am335x_tlk110_phy_init();
1508 1508
1509 1509
1510 } 1510 }
1511 1511
1512 static void setup_ip_phone_evm(void) 1512 static void setup_ip_phone_evm(void)
1513 { 1513 {
1514 pr_info("The board is an IP phone EVM\n"); 1514 pr_info("The board is an IP phone EVM\n");
1515 1515
1516 _configure_device(IP_PHN_EVM, ip_phn_evm_dev_cfg, PROFILE_NONE); 1516 _configure_device(IP_PHN_EVM, ip_phn_evm_dev_cfg, PROFILE_NONE);
1517 } 1517 }
1518 1518
1519 /* BeagleBone < Rev A3 */ 1519 /* BeagleBone < Rev A3 */
1520 static void setup_beaglebone_old(void) 1520 static void setup_beaglebone_old(void)
1521 { 1521 {
1522 pr_info("The board is a AM335x Beaglebone < Rev A3.\n"); 1522 pr_info("The board is a AM335x Beaglebone < Rev A3.\n");
1523 1523
1524 /* Beagle Bone has Micro-SD slot which doesn't have Write Protect pin */ 1524 /* Beagle Bone has Micro-SD slot which doesn't have Write Protect pin */
1525 am335x_mmc[0].gpio_wp = -EINVAL; 1525 am335x_mmc[0].gpio_wp = -EINVAL;
1526 1526
1527 _configure_device(LOW_COST_EVM, beaglebone_old_dev_cfg, PROFILE_NONE); 1527 _configure_device(LOW_COST_EVM, beaglebone_old_dev_cfg, PROFILE_NONE);
1528 1528
1529 phy_register_fixup_for_uid(BBB_PHY_ID, BBB_PHY_MASK, 1529 phy_register_fixup_for_uid(BBB_PHY_ID, BBB_PHY_MASK,
1530 beaglebone_phy_fixup); 1530 beaglebone_phy_fixup);
1531 } 1531 }
1532 1532
1533 /* BeagleBone after Rev A3 */ 1533 /* BeagleBone after Rev A3 */
1534 static void setup_beaglebone(void) 1534 static void setup_beaglebone(void)
1535 { 1535 {
1536 pr_info("The board is a AM335x Beaglebone.\n"); 1536 pr_info("The board is a AM335x Beaglebone.\n");
1537 1537
1538 /* Beagle Bone has Micro-SD slot which doesn't have Write Protect pin */ 1538 /* Beagle Bone has Micro-SD slot which doesn't have Write Protect pin */
1539 am335x_mmc[0].gpio_wp = -EINVAL; 1539 am335x_mmc[0].gpio_wp = -EINVAL;
1540 1540
1541 _configure_device(LOW_COST_EVM, beaglebone_dev_cfg, PROFILE_NONE); 1541 _configure_device(LOW_COST_EVM, beaglebone_dev_cfg, PROFILE_NONE);
1542 } 1542 }
1543 1543
1544 1544
1545 static void am335x_setup_daughter_board(struct memory_accessor *m, void *c) 1545 static void am335x_setup_daughter_board(struct memory_accessor *m, void *c)
1546 { 1546 {
1547 u8 tmp; 1547 u8 tmp;
1548 int ret; 1548 int ret;
1549 1549
1550 /* 1550 /*
1551 * try reading a byte from the EEPROM to see if it is 1551 * try reading a byte from the EEPROM to see if it is
1552 * present. We could read a lot more, but that would 1552 * present. We could read a lot more, but that would
1553 * just slow the boot process and we have all the information 1553 * just slow the boot process and we have all the information
1554 * we need from the EEPROM on the base board anyway. 1554 * we need from the EEPROM on the base board anyway.
1555 */ 1555 */
1556 ret = m->read(m, &tmp, 0, sizeof(u8)); 1556 ret = m->read(m, &tmp, 0, sizeof(u8));
1557 if (ret == sizeof(u8)) { 1557 if (ret == sizeof(u8)) {
1558 pr_info("Detected a daughter card on AM335x EVM.."); 1558 pr_info("Detected a daughter card on AM335x EVM..");
1559 daughter_brd_detected = true; 1559 daughter_brd_detected = true;
1560 } else { 1560 } else {
1561 pr_info("No daughter card found\n"); 1561 pr_info("No daughter card found\n");
1562 daughter_brd_detected = false; 1562 daughter_brd_detected = false;
1563 } 1563 }
1564 } 1564 }
1565 1565
1566 static void am335x_evm_setup(struct memory_accessor *mem_acc, void *context) 1566 static void am335x_evm_setup(struct memory_accessor *mem_acc, void *context)
1567 { 1567 {
1568 int ret; 1568 int ret;
1569 char tmp[10]; 1569 char tmp[10];
1570 1570
1571 /* 1st get the MAC address from EEPROM */ 1571 /* 1st get the MAC address from EEPROM */
1572 ret = mem_acc->read(mem_acc, (char *)&am335x_mac_addr, 1572 ret = mem_acc->read(mem_acc, (char *)&am335x_mac_addr,
1573 EEPROM_MAC_ADDRESS_OFFSET, sizeof(am335x_mac_addr)); 1573 EEPROM_MAC_ADDRESS_OFFSET, sizeof(am335x_mac_addr));
1574 1574
1575 if (ret != sizeof(am335x_mac_addr)) { 1575 if (ret != sizeof(am335x_mac_addr)) {
1576 pr_warning("AM335X: EVM Config read fail: %d\n", ret); 1576 pr_warning("AM335X: EVM Config read fail: %d\n", ret);
1577 return; 1577 return;
1578 } 1578 }
1579 1579
1580 /* Fillup global mac id */ 1580 /* Fillup global mac id */
1581 am33xx_cpsw_macidfillup(&am335x_mac_addr[0][0], 1581 am33xx_cpsw_macidfillup(&am335x_mac_addr[0][0],
1582 &am335x_mac_addr[1][0]); 1582 &am335x_mac_addr[1][0]);
1583 1583
1584 /* get board specific data */ 1584 /* get board specific data */
1585 ret = mem_acc->read(mem_acc, (char *)&config, 0, sizeof(config)); 1585 ret = mem_acc->read(mem_acc, (char *)&config, 0, sizeof(config));
1586 if (ret != sizeof(config)) { 1586 if (ret != sizeof(config)) {
1587 pr_warning("AM335X EVM config read fail, read %d bytes\n", ret); 1587 pr_warning("AM335X EVM config read fail, read %d bytes\n", ret);
1588 return; 1588 return;
1589 } 1589 }
1590 1590
1591 if (config.header != AM335X_EEPROM_HEADER) { 1591 if (config.header != AM335X_EEPROM_HEADER) {
1592 pr_warning("AM335X: wrong header 0x%x, expected 0x%x\n", 1592 pr_warning("AM335X: wrong header 0x%x, expected 0x%x\n",
1593 config.header, AM335X_EEPROM_HEADER); 1593 config.header, AM335X_EEPROM_HEADER);
1594 goto out; 1594 goto out;
1595 } 1595 }
1596 1596
1597 if (strncmp("A335", config.name, 4)) { 1597 if (strncmp("A335", config.name, 4)) {
1598 pr_err("Board %s doesn't look like an AM335x board\n", 1598 pr_err("Board %s doesn't look like an AM335x board\n",
1599 config.name); 1599 config.name);
1600 goto out; 1600 goto out;
1601 } 1601 }
1602 1602
1603 snprintf(tmp, sizeof(config.name) + 1, "%s", config.name); 1603 snprintf(tmp, sizeof(config.name) + 1, "%s", config.name);
1604 pr_info("Board name: %s\n", tmp); 1604 pr_info("Board name: %s\n", tmp);
1605 snprintf(tmp, sizeof(config.version) + 1, "%s", config.version); 1605 snprintf(tmp, sizeof(config.version) + 1, "%s", config.version);
1606 pr_info("Board version: %s\n", tmp); 1606 pr_info("Board version: %s\n", tmp);
1607 1607
1608 if (!strncmp("A335BONE", config.name, 8)) { 1608 if (!strncmp("A335BONE", config.name, 8)) {
1609 daughter_brd_detected = false; 1609 daughter_brd_detected = false;
1610 if(!strncmp("00A1", config.version, 4) || 1610 if(!strncmp("00A1", config.version, 4) ||
1611 !strncmp("00A2", config.version, 4)) 1611 !strncmp("00A2", config.version, 4))
1612 setup_beaglebone_old(); 1612 setup_beaglebone_old();
1613 else 1613 else
1614 setup_beaglebone(); 1614 setup_beaglebone();
1615 } else { 1615 } else {
1616 /* only 6 characters of options string used for now */ 1616 /* only 6 characters of options string used for now */
1617 snprintf(tmp, 7, "%s", config.opt); 1617 snprintf(tmp, 7, "%s", config.opt);
1618 pr_info("SKU: %s\n", tmp); 1618 pr_info("SKU: %s\n", tmp);
1619 1619
1620 if (!strncmp("SKU#00", config.opt, 6)) 1620 if (!strncmp("SKU#00", config.opt, 6))
1621 setup_low_cost_evm(); 1621 setup_low_cost_evm();
1622 else if (!strncmp("SKU#01", config.opt, 6)) 1622 else if (!strncmp("SKU#01", config.opt, 6))
1623 setup_general_purpose_evm(); 1623 setup_general_purpose_evm();
1624 else if (!strncmp("SKU#02", config.opt, 6)) 1624 else if (!strncmp("SKU#02", config.opt, 6))
1625 setup_ind_auto_motor_ctrl_evm(); 1625 setup_ind_auto_motor_ctrl_evm();
1626 else if (!strncmp("SKU#03", config.opt, 6)) 1626 else if (!strncmp("SKU#03", config.opt, 6))
1627 setup_ip_phone_evm(); 1627 setup_ip_phone_evm();
1628 else 1628 else
1629 goto out; 1629 goto out;
1630 } 1630 }
1631 /* Initialize cpsw after board detection is completed as board 1631 /* Initialize cpsw after board detection is completed as board
1632 * information is required for configuring phy address and hence 1632 * information is required for configuring phy address and hence
1633 * should be call only after board detection 1633 * should be call only after board detection
1634 */ 1634 */
1635 am33xx_cpsw_init(gigabit_enable); 1635 am33xx_cpsw_init(gigabit_enable);
1636 1636
1637 return; 1637 return;
1638 out: 1638 out:
1639 /* 1639 /*
1640 * If the EEPROM hasn't been programed or an incorrect header 1640 * If the EEPROM hasn't been programed or an incorrect header
1641 * or board name are read, assume this is an old beaglebone board 1641 * or board name are read, assume this is an old beaglebone board
1642 * (< Rev A3) 1642 * (< Rev A3)
1643 */ 1643 */
1644 pr_err("Could not detect any board, falling back to: " 1644 pr_err("Could not detect any board, falling back to: "
1645 "Beaglebone (< Rev A3) with no daughter card connected\n"); 1645 "Beaglebone (< Rev A3) with no daughter card connected\n");
1646 daughter_brd_detected = false; 1646 daughter_brd_detected = false;
1647 setup_beaglebone_old(); 1647 setup_beaglebone_old();
1648 1648
1649 /* Initialize cpsw after board detection is completed as board 1649 /* Initialize cpsw after board detection is completed as board
1650 * information is required for configuring phy address and hence 1650 * information is required for configuring phy address and hence
1651 * should be call only after board detection 1651 * should be call only after board detection
1652 */ 1652 */
1653 1653
1654 am33xx_cpsw_init(gigabit_enable); 1654 am33xx_cpsw_init(gigabit_enable);
1655 } 1655 }
1656 1656
1657 static struct at24_platform_data am335x_daughter_board_eeprom_info = { 1657 static struct at24_platform_data am335x_daughter_board_eeprom_info = {
1658 .byte_len = (256*1024) / 8, 1658 .byte_len = (256*1024) / 8,
1659 .page_size = 64, 1659 .page_size = 64,
1660 .flags = AT24_FLAG_ADDR16, 1660 .flags = AT24_FLAG_ADDR16,
1661 .setup = am335x_setup_daughter_board, 1661 .setup = am335x_setup_daughter_board,
1662 .context = (void *)NULL, 1662 .context = (void *)NULL,
1663 }; 1663 };
1664 1664
1665 static struct at24_platform_data am335x_baseboard_eeprom_info = { 1665 static struct at24_platform_data am335x_baseboard_eeprom_info = {
1666 .byte_len = (256*1024) / 8, 1666 .byte_len = (256*1024) / 8,
1667 .page_size = 64, 1667 .page_size = 64,
1668 .flags = AT24_FLAG_ADDR16, 1668 .flags = AT24_FLAG_ADDR16,
1669 .setup = am335x_evm_setup, 1669 .setup = am335x_evm_setup,
1670 .context = (void *)NULL, 1670 .context = (void *)NULL,
1671 }; 1671 };
1672 1672
1673 static struct regulator_init_data am335x_dummy; 1673 static struct regulator_init_data am335x_dummy;
1674 1674
1675 static struct regulator_consumer_supply am335x_vdd1_supply[] = { 1675 static struct regulator_consumer_supply am335x_vdd1_supply[] = {
1676 REGULATOR_SUPPLY("mpu", "mpu.0"), 1676 REGULATOR_SUPPLY("mpu", "mpu.0"),
1677 }; 1677 };
1678 1678
1679 static struct regulator_init_data am335x_vdd1 = { 1679 static struct regulator_init_data am335x_vdd1 = {
1680 .constraints = { 1680 .constraints = {
1681 .min_uV = 600000, 1681 .min_uV = 600000,
1682 .max_uV = 1500000, 1682 .max_uV = 1500000,
1683 .valid_modes_mask = REGULATOR_MODE_NORMAL, 1683 .valid_modes_mask = REGULATOR_MODE_NORMAL,
1684 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE, 1684 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
1685 .always_on = 1, 1685 .always_on = 1,
1686 }, 1686 },
1687 .num_consumer_supplies = ARRAY_SIZE(am335x_vdd1_supply), 1687 .num_consumer_supplies = ARRAY_SIZE(am335x_vdd1_supply),
1688 .consumer_supplies = am335x_vdd1_supply, 1688 .consumer_supplies = am335x_vdd1_supply,
1689 }; 1689 };
1690 1690
1691 static struct tps65910_board am335x_tps65910_info = { 1691 static struct tps65910_board am335x_tps65910_info = {
1692 .tps65910_pmic_init_data[TPS65910_REG_VRTC] = &am335x_dummy, 1692 .tps65910_pmic_init_data[TPS65910_REG_VRTC] = &am335x_dummy,
1693 .tps65910_pmic_init_data[TPS65910_REG_VIO] = &am335x_dummy, 1693 .tps65910_pmic_init_data[TPS65910_REG_VIO] = &am335x_dummy,
1694 .tps65910_pmic_init_data[TPS65910_REG_VDD1] = &am335x_vdd1, 1694 .tps65910_pmic_init_data[TPS65910_REG_VDD1] = &am335x_vdd1,
1695 .tps65910_pmic_init_data[TPS65910_REG_VDD2] = &am335x_dummy, 1695 .tps65910_pmic_init_data[TPS65910_REG_VDD2] = &am335x_dummy,
1696 .tps65910_pmic_init_data[TPS65910_REG_VDD3] = &am335x_dummy, 1696 .tps65910_pmic_init_data[TPS65910_REG_VDD3] = &am335x_dummy,
1697 .tps65910_pmic_init_data[TPS65910_REG_VDIG1] = &am335x_dummy, 1697 .tps65910_pmic_init_data[TPS65910_REG_VDIG1] = &am335x_dummy,
1698 .tps65910_pmic_init_data[TPS65910_REG_VDIG2] = &am335x_dummy, 1698 .tps65910_pmic_init_data[TPS65910_REG_VDIG2] = &am335x_dummy,
1699 .tps65910_pmic_init_data[TPS65910_REG_VPLL] = &am335x_dummy, 1699 .tps65910_pmic_init_data[TPS65910_REG_VPLL] = &am335x_dummy,
1700 .tps65910_pmic_init_data[TPS65910_REG_VDAC] = &am335x_dummy, 1700 .tps65910_pmic_init_data[TPS65910_REG_VDAC] = &am335x_dummy,
1701 .tps65910_pmic_init_data[TPS65910_REG_VAUX1] = &am335x_dummy, 1701 .tps65910_pmic_init_data[TPS65910_REG_VAUX1] = &am335x_dummy,
1702 .tps65910_pmic_init_data[TPS65910_REG_VAUX2] = &am335x_dummy, 1702 .tps65910_pmic_init_data[TPS65910_REG_VAUX2] = &am335x_dummy,
1703 .tps65910_pmic_init_data[TPS65910_REG_VAUX33] = &am335x_dummy, 1703 .tps65910_pmic_init_data[TPS65910_REG_VAUX33] = &am335x_dummy,
1704 .tps65910_pmic_init_data[TPS65910_REG_VMMC] = &am335x_dummy, 1704 .tps65910_pmic_init_data[TPS65910_REG_VMMC] = &am335x_dummy,
1705 }; 1705 };
1706 1706
1707 /* 1707 /*
1708 * Daughter board Detection. 1708 * Daughter board Detection.
1709 * Every board has a ID memory (EEPROM) on board. We probe these devices at 1709 * Every board has a ID memory (EEPROM) on board. We probe these devices at
1710 * machine init, starting from daughter board and ending with baseboard. 1710 * machine init, starting from daughter board and ending with baseboard.
1711 * Assumptions : 1711 * Assumptions :
1712 * 1. probe for i2c devices are called in the order they are included in 1712 * 1. probe for i2c devices are called in the order they are included in
1713 * the below struct. Daughter boards eeprom are probed 1st. Baseboard 1713 * the below struct. Daughter boards eeprom are probed 1st. Baseboard
1714 * eeprom probe is called last. 1714 * eeprom probe is called last.
1715 */ 1715 */
1716 static struct i2c_board_info __initdata am335x_i2c_boardinfo[] = { 1716 static struct i2c_board_info __initdata am335x_i2c_boardinfo[] = {
1717 { 1717 {
1718 /* Daughter Board EEPROM */ 1718 /* Daughter Board EEPROM */
1719 I2C_BOARD_INFO("24c256", DAUG_BOARD_I2C_ADDR), 1719 I2C_BOARD_INFO("24c256", DAUG_BOARD_I2C_ADDR),
1720 .platform_data = &am335x_daughter_board_eeprom_info, 1720 .platform_data = &am335x_daughter_board_eeprom_info,
1721 }, 1721 },
1722 { 1722 {
1723 /* Baseboard board EEPROM */ 1723 /* Baseboard board EEPROM */
1724 I2C_BOARD_INFO("24c256", BASEBOARD_I2C_ADDR), 1724 I2C_BOARD_INFO("24c256", BASEBOARD_I2C_ADDR),
1725 .platform_data = &am335x_baseboard_eeprom_info, 1725 .platform_data = &am335x_baseboard_eeprom_info,
1726 }, 1726 },
1727 { 1727 {
1728 I2C_BOARD_INFO("cpld_reg", 0x35), 1728 I2C_BOARD_INFO("cpld_reg", 0x35),
1729 }, 1729 },
1730 { 1730 {
1731 I2C_BOARD_INFO("tlc59108", 0x40), 1731 I2C_BOARD_INFO("tlc59108", 0x40),
1732 }, 1732 },
1733 { 1733 {
1734 I2C_BOARD_INFO("tps65910", TPS65910_I2C_ID1), 1734 I2C_BOARD_INFO("tps65910", TPS65910_I2C_ID1),
1735 .platform_data = &am335x_tps65910_info, 1735 .platform_data = &am335x_tps65910_info,
1736 }, 1736 },
1737 1737
1738 }; 1738 };
1739 1739
1740 static struct omap_musb_board_data musb_board_data = { 1740 static struct omap_musb_board_data musb_board_data = {
1741 .interface_type = MUSB_INTERFACE_ULPI, 1741 .interface_type = MUSB_INTERFACE_ULPI,
1742 .mode = MUSB_OTG, 1742 .mode = MUSB_OTG,
1743 .power = 500, 1743 .power = 500,
1744 .instances = 1, 1744 .instances = 1,
1745 }; 1745 };
1746 1746
1747 static int cpld_reg_probe(struct i2c_client *client, 1747 static int cpld_reg_probe(struct i2c_client *client,
1748 const struct i2c_device_id *id) 1748 const struct i2c_device_id *id)
1749 { 1749 {
1750 cpld_client = client; 1750 cpld_client = client;
1751 return 0; 1751 return 0;
1752 } 1752 }
1753 1753
1754 static int __devexit cpld_reg_remove(struct i2c_client *client) 1754 static int __devexit cpld_reg_remove(struct i2c_client *client)
1755 { 1755 {
1756 cpld_client = NULL; 1756 cpld_client = NULL;
1757 return 0; 1757 return 0;
1758 } 1758 }
1759 1759
1760 static const struct i2c_device_id cpld_reg_id[] = { 1760 static const struct i2c_device_id cpld_reg_id[] = {
1761 { "cpld_reg", 0 }, 1761 { "cpld_reg", 0 },
1762 { } 1762 { }
1763 }; 1763 };
1764 1764
1765 static struct i2c_driver cpld_reg_driver = { 1765 static struct i2c_driver cpld_reg_driver = {
1766 .driver = { 1766 .driver = {
1767 .name = "cpld_reg", 1767 .name = "cpld_reg",
1768 }, 1768 },
1769 .probe = cpld_reg_probe, 1769 .probe = cpld_reg_probe,
1770 .remove = cpld_reg_remove, 1770 .remove = cpld_reg_remove,
1771 .id_table = cpld_reg_id, 1771 .id_table = cpld_reg_id,
1772 }; 1772 };
1773 1773
1774 static void evm_init_cpld(void) 1774 static void evm_init_cpld(void)
1775 { 1775 {
1776 i2c_add_driver(&cpld_reg_driver); 1776 i2c_add_driver(&cpld_reg_driver);
1777 } 1777 }
1778 1778
1779 static void __init am335x_evm_i2c_init(void) 1779 static void __init am335x_evm_i2c_init(void)
1780 { 1780 {
1781 /* Initially assume Low Cost EVM Config */ 1781 /* Initially assume Low Cost EVM Config */
1782 am335x_evm_id = LOW_COST_EVM; 1782 am335x_evm_id = LOW_COST_EVM;
1783 1783
1784 evm_init_cpld(); 1784 evm_init_cpld();
1785 1785
1786 omap_register_i2c_bus(1, 100, am335x_i2c_boardinfo, 1786 omap_register_i2c_bus(1, 100, am335x_i2c_boardinfo,
1787 ARRAY_SIZE(am335x_i2c_boardinfo)); 1787 ARRAY_SIZE(am335x_i2c_boardinfo));
1788 } 1788 }
1789 1789
1790 static struct resource am335x_rtc_resources[] = { 1790 static struct resource am335x_rtc_resources[] = {
1791 { 1791 {
1792 .start = AM33XX_RTC_BASE, 1792 .start = AM33XX_RTC_BASE,
1793 .end = AM33XX_RTC_BASE + SZ_4K - 1, 1793 .end = AM33XX_RTC_BASE + SZ_4K - 1,
1794 .flags = IORESOURCE_MEM, 1794 .flags = IORESOURCE_MEM,
1795 }, 1795 },
1796 { /* timer irq */ 1796 { /* timer irq */
1797 .start = AM33XX_IRQ_RTC_TIMER, 1797 .start = AM33XX_IRQ_RTC_TIMER,
1798 .end = AM33XX_IRQ_RTC_TIMER, 1798 .end = AM33XX_IRQ_RTC_TIMER,
1799 .flags = IORESOURCE_IRQ, 1799 .flags = IORESOURCE_IRQ,
1800 }, 1800 },
1801 { /* alarm irq */ 1801 { /* alarm irq */
1802 .start = AM33XX_IRQ_RTC_ALARM, 1802 .start = AM33XX_IRQ_RTC_ALARM,
1803 .end = AM33XX_IRQ_RTC_ALARM, 1803 .end = AM33XX_IRQ_RTC_ALARM,
1804 .flags = IORESOURCE_IRQ, 1804 .flags = IORESOURCE_IRQ,
1805 }, 1805 },
1806 }; 1806 };
1807 1807
1808 static struct platform_device am335x_rtc_device = { 1808 static struct platform_device am335x_rtc_device = {
1809 .name = "omap_rtc", 1809 .name = "omap_rtc",
1810 .id = -1, 1810 .id = -1,
1811 .num_resources = ARRAY_SIZE(am335x_rtc_resources), 1811 .num_resources = ARRAY_SIZE(am335x_rtc_resources),
1812 .resource = am335x_rtc_resources, 1812 .resource = am335x_rtc_resources,
1813 }; 1813 };
1814 1814
1815 static int am335x_rtc_init(void) 1815 static int am335x_rtc_init(void)
1816 { 1816 {
1817 void __iomem *base; 1817 void __iomem *base;
1818 struct clk *clk; 1818 struct clk *clk;
1819 1819
1820 clk = clk_get(NULL, "rtc_fck"); 1820 clk = clk_get(NULL, "rtc_fck");
1821 if (IS_ERR(clk)) { 1821 if (IS_ERR(clk)) {
1822 pr_err("rtc : Failed to get RTC clock\n"); 1822 pr_err("rtc : Failed to get RTC clock\n");
1823 return -1; 1823 return -1;
1824 } 1824 }
1825 1825
1826 if (clk_enable(clk)) { 1826 if (clk_enable(clk)) {
1827 pr_err("rtc: Clock Enable Failed\n"); 1827 pr_err("rtc: Clock Enable Failed\n");
1828 return -1; 1828 return -1;
1829 } 1829 }
1830 1830
1831 base = ioremap(AM33XX_RTC_BASE, SZ_4K); 1831 base = ioremap(AM33XX_RTC_BASE, SZ_4K);
1832 1832
1833 if (WARN_ON(!base)) 1833 if (WARN_ON(!base))
1834 return -ENOMEM; 1834 return -ENOMEM;
1835 1835
1836 /* Unlock the rtc's registers */ 1836 /* Unlock the rtc's registers */
1837 __raw_writel(0x83e70b13, base + 0x6c); 1837 __raw_writel(0x83e70b13, base + 0x6c);
1838 __raw_writel(0x95a4f1e0, base + 0x70); 1838 __raw_writel(0x95a4f1e0, base + 0x70);
1839 1839
1840 /* 1840 /*
1841 * Enable the 32K OSc 1841 * Enable the 32K OSc
1842 * TODO: Need a better way to handle this 1842 * TODO: Need a better way to handle this
1843 * Since we want the clock to be running before mmc init 1843 * Since we want the clock to be running before mmc init
1844 * we need to do it before the rtc probe happens 1844 * we need to do it before the rtc probe happens
1845 */ 1845 */
1846 __raw_writel(0x48, base + 0x54); 1846 __raw_writel(0x48, base + 0x54);
1847 1847
1848 iounmap(base); 1848 iounmap(base);
1849 1849
1850 return platform_device_register(&am335x_rtc_device); 1850 return platform_device_register(&am335x_rtc_device);
1851 } 1851 }
1852 1852
1853 /* Enable clkout2 */ 1853 /* Enable clkout2 */
1854 static struct pinmux_config clkout2_pin_mux[] = { 1854 static struct pinmux_config clkout2_pin_mux[] = {
1855 {"xdma_event_intr1.clkout2", OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT}, 1855 {"xdma_event_intr1.clkout2", OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT},
1856 {NULL, 0}, 1856 {NULL, 0},
1857 }; 1857 };
1858 1858
1859 static void __init clkout2_enable(void) 1859 static void __init clkout2_enable(void)
1860 { 1860 {
1861 struct clk *ck_32; 1861 struct clk *ck_32;
1862 1862
1863 ck_32 = clk_get(NULL, "clkout2_ck"); 1863 ck_32 = clk_get(NULL, "clkout2_ck");
1864 if (IS_ERR(ck_32)) { 1864 if (IS_ERR(ck_32)) {
1865 pr_err("Cannot clk_get ck_32\n"); 1865 pr_err("Cannot clk_get ck_32\n");
1866 return; 1866 return;
1867 } 1867 }
1868 1868
1869 clk_enable(ck_32); 1869 clk_enable(ck_32);
1870 1870
1871 setup_pin_mux(clkout2_pin_mux); 1871 setup_pin_mux(clkout2_pin_mux);
1872 } 1872 }
1873 1873
1874 void __iomem * __init am33xx_get_mem_ctlr(void) 1874 void __iomem * __init am33xx_get_mem_ctlr(void)
1875 { 1875 {
1876 void __iomem *am33xx_emif_base; 1876 void __iomem *am33xx_emif_base;
1877 1877
1878 am33xx_emif_base = ioremap(AM33XX_EMIF0_BASE, SZ_32K); 1878 am33xx_emif_base = ioremap(AM33XX_EMIF0_BASE, SZ_32K);
1879 1879
1880 if (!am33xx_emif_base) 1880 if (!am33xx_emif_base)
1881 pr_warning("%s: Unable to map DDR2 controller", __func__); 1881 pr_warning("%s: Unable to map DDR2 controller", __func__);
1882 1882
1883 return am33xx_emif_base; 1883 return am33xx_emif_base;
1884 } 1884 }
1885 1885
1886 static struct resource am33xx_cpuidle_resources[] = { 1886 static struct resource am33xx_cpuidle_resources[] = {
1887 { 1887 {
1888 .start = AM33XX_EMIF0_BASE, 1888 .start = AM33XX_EMIF0_BASE,
1889 .end = AM33XX_EMIF0_BASE + SZ_32K - 1, 1889 .end = AM33XX_EMIF0_BASE + SZ_32K - 1,
1890 .flags = IORESOURCE_MEM, 1890 .flags = IORESOURCE_MEM,
1891 }, 1891 },
1892 }; 1892 };
1893 1893
1894 /* AM33XX devices support DDR2 power down */ 1894 /* AM33XX devices support DDR2 power down */
1895 static struct am33xx_cpuidle_config am33xx_cpuidle_pdata = { 1895 static struct am33xx_cpuidle_config am33xx_cpuidle_pdata = {
1896 .ddr2_pdown = 1, 1896 .ddr2_pdown = 1,
1897 }; 1897 };
1898 1898
1899 static struct platform_device am33xx_cpuidle_device = { 1899 static struct platform_device am33xx_cpuidle_device = {
1900 .name = "cpuidle-am33xx", 1900 .name = "cpuidle-am33xx",
1901 .num_resources = ARRAY_SIZE(am33xx_cpuidle_resources), 1901 .num_resources = ARRAY_SIZE(am33xx_cpuidle_resources),
1902 .resource = am33xx_cpuidle_resources, 1902 .resource = am33xx_cpuidle_resources,
1903 .dev = { 1903 .dev = {
1904 .platform_data = &am33xx_cpuidle_pdata, 1904 .platform_data = &am33xx_cpuidle_pdata,
1905 }, 1905 },
1906 }; 1906 };
1907 1907
1908 static void __init am33xx_cpuidle_init(void) 1908 static void __init am33xx_cpuidle_init(void)
1909 { 1909 {
1910 int ret; 1910 int ret;
1911 1911
1912 am33xx_cpuidle_pdata.emif_base = am33xx_get_mem_ctlr(); 1912 am33xx_cpuidle_pdata.emif_base = am33xx_get_mem_ctlr();
1913 1913
1914 ret = platform_device_register(&am33xx_cpuidle_device); 1914 ret = platform_device_register(&am33xx_cpuidle_device);
1915 1915
1916 if (ret) 1916 if (ret)
1917 pr_warning("AM33XX cpuidle registration failed\n"); 1917 pr_warning("AM33XX cpuidle registration failed\n");
1918 1918
1919 } 1919 }
1920 1920
1921 static void __init am335x_evm_init(void) 1921 static void __init am335x_evm_init(void)
1922 { 1922 {
1923 am33xx_cpuidle_init(); 1923 am33xx_cpuidle_init();
1924 am33xx_mux_init(board_mux); 1924 am33xx_mux_init(board_mux);
1925 omap_serial_init(); 1925 omap_serial_init();
1926 am335x_rtc_init(); 1926 am335x_rtc_init();
1927 clkout2_enable(); 1927 clkout2_enable();
1928 am335x_evm_i2c_init(); 1928 am335x_evm_i2c_init();
1929 omap_sdrc_init(NULL, NULL); 1929 omap_sdrc_init(NULL, NULL);
1930 usb_musb_init(&musb_board_data); 1930 usb_musb_init(&musb_board_data);
1931 omap_board_config = am335x_evm_config; 1931 omap_board_config = am335x_evm_config;
1932 omap_board_config_size = ARRAY_SIZE(am335x_evm_config); 1932 omap_board_config_size = ARRAY_SIZE(am335x_evm_config);
1933 /* Create an alias for icss clock */ 1933 /* Create an alias for icss clock */
1934 if (clk_add_alias("pruss", NULL, "icss_uart_gclk", NULL)) 1934 if (clk_add_alias("pruss", NULL, "icss_uart_gclk", NULL))
1935 pr_err("failed to create an alias: icss_uart_gclk --> pruss\n"); 1935 pr_err("failed to create an alias: icss_uart_gclk --> pruss\n");
1936 /* Create an alias for gfx/sgx clock */ 1936 /* Create an alias for gfx/sgx clock */
1937 if (clk_add_alias("sgx_ck", NULL, "gfx_fclk", NULL)) 1937 if (clk_add_alias("sgx_ck", NULL, "gfx_fclk", NULL))
1938 pr_err("failed to create an alias: gfx_fclk --> sgx_ck\n"); 1938 pr_err("failed to create an alias: gfx_fclk --> sgx_ck\n");
1939 } 1939 }
1940 1940
1941 static void __init am335x_evm_map_io(void) 1941 static void __init am335x_evm_map_io(void)
1942 { 1942 {
1943 omap2_set_globals_am33xx(); 1943 omap2_set_globals_am33xx();
1944 omapam33xx_map_common_io(); 1944 omapam33xx_map_common_io();
1945 } 1945 }
1946 1946
1947 MACHINE_START(AM335XEVM, "am335xevm") 1947 MACHINE_START(AM335XEVM, "am335xevm")
1948 /* Maintainer: Texas Instruments */ 1948 /* Maintainer: Texas Instruments */
1949 .atag_offset = 0x100, 1949 .atag_offset = 0x100,
1950 .map_io = am335x_evm_map_io, 1950 .map_io = am335x_evm_map_io,
1951 .init_irq = ti816x_init_irq, 1951 .init_irq = ti816x_init_irq,
1952 .init_early = am335x_init_early, 1952 .init_early = am335x_init_early,
1953 .timer = &omap3_am33xx_timer, 1953 .timer = &omap3_am33xx_timer,
1954 .init_machine = am335x_evm_init, 1954 .init_machine = am335x_evm_init,
1955 MACHINE_END 1955 MACHINE_END
1956 1956
1957 MACHINE_START(AM335XIAEVM, "am335xiaevm") 1957 MACHINE_START(AM335XIAEVM, "am335xiaevm")
1958 /* Maintainer: Texas Instruments */ 1958 /* Maintainer: Texas Instruments */
1959 .atag_offset = 0x100, 1959 .atag_offset = 0x100,
1960 .map_io = am335x_evm_map_io, 1960 .map_io = am335x_evm_map_io,
1961 .init_irq = ti816x_init_irq, 1961 .init_irq = ti816x_init_irq,
1962 .init_early = am335x_init_early, 1962 .init_early = am335x_init_early,
1963 .timer = &omap3_am33xx_timer, 1963 .timer = &omap3_am33xx_timer,
1964 .init_machine = am335x_evm_init, 1964 .init_machine = am335x_evm_init,
1965 MACHINE_END 1965 MACHINE_END
1966 1966
arch/arm/mach-omap2/mux33xx.c
1 /* 1 /*
2 * AM33XX mux data 2 * AM33XX mux data
3 * 3 *
4 * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ 4 * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
5 * 5 *
6 * Derived from: arch/arm/mach-omap2/mux34xx.c Original copyright follows: 6 * Derived from: arch/arm/mach-omap2/mux34xx.c Original copyright follows:
7 * 7 *
8 * Copyright (C) 2009 Nokia 8 * Copyright (C) 2009 Nokia
9 * Copyright (C) 2009 Texas Instruments 9 * Copyright (C) 2009 Texas Instruments
10 * 10 *
11 * This program is free software; you can redistribute it and/or modify 11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as 12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation. 13 * published by the Free Software Foundation.
14 */ 14 */
15 15
16 #include <linux/module.h> 16 #include <linux/module.h>
17 #include <linux/init.h> 17 #include <linux/init.h>
18 18
19 #include "mux.h" 19 #include "mux.h"
20 20
21 #ifdef CONFIG_OMAP_MUX 21 #ifdef CONFIG_OMAP_MUX
22 22
23 #define _AM33XX_MUXENTRY(M0, g, m0, m1, m2, m3, m4, m5, m6, m7) \ 23 #define _AM33XX_MUXENTRY(M0, g, m0, m1, m2, m3, m4, m5, m6, m7) \
24 { \ 24 { \
25 .reg_offset = (AM33XX_CONTROL_PADCONF_##M0##_OFFSET), \ 25 .reg_offset = (AM33XX_CONTROL_PADCONF_##M0##_OFFSET), \
26 .gpio = (g), \ 26 .gpio = (g), \
27 .muxnames = { m0, m1, m2, m3, m4, m5, m6, m7 }, \ 27 .muxnames = { m0, m1, m2, m3, m4, m5, m6, m7 }, \
28 } 28 }
29 29
30 /* AM33XX pin mux super set */ 30 /* AM33XX pin mux super set */
31 static struct omap_mux __initdata am33xx_muxmodes[] = { 31 static struct omap_mux __initdata am33xx_muxmodes[] = {
32 _AM33XX_MUXENTRY(GPMC_AD0, 0, 32 _AM33XX_MUXENTRY(GPMC_AD0, 0,
33 "gpmc_ad0", "mmc1_dat0", NULL, NULL, 33 "gpmc_ad0", "mmc1_dat0", NULL, NULL,
34 NULL, NULL, NULL, NULL), 34 NULL, NULL, NULL, NULL),
35 _AM33XX_MUXENTRY(GPMC_AD1, 0, 35 _AM33XX_MUXENTRY(GPMC_AD1, 0,
36 "gpmc_ad1", "mmc1_dat1", NULL, NULL, 36 "gpmc_ad1", "mmc1_dat1", NULL, NULL,
37 NULL, NULL, NULL, NULL), 37 NULL, NULL, NULL, NULL),
38 _AM33XX_MUXENTRY(GPMC_AD2, 0, 38 _AM33XX_MUXENTRY(GPMC_AD2, 0,
39 "gpmc_ad2", "mmc1_dat2", NULL, NULL, 39 "gpmc_ad2", "mmc1_dat2", NULL, NULL,
40 NULL, NULL, NULL, NULL), 40 NULL, NULL, NULL, NULL),
41 _AM33XX_MUXENTRY(GPMC_AD3, 0, 41 _AM33XX_MUXENTRY(GPMC_AD3, 0,
42 "gpmc_ad3", "mmc1_dat3", NULL, NULL, 42 "gpmc_ad3", "mmc1_dat3", NULL, NULL,
43 NULL, NULL, NULL, NULL), 43 NULL, NULL, NULL, NULL),
44 _AM33XX_MUXENTRY(GPMC_AD4, 0, 44 _AM33XX_MUXENTRY(GPMC_AD4, 0,
45 "gpmc_ad4", "mmc1_dat4", NULL, NULL, 45 "gpmc_ad4", "mmc1_dat4", NULL, NULL,
46 NULL, NULL, NULL, NULL), 46 NULL, NULL, NULL, NULL),
47 _AM33XX_MUXENTRY(GPMC_AD5, 0, 47 _AM33XX_MUXENTRY(GPMC_AD5, 0,
48 "gpmc_ad5", "mmc1_dat5", NULL, NULL, 48 "gpmc_ad5", "mmc1_dat5", NULL, NULL,
49 NULL, NULL, NULL, NULL), 49 NULL, NULL, NULL, NULL),
50 _AM33XX_MUXENTRY(GPMC_AD6, 0, 50 _AM33XX_MUXENTRY(GPMC_AD6, 0,
51 "gpmc_ad6", "mmc1_dat6", NULL, NULL, 51 "gpmc_ad6", "mmc1_dat6", NULL, NULL,
52 NULL, NULL, NULL, NULL), 52 NULL, NULL, NULL, NULL),
53 _AM33XX_MUXENTRY(GPMC_AD7, 0, 53 _AM33XX_MUXENTRY(GPMC_AD7, 0,
54 "gpmc_ad7", "mmc1_dat7", NULL, NULL, 54 "gpmc_ad7", "mmc1_dat7", NULL, NULL,
55 NULL, NULL, NULL, NULL), 55 NULL, NULL, NULL, NULL),
56 _AM33XX_MUXENTRY(GPMC_AD8, 0, 56 _AM33XX_MUXENTRY(GPMC_AD8, 0,
57 "gpmc_ad8", "lcd_data16", "mmc1_dat0", "mmc2_dat4", 57 "gpmc_ad8", "lcd_data16", "mmc1_dat0", "mmc2_dat4",
58 NULL, NULL, NULL, NULL), 58 NULL, NULL, NULL, NULL),
59 _AM33XX_MUXENTRY(GPMC_AD9, 0, 59 _AM33XX_MUXENTRY(GPMC_AD9, 0,
60 "gpmc_ad9", "lcd_data17", "mmc1_dat1", "mmc2_dat5", 60 "gpmc_ad9", "lcd_data17", "mmc1_dat1", "mmc2_dat5",
61 NULL, NULL, NULL, NULL), 61 NULL, NULL, NULL, NULL),
62 _AM33XX_MUXENTRY(GPMC_AD10, 0, 62 _AM33XX_MUXENTRY(GPMC_AD10, 0,
63 "gpmc_ad10", "lcd_data18", "mmc1_dat2", "mmc2_dat6", 63 "gpmc_ad10", "lcd_data18", "mmc1_dat2", "mmc2_dat6",
64 NULL, NULL, NULL, NULL), 64 NULL, NULL, NULL, NULL),
65 _AM33XX_MUXENTRY(GPMC_AD11, 0, 65 _AM33XX_MUXENTRY(GPMC_AD11, 0,
66 "gpmc_ad11", "lcd_data19", "mmc1_dat3", "mmc2_dat7", 66 "gpmc_ad11", "lcd_data19", "mmc1_dat3", "mmc2_dat7",
67 NULL, NULL, NULL, NULL), 67 NULL, NULL, NULL, NULL),
68 _AM33XX_MUXENTRY(GPMC_AD12, 0, 68 _AM33XX_MUXENTRY(GPMC_AD12, 0,
69 "gpmc_ad12", "lcd_data20", "mmc1_dat4", "mmc2_dat0", 69 "gpmc_ad12", "lcd_data20", "mmc1_dat4", "mmc2_dat0",
70 NULL, NULL, NULL, NULL), 70 NULL, NULL, NULL, NULL),
71 _AM33XX_MUXENTRY(GPMC_AD13, 0, 71 _AM33XX_MUXENTRY(GPMC_AD13, 0,
72 "gpmc_ad13", "lcd_data21", "mmc1_dat5", "mmc2_dat1", 72 "gpmc_ad13", "lcd_data21", "mmc1_dat5", "mmc2_dat1",
73 NULL, NULL, NULL, NULL), 73 NULL, NULL, NULL, NULL),
74 _AM33XX_MUXENTRY(GPMC_AD14, 0, 74 _AM33XX_MUXENTRY(GPMC_AD14, 0,
75 "gpmc_ad14", "lcd_data22", "mmc1_dat6", "mmc2_dat2", 75 "gpmc_ad14", "lcd_data22", "mmc1_dat6", "mmc2_dat2",
76 NULL, NULL, NULL, NULL), 76 NULL, NULL, NULL, NULL),
77 _AM33XX_MUXENTRY(GPMC_AD15, 0, 77 _AM33XX_MUXENTRY(GPMC_AD15, 0,
78 "gpmc_ad15", "lcd_data23", "mmc1_dat7", "mmc2_dat3", 78 "gpmc_ad15", "lcd_data23", "mmc1_dat7", "mmc2_dat3",
79 NULL, NULL, NULL, NULL), 79 NULL, NULL, NULL, NULL),
80 _AM33XX_MUXENTRY(GPMC_A0, 0, 80 _AM33XX_MUXENTRY(GPMC_A0, 0,
81 "gpmc_a0", "mii2_txen", "rgmii2_tctl", "rmii2_txen", 81 "gpmc_a0", "mii2_txen", "rgmii2_tctl", "rmii2_txen",
82 NULL, NULL, NULL, "gpio1_16"), 82 NULL, NULL, NULL, "gpio1_16"),
83 _AM33XX_MUXENTRY(GPMC_A1, 0, 83 _AM33XX_MUXENTRY(GPMC_A1, 0,
84 "gpmc_a1", "mii2_rxdv", "rgmii2_rctl", "mmc2_dat0", 84 "gpmc_a1", "mii2_rxdv", "rgmii2_rctl", "mmc2_dat0",
85 NULL, NULL, NULL, NULL), 85 NULL, NULL, NULL, NULL),
86 _AM33XX_MUXENTRY(GPMC_A2, 0, 86 _AM33XX_MUXENTRY(GPMC_A2, 0,
87 "gpmc_a2", "mii2_txd3", "rgmii2_td3", "mmc2_dat1", 87 "gpmc_a2", "mii2_txd3", "rgmii2_td3", "mmc2_dat1",
88 NULL, NULL, NULL, NULL), 88 NULL, NULL, NULL, NULL),
89 _AM33XX_MUXENTRY(GPMC_A3, 0, 89 _AM33XX_MUXENTRY(GPMC_A3, 0,
90 "gpmc_a3", "mii2_txd2", "rgmii2_td2", "mmc2_dat2", 90 "gpmc_a3", "mii2_txd2", "rgmii2_td2", "mmc2_dat2",
91 NULL, NULL, NULL, NULL), 91 NULL, NULL, NULL, NULL),
92 _AM33XX_MUXENTRY(GPMC_A4, 0, 92 _AM33XX_MUXENTRY(GPMC_A4, 0,
93 "gpmc_a4", "mii2_txd1", "rgmii2_td1", "rmii2_txd1", 93 "gpmc_a4", "mii2_txd1", "rgmii2_td1", "rmii2_txd1",
94 "gpmc_a20", NULL, NULL, NULL), 94 "gpmc_a20", NULL, NULL, NULL),
95 _AM33XX_MUXENTRY(GPMC_A5, 0, 95 _AM33XX_MUXENTRY(GPMC_A5, 0,
96 "gpmc_a5", "mii2_txd0", "rgmii2_td0", "rmii2_txd0", 96 "gpmc_a5", "mii2_txd0", "rgmii2_td0", "rmii2_txd0",
97 "gpmc_a21", NULL, NULL, "gpio1_21"), 97 "gpmc_a21", NULL, NULL, "gpio1_21"),
98 _AM33XX_MUXENTRY(GPMC_A6, 0, 98 _AM33XX_MUXENTRY(GPMC_A6, 0,
99 "gpmc_a6", "mii2_txclk", "rgmii2_tclk", "mmc2_dat4", 99 "gpmc_a6", "mii2_txclk", "rgmii2_tclk", "mmc2_dat4",
100 "gpmc_a22", NULL, NULL, NULL), 100 "gpmc_a22", NULL, NULL, "gpio1_22"),
101 _AM33XX_MUXENTRY(GPMC_A7, 0, 101 _AM33XX_MUXENTRY(GPMC_A7, 0,
102 "gpmc_a7", "mii2_rxclk", "rgmii2_rclk", "mmc2_dat5", 102 "gpmc_a7", "mii2_rxclk", "rgmii2_rclk", "mmc2_dat5",
103 NULL, NULL, NULL, NULL), 103 NULL, NULL, NULL, NULL),
104 _AM33XX_MUXENTRY(GPMC_A8, 0, 104 _AM33XX_MUXENTRY(GPMC_A8, 0,
105 "gpmc_a8", "mii2_rxd3", "rgmii2_rd3", "mmc2_dat6", 105 "gpmc_a8", "mii2_rxd3", "rgmii2_rd3", "mmc2_dat6",
106 NULL, NULL, "mcasp0_aclkx", "gpio1_24"), 106 NULL, NULL, "mcasp0_aclkx", "gpio1_24"),
107 _AM33XX_MUXENTRY(GPMC_A9, 0, 107 _AM33XX_MUXENTRY(GPMC_A9, 0,
108 "gpmc_a9", "mii2_rxd2", "rgmii2_rd2", "mmc2_dat7", 108 "gpmc_a9", "mii2_rxd2", "rgmii2_rd2", "mmc2_dat7",
109 NULL, NULL, "mcasp0_fsx", "gpio1_25"), 109 NULL, NULL, "mcasp0_fsx", "gpio1_25"),
110 _AM33XX_MUXENTRY(GPMC_A10, 0, 110 _AM33XX_MUXENTRY(GPMC_A10, 0,
111 "gpmc_a10", "mii2_rxd1", "rgmii2_rd1", "rmii2_rxd1", 111 "gpmc_a10", "mii2_rxd1", "rgmii2_rd1", "rmii2_rxd1",
112 NULL, NULL, "mcasp0_axr0", "gpio1_26"), 112 NULL, NULL, "mcasp0_axr0", "gpio1_26"),
113 _AM33XX_MUXENTRY(GPMC_A11, 0, 113 _AM33XX_MUXENTRY(GPMC_A11, 0,
114 "gpmc_a11", "mii2_rxd0", "rgmii2_rd0", "rmii2_rxd0", 114 "gpmc_a11", "mii2_rxd0", "rgmii2_rd0", "rmii2_rxd0",
115 NULL, NULL, "mcasp0_axr1", "gpio1_27"), 115 NULL, NULL, "mcasp0_axr1", "gpio1_27"),
116 _AM33XX_MUXENTRY(GPMC_WAIT0, 0, 116 _AM33XX_MUXENTRY(GPMC_WAIT0, 0,
117 "gpmc_wait0", "mii2_crs", NULL, "rmii2_crs_dv", 117 "gpmc_wait0", "mii2_crs", NULL, "rmii2_crs_dv",
118 "mmc1_sdcd", NULL, NULL, NULL), 118 "mmc1_sdcd", NULL, NULL, NULL),
119 _AM33XX_MUXENTRY(GPMC_WPN, 0, 119 _AM33XX_MUXENTRY(GPMC_WPN, 0,
120 "gpmc_wpn", "mii2_rxerr", NULL, "rmii2_rxerr", 120 "gpmc_wpn", "mii2_rxerr", NULL, "rmii2_rxerr",
121 "mmc2_sdcd", NULL, NULL, NULL), 121 "mmc2_sdcd", NULL, NULL, NULL),
122 _AM33XX_MUXENTRY(GPMC_BEN1, 0, 122 _AM33XX_MUXENTRY(GPMC_BEN1, 0,
123 "gpmc_ben1", "mii2_col", NULL, "mmc2_dat3", 123 "gpmc_ben1", "mii2_col", NULL, "mmc2_dat3",
124 NULL, NULL, "mcasp0_aclkr", NULL), 124 NULL, NULL, "mcasp0_aclkr", NULL),
125 _AM33XX_MUXENTRY(GPMC_CSN0, 0, 125 _AM33XX_MUXENTRY(GPMC_CSN0, 0,
126 "gpmc_csn0", NULL, NULL, NULL, 126 "gpmc_csn0", NULL, NULL, NULL,
127 NULL, NULL, NULL, "mmc1_sdwp"), 127 NULL, NULL, NULL, "mmc1_sdwp"),
128 _AM33XX_MUXENTRY(GPMC_CSN1, 0, 128 _AM33XX_MUXENTRY(GPMC_CSN1, 0,
129 "gpmc_csn1", NULL, "mmc1_clk", NULL, 129 "gpmc_csn1", NULL, "mmc1_clk", NULL,
130 NULL, NULL, NULL, "gpio1_30"), 130 NULL, NULL, NULL, "gpio1_30"),
131 _AM33XX_MUXENTRY(GPMC_CSN2, 0, 131 _AM33XX_MUXENTRY(GPMC_CSN2, 0,
132 "gpmc_csn2", NULL, "mmc1_cmd", NULL, 132 "gpmc_csn2", NULL, "mmc1_cmd", NULL,
133 NULL, NULL, NULL, "gpio1_31"), 133 NULL, NULL, NULL, "gpio1_31"),
134 _AM33XX_MUXENTRY(GPMC_CSN3, 0, 134 _AM33XX_MUXENTRY(GPMC_CSN3, 0,
135 "gpmc_csn3", NULL, NULL, "mmc2_cmd", 135 "gpmc_csn3", NULL, NULL, "mmc2_cmd",
136 NULL, NULL, NULL, NULL), 136 NULL, NULL, NULL, NULL),
137 _AM33XX_MUXENTRY(GPMC_CLK, 0, 137 _AM33XX_MUXENTRY(GPMC_CLK, 0,
138 "gpmc_clk", NULL, NULL, "mmc2_clk", 138 "gpmc_clk", NULL, NULL, "mmc2_clk",
139 NULL, NULL, "mcasp0_fsr", NULL), 139 NULL, NULL, "mcasp0_fsr", NULL),
140 _AM33XX_MUXENTRY(GPMC_ADVN_ALE, 0, 140 _AM33XX_MUXENTRY(GPMC_ADVN_ALE, 0,
141 "gpmc_advn_ale", NULL, NULL, NULL, 141 "gpmc_advn_ale", NULL, NULL, NULL,
142 NULL, NULL, NULL, "mmc1_sdcd"), 142 NULL, NULL, NULL, "mmc1_sdcd"),
143 _AM33XX_MUXENTRY(GPMC_OEN_REN, 0, 143 _AM33XX_MUXENTRY(GPMC_OEN_REN, 0,
144 "gpmc_oen_ren", NULL, NULL, NULL, 144 "gpmc_oen_ren", NULL, NULL, NULL,
145 NULL, NULL, NULL, NULL), 145 NULL, NULL, NULL, NULL),
146 _AM33XX_MUXENTRY(GPMC_WEN, 0, 146 _AM33XX_MUXENTRY(GPMC_WEN, 0,
147 "gpmc_wen", NULL, NULL, NULL, 147 "gpmc_wen", NULL, NULL, NULL,
148 NULL, NULL, NULL, NULL), 148 NULL, NULL, NULL, NULL),
149 _AM33XX_MUXENTRY(GPMC_BEN0_CLE, 0, 149 _AM33XX_MUXENTRY(GPMC_BEN0_CLE, 0,
150 "gpmc_ben0_cle", NULL, NULL, NULL, 150 "gpmc_ben0_cle", NULL, NULL, NULL,
151 NULL, NULL, NULL, NULL), 151 NULL, NULL, NULL, NULL),
152 _AM33XX_MUXENTRY(LCD_DATA0, 0, 152 _AM33XX_MUXENTRY(LCD_DATA0, 0,
153 "lcd_data0", "gpmc_a0", NULL, NULL, 153 "lcd_data0", "gpmc_a0", NULL, NULL,
154 NULL, NULL, NULL, NULL), 154 NULL, NULL, NULL, NULL),
155 _AM33XX_MUXENTRY(LCD_DATA1, 0, 155 _AM33XX_MUXENTRY(LCD_DATA1, 0,
156 "lcd_data1", "gpmc_a1", NULL, NULL, 156 "lcd_data1", "gpmc_a1", NULL, NULL,
157 NULL, NULL, NULL, NULL), 157 NULL, NULL, NULL, NULL),
158 _AM33XX_MUXENTRY(LCD_DATA2, 0, 158 _AM33XX_MUXENTRY(LCD_DATA2, 0,
159 "lcd_data2", "gpmc_a2", NULL, NULL, 159 "lcd_data2", "gpmc_a2", NULL, NULL,
160 NULL, NULL, NULL, NULL), 160 NULL, NULL, NULL, NULL),
161 _AM33XX_MUXENTRY(LCD_DATA3, 0, 161 _AM33XX_MUXENTRY(LCD_DATA3, 0,
162 "lcd_data3", "gpmc_a3", NULL, NULL, 162 "lcd_data3", "gpmc_a3", NULL, NULL,
163 NULL, NULL, NULL, NULL), 163 NULL, NULL, NULL, NULL),
164 _AM33XX_MUXENTRY(LCD_DATA4, 0, 164 _AM33XX_MUXENTRY(LCD_DATA4, 0,
165 "lcd_data4", "gpmc_a4", NULL, NULL, 165 "lcd_data4", "gpmc_a4", NULL, NULL,
166 NULL, NULL, NULL, NULL), 166 NULL, NULL, NULL, NULL),
167 _AM33XX_MUXENTRY(LCD_DATA5, 0, 167 _AM33XX_MUXENTRY(LCD_DATA5, 0,
168 "lcd_data5", "gpmc_a5", NULL, NULL, 168 "lcd_data5", "gpmc_a5", NULL, NULL,
169 NULL, NULL, NULL, NULL), 169 NULL, NULL, NULL, NULL),
170 _AM33XX_MUXENTRY(LCD_DATA6, 0, 170 _AM33XX_MUXENTRY(LCD_DATA6, 0,
171 "lcd_data6", "gpmc_a6", NULL, NULL, 171 "lcd_data6", "gpmc_a6", NULL, NULL,
172 NULL, NULL, NULL, NULL), 172 NULL, NULL, NULL, NULL),
173 _AM33XX_MUXENTRY(LCD_DATA7, 0, 173 _AM33XX_MUXENTRY(LCD_DATA7, 0,
174 "lcd_data7", "gpmc_a7", NULL, NULL, 174 "lcd_data7", "gpmc_a7", NULL, NULL,
175 NULL, NULL, NULL, NULL), 175 NULL, NULL, NULL, NULL),
176 _AM33XX_MUXENTRY(LCD_DATA8, 0, 176 _AM33XX_MUXENTRY(LCD_DATA8, 0,
177 "lcd_data8", "gpmc_a12", NULL, "mcasp0_aclkx", 177 "lcd_data8", "gpmc_a12", NULL, "mcasp0_aclkx",
178 NULL, NULL, NULL, NULL), 178 NULL, NULL, NULL, NULL),
179 _AM33XX_MUXENTRY(LCD_DATA9, 0, 179 _AM33XX_MUXENTRY(LCD_DATA9, 0,
180 "lcd_data9", "gpmc_a13", NULL, "mcasp0_fsx", 180 "lcd_data9", "gpmc_a13", NULL, "mcasp0_fsx",
181 NULL, NULL, NULL, NULL), 181 NULL, NULL, NULL, NULL),
182 _AM33XX_MUXENTRY(LCD_DATA10, 0, 182 _AM33XX_MUXENTRY(LCD_DATA10, 0,
183 "lcd_data10", "gpmc_a14", NULL, "mcasp0_axr0", 183 "lcd_data10", "gpmc_a14", NULL, "mcasp0_axr0",
184 NULL, NULL, NULL, NULL), 184 NULL, NULL, NULL, NULL),
185 _AM33XX_MUXENTRY(LCD_DATA11, 0, 185 _AM33XX_MUXENTRY(LCD_DATA11, 0,
186 "lcd_data11", "gpmc_a15", NULL, "mcasp0_ahclkr", 186 "lcd_data11", "gpmc_a15", NULL, "mcasp0_ahclkr",
187 "mcasp0_axr2", NULL, NULL, NULL), 187 "mcasp0_axr2", NULL, NULL, NULL),
188 _AM33XX_MUXENTRY(LCD_DATA12, 0, 188 _AM33XX_MUXENTRY(LCD_DATA12, 0,
189 "lcd_data12", "gpmc_a16", NULL, "mcasp0_aclkr", 189 "lcd_data12", "gpmc_a16", NULL, "mcasp0_aclkr",
190 "mcasp0_axr2", NULL, NULL, NULL), 190 "mcasp0_axr2", NULL, NULL, NULL),
191 _AM33XX_MUXENTRY(LCD_DATA13, 0, 191 _AM33XX_MUXENTRY(LCD_DATA13, 0,
192 "lcd_data13", "gpmc_a17", NULL, "mcasp0_fsr", 192 "lcd_data13", "gpmc_a17", NULL, "mcasp0_fsr",
193 "mcasp0_axr3", NULL, NULL, NULL), 193 "mcasp0_axr3", NULL, NULL, NULL),
194 _AM33XX_MUXENTRY(LCD_DATA14, 0, 194 _AM33XX_MUXENTRY(LCD_DATA14, 0,
195 "lcd_data14", "gpmc_a18", NULL, "mcasp0_axr1", 195 "lcd_data14", "gpmc_a18", NULL, "mcasp0_axr1",
196 NULL, NULL, NULL, NULL), 196 NULL, NULL, NULL, NULL),
197 _AM33XX_MUXENTRY(LCD_DATA15, 0, 197 _AM33XX_MUXENTRY(LCD_DATA15, 0,
198 "lcd_data15", "gpmc_a19", NULL, "mcasp0_ahclkx", 198 "lcd_data15", "gpmc_a19", NULL, "mcasp0_ahclkx",
199 "mcasp0_axr3", NULL, NULL, NULL), 199 "mcasp0_axr3", NULL, NULL, NULL),
200 _AM33XX_MUXENTRY(LCD_VSYNC, 0, 200 _AM33XX_MUXENTRY(LCD_VSYNC, 0,
201 "lcd_vsync", NULL, NULL, NULL, 201 "lcd_vsync", NULL, NULL, NULL,
202 NULL, NULL, NULL, NULL), 202 NULL, NULL, NULL, NULL),
203 _AM33XX_MUXENTRY(LCD_HSYNC, 0, 203 _AM33XX_MUXENTRY(LCD_HSYNC, 0,
204 "lcd_hsync", NULL, NULL, NULL, 204 "lcd_hsync", NULL, NULL, NULL,
205 NULL, NULL, NULL, NULL), 205 NULL, NULL, NULL, NULL),
206 _AM33XX_MUXENTRY(LCD_PCLK, 0, 206 _AM33XX_MUXENTRY(LCD_PCLK, 0,
207 "lcd_pclk", NULL, NULL, NULL, 207 "lcd_pclk", NULL, NULL, NULL,
208 NULL, NULL, NULL, NULL), 208 NULL, NULL, NULL, NULL),
209 _AM33XX_MUXENTRY(LCD_AC_BIAS_EN, 0, 209 _AM33XX_MUXENTRY(LCD_AC_BIAS_EN, 0,
210 "lcd_ac_bias_en", NULL, NULL, NULL, 210 "lcd_ac_bias_en", NULL, NULL, NULL,
211 NULL, NULL, NULL, "gpio2_25"), 211 NULL, NULL, NULL, "gpio2_25"),
212 _AM33XX_MUXENTRY(GPMC_CLK, 0, 212 _AM33XX_MUXENTRY(GPMC_CLK, 0,
213 "gpmc_clk", "lcd_memory_clk_mux", NULL, NULL, 213 "gpmc_clk", "lcd_memory_clk_mux", NULL, NULL,
214 NULL, NULL, NULL, NULL), 214 NULL, NULL, NULL, NULL),
215 _AM33XX_MUXENTRY(MMC0_DAT3, 0, 215 _AM33XX_MUXENTRY(MMC0_DAT3, 0,
216 "mmc0_dat3", NULL, NULL, NULL, 216 "mmc0_dat3", NULL, NULL, NULL,
217 NULL, NULL, NULL, NULL), 217 NULL, NULL, NULL, NULL),
218 _AM33XX_MUXENTRY(MMC0_DAT2, 0, 218 _AM33XX_MUXENTRY(MMC0_DAT2, 0,
219 "mmc0_dat2", NULL, NULL, NULL, 219 "mmc0_dat2", NULL, NULL, NULL,
220 NULL, NULL, NULL, NULL), 220 NULL, NULL, NULL, NULL),
221 _AM33XX_MUXENTRY(MMC0_DAT1, 0, 221 _AM33XX_MUXENTRY(MMC0_DAT1, 0,
222 "mmc0_dat1", NULL, NULL, NULL, 222 "mmc0_dat1", NULL, NULL, NULL,
223 NULL, NULL, NULL, NULL), 223 NULL, NULL, NULL, NULL),
224 _AM33XX_MUXENTRY(MMC0_DAT0, 0, 224 _AM33XX_MUXENTRY(MMC0_DAT0, 0,
225 "mmc0_dat0", NULL, NULL, NULL, 225 "mmc0_dat0", NULL, NULL, NULL,
226 NULL, NULL, NULL, NULL), 226 NULL, NULL, NULL, NULL),
227 _AM33XX_MUXENTRY(MMC0_CLK, 0, 227 _AM33XX_MUXENTRY(MMC0_CLK, 0,
228 "mmc0_clk", NULL, NULL, NULL, 228 "mmc0_clk", NULL, NULL, NULL,
229 NULL, NULL, NULL, NULL), 229 NULL, NULL, NULL, NULL),
230 _AM33XX_MUXENTRY(MMC0_CMD, 0, 230 _AM33XX_MUXENTRY(MMC0_CMD, 0,
231 "mmc0_cmd", NULL, NULL, NULL, 231 "mmc0_cmd", NULL, NULL, NULL,
232 NULL, NULL, NULL, NULL), 232 NULL, NULL, NULL, NULL),
233 _AM33XX_MUXENTRY(MII1_COL, 0, 233 _AM33XX_MUXENTRY(MII1_COL, 0,
234 "mii1_col", "rmii2_refclk", "spi1_sclk", NULL, 234 "mii1_col", "rmii2_refclk", "spi1_sclk", NULL,
235 "mcasp1_axr2", "mmc2_dat3", "mcasp0_axr2", NULL), 235 "mcasp1_axr2", "mmc2_dat3", "mcasp0_axr2", NULL),
236 _AM33XX_MUXENTRY(MII1_CRS, 0, 236 _AM33XX_MUXENTRY(MII1_CRS, 0,
237 "mii1_crs", "rmii1_crs_dv", "spi1_d0", NULL, 237 "mii1_crs", "rmii1_crs_dv", "spi1_d0", NULL,
238 "mcasp1_aclkx", NULL, NULL, NULL), 238 "mcasp1_aclkx", NULL, NULL, NULL),
239 _AM33XX_MUXENTRY(MII1_RXERR, 0, 239 _AM33XX_MUXENTRY(MII1_RXERR, 0,
240 "mii1_rxerr", "rmii1_rxerr", "spi1_d1", NULL, 240 "mii1_rxerr", "rmii1_rxerr", "spi1_d1", NULL,
241 "mcasp1_fsx", NULL, NULL, NULL), 241 "mcasp1_fsx", NULL, NULL, NULL),
242 _AM33XX_MUXENTRY(MII1_TXEN, 0, 242 _AM33XX_MUXENTRY(MII1_TXEN, 0,
243 "mii1_txen", "rmii1_txen", "rgmii1_tctl", NULL, 243 "mii1_txen", "rmii1_txen", "rgmii1_tctl", NULL,
244 "mcasp1_axr0", NULL, "mmc2_cmd", NULL), 244 "mcasp1_axr0", NULL, "mmc2_cmd", NULL),
245 _AM33XX_MUXENTRY(MII1_RXDV, 0, 245 _AM33XX_MUXENTRY(MII1_RXDV, 0,
246 "mii1_rxdv", NULL, "rgmii1_rctl", NULL, 246 "mii1_rxdv", NULL, "rgmii1_rctl", NULL,
247 "mcasp1_aclx", "mmc2_dat0", "mcasp0_aclkr", NULL), 247 "mcasp1_aclx", "mmc2_dat0", "mcasp0_aclkr", NULL),
248 _AM33XX_MUXENTRY(MII1_TXD3, 0, 248 _AM33XX_MUXENTRY(MII1_TXD3, 0,
249 "mii1_txd3", NULL, "rgmii1_td3", NULL, 249 "mii1_txd3", NULL, "rgmii1_td3", NULL,
250 "mcasp1_fsx", "mmc2_dat1", "mcasp0_fsr", NULL), 250 "mcasp1_fsx", "mmc2_dat1", "mcasp0_fsr", NULL),
251 _AM33XX_MUXENTRY(MII1_TXD2, 0, 251 _AM33XX_MUXENTRY(MII1_TXD2, 0,
252 "mii1_txd2", NULL, "rgmii1_td2", NULL, 252 "mii1_txd2", NULL, "rgmii1_td2", NULL,
253 "mcasp1_axr0", "mmc2_dat2", "mcasp0_ahclkx", NULL), 253 "mcasp1_axr0", "mmc2_dat2", "mcasp0_ahclkx", NULL),
254 _AM33XX_MUXENTRY(MII1_TXD1, 0, 254 _AM33XX_MUXENTRY(MII1_TXD1, 0,
255 "mii1_txd1", "rmii1_txd1", "rgmii1_td1", "mcasp1_fsr", 255 "mii1_txd1", "rmii1_txd1", "rgmii1_td1", "mcasp1_fsr",
256 "mcasp1_axr1", NULL, "mmc1_cmd", NULL), 256 "mcasp1_axr1", NULL, "mmc1_cmd", NULL),
257 _AM33XX_MUXENTRY(MII1_TXD0, 0, 257 _AM33XX_MUXENTRY(MII1_TXD0, 0,
258 "mii1_txd0", "rmii1_txd0", "rgmii1_td0", "mcasp1_axr2", 258 "mii1_txd0", "rmii1_txd0", "rgmii1_td0", "mcasp1_axr2",
259 "mcasp1_aclkr", NULL, "mmc1_clk", NULL), 259 "mcasp1_aclkr", NULL, "mmc1_clk", NULL),
260 _AM33XX_MUXENTRY(MII1_TXCLK, 0, 260 _AM33XX_MUXENTRY(MII1_TXCLK, 0,
261 "mii1_txclk", NULL, "rgmii1_tclk", "mmc0_dat7", 261 "mii1_txclk", NULL, "rgmii1_tclk", "mmc0_dat7",
262 "mmc1_dat0", NULL, "mcasp0_aclkx", NULL), 262 "mmc1_dat0", NULL, "mcasp0_aclkx", NULL),
263 _AM33XX_MUXENTRY(MII1_RXCLK, 0, 263 _AM33XX_MUXENTRY(MII1_RXCLK, 0,
264 "mii1_rxclk", NULL, "rgmii1_rclk", "mmc0_dat6", 264 "mii1_rxclk", NULL, "rgmii1_rclk", "mmc0_dat6",
265 "mmc1_dat1", NULL, "mcasp0_fsx", NULL), 265 "mmc1_dat1", NULL, "mcasp0_fsx", NULL),
266 _AM33XX_MUXENTRY(MII1_RXD3, 0, 266 _AM33XX_MUXENTRY(MII1_RXD3, 0,
267 "mii1_rxd3", NULL, "rgmii1_rd3", "mmc0_dat5", 267 "mii1_rxd3", NULL, "rgmii1_rd3", "mmc0_dat5",
268 "mmc1_dat2", NULL, "mcasp0_axr0", NULL), 268 "mmc1_dat2", NULL, "mcasp0_axr0", NULL),
269 _AM33XX_MUXENTRY(MII1_RXD2, 0, 269 _AM33XX_MUXENTRY(MII1_RXD2, 0,
270 "mii1_rxd2", NULL, "rgmii1_rd2", "mmc0_dat4", 270 "mii1_rxd2", NULL, "rgmii1_rd2", "mmc0_dat4",
271 "mmc1_dat3", NULL, "mcasp0_axr1", NULL), 271 "mmc1_dat3", NULL, "mcasp0_axr1", NULL),
272 _AM33XX_MUXENTRY(MII1_RXD1, 0, 272 _AM33XX_MUXENTRY(MII1_RXD1, 0,
273 "mii1_rxd1", "rmii1_rxd1", "rgmii1_rd1", "mcasp1_axr3", 273 "mii1_rxd1", "rmii1_rxd1", "rgmii1_rd1", "mcasp1_axr3",
274 "mcasp1_fsr", NULL, "mmc2_clk", NULL), 274 "mcasp1_fsr", NULL, "mmc2_clk", NULL),
275 _AM33XX_MUXENTRY(MII1_RXD0, 0, 275 _AM33XX_MUXENTRY(MII1_RXD0, 0,
276 "mii1_rxd0", "rmii1_rxd0", "rgmii1_rd0", "mcasp1_ahclkx", 276 "mii1_rxd0", "rmii1_rxd0", "rgmii1_rd0", "mcasp1_ahclkx",
277 "mcasp1_ahclkr", "mcasp1_aclkr", "mcasp0_axr3", NULL), 277 "mcasp1_ahclkr", "mcasp1_aclkr", "mcasp0_axr3", NULL),
278 _AM33XX_MUXENTRY(MII1_REFCLK, 0, 278 _AM33XX_MUXENTRY(MII1_REFCLK, 0,
279 "rmii1_refclk", NULL, "spi1_cs0", NULL, 279 "rmii1_refclk", NULL, "spi1_cs0", NULL,
280 "mcasp1_axr3", "mmc0_pow", "mcasp1_ahclkx", NULL), 280 "mcasp1_axr3", "mmc0_pow", "mcasp1_ahclkx", NULL),
281 _AM33XX_MUXENTRY(MDIO_DATA, 0, 281 _AM33XX_MUXENTRY(MDIO_DATA, 0,
282 "mdio_data", NULL, NULL, NULL, 282 "mdio_data", NULL, NULL, NULL,
283 "mmc0_sdcd", "mmc1_cmd", "mmc2_cmd", NULL), 283 "mmc0_sdcd", "mmc1_cmd", "mmc2_cmd", NULL),
284 _AM33XX_MUXENTRY(MDIO_CLK, 0, 284 _AM33XX_MUXENTRY(MDIO_CLK, 0,
285 "mdio_clk", NULL, NULL, NULL, 285 "mdio_clk", NULL, NULL, NULL,
286 "mmc0_sdwp", "mmc1_clk", "mmc2_clk", NULL), 286 "mmc0_sdwp", "mmc1_clk", "mmc2_clk", NULL),
287 _AM33XX_MUXENTRY(SPI0_SCLK, 0, 287 _AM33XX_MUXENTRY(SPI0_SCLK, 0,
288 "spi0_sclk", NULL, NULL, NULL, 288 "spi0_sclk", NULL, NULL, NULL,
289 NULL, NULL, NULL, "gpio0_2"), 289 NULL, NULL, NULL, "gpio0_2"),
290 _AM33XX_MUXENTRY(SPI0_D0, 0, 290 _AM33XX_MUXENTRY(SPI0_D0, 0,
291 "spi0_d0", NULL, NULL, NULL, 291 "spi0_d0", NULL, NULL, NULL,
292 NULL, NULL, NULL, "gpio0_3"), 292 NULL, NULL, NULL, "gpio0_3"),
293 _AM33XX_MUXENTRY(SPI0_D1, 0, 293 _AM33XX_MUXENTRY(SPI0_D1, 0,
294 "spi0_d1", "mmc1_sdwp", "i2c1_sda", NULL, 294 "spi0_d1", "mmc1_sdwp", "i2c1_sda", NULL,
295 NULL, NULL, NULL, NULL), 295 NULL, NULL, NULL, NULL),
296 _AM33XX_MUXENTRY(SPI0_CS0, 0, 296 _AM33XX_MUXENTRY(SPI0_CS0, 0,
297 "spi0_cs0", "mmc2_sdwp", "i2c1_scl", NULL, 297 "spi0_cs0", "mmc2_sdwp", "i2c1_scl", NULL,
298 NULL, NULL, NULL, NULL), 298 NULL, NULL, NULL, NULL),
299 _AM33XX_MUXENTRY(SPI0_CS1, 0, 299 _AM33XX_MUXENTRY(SPI0_CS1, 0,
300 "spi0_cs1", "uart3_rxd", NULL, "mmc0_pow", 300 "spi0_cs1", "uart3_rxd", NULL, "mmc0_pow",
301 NULL, "mmc0_sdcd", NULL, NULL), 301 NULL, "mmc0_sdcd", NULL, NULL),
302 _AM33XX_MUXENTRY(ECAP0_IN_PWM0_OUT, 0, 302 _AM33XX_MUXENTRY(ECAP0_IN_PWM0_OUT, 0,
303 "ecap0_in_pwm0_out", "uart3_txd", "spi1_cs1", NULL, 303 "ecap0_in_pwm0_out", "uart3_txd", "spi1_cs1", NULL,
304 "spi1_sclk", "mmc0_sdwp", NULL, "gpio0_7"), 304 "spi1_sclk", "mmc0_sdwp", NULL, "gpio0_7"),
305 _AM33XX_MUXENTRY(UART0_CTSN, 0, 305 _AM33XX_MUXENTRY(UART0_CTSN, 0,
306 "uart0_ctsn", NULL, "d_can1_tx", NULL, 306 "uart0_ctsn", NULL, "d_can1_tx", NULL,
307 "spi1_d0", NULL, NULL, NULL), 307 "spi1_d0", NULL, NULL, NULL),
308 _AM33XX_MUXENTRY(UART0_RTSN, 0, 308 _AM33XX_MUXENTRY(UART0_RTSN, 0,
309 "uart0_rtsn", NULL, "d_can1_rx", NULL, 309 "uart0_rtsn", NULL, "d_can1_rx", NULL,
310 "spi1_d1", "spi1_cs0", NULL, NULL), 310 "spi1_d1", "spi1_cs0", NULL, NULL),
311 _AM33XX_MUXENTRY(UART0_RXD, 0, 311 _AM33XX_MUXENTRY(UART0_RXD, 0,
312 "uart0_rxd", "spi1_cs0", "d_can0_tx", NULL, 312 "uart0_rxd", "spi1_cs0", "d_can0_tx", NULL,
313 NULL, NULL, NULL, NULL), 313 NULL, NULL, NULL, NULL),
314 _AM33XX_MUXENTRY(UART0_TXD, 0, 314 _AM33XX_MUXENTRY(UART0_TXD, 0,
315 "uart0_txd", "spi1_cs1", "d_can0_rx", NULL, 315 "uart0_txd", "spi1_cs1", "d_can0_rx", NULL,
316 NULL, NULL, NULL, NULL), 316 NULL, NULL, NULL, NULL),
317 _AM33XX_MUXENTRY(UART1_CTSN, 0, 317 _AM33XX_MUXENTRY(UART1_CTSN, 0,
318 "uart1_ctsn", NULL, NULL, NULL, 318 "uart1_ctsn", NULL, NULL, NULL,
319 "spi1_cs0", NULL, NULL, NULL), 319 "spi1_cs0", NULL, NULL, NULL),
320 _AM33XX_MUXENTRY(UART1_RTSN, 0, 320 _AM33XX_MUXENTRY(UART1_RTSN, 0,
321 "uart1_rtsn", NULL, NULL, NULL, 321 "uart1_rtsn", NULL, NULL, NULL,
322 "spi1_cs1", NULL, NULL, NULL), 322 "spi1_cs1", NULL, NULL, NULL),
323 _AM33XX_MUXENTRY(UART1_RXD, 0, 323 _AM33XX_MUXENTRY(UART1_RXD, 0,
324 "uart1_rxd", "mmc1_sdwp", NULL, NULL, 324 "uart1_rxd", "mmc1_sdwp", NULL, NULL,
325 NULL, "pr1_uart0_rxd_mux1", NULL, NULL), 325 NULL, "pr1_uart0_rxd_mux1", NULL, NULL),
326 _AM33XX_MUXENTRY(UART1_TXD, 0, 326 _AM33XX_MUXENTRY(UART1_TXD, 0,
327 "uart1_txd", "mmc2_sdwp", NULL, NULL, 327 "uart1_txd", "mmc2_sdwp", NULL, NULL,
328 NULL, "pr1_uart0_txd_mux1", NULL, NULL), 328 NULL, "pr1_uart0_txd_mux1", NULL, NULL),
329 _AM33XX_MUXENTRY(I2C0_SDA, 0, 329 _AM33XX_MUXENTRY(I2C0_SDA, 0,
330 "i2c0_sda", NULL, NULL, NULL, 330 "i2c0_sda", NULL, NULL, NULL,
331 NULL, NULL, NULL, NULL), 331 NULL, NULL, NULL, NULL),
332 _AM33XX_MUXENTRY(I2C0_SCL, 0, 332 _AM33XX_MUXENTRY(I2C0_SCL, 0,
333 "i2c0_scl", NULL, NULL, NULL, 333 "i2c0_scl", NULL, NULL, NULL,
334 NULL, NULL, NULL, NULL), 334 NULL, NULL, NULL, NULL),
335 _AM33XX_MUXENTRY(MCASP0_ACLKX, 0, 335 _AM33XX_MUXENTRY(MCASP0_ACLKX, 0,
336 "mcasp0_aclkx", NULL, NULL, "spi1_sclk", 336 "mcasp0_aclkx", NULL, NULL, "spi1_sclk",
337 "mmc0_sdcd", NULL, NULL, NULL), 337 "mmc0_sdcd", NULL, NULL, NULL),
338 _AM33XX_MUXENTRY(MCASP0_FSX, 0, 338 _AM33XX_MUXENTRY(MCASP0_FSX, 0,
339 "mcasp0_fsx", NULL, NULL, "spi1_d0", 339 "mcasp0_fsx", NULL, NULL, "spi1_d0",
340 "mmc1_sdcd", NULL, NULL, NULL), 340 "mmc1_sdcd", NULL, NULL, NULL),
341 _AM33XX_MUXENTRY(MCASP0_AXR0, 0, 341 _AM33XX_MUXENTRY(MCASP0_AXR0, 0,
342 "mcasp0_axr0", NULL, NULL, "spi1_d1", 342 "mcasp0_axr0", NULL, NULL, "spi1_d1",
343 "mmc2_sdcd", NULL, NULL, NULL), 343 "mmc2_sdcd", NULL, NULL, NULL),
344 _AM33XX_MUXENTRY(MCASP0_AHCLKR, 0, 344 _AM33XX_MUXENTRY(MCASP0_AHCLKR, 0,
345 "mcasp0_ahclkr", NULL, "mcasp0_axr2", "spi1_cs0", 345 "mcasp0_ahclkr", NULL, "mcasp0_axr2", "spi1_cs0",
346 NULL, NULL, NULL, "gpio3_17"), 346 NULL, NULL, NULL, "gpio3_17"),
347 _AM33XX_MUXENTRY(MCASP0_ACLKR, 0, 347 _AM33XX_MUXENTRY(MCASP0_ACLKR, 0,
348 "mcasp0_aclkr", NULL, "mcasp0_axr2", "mcasp1_aclkx", 348 "mcasp0_aclkr", NULL, "mcasp0_axr2", "mcasp1_aclkx",
349 "mmc0_sdwp", NULL, NULL, NULL), 349 "mmc0_sdwp", NULL, NULL, NULL),
350 _AM33XX_MUXENTRY(MCASP0_FSR, 0, 350 _AM33XX_MUXENTRY(MCASP0_FSR, 0,
351 "mcasp0_fsr", NULL, "mcasp0_axr3", "mcasp1_fsx", 351 "mcasp0_fsr", NULL, "mcasp0_axr3", "mcasp1_fsx",
352 NULL, "pr1_pru0_pru_r30_5", NULL, NULL), 352 NULL, "pr1_pru0_pru_r30_5", NULL, NULL),
353 _AM33XX_MUXENTRY(MCASP0_AXR1, 0, 353 _AM33XX_MUXENTRY(MCASP0_AXR1, 0,
354 "mcasp0_axr1", NULL, NULL, "mcasp1_axr0", 354 "mcasp0_axr1", NULL, NULL, "mcasp1_axr0",
355 NULL, NULL, NULL, NULL), 355 NULL, NULL, NULL, NULL),
356 _AM33XX_MUXENTRY(MCASP0_AHCLKX, 0, 356 _AM33XX_MUXENTRY(MCASP0_AHCLKX, 0,
357 "mcasp0_ahclkx", "mcasp0_axr3", NULL, "mcasp1_axr1", 357 "mcasp0_ahclkx", "mcasp0_axr3", NULL, "mcasp1_axr1",
358 NULL, NULL, NULL, "gpio3_21"), 358 NULL, NULL, NULL, "gpio3_21"),
359 _AM33XX_MUXENTRY(XDMA_EVENT_INTR0, 0, 359 _AM33XX_MUXENTRY(XDMA_EVENT_INTR0, 0,
360 "xdma_event_intr0", NULL, NULL, NULL, 360 "xdma_event_intr0", NULL, NULL, NULL,
361 "spi1_cs1", NULL, NULL, NULL), 361 "spi1_cs1", NULL, NULL, NULL),
362 _AM33XX_MUXENTRY(XDMA_EVENT_INTR1, 0, 362 _AM33XX_MUXENTRY(XDMA_EVENT_INTR1, 0,
363 "xdma_event_intr1", NULL, NULL, "clkout2", 363 "xdma_event_intr1", NULL, NULL, "clkout2",
364 NULL, NULL, NULL, NULL), 364 NULL, NULL, NULL, NULL),
365 _AM33XX_MUXENTRY(WARMRSTN, 0, 365 _AM33XX_MUXENTRY(WARMRSTN, 0,
366 NULL, NULL, NULL, NULL, 366 NULL, NULL, NULL, NULL,
367 NULL, NULL, NULL, NULL), 367 NULL, NULL, NULL, NULL),
368 _AM33XX_MUXENTRY(PWRONRSTN, 0, 368 _AM33XX_MUXENTRY(PWRONRSTN, 0,
369 NULL, NULL, NULL, NULL, 369 NULL, NULL, NULL, NULL,
370 NULL, NULL, NULL, NULL), 370 NULL, NULL, NULL, NULL),
371 _AM33XX_MUXENTRY(NMIN, 0, 371 _AM33XX_MUXENTRY(NMIN, 0,
372 NULL, NULL, NULL, NULL, 372 NULL, NULL, NULL, NULL,
373 NULL, NULL, NULL, NULL), 373 NULL, NULL, NULL, NULL),
374 _AM33XX_MUXENTRY(XTALIN, 0, 374 _AM33XX_MUXENTRY(XTALIN, 0,
375 NULL, NULL, NULL, NULL, 375 NULL, NULL, NULL, NULL,
376 NULL, NULL, NULL, NULL), 376 NULL, NULL, NULL, NULL),
377 _AM33XX_MUXENTRY(XTALOUT, 0, 377 _AM33XX_MUXENTRY(XTALOUT, 0,
378 NULL, NULL, NULL, NULL, 378 NULL, NULL, NULL, NULL,
379 NULL, NULL, NULL, NULL), 379 NULL, NULL, NULL, NULL),
380 _AM33XX_MUXENTRY(TMS, 0, 380 _AM33XX_MUXENTRY(TMS, 0,
381 NULL, NULL, NULL, NULL, 381 NULL, NULL, NULL, NULL,
382 NULL, NULL, NULL, NULL), 382 NULL, NULL, NULL, NULL),
383 _AM33XX_MUXENTRY(TDI, 0, 383 _AM33XX_MUXENTRY(TDI, 0,
384 NULL, NULL, NULL, NULL, 384 NULL, NULL, NULL, NULL,
385 NULL, NULL, NULL, NULL), 385 NULL, NULL, NULL, NULL),
386 _AM33XX_MUXENTRY(TDO, 0, 386 _AM33XX_MUXENTRY(TDO, 0,
387 NULL, NULL, NULL, NULL, 387 NULL, NULL, NULL, NULL,
388 NULL, NULL, NULL, NULL), 388 NULL, NULL, NULL, NULL),
389 _AM33XX_MUXENTRY(TCK, 0, 389 _AM33XX_MUXENTRY(TCK, 0,
390 NULL, NULL, NULL, NULL, 390 NULL, NULL, NULL, NULL,
391 NULL, NULL, NULL, NULL), 391 NULL, NULL, NULL, NULL),
392 _AM33XX_MUXENTRY(TRSTN, 0, 392 _AM33XX_MUXENTRY(TRSTN, 0,
393 NULL, NULL, NULL, NULL, 393 NULL, NULL, NULL, NULL,
394 NULL, NULL, NULL, NULL), 394 NULL, NULL, NULL, NULL),
395 _AM33XX_MUXENTRY(EMU0, 0, 395 _AM33XX_MUXENTRY(EMU0, 0,
396 NULL, NULL, NULL, NULL, 396 NULL, NULL, NULL, NULL,
397 NULL, NULL, NULL, NULL), 397 NULL, NULL, NULL, NULL),
398 _AM33XX_MUXENTRY(EMU1, 0, 398 _AM33XX_MUXENTRY(EMU1, 0,
399 NULL, NULL, NULL, NULL, 399 NULL, NULL, NULL, NULL,
400 NULL, NULL, NULL, NULL), 400 NULL, NULL, NULL, NULL),
401 _AM33XX_MUXENTRY(RTC_XTALIN, 0, 401 _AM33XX_MUXENTRY(RTC_XTALIN, 0,
402 NULL, NULL, NULL, NULL, 402 NULL, NULL, NULL, NULL,
403 NULL, NULL, NULL, NULL), 403 NULL, NULL, NULL, NULL),
404 _AM33XX_MUXENTRY(RTC_XTALOUT, 0, 404 _AM33XX_MUXENTRY(RTC_XTALOUT, 0,
405 NULL, NULL, NULL, NULL, 405 NULL, NULL, NULL, NULL,
406 NULL, NULL, NULL, NULL), 406 NULL, NULL, NULL, NULL),
407 _AM33XX_MUXENTRY(RTC_PWRONRSTN, 0, 407 _AM33XX_MUXENTRY(RTC_PWRONRSTN, 0,
408 NULL, NULL, NULL, NULL, 408 NULL, NULL, NULL, NULL,
409 NULL, NULL, NULL, NULL), 409 NULL, NULL, NULL, NULL),
410 _AM33XX_MUXENTRY(PMIC_POWER_EN, 0, 410 _AM33XX_MUXENTRY(PMIC_POWER_EN, 0,
411 NULL, NULL, NULL, NULL, 411 NULL, NULL, NULL, NULL,
412 NULL, NULL, NULL, NULL), 412 NULL, NULL, NULL, NULL),
413 _AM33XX_MUXENTRY(EXT_WAKEUP, 0, 413 _AM33XX_MUXENTRY(EXT_WAKEUP, 0,
414 NULL, NULL, NULL, NULL, 414 NULL, NULL, NULL, NULL,
415 NULL, NULL, NULL, NULL), 415 NULL, NULL, NULL, NULL),
416 _AM33XX_MUXENTRY(USB0_DRVVBUS, 0, 416 _AM33XX_MUXENTRY(USB0_DRVVBUS, 0,
417 "usb0_drvvbus", NULL, NULL, NULL, 417 "usb0_drvvbus", NULL, NULL, NULL,
418 NULL, NULL, NULL, NULL), 418 NULL, NULL, NULL, NULL),
419 _AM33XX_MUXENTRY(USB1_DRVVBUS, 0, 419 _AM33XX_MUXENTRY(USB1_DRVVBUS, 0,
420 "usb1_drvvbus", NULL, NULL, NULL, 420 "usb1_drvvbus", NULL, NULL, NULL,
421 NULL, NULL, NULL, NULL), 421 NULL, NULL, NULL, NULL),
422 _AM33XX_MUXENTRY(DDR_RESETN, 0, 422 _AM33XX_MUXENTRY(DDR_RESETN, 0,
423 NULL, NULL, NULL, NULL, 423 NULL, NULL, NULL, NULL,
424 NULL, NULL, NULL, NULL), 424 NULL, NULL, NULL, NULL),
425 _AM33XX_MUXENTRY(DDR_CSN0, 0, 425 _AM33XX_MUXENTRY(DDR_CSN0, 0,
426 NULL, NULL, NULL, NULL, 426 NULL, NULL, NULL, NULL,
427 NULL, NULL, NULL, NULL), 427 NULL, NULL, NULL, NULL),
428 _AM33XX_MUXENTRY(DDR_CKE, 0, 428 _AM33XX_MUXENTRY(DDR_CKE, 0,
429 NULL, NULL, NULL, NULL, 429 NULL, NULL, NULL, NULL,
430 NULL, NULL, NULL, NULL), 430 NULL, NULL, NULL, NULL),
431 _AM33XX_MUXENTRY(DDR_CK, 0, 431 _AM33XX_MUXENTRY(DDR_CK, 0,
432 NULL, NULL, NULL, NULL, 432 NULL, NULL, NULL, NULL,
433 NULL, NULL, NULL, NULL), 433 NULL, NULL, NULL, NULL),
434 _AM33XX_MUXENTRY(DDR_CKN, 0, 434 _AM33XX_MUXENTRY(DDR_CKN, 0,
435 NULL, NULL, NULL, NULL, 435 NULL, NULL, NULL, NULL,
436 NULL, NULL, NULL, NULL), 436 NULL, NULL, NULL, NULL),
437 _AM33XX_MUXENTRY(DDR_CASN, 0, 437 _AM33XX_MUXENTRY(DDR_CASN, 0,
438 NULL, NULL, NULL, NULL, 438 NULL, NULL, NULL, NULL,
439 NULL, NULL, NULL, NULL), 439 NULL, NULL, NULL, NULL),
440 _AM33XX_MUXENTRY(DDR_RASN, 0, 440 _AM33XX_MUXENTRY(DDR_RASN, 0,
441 NULL, NULL, NULL, NULL, 441 NULL, NULL, NULL, NULL,
442 NULL, NULL, NULL, NULL), 442 NULL, NULL, NULL, NULL),
443 _AM33XX_MUXENTRY(DDR_WEN, 0, 443 _AM33XX_MUXENTRY(DDR_WEN, 0,
444 NULL, NULL, NULL, NULL, 444 NULL, NULL, NULL, NULL,
445 NULL, NULL, NULL, NULL), 445 NULL, NULL, NULL, NULL),
446 _AM33XX_MUXENTRY(DDR_BA0, 0, 446 _AM33XX_MUXENTRY(DDR_BA0, 0,
447 NULL, NULL, NULL, NULL, 447 NULL, NULL, NULL, NULL,
448 NULL, NULL, NULL, NULL), 448 NULL, NULL, NULL, NULL),
449 _AM33XX_MUXENTRY(DDR_BA1, 0, 449 _AM33XX_MUXENTRY(DDR_BA1, 0,
450 NULL, NULL, NULL, NULL, 450 NULL, NULL, NULL, NULL,
451 NULL, NULL, NULL, NULL), 451 NULL, NULL, NULL, NULL),
452 _AM33XX_MUXENTRY(DDR_BA2, 0, 452 _AM33XX_MUXENTRY(DDR_BA2, 0,
453 NULL, NULL, NULL, NULL, 453 NULL, NULL, NULL, NULL,
454 NULL, NULL, NULL, NULL), 454 NULL, NULL, NULL, NULL),
455 _AM33XX_MUXENTRY(DDR_A0, 0, 455 _AM33XX_MUXENTRY(DDR_A0, 0,
456 NULL, NULL, NULL, NULL, 456 NULL, NULL, NULL, NULL,
457 NULL, NULL, NULL, NULL), 457 NULL, NULL, NULL, NULL),
458 _AM33XX_MUXENTRY(DDR_A1, 0, 458 _AM33XX_MUXENTRY(DDR_A1, 0,
459 NULL, NULL, NULL, NULL, 459 NULL, NULL, NULL, NULL,
460 NULL, NULL, NULL, NULL), 460 NULL, NULL, NULL, NULL),
461 _AM33XX_MUXENTRY(DDR_A2, 0, 461 _AM33XX_MUXENTRY(DDR_A2, 0,
462 NULL, NULL, NULL, NULL, 462 NULL, NULL, NULL, NULL,
463 NULL, NULL, NULL, NULL), 463 NULL, NULL, NULL, NULL),
464 _AM33XX_MUXENTRY(DDR_A3, 0, 464 _AM33XX_MUXENTRY(DDR_A3, 0,
465 NULL, NULL, NULL, NULL, 465 NULL, NULL, NULL, NULL,
466 NULL, NULL, NULL, NULL), 466 NULL, NULL, NULL, NULL),
467 _AM33XX_MUXENTRY(DDR_A4, 0, 467 _AM33XX_MUXENTRY(DDR_A4, 0,
468 NULL, NULL, NULL, NULL, 468 NULL, NULL, NULL, NULL,
469 NULL, NULL, NULL, NULL), 469 NULL, NULL, NULL, NULL),
470 _AM33XX_MUXENTRY(DDR_A5, 0, 470 _AM33XX_MUXENTRY(DDR_A5, 0,
471 NULL, NULL, NULL, NULL, 471 NULL, NULL, NULL, NULL,
472 NULL, NULL, NULL, NULL), 472 NULL, NULL, NULL, NULL),
473 _AM33XX_MUXENTRY(DDR_A6, 0, 473 _AM33XX_MUXENTRY(DDR_A6, 0,
474 NULL, NULL, NULL, NULL, 474 NULL, NULL, NULL, NULL,
475 NULL, NULL, NULL, NULL), 475 NULL, NULL, NULL, NULL),
476 _AM33XX_MUXENTRY(DDR_A7, 0, 476 _AM33XX_MUXENTRY(DDR_A7, 0,
477 NULL, NULL, NULL, NULL, 477 NULL, NULL, NULL, NULL,
478 NULL, NULL, NULL, NULL), 478 NULL, NULL, NULL, NULL),
479 _AM33XX_MUXENTRY(DDR_A8, 0, 479 _AM33XX_MUXENTRY(DDR_A8, 0,
480 NULL, NULL, NULL, NULL, 480 NULL, NULL, NULL, NULL,
481 NULL, NULL, NULL, NULL), 481 NULL, NULL, NULL, NULL),
482 _AM33XX_MUXENTRY(DDR_A9, 0, 482 _AM33XX_MUXENTRY(DDR_A9, 0,
483 NULL, NULL, NULL, NULL, 483 NULL, NULL, NULL, NULL,
484 NULL, NULL, NULL, NULL), 484 NULL, NULL, NULL, NULL),
485 _AM33XX_MUXENTRY(DDR_A10, 0, 485 _AM33XX_MUXENTRY(DDR_A10, 0,
486 NULL, NULL, NULL, NULL, 486 NULL, NULL, NULL, NULL,
487 NULL, NULL, NULL, NULL), 487 NULL, NULL, NULL, NULL),
488 _AM33XX_MUXENTRY(DDR_A11, 0, 488 _AM33XX_MUXENTRY(DDR_A11, 0,
489 NULL, NULL, NULL, NULL, 489 NULL, NULL, NULL, NULL,
490 NULL, NULL, NULL, NULL), 490 NULL, NULL, NULL, NULL),
491 _AM33XX_MUXENTRY(DDR_A12, 0, 491 _AM33XX_MUXENTRY(DDR_A12, 0,
492 NULL, NULL, NULL, NULL, 492 NULL, NULL, NULL, NULL,
493 NULL, NULL, NULL, NULL), 493 NULL, NULL, NULL, NULL),
494 _AM33XX_MUXENTRY(DDR_A13, 0, 494 _AM33XX_MUXENTRY(DDR_A13, 0,
495 NULL, NULL, NULL, NULL, 495 NULL, NULL, NULL, NULL,
496 NULL, NULL, NULL, NULL), 496 NULL, NULL, NULL, NULL),
497 _AM33XX_MUXENTRY(DDR_A14, 0, 497 _AM33XX_MUXENTRY(DDR_A14, 0,
498 NULL, NULL, NULL, NULL, 498 NULL, NULL, NULL, NULL,
499 NULL, NULL, NULL, NULL), 499 NULL, NULL, NULL, NULL),
500 _AM33XX_MUXENTRY(DDR_A15, 0, 500 _AM33XX_MUXENTRY(DDR_A15, 0,
501 NULL, NULL, NULL, NULL, 501 NULL, NULL, NULL, NULL,
502 NULL, NULL, NULL, NULL), 502 NULL, NULL, NULL, NULL),
503 _AM33XX_MUXENTRY(DDR_ODT, 0, 503 _AM33XX_MUXENTRY(DDR_ODT, 0,
504 NULL, NULL, NULL, NULL, 504 NULL, NULL, NULL, NULL,
505 NULL, NULL, NULL, NULL), 505 NULL, NULL, NULL, NULL),
506 _AM33XX_MUXENTRY(DDR_D0, 0, 506 _AM33XX_MUXENTRY(DDR_D0, 0,
507 NULL, NULL, NULL, NULL, 507 NULL, NULL, NULL, NULL,
508 NULL, NULL, NULL, NULL), 508 NULL, NULL, NULL, NULL),
509 _AM33XX_MUXENTRY(DDR_D1, 0, 509 _AM33XX_MUXENTRY(DDR_D1, 0,
510 NULL, NULL, NULL, NULL, 510 NULL, NULL, NULL, NULL,
511 NULL, NULL, NULL, NULL), 511 NULL, NULL, NULL, NULL),
512 _AM33XX_MUXENTRY(DDR_D2, 0, 512 _AM33XX_MUXENTRY(DDR_D2, 0,
513 NULL, NULL, NULL, NULL, 513 NULL, NULL, NULL, NULL,
514 NULL, NULL, NULL, NULL), 514 NULL, NULL, NULL, NULL),
515 _AM33XX_MUXENTRY(DDR_D3, 0, 515 _AM33XX_MUXENTRY(DDR_D3, 0,
516 NULL, NULL, NULL, NULL, 516 NULL, NULL, NULL, NULL,
517 NULL, NULL, NULL, NULL), 517 NULL, NULL, NULL, NULL),
518 _AM33XX_MUXENTRY(DDR_D4, 0, 518 _AM33XX_MUXENTRY(DDR_D4, 0,
519 NULL, NULL, NULL, NULL, 519 NULL, NULL, NULL, NULL,
520 NULL, NULL, NULL, NULL), 520 NULL, NULL, NULL, NULL),
521 _AM33XX_MUXENTRY(DDR_D5, 0, 521 _AM33XX_MUXENTRY(DDR_D5, 0,
522 NULL, NULL, NULL, NULL, 522 NULL, NULL, NULL, NULL,
523 NULL, NULL, NULL, NULL), 523 NULL, NULL, NULL, NULL),
524 _AM33XX_MUXENTRY(DDR_D6, 0, 524 _AM33XX_MUXENTRY(DDR_D6, 0,
525 NULL, NULL, NULL, NULL, 525 NULL, NULL, NULL, NULL,
526 NULL, NULL, NULL, NULL), 526 NULL, NULL, NULL, NULL),
527 _AM33XX_MUXENTRY(DDR_D7, 0, 527 _AM33XX_MUXENTRY(DDR_D7, 0,
528 NULL, NULL, NULL, NULL, 528 NULL, NULL, NULL, NULL,
529 NULL, NULL, NULL, NULL), 529 NULL, NULL, NULL, NULL),
530 _AM33XX_MUXENTRY(DDR_D8, 0, 530 _AM33XX_MUXENTRY(DDR_D8, 0,
531 NULL, NULL, NULL, NULL, 531 NULL, NULL, NULL, NULL,
532 NULL, NULL, NULL, NULL), 532 NULL, NULL, NULL, NULL),
533 _AM33XX_MUXENTRY(DDR_D9, 0, 533 _AM33XX_MUXENTRY(DDR_D9, 0,
534 NULL, NULL, NULL, NULL, 534 NULL, NULL, NULL, NULL,
535 NULL, NULL, NULL, NULL), 535 NULL, NULL, NULL, NULL),
536 _AM33XX_MUXENTRY(DDR_D10, 0, 536 _AM33XX_MUXENTRY(DDR_D10, 0,
537 NULL, NULL, NULL, NULL, 537 NULL, NULL, NULL, NULL,
538 NULL, NULL, NULL, NULL), 538 NULL, NULL, NULL, NULL),
539 _AM33XX_MUXENTRY(DDR_D11, 0, 539 _AM33XX_MUXENTRY(DDR_D11, 0,
540 NULL, NULL, NULL, NULL, 540 NULL, NULL, NULL, NULL,
541 NULL, NULL, NULL, NULL), 541 NULL, NULL, NULL, NULL),
542 _AM33XX_MUXENTRY(DDR_D12, 0, 542 _AM33XX_MUXENTRY(DDR_D12, 0,
543 NULL, NULL, NULL, NULL, 543 NULL, NULL, NULL, NULL,
544 NULL, NULL, NULL, NULL), 544 NULL, NULL, NULL, NULL),
545 _AM33XX_MUXENTRY(DDR_D13, 0, 545 _AM33XX_MUXENTRY(DDR_D13, 0,
546 NULL, NULL, NULL, NULL, 546 NULL, NULL, NULL, NULL,
547 NULL, NULL, NULL, NULL), 547 NULL, NULL, NULL, NULL),
548 _AM33XX_MUXENTRY(DDR_D14, 0, 548 _AM33XX_MUXENTRY(DDR_D14, 0,
549 NULL, NULL, NULL, NULL, 549 NULL, NULL, NULL, NULL,
550 NULL, NULL, NULL, NULL), 550 NULL, NULL, NULL, NULL),
551 _AM33XX_MUXENTRY(DDR_D15, 0, 551 _AM33XX_MUXENTRY(DDR_D15, 0,
552 NULL, NULL, NULL, NULL, 552 NULL, NULL, NULL, NULL,
553 NULL, NULL, NULL, NULL), 553 NULL, NULL, NULL, NULL),
554 _AM33XX_MUXENTRY(DDR_DQM0, 0, 554 _AM33XX_MUXENTRY(DDR_DQM0, 0,
555 NULL, NULL, NULL, NULL, 555 NULL, NULL, NULL, NULL,
556 NULL, NULL, NULL, NULL), 556 NULL, NULL, NULL, NULL),
557 _AM33XX_MUXENTRY(DDR_DQM1, 0, 557 _AM33XX_MUXENTRY(DDR_DQM1, 0,
558 NULL, NULL, NULL, NULL, 558 NULL, NULL, NULL, NULL,
559 NULL, NULL, NULL, NULL), 559 NULL, NULL, NULL, NULL),
560 _AM33XX_MUXENTRY(DDR_DQS0, 0, 560 _AM33XX_MUXENTRY(DDR_DQS0, 0,
561 NULL, NULL, NULL, NULL, 561 NULL, NULL, NULL, NULL,
562 NULL, NULL, NULL, NULL), 562 NULL, NULL, NULL, NULL),
563 _AM33XX_MUXENTRY(DDR_DQSN0, 0, 563 _AM33XX_MUXENTRY(DDR_DQSN0, 0,
564 NULL, NULL, NULL, NULL, 564 NULL, NULL, NULL, NULL,
565 NULL, NULL, NULL, NULL), 565 NULL, NULL, NULL, NULL),
566 _AM33XX_MUXENTRY(DDR_DQS1, 0, 566 _AM33XX_MUXENTRY(DDR_DQS1, 0,
567 NULL, NULL, NULL, NULL, 567 NULL, NULL, NULL, NULL,
568 NULL, NULL, NULL, NULL), 568 NULL, NULL, NULL, NULL),
569 _AM33XX_MUXENTRY(DDR_DQSN1, 0, 569 _AM33XX_MUXENTRY(DDR_DQSN1, 0,
570 NULL, NULL, NULL, NULL, 570 NULL, NULL, NULL, NULL,
571 NULL, NULL, NULL, NULL), 571 NULL, NULL, NULL, NULL),
572 _AM33XX_MUXENTRY(DDR_VREF, 0, 572 _AM33XX_MUXENTRY(DDR_VREF, 0,
573 NULL, NULL, NULL, NULL, 573 NULL, NULL, NULL, NULL,
574 NULL, NULL, NULL, NULL), 574 NULL, NULL, NULL, NULL),
575 _AM33XX_MUXENTRY(DDR_VTP, 0, 575 _AM33XX_MUXENTRY(DDR_VTP, 0,
576 NULL, NULL, NULL, NULL, 576 NULL, NULL, NULL, NULL,
577 NULL, NULL, NULL, NULL), 577 NULL, NULL, NULL, NULL),
578 _AM33XX_MUXENTRY(AIN0, 0, 578 _AM33XX_MUXENTRY(AIN0, 0,
579 "ain0", NULL, NULL, NULL, 579 "ain0", NULL, NULL, NULL,
580 NULL, NULL, NULL, NULL), 580 NULL, NULL, NULL, NULL),
581 _AM33XX_MUXENTRY(AIN1, 0, 581 _AM33XX_MUXENTRY(AIN1, 0,
582 "ain1", NULL, NULL, NULL, 582 "ain1", NULL, NULL, NULL,
583 NULL, NULL, NULL, NULL), 583 NULL, NULL, NULL, NULL),
584 _AM33XX_MUXENTRY(AIN2, 0, 584 _AM33XX_MUXENTRY(AIN2, 0,
585 "ain2", NULL, NULL, NULL, 585 "ain2", NULL, NULL, NULL,
586 NULL, NULL, NULL, NULL), 586 NULL, NULL, NULL, NULL),
587 _AM33XX_MUXENTRY(AIN3, 0, 587 _AM33XX_MUXENTRY(AIN3, 0,
588 "ain3", NULL, NULL, NULL, 588 "ain3", NULL, NULL, NULL,
589 NULL, NULL, NULL, NULL), 589 NULL, NULL, NULL, NULL),
590 _AM33XX_MUXENTRY(VREFP, 0, 590 _AM33XX_MUXENTRY(VREFP, 0,
591 "vrefp", NULL, NULL, NULL, 591 "vrefp", NULL, NULL, NULL,
592 NULL, NULL, NULL, NULL), 592 NULL, NULL, NULL, NULL),
593 _AM33XX_MUXENTRY(VREFN, 0, 593 _AM33XX_MUXENTRY(VREFN, 0,
594 "vrefn", NULL, NULL, NULL, 594 "vrefn", NULL, NULL, NULL,
595 NULL, NULL, NULL, NULL), 595 NULL, NULL, NULL, NULL),
596 { .reg_offset = OMAP_MUX_TERMINATOR }, 596 { .reg_offset = OMAP_MUX_TERMINATOR },
597 }; 597 };
598 598
599 int __init am33xx_mux_init(struct omap_board_mux *board_subset) 599 int __init am33xx_mux_init(struct omap_board_mux *board_subset)
600 { 600 {
601 return omap_mux_init("core", 0, AM33XX_CONTROL_PADCONF_MUX_PBASE, 601 return omap_mux_init("core", 0, AM33XX_CONTROL_PADCONF_MUX_PBASE,
602 AM33XX_CONTROL_PADCONF_MUX_SIZE, am33xx_muxmodes, 602 AM33XX_CONTROL_PADCONF_MUX_SIZE, am33xx_muxmodes,
603 NULL, board_subset, NULL); 603 NULL, board_subset, NULL);
604 } 604 }
605 #else 605 #else
606 int __init am33xx_mux_init(struct omap_board_mux *board_subset) 606 int __init am33xx_mux_init(struct omap_board_mux *board_subset)
607 { 607 {
608 return 0; 608 return 0;
609 } 609 }
610 #endif 610 #endif
611 611