Blame view

arch/arm/mach-omap2/board-ldp.c 10.2 KB
492656511   Nishant Kamat   ARM: OMAP3: Add b...
1
2
3
4
5
6
7
8
9
10
11
12
  /*
   * linux/arch/arm/mach-omap2/board-ldp.c
   *
   * Copyright (C) 2008 Texas Instruments Inc.
   * Nishant Kamat <nskamat@ti.com>
   *
   * Modified from mach-omap2/board-3430sdp.c
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License version 2 as
   * published by the Free Software Foundation.
   */
2f8163baa   Russell King   ARM: gpio: conver...
13
  #include <linux/gpio.h>
492656511   Nishant Kamat   ARM: OMAP3: Add b...
14
15
16
17
18
  #include <linux/kernel.h>
  #include <linux/init.h>
  #include <linux/platform_device.h>
  #include <linux/delay.h>
  #include <linux/input.h>
6135434a5   Janusz Krzysztofik   omap: Fix omap-ke...
19
  #include <linux/input/matrix_keypad.h>
4a899d5e9   Tony Lindgren   ARM: OMAP3: Initi...
20
  #include <linux/gpio_keys.h>
492656511   Nishant Kamat   ARM: OMAP3: Add b...
21
22
23
24
  #include <linux/workqueue.h>
  #include <linux/err.h>
  #include <linux/clk.h>
  #include <linux/spi/spi.h>
4a899d5e9   Tony Lindgren   ARM: OMAP3: Initi...
25
  #include <linux/regulator/machine.h>
b07682b60   Santosh Shilimkar   mfd: Rename twl40...
26
  #include <linux/i2c/twl.h>
997302259   Russell King   [ARM] acorn,ebsa1...
27
  #include <linux/io.h>
1c0e147eb   Steve Glendinning   arm: convert omap...
28
  #include <linux/smsc911x.h>
3a63833ec   Sukumar Ghorai   omap: mmc: extend...
29
  #include <linux/mmc/host.h>
14dd72d85   Tomi Valkeinen   OMAP: LDP: Port t...
30
  #include <linux/gpio.h>
492656511   Nishant Kamat   ARM: OMAP3: Add b...
31
32
33
34
35
  
  #include <mach/hardware.h>
  #include <asm/mach-types.h>
  #include <asm/mach/arch.h>
  #include <asm/mach/map.h>
ce491cf85   Tony Lindgren   omap: headers: Mo...
36
  #include <plat/mcspi.h>
ce491cf85   Tony Lindgren   omap: headers: Mo...
37
  #include <plat/board.h>
4e65331c6   Tony Lindgren   ARM: 7159/1: OMAP...
38
  #include "common.h"
ce491cf85   Tony Lindgren   omap: headers: Mo...
39
  #include <plat/gpmc.h>
2430f9df6   Sukumar Ghorai   omap3: add suppor...
40
  #include <mach/board-zoom.h>
492656511   Nishant Kamat   ARM: OMAP3: Add b...
41

492656511   Nishant Kamat   ARM: OMAP3: Add b...
42
  #include <asm/delay.h>
ce491cf85   Tony Lindgren   omap: headers: Mo...
43
  #include <plat/usb.h>
21b42731e   Mike Rapoport   omap: convert boa...
44
  #include <plat/gpmc-smsc911x.h>
492656511   Nishant Kamat   ARM: OMAP3: Add b...
45

14dd72d85   Tomi Valkeinen   OMAP: LDP: Port t...
46
47
  #include <video/omapdss.h>
  #include <video/omap-panel-generic-dpi.h>
04aeae777   Manjunath Kondaiah G   OMAP2plus: Fix st...
48
  #include "board-flash.h"
ca5742bdb   Tony Lindgren   omap: mux: Add ne...
49
  #include "mux.h"
d02a900b5   Adrian Hunter   omap: Rename mmc-...
50
  #include "hsmmc.h"
4814ced51   Paul Walmsley   OMAP: control: mo...
51
  #include "control.h"
96974a249   Mike Rapoport   omap: consolidate...
52
  #include "common-board-devices.h"
90c62bf08   Tony Lindgren   omap mmc: Add low...
53

1c0e147eb   Steve Glendinning   arm: convert omap...
54
55
  #define LDP_SMSC911X_CS		1
  #define LDP_SMSC911X_GPIO	152
ec7558a62   Tony Lindgren   ARM: OMAP: No nee...
56
57
  #define DEBUG_BASE		0x08000000
  #define LDP_ETHR_START		DEBUG_BASE
b1c056d20   Stanley.Miao   ARM: OMAP3: LDP: ...
58

bead43757   Manjunath Kondaiah G   OMAP3: Keypad: Fi...
59
  static uint32_t board_keymap[] = {
4a899d5e9   Tony Lindgren   ARM: OMAP3: Initi...
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
  	KEY(0, 0, KEY_1),
  	KEY(1, 0, KEY_2),
  	KEY(2, 0, KEY_3),
  	KEY(0, 1, KEY_4),
  	KEY(1, 1, KEY_5),
  	KEY(2, 1, KEY_6),
  	KEY(3, 1, KEY_F5),
  	KEY(0, 2, KEY_7),
  	KEY(1, 2, KEY_8),
  	KEY(2, 2, KEY_9),
  	KEY(3, 2, KEY_F6),
  	KEY(0, 3, KEY_F7),
  	KEY(1, 3, KEY_0),
  	KEY(2, 3, KEY_F8),
  	PERSISTENT_KEY(4, 5),
  	KEY(4, 4, KEY_VOLUMEUP),
  	KEY(5, 5, KEY_VOLUMEDOWN),
  	0
  };
4f5433324   Tony Lindgren   omap: Fix matrix_...
79
80
81
82
  static struct matrix_keymap_data board_map_data = {
  	.keymap			= board_keymap,
  	.keymap_size		= ARRAY_SIZE(board_keymap),
  };
4a899d5e9   Tony Lindgren   ARM: OMAP3: Initi...
83
  static struct twl4030_keypad_data ldp_kp_twl4030_data = {
4f5433324   Tony Lindgren   omap: Fix matrix_...
84
  	.keymap_data	= &board_map_data,
4a899d5e9   Tony Lindgren   ARM: OMAP3: Initi...
85
86
  	.rows		= 6,
  	.cols		= 6,
4a899d5e9   Tony Lindgren   ARM: OMAP3: Initi...
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
  	.rep		= 1,
  };
  
  static struct gpio_keys_button ldp_gpio_keys_buttons[] = {
  	[0] = {
  		.code			= KEY_ENTER,
  		.gpio			= 101,
  		.desc			= "enter sw",
  		.active_low		= 1,
  		.debounce_interval	= 30,
  	},
  	[1] = {
  		.code			= KEY_F1,
  		.gpio			= 102,
  		.desc			= "func 1",
  		.active_low		= 1,
  		.debounce_interval	= 30,
  	},
  	[2] = {
  		.code			= KEY_F2,
  		.gpio			= 103,
  		.desc			= "func 2",
  		.active_low		= 1,
  		.debounce_interval	= 30,
  	},
  	[3] = {
  		.code			= KEY_F3,
  		.gpio			= 104,
  		.desc			= "func 3",
  		.active_low		= 1,
  		.debounce_interval 	= 30,
  	},
  	[4] = {
  		.code			= KEY_F4,
  		.gpio			= 105,
  		.desc			= "func 4",
  		.active_low		= 1,
  		.debounce_interval	= 30,
  	},
  	[5] = {
  		.code			= KEY_LEFT,
  		.gpio			= 106,
  		.desc			= "left sw",
  		.active_low		= 1,
  		.debounce_interval	= 30,
  	},
  	[6] = {
  		.code			= KEY_RIGHT,
  		.gpio			= 107,
  		.desc			= "right sw",
  		.active_low		= 1,
  		.debounce_interval	= 30,
  	},
  	[7] = {
  		.code			= KEY_UP,
  		.gpio			= 108,
  		.desc			= "up sw",
  		.active_low		= 1,
  		.debounce_interval	= 30,
  	},
  	[8] = {
  		.code			= KEY_DOWN,
  		.gpio			= 109,
  		.desc			= "down sw",
  		.active_low		= 1,
  		.debounce_interval	= 30,
  	},
  };
  
  static struct gpio_keys_platform_data ldp_gpio_keys = {
  	.buttons		= ldp_gpio_keys_buttons,
  	.nbuttons		= ARRAY_SIZE(ldp_gpio_keys_buttons),
  	.rep			= 1,
  };
  
  static struct platform_device ldp_gpio_keys_device = {
  	.name		= "gpio-keys",
  	.id		= -1,
  	.dev		= {
  		.platform_data	= &ldp_gpio_keys,
  	},
  };
21b42731e   Mike Rapoport   omap: convert boa...
169
170
171
172
173
174
  static struct omap_smsc911x_platform_data smsc911x_cfg = {
  	.cs             = LDP_SMSC911X_CS,
  	.gpio_irq       = LDP_SMSC911X_GPIO,
  	.gpio_reset     = -EINVAL,
  	.flags		= SMSC911X_USE_32BIT,
  };
1c0e147eb   Steve Glendinning   arm: convert omap...
175
  static inline void __init ldp_init_smsc911x(void)
b1c056d20   Stanley.Miao   ARM: OMAP3: LDP: ...
176
  {
21b42731e   Mike Rapoport   omap: convert boa...
177
  	gpmc_smsc911x_init(&smsc911x_cfg);
b1c056d20   Stanley.Miao   ARM: OMAP3: LDP: ...
178
  }
14dd72d85   Tomi Valkeinen   OMAP: LDP: Port t...
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
  /* LCD */
  
  static int ldp_backlight_gpio;
  static int ldp_lcd_enable_gpio;
  
  #define LCD_PANEL_RESET_GPIO		55
  #define LCD_PANEL_QVGA_GPIO		56
  
  static int ldp_panel_enable_lcd(struct omap_dss_device *dssdev)
  {
  	if (gpio_is_valid(ldp_lcd_enable_gpio))
  		gpio_direction_output(ldp_lcd_enable_gpio, 1);
  	if (gpio_is_valid(ldp_backlight_gpio))
  		gpio_direction_output(ldp_backlight_gpio, 1);
  
  	return 0;
  }
  
  static void ldp_panel_disable_lcd(struct omap_dss_device *dssdev)
  {
  	if (gpio_is_valid(ldp_lcd_enable_gpio))
  		gpio_direction_output(ldp_lcd_enable_gpio, 0);
  	if (gpio_is_valid(ldp_backlight_gpio))
  		gpio_direction_output(ldp_backlight_gpio, 0);
  }
  
  static struct panel_generic_dpi_data ldp_panel_data = {
  	.name			= "nec_nl2432dr22-11b",
  	.platform_enable	= ldp_panel_enable_lcd,
  	.platform_disable	= ldp_panel_disable_lcd,
49adf465d   Imre Deak   ARM: OMAP3: ZOOM ...
209
  };
14dd72d85   Tomi Valkeinen   OMAP: LDP: Port t...
210
211
212
213
214
215
216
217
218
219
  static struct omap_dss_device ldp_lcd_device = {
  	.name			= "lcd",
  	.driver_name		= "generic_dpi_panel",
  	.type			= OMAP_DISPLAY_TYPE_DPI,
  	.phy.dpi.data_lines	= 18,
  	.data			= &ldp_panel_data,
  };
  
  static struct omap_dss_device *ldp_dss_devices[] = {
  	&ldp_lcd_device,
49adf465d   Imre Deak   ARM: OMAP3: ZOOM ...
220
  };
14dd72d85   Tomi Valkeinen   OMAP: LDP: Port t...
221
222
223
224
  static struct omap_dss_board_info ldp_dss_data = {
  	.num_devices	= ARRAY_SIZE(ldp_dss_devices),
  	.devices	= ldp_dss_devices,
  	.default_device	= &ldp_lcd_device,
492656511   Nishant Kamat   ARM: OMAP3: Add b...
225
  };
14dd72d85   Tomi Valkeinen   OMAP: LDP: Port t...
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
  static void __init ldp_display_init(void)
  {
  	int r;
  
  	static struct gpio gpios[] __initdata = {
  		{LCD_PANEL_RESET_GPIO, GPIOF_OUT_INIT_HIGH, "LCD RESET"},
  		{LCD_PANEL_QVGA_GPIO, GPIOF_OUT_INIT_HIGH, "LCD QVGA"},
  	};
  
  	r = gpio_request_array(gpios, ARRAY_SIZE(gpios));
  	if (r) {
  		pr_err("Cannot request LCD GPIOs, error %d
  ", r);
  		return;
  	}
  
  	omap_display_init(&ldp_dss_data);
  }
14dd72d85   Tomi Valkeinen   OMAP: LDP: Port t...
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
  static int ldp_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio)
  {
  	int r;
  
  	struct gpio gpios[] = {
  		{gpio + 7 , GPIOF_OUT_INIT_LOW, "LCD ENABLE"},
  		{gpio + 15, GPIOF_OUT_INIT_LOW, "LCD BACKLIGHT"},
  	};
  
  	r = gpio_request_array(gpios, ARRAY_SIZE(gpios));
  	if (r) {
  		pr_err("Cannot request LCD GPIOs, error %d
  ", r);
  		ldp_backlight_gpio = -EINVAL;
  		ldp_lcd_enable_gpio = -EINVAL;
  		return r;
  	}
  
  	ldp_backlight_gpio = gpio + 15;
  	ldp_lcd_enable_gpio = gpio + 7;
  
  	return 0;
  }
90c62bf08   Tony Lindgren   omap mmc: Add low...
267
268
269
270
  static struct twl4030_gpio_platform_data ldp_gpio_data = {
  	.gpio_base	= OMAP_MAX_GPIO_LINES,
  	.irq_base	= TWL4030_GPIO_IRQ_BASE,
  	.irq_end	= TWL4030_GPIO_IRQ_END,
14dd72d85   Tomi Valkeinen   OMAP: LDP: Port t...
271
  	.setup		= ldp_twl_gpio_setup,
90c62bf08   Tony Lindgren   omap mmc: Add low...
272
  };
786b01a8c   Oleg Drokin   cleanup regulator...
273
274
  static struct regulator_consumer_supply ldp_vmmc1_supply[] = {
  	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
4a899d5e9   Tony Lindgren   ARM: OMAP3: Initi...
275
276
277
278
279
280
281
282
283
284
285
286
287
  };
  
  /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */
  static struct regulator_init_data ldp_vmmc1 = {
  	.constraints = {
  		.min_uV			= 1850000,
  		.max_uV			= 3150000,
  		.valid_modes_mask	= REGULATOR_MODE_NORMAL
  					| REGULATOR_MODE_STANDBY,
  		.valid_ops_mask		= REGULATOR_CHANGE_VOLTAGE
  					| REGULATOR_CHANGE_MODE
  					| REGULATOR_CHANGE_STATUS,
  	},
786b01a8c   Oleg Drokin   cleanup regulator...
288
289
  	.num_consumer_supplies	= ARRAY_SIZE(ldp_vmmc1_supply),
  	.consumer_supplies	= ldp_vmmc1_supply,
4a899d5e9   Tony Lindgren   ARM: OMAP3: Initi...
290
  };
f463effeb   Tony Lindgren   ldp: Fix regulato...
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
  /* ads7846 on SPI */
  static struct regulator_consumer_supply ldp_vaux1_supplies[] = {
  	REGULATOR_SUPPLY("vcc", "spi1.0"),
  };
  
  /* VAUX1 */
  static struct regulator_init_data ldp_vaux1 = {
  	.constraints = {
  		.min_uV			= 3000000,
  		.max_uV			= 3000000,
  		.apply_uV		= true,
  		.valid_modes_mask	= REGULATOR_MODE_NORMAL
  					| REGULATOR_MODE_STANDBY,
  		.valid_ops_mask		= REGULATOR_CHANGE_MODE
  					| REGULATOR_CHANGE_STATUS,
  	},
  	.num_consumer_supplies		= ARRAY_SIZE(ldp_vaux1_supplies),
  	.consumer_supplies		= ldp_vaux1_supplies,
  };
14dd72d85   Tomi Valkeinen   OMAP: LDP: Port t...
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
  static struct regulator_consumer_supply ldp_vpll2_supplies[] = {
  	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
  	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
  };
  
  static struct regulator_init_data ldp_vpll2 = {
  	.constraints = {
  		.name			= "VDVI",
  		.min_uV			= 1800000,
  		.max_uV			= 1800000,
  		.apply_uV		= true,
  		.valid_modes_mask	= REGULATOR_MODE_NORMAL
  					| REGULATOR_MODE_STANDBY,
  		.valid_ops_mask		= REGULATOR_CHANGE_MODE
  					| REGULATOR_CHANGE_STATUS,
  	},
  	.num_consumer_supplies	= ARRAY_SIZE(ldp_vpll2_supplies),
  	.consumer_supplies	= ldp_vpll2_supplies,
  };
90c62bf08   Tony Lindgren   omap mmc: Add low...
329
  static struct twl4030_platform_data ldp_twldata = {
90c62bf08   Tony Lindgren   omap mmc: Add low...
330
  	/* platform_data for children goes here */
4a899d5e9   Tony Lindgren   ARM: OMAP3: Initi...
331
  	.vmmc1		= &ldp_vmmc1,
f463effeb   Tony Lindgren   ldp: Fix regulato...
332
  	.vaux1		= &ldp_vaux1,
14dd72d85   Tomi Valkeinen   OMAP: LDP: Port t...
333
  	.vpll2		= &ldp_vpll2,
90c62bf08   Tony Lindgren   omap mmc: Add low...
334
  	.gpio		= &ldp_gpio_data,
4a899d5e9   Tony Lindgren   ARM: OMAP3: Initi...
335
  	.keypad		= &ldp_kp_twl4030_data,
90c62bf08   Tony Lindgren   omap mmc: Add low...
336
  };
492656511   Nishant Kamat   ARM: OMAP3: Add b...
337
338
  static int __init omap_i2c_init(void)
  {
827ed9aef   Peter Ujfalusi   OMAP3: Move commo...
339
340
  	omap3_pmic_get_config(&ldp_twldata,
  			  TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_MADC, 0);
fbd8071c1   Mike Rapoport   omap: use common ...
341
  	omap3_pmic_init("twl4030", &ldp_twldata);
492656511   Nishant Kamat   ARM: OMAP3: Add b...
342
343
344
345
  	omap_register_i2c_bus(2, 400, NULL, 0);
  	omap_register_i2c_bus(3, 400, NULL, 0);
  	return 0;
  }
68ff04231   Adrian Hunter   omap: Rename hsmm...
346
  static struct omap2_hsmmc_info mmc[] __initdata = {
90c62bf08   Tony Lindgren   omap mmc: Add low...
347
348
  	{
  		.mmc		= 1,
3a63833ec   Sukumar Ghorai   omap: mmc: extend...
349
  		.caps		= MMC_CAP_4_BIT_DATA,
90c62bf08   Tony Lindgren   omap mmc: Add low...
350
351
352
353
354
  		.gpio_cd	= -EINVAL,
  		.gpio_wp	= -EINVAL,
  	},
  	{}	/* Terminator */
  };
49adf465d   Imre Deak   ARM: OMAP3: ZOOM ...
355
  static struct platform_device *ldp_devices[] __initdata = {
4a899d5e9   Tony Lindgren   ARM: OMAP3: Initi...
356
  	&ldp_gpio_keys_device,
49adf465d   Imre Deak   ARM: OMAP3: ZOOM ...
357
  };
ca5742bdb   Tony Lindgren   omap: mux: Add ne...
358
359
360
361
  #ifdef CONFIG_OMAP_MUX
  static struct omap_board_mux board_mux[] __initdata = {
  	{ .reg_offset = OMAP_MUX_TERMINATOR },
  };
ca5742bdb   Tony Lindgren   omap: mux: Add ne...
362
  #endif
2430f9df6   Sukumar Ghorai   omap3: add suppor...
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
  static struct mtd_partition ldp_nand_partitions[] = {
  	/* All the partition sizes are listed in terms of NAND block size */
  	{
  		.name		= "X-Loader-NAND",
  		.offset		= 0,
  		.size		= 4 * (64 * 2048),	/* 512KB, 0x80000 */
  		.mask_flags	= MTD_WRITEABLE,	/* force read-only */
  	},
  	{
  		.name		= "U-Boot-NAND",
  		.offset		= MTDPART_OFS_APPEND,	/* Offset = 0x80000 */
  		.size		= 10 * (64 * 2048),	/* 1.25MB, 0x140000 */
  		.mask_flags	= MTD_WRITEABLE,	/* force read-only */
  	},
  	{
  		.name		= "Boot Env-NAND",
  		.offset		= MTDPART_OFS_APPEND,   /* Offset = 0x1c0000 */
  		.size		= 2 * (64 * 2048),	/* 256KB, 0x40000 */
  	},
  	{
  		.name		= "Kernel-NAND",
  		.offset		= MTDPART_OFS_APPEND,	/* Offset = 0x0200000*/
  		.size		= 240 * (64 * 2048),	/* 30M, 0x1E00000 */
  	},
  	{
  		.name		= "File System - NAND",
  		.offset		= MTDPART_OFS_APPEND,	/* Offset = 0x2000000 */
  		.size		= MTDPART_SIZ_FULL,	/* 96MB, 0x6000000 */
  	},
  
  };
492656511   Nishant Kamat   ARM: OMAP3: Add b...
394
395
  static void __init omap_ldp_init(void)
  {
ca5742bdb   Tony Lindgren   omap: mux: Add ne...
396
  	omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
c2cdaffe0   Tony Lindgren   omap: Fix gpio_re...
397
  	ldp_init_smsc911x();
492656511   Nishant Kamat   ARM: OMAP3: Add b...
398
  	omap_i2c_init();
b1c056d20   Stanley.Miao   ARM: OMAP3: LDP: ...
399
  	platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices));
96974a249   Mike Rapoport   omap: consolidate...
400
  	omap_ads7846_init(1, 54, 310, NULL);
492656511   Nishant Kamat   ARM: OMAP3: Add b...
401
  	omap_serial_init();
a4ca9dbe4   Tony Lindgren   ARM: OMAP: Move o...
402
  	omap_sdrc_init(NULL, NULL);
9e18630b6   Mike Rapoport   omap: musb: intro...
403
  	usb_musb_init(NULL);
2430f9df6   Sukumar Ghorai   omap3: add suppor...
404
  	board_nand_init(ldp_nand_partitions,
d5ce2b659   Sukumar Ghorai   omap3630: nand: f...
405
  		ARRAY_SIZE(ldp_nand_partitions), ZOOM_NAND_CS, 0);
4a899d5e9   Tony Lindgren   ARM: OMAP3: Initi...
406

68ff04231   Adrian Hunter   omap: Rename hsmm...
407
  	omap2_hsmmc_init(mmc);
14dd72d85   Tomi Valkeinen   OMAP: LDP: Port t...
408
  	ldp_display_init();
492656511   Nishant Kamat   ARM: OMAP3: Add b...
409
  }
492656511   Nishant Kamat   ARM: OMAP3: Add b...
410
  MACHINE_START(OMAP_LDP, "OMAP LDP board")
5e52b435b   Nicolas Pitre   ARM: mach-omap2: ...
411
  	.atag_offset	= 0x100,
71ee7dad9   Russell King   ARM: OMAP: Conver...
412
  	.reserve	= omap_reserve,
3dc3bad6f   Russell King - ARM Linux   ARM: OMAP2: use e...
413
  	.map_io		= omap3_map_io,
8f5b5a41e   Tony Lindgren   ARM: OMAP: Introd...
414
  	.init_early	= omap3430_init_early,
741e3a89d   Tony Lindgren   omap: Use separat...
415
  	.init_irq	= omap3_init_irq,
6b2f55d78   Marc Zyngier   ARM: omap2plus: c...
416
  	.handle_irq	= omap3_intc_handle_irq,
492656511   Nishant Kamat   ARM: OMAP3: Add b...
417
  	.init_machine	= omap_ldp_init,
e74984e46   Tony Lindgren   omap: Set separat...
418
  	.timer		= &omap3_timer,
baa958834   Russell King   ARM: restart: oma...
419
  	.restart	= omap_prcm_restart,
492656511   Nishant Kamat   ARM: OMAP3: Add b...
420
  MACHINE_END