aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r--arch/arm/mach-omap2/Makefile3
-rw-r--r--arch/arm/mach-omap2/board-3430sdp.c2
-rw-r--r--[-rwxr-xr-x]arch/arm/mach-omap2/board-3630sdp.c2
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c26
-rw-r--r--arch/arm/mach-omap2/board-am3517evm.c2
-rw-r--r--arch/arm/mach-omap2/board-cm-t35.c2
-rw-r--r--arch/arm/mach-omap2/board-devkit8000.c2
-rw-r--r--arch/arm/mach-omap2/board-igep0020.c56
-rw-r--r--arch/arm/mach-omap2/board-n8x0.c98
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c2
-rw-r--r--arch/arm/mach-omap2/board-omap3evm.c2
-rw-r--r--arch/arm/mach-omap2/board-omap3pandora.c12
-rw-r--r--arch/arm/mach-omap2/board-omap3touchbook.c12
-rw-r--r--arch/arm/mach-omap2/board-overo.c2
-rw-r--r--[-rwxr-xr-x]arch/arm/mach-omap2/board-zoom-peripherals.c0
-rw-r--r--arch/arm/mach-omap2/board-zoom3.c2
-rw-r--r--arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c1
-rw-r--r--arch/arm/mach-omap2/clock2420_data.c1
-rw-r--r--arch/arm/mach-omap2/io.c21
-rw-r--r--arch/arm/mach-omap2/iommu2.c1
-rw-r--r--arch/arm/mach-omap2/mailbox.c12
-rw-r--r--arch/arm/mach-omap2/mcbsp.c1
-rw-r--r--arch/arm/mach-omap2/mux.c1
-rw-r--r--arch/arm/mach-omap2/omap44xx-smc.S32
-rw-r--r--arch/arm/mach-omap2/pm-debug.c1
-rw-r--r--arch/arm/mach-omap2/pm34xx.c1
-rw-r--r--arch/arm/mach-omap2/prcm.c4
-rw-r--r--arch/arm/mach-omap2/serial.c15
-rw-r--r--arch/arm/mach-omap2/usb-ehci.c6
29 files changed, 234 insertions, 88 deletions
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 2069fb33baaa..4b9fc57770db 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -22,6 +22,9 @@ obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
22# SMP support ONLY available for OMAP4 22# SMP support ONLY available for OMAP4
23obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o 23obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o
24obj-$(CONFIG_LOCAL_TIMERS) += timer-mpu.o 24obj-$(CONFIG_LOCAL_TIMERS) += timer-mpu.o
25obj-$(CONFIG_ARCH_OMAP4) += omap44xx-smc.o
26
27AFLAGS_omap44xx-smc.o :=-Wa,-march=armv7-a
25 28
26# Functions loaded to SRAM 29# Functions loaded to SRAM
27obj-$(CONFIG_ARCH_OMAP2420) += sram242x.o 30obj-$(CONFIG_ARCH_OMAP2420) += sram242x.o
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
index a101029ceb6f..5822bcf7b15f 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -648,7 +648,7 @@ static void enable_board_wakeup_source(void)
648 OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP); 648 OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP);
649} 649}
650 650
651static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 651static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
652 652
653 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 653 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
654 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 654 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c
index 4386d2b4a785..a0a2a113465c 100755..100644
--- a/arch/arm/mach-omap2/board-3630sdp.c
+++ b/arch/arm/mach-omap2/board-3630sdp.c
@@ -54,7 +54,7 @@ static void enable_board_wakeup_source(void)
54 OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP); 54 OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP);
55} 55}
56 56
57static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 57static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
58 58
59 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 59 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
60 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 60 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 180ac112e527..b88f28c5814b 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -50,33 +50,9 @@ static struct omap_board_config_kernel sdp4430_config[] __initdata = {
50}; 50};
51 51
52#ifdef CONFIG_CACHE_L2X0 52#ifdef CONFIG_CACHE_L2X0
53noinline void omap_smc1(u32 fn, u32 arg)
54{
55 register u32 r12 asm("r12") = fn;
56 register u32 r0 asm("r0") = arg;
57
58 /* This is common routine cache secure monitor API used to
59 * modify the PL310 secure registers.
60 * r0 contains the value to be modified and "r12" contains
61 * the monitor API number. It uses few CPU registers
62 * internally and hence they need be backed up including
63 * link register "lr".
64 * Explicitly save r11 and r12 the compiler generated code
65 * won't save it.
66 */
67 asm volatile(
68 "stmfd r13!, {r11,r12}\n"
69 "dsb\n"
70 "smc\n"
71 "ldmfd r13!, {r11,r12}\n"
72 : "+r" (r0), "+r" (r12)
73 :
74 : "r4", "r5", "r10", "lr", "cc");
75}
76EXPORT_SYMBOL(omap_smc1);
77
78static int __init omap_l2_cache_init(void) 53static int __init omap_l2_cache_init(void)
79{ 54{
55 extern void omap_smc1(u32 fn, u32 arg);
80 void __iomem *l2cache_base; 56 void __iomem *l2cache_base;
81 57
82 /* To avoid code running on other OMAPs in 58 /* To avoid code running on other OMAPs in
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c
index 70c18614773c..6ae880585d54 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -273,7 +273,7 @@ static void __init am3517_evm_init_irq(void)
273 omap_gpio_init(); 273 omap_gpio_init();
274} 274}
275 275
276static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = { 276static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
277 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 277 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
278 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 278 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
279 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 279 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index afa77caaff4d..2de4f79f03a0 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -612,7 +612,7 @@ static struct omap2_hsmmc_info mmc[] = {
612 {} /* Terminator */ 612 {} /* Terminator */
613}; 613};
614 614
615static struct ehci_hcd_omap_platform_data ehci_pdata = { 615static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
616 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 616 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
617 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 617 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
618 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 618 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 371019054b49..5bfc13b3176c 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -636,7 +636,7 @@ static struct omap_musb_board_data musb_board_data = {
636 .power = 100, 636 .power = 100,
637}; 637};
638 638
639static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 639static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
640 640
641 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 641 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
642 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 642 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c
index 9958987a3d0a..3c7789d45051 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -16,7 +16,6 @@
16#include <linux/clk.h> 16#include <linux/clk.h>
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/gpio.h> 18#include <linux/gpio.h>
19#include <linux/leds.h>
20#include <linux/interrupt.h> 19#include <linux/interrupt.h>
21 20
22#include <linux/regulator/machine.h> 21#include <linux/regulator/machine.h>
@@ -39,8 +38,8 @@
39#define IGEP2_SMSC911X_CS 5 38#define IGEP2_SMSC911X_CS 5
40#define IGEP2_SMSC911X_GPIO 176 39#define IGEP2_SMSC911X_GPIO 176
41#define IGEP2_GPIO_USBH_NRESET 24 40#define IGEP2_GPIO_USBH_NRESET 24
42#define IGEP2_GPIO_LED0_RED 26 41#define IGEP2_GPIO_LED0_GREEN 26
43#define IGEP2_GPIO_LED0_GREEN 27 42#define IGEP2_GPIO_LED0_RED 27
44#define IGEP2_GPIO_LED1_RED 28 43#define IGEP2_GPIO_LED1_RED 28
45#define IGEP2_GPIO_DVI_PUP 170 44#define IGEP2_GPIO_DVI_PUP 170
46#define IGEP2_GPIO_WIFI_NPD 94 45#define IGEP2_GPIO_WIFI_NPD 94
@@ -355,34 +354,50 @@ static void __init igep2_display_init(void)
355 gpio_direction_output(IGEP2_GPIO_DVI_PUP, 1)) 354 gpio_direction_output(IGEP2_GPIO_DVI_PUP, 1))
356 pr_err("IGEP v2: Could not obtain gpio GPIO_DVI_PUP\n"); 355 pr_err("IGEP v2: Could not obtain gpio GPIO_DVI_PUP\n");
357} 356}
358#ifdef CONFIG_LEDS_TRIGGERS 357
359static struct gpio_led gpio_leds[] = { 358#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
359#include <linux/leds.h>
360
361static struct gpio_led igep2_gpio_leds[] = {
360 { 362 {
361 .name = "GPIO_LED1_RED", 363 .name = "led0:red",
364 .gpio = IGEP2_GPIO_LED0_RED,
365 },
366 {
367 .name = "led0:green",
362 .default_trigger = "heartbeat", 368 .default_trigger = "heartbeat",
369 .gpio = IGEP2_GPIO_LED0_GREEN,
370 },
371 {
372 .name = "led1:red",
363 .gpio = IGEP2_GPIO_LED1_RED, 373 .gpio = IGEP2_GPIO_LED1_RED,
364 }, 374 },
365}; 375};
366 376
367static struct gpio_led_platform_data gpio_leds_info = { 377static struct gpio_led_platform_data igep2_led_pdata = {
368 .leds = gpio_leds, 378 .leds = igep2_gpio_leds,
369 .num_leds = ARRAY_SIZE(gpio_leds), 379 .num_leds = ARRAY_SIZE(igep2_gpio_leds),
370}; 380};
371 381
372static struct platform_device leds_gpio = { 382static struct platform_device igep2_led_device = {
373 .name = "leds-gpio", 383 .name = "leds-gpio",
374 .id = -1, 384 .id = -1,
375 .dev = { 385 .dev = {
376 .platform_data = &gpio_leds_info, 386 .platform_data = &igep2_led_pdata,
377 }, 387 },
378}; 388};
389
390static void __init igep2_init_led(void)
391{
392 platform_device_register(&igep2_led_device);
393}
394
395#else
396static inline void igep2_init_led(void) {}
379#endif 397#endif
380 398
381static struct platform_device *igep2_devices[] __initdata = { 399static struct platform_device *igep2_devices[] __initdata = {
382 &igep2_dss_device, 400 &igep2_dss_device,
383#ifdef CONFIG_LEDS_TRIGGERS
384 &leds_gpio,
385#endif
386}; 401};
387 402
388static void __init igep2_init_irq(void) 403static void __init igep2_init_irq(void)
@@ -442,7 +457,7 @@ static struct omap_musb_board_data musb_board_data = {
442 .power = 100, 457 .power = 100,
443}; 458};
444 459
445static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 460static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
446 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, 461 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
447 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 462 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
448 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 463 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
@@ -471,31 +486,34 @@ static void __init igep2_init(void)
471 usb_ehci_init(&ehci_pdata); 486 usb_ehci_init(&ehci_pdata);
472 487
473 igep2_flash_init(); 488 igep2_flash_init();
489 igep2_init_led();
474 igep2_display_init(); 490 igep2_display_init();
475 igep2_init_smsc911x(); 491 igep2_init_smsc911x();
476 492
477 /* GPIO userspace leds */ 493 /* GPIO userspace leds */
478 if ((gpio_request(IGEP2_GPIO_LED0_RED, "GPIO_LED0_RED") == 0) && 494#if !defined(CONFIG_LEDS_GPIO) && !defined(CONFIG_LEDS_GPIO_MODULE)
495 if ((gpio_request(IGEP2_GPIO_LED0_RED, "led0:red") == 0) &&
479 (gpio_direction_output(IGEP2_GPIO_LED0_RED, 1) == 0)) { 496 (gpio_direction_output(IGEP2_GPIO_LED0_RED, 1) == 0)) {
480 gpio_export(IGEP2_GPIO_LED0_RED, 0); 497 gpio_export(IGEP2_GPIO_LED0_RED, 0);
481 gpio_set_value(IGEP2_GPIO_LED0_RED, 0); 498 gpio_set_value(IGEP2_GPIO_LED0_RED, 0);
482 } else 499 } else
483 pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_RED\n"); 500 pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_RED\n");
484 501
485 if ((gpio_request(IGEP2_GPIO_LED0_GREEN, "GPIO_LED0_GREEN") == 0) && 502 if ((gpio_request(IGEP2_GPIO_LED0_GREEN, "led0:green") == 0) &&
486 (gpio_direction_output(IGEP2_GPIO_LED0_GREEN, 1) == 0)) { 503 (gpio_direction_output(IGEP2_GPIO_LED0_GREEN, 1) == 0)) {
487 gpio_export(IGEP2_GPIO_LED0_GREEN, 0); 504 gpio_export(IGEP2_GPIO_LED0_GREEN, 0);
488 gpio_set_value(IGEP2_GPIO_LED0_GREEN, 0); 505 gpio_set_value(IGEP2_GPIO_LED0_GREEN, 0);
489 } else 506 } else
490 pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_GREEN\n"); 507 pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_GREEN\n");
491#ifndef CONFIG_LEDS_TRIGGERS 508
492 if ((gpio_request(IGEP2_GPIO_LED1_RED, "GPIO_LED1_RED") == 0) && 509 if ((gpio_request(IGEP2_GPIO_LED1_RED, "led1:red") == 0) &&
493 (gpio_direction_output(IGEP2_GPIO_LED1_RED, 1) == 0)) { 510 (gpio_direction_output(IGEP2_GPIO_LED1_RED, 1) == 0)) {
494 gpio_export(IGEP2_GPIO_LED1_RED, 0); 511 gpio_export(IGEP2_GPIO_LED1_RED, 0);
495 gpio_set_value(IGEP2_GPIO_LED1_RED, 0); 512 gpio_set_value(IGEP2_GPIO_LED1_RED, 0);
496 } else 513 } else
497 pr_warning("IGEP v2: Could not obtain gpio GPIO_LED1_RED\n"); 514 pr_warning("IGEP v2: Could not obtain gpio GPIO_LED1_RED\n");
498#endif 515#endif
516
499 /* GPIO W-LAN + Bluetooth combo module */ 517 /* GPIO W-LAN + Bluetooth combo module */
500 if ((gpio_request(IGEP2_GPIO_WIFI_NPD, "GPIO_WIFI_NPD") == 0) && 518 if ((gpio_request(IGEP2_GPIO_WIFI_NPD, "GPIO_WIFI_NPD") == 0) &&
501 (gpio_direction_output(IGEP2_GPIO_WIFI_NPD, 1) == 0)) { 519 (gpio_direction_output(IGEP2_GPIO_WIFI_NPD, 1) == 0)) {
diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
index 4cab0522d7ce..da9bcb898991 100644
--- a/arch/arm/mach-omap2/board-n8x0.c
+++ b/arch/arm/mach-omap2/board-n8x0.c
@@ -37,6 +37,103 @@ static int slot1_cover_open;
37static int slot2_cover_open; 37static int slot2_cover_open;
38static struct device *mmc_device; 38static struct device *mmc_device;
39 39
40#define TUSB6010_ASYNC_CS 1
41#define TUSB6010_SYNC_CS 4
42#define TUSB6010_GPIO_INT 58
43#define TUSB6010_GPIO_ENABLE 0
44#define TUSB6010_DMACHAN 0x3f
45
46#if defined(CONFIG_USB_TUSB6010) || \
47 defined(CONFIG_USB_TUSB6010_MODULE)
48/*
49 * Enable or disable power to TUSB6010. When enabling, turn on 3.3 V and
50 * 1.5 V voltage regulators of PM companion chip. Companion chip will then
51 * provide then PGOOD signal to TUSB6010 which will release it from reset.
52 */
53static int tusb_set_power(int state)
54{
55 int i, retval = 0;
56
57 if (state) {
58 gpio_set_value(TUSB6010_GPIO_ENABLE, 1);
59 msleep(1);
60
61 /* Wait until TUSB6010 pulls INT pin down */
62 i = 100;
63 while (i && gpio_get_value(TUSB6010_GPIO_INT)) {
64 msleep(1);
65 i--;
66 }
67
68 if (!i) {
69 printk(KERN_ERR "tusb: powerup failed\n");
70 retval = -ENODEV;
71 }
72 } else {
73 gpio_set_value(TUSB6010_GPIO_ENABLE, 0);
74 msleep(10);
75 }
76
77 return retval;
78}
79
80static struct musb_hdrc_config musb_config = {
81 .multipoint = 1,
82 .dyn_fifo = 1,
83 .num_eps = 16,
84 .ram_bits = 12,
85};
86
87static struct musb_hdrc_platform_data tusb_data = {
88#if defined(CONFIG_USB_MUSB_OTG)
89 .mode = MUSB_OTG,
90#elif defined(CONFIG_USB_MUSB_PERIPHERAL)
91 .mode = MUSB_PERIPHERAL,
92#else /* defined(CONFIG_USB_MUSB_HOST) */
93 .mode = MUSB_HOST,
94#endif
95 .set_power = tusb_set_power,
96 .min_power = 25, /* x2 = 50 mA drawn from VBUS as peripheral */
97 .power = 100, /* Max 100 mA VBUS for host mode */
98 .config = &musb_config,
99};
100
101static void __init n8x0_usb_init(void)
102{
103 int ret = 0;
104 static char announce[] __initdata = KERN_INFO "TUSB 6010\n";
105
106 /* PM companion chip power control pin */
107 ret = gpio_request(TUSB6010_GPIO_ENABLE, "TUSB6010 enable");
108 if (ret != 0) {
109 printk(KERN_ERR "Could not get TUSB power GPIO%i\n",
110 TUSB6010_GPIO_ENABLE);
111 return;
112 }
113 gpio_direction_output(TUSB6010_GPIO_ENABLE, 0);
114
115 tusb_set_power(0);
116
117 ret = tusb6010_setup_interface(&tusb_data, TUSB6010_REFCLK_19, 2,
118 TUSB6010_ASYNC_CS, TUSB6010_SYNC_CS,
119 TUSB6010_GPIO_INT, TUSB6010_DMACHAN);
120 if (ret != 0)
121 goto err;
122
123 printk(announce);
124
125 return;
126
127err:
128 gpio_free(TUSB6010_GPIO_ENABLE);
129}
130#else
131
132static void __init n8x0_usb_init(void) {}
133
134#endif /*CONFIG_USB_TUSB6010 */
135
136
40static struct omap2_mcspi_device_config p54spi_mcspi_config = { 137static struct omap2_mcspi_device_config p54spi_mcspi_config = {
41 .turbo_mode = 0, 138 .turbo_mode = 0,
42 .single_channel = 1, 139 .single_channel = 1,
@@ -562,6 +659,7 @@ static void __init n8x0_init_machine(void)
562 n8x0_menelaus_init(); 659 n8x0_menelaus_init();
563 n8x0_onenand_init(); 660 n8x0_onenand_init();
564 n8x0_mmc_init(); 661 n8x0_mmc_init();
662 n8x0_usb_init();
565} 663}
566 664
567MACHINE_START(NOKIA_N800, "Nokia N800") 665MACHINE_START(NOKIA_N800, "Nokia N800")
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 6eb77e1f7c82..962d377970e9 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -410,7 +410,7 @@ static void __init omap3beagle_flash_init(void)
410 } 410 }
411} 411}
412 412
413static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 413static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
414 414
415 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 415 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
416 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 416 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index d6bc88c426b5..017bb2f4f7d2 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -635,7 +635,7 @@ static struct platform_device *omap3_evm_devices[] __initdata = {
635 &omap3_evm_dss_device, 635 &omap3_evm_dss_device,
636}; 636};
637 637
638static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 638static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
639 639
640 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, 640 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
641 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 641 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
index 4827f4658df3..395d049bf010 100644
--- a/arch/arm/mach-omap2/board-omap3pandora.c
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
@@ -459,12 +459,20 @@ static struct i2c_board_info __initdata omap3pandora_i2c_boardinfo[] = {
459 }, 459 },
460}; 460};
461 461
462static struct i2c_board_info __initdata omap3pandora_i2c3_boardinfo[] = {
463 {
464 I2C_BOARD_INFO("bq27500", 0x55),
465 .flags = I2C_CLIENT_WAKE,
466 },
467};
468
462static int __init omap3pandora_i2c_init(void) 469static int __init omap3pandora_i2c_init(void)
463{ 470{
464 omap_register_i2c_bus(1, 2600, omap3pandora_i2c_boardinfo, 471 omap_register_i2c_bus(1, 2600, omap3pandora_i2c_boardinfo,
465 ARRAY_SIZE(omap3pandora_i2c_boardinfo)); 472 ARRAY_SIZE(omap3pandora_i2c_boardinfo));
466 /* i2c2 pins are not connected */ 473 /* i2c2 pins are not connected */
467 omap_register_i2c_bus(3, 100, NULL, 0); 474 omap_register_i2c_bus(3, 100, omap3pandora_i2c3_boardinfo,
475 ARRAY_SIZE(omap3pandora_i2c3_boardinfo));
468 return 0; 476 return 0;
469} 477}
470 478
@@ -537,7 +545,7 @@ static struct platform_device *omap3pandora_devices[] __initdata = {
537 &pandora_dss_device, 545 &pandora_dss_device,
538}; 546};
539 547
540static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 548static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
541 549
542 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 550 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
543 .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN, 551 .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c
index 3943d0f8322c..2504d41f923e 100644
--- a/arch/arm/mach-omap2/board-omap3touchbook.c
+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
@@ -493,7 +493,7 @@ static void __init omap3touchbook_flash_init(void)
493 } 493 }
494} 494}
495 495
496static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 496static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
497 497
498 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 498 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
499 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 499 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
@@ -518,14 +518,14 @@ static void omap3_touchbook_poweroff(void)
518 gpio_direction_output(TB_KILL_POWER_GPIO, 0); 518 gpio_direction_output(TB_KILL_POWER_GPIO, 0);
519} 519}
520 520
521static void __init early_touchbook_revision(char **p) 521static int __init early_touchbook_revision(char *p)
522{ 522{
523 if (!*p) 523 if (!p)
524 return; 524 return 0;
525 525
526 strict_strtoul(*p, 10, &touchbook_revision); 526 return strict_strtoul(p, 10, &touchbook_revision);
527} 527}
528__early_param("tbr=", early_touchbook_revision); 528early_param("tbr", early_touchbook_revision);
529 529
530static struct omap_musb_board_data musb_board_data = { 530static struct omap_musb_board_data musb_board_data = {
531 .interface_type = MUSB_INTERFACE_ULPI, 531 .interface_type = MUSB_INTERFACE_ULPI,
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
index 50872a42bec7..8848c7c5ce48 100644
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -394,7 +394,7 @@ static struct platform_device *overo_devices[] __initdata = {
394 &overo_lcd_device, 394 &overo_lcd_device,
395}; 395};
396 396
397static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 397static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
398 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, 398 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
399 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 399 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
400 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 400 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c
index ca95d8d64136..ca95d8d64136 100755..100644
--- a/arch/arm/mach-omap2/board-zoom-peripherals.c
+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
diff --git a/arch/arm/mach-omap2/board-zoom3.c b/arch/arm/mach-omap2/board-zoom3.c
index d3e3cd5170d1..cd3e40cf3ac1 100644
--- a/arch/arm/mach-omap2/board-zoom3.c
+++ b/arch/arm/mach-omap2/board-zoom3.c
@@ -52,7 +52,7 @@ static struct omap_board_mux board_mux[] __initdata = {
52#define board_mux NULL 52#define board_mux NULL
53#endif 53#endif
54 54
55static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 55static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
56 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, 56 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
57 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 57 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
58 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 58 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
diff --git a/arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c b/arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c
index 3b1eac4d5390..e60ca4e47bbd 100644
--- a/arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c
+++ b/arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c
@@ -31,6 +31,7 @@
31#include <linux/clk.h> 31#include <linux/clk.h>
32#include <linux/io.h> 32#include <linux/io.h>
33#include <linux/cpufreq.h> 33#include <linux/cpufreq.h>
34#include <linux/slab.h>
34 35
35#include <plat/clock.h> 36#include <plat/clock.h>
36#include <plat/sram.h> 37#include <plat/sram.h>
diff --git a/arch/arm/mach-omap2/clock2420_data.c b/arch/arm/mach-omap2/clock2420_data.c
index f12af95ead45..d932b142d0b6 100644
--- a/arch/arm/mach-omap2/clock2420_data.c
+++ b/arch/arm/mach-omap2/clock2420_data.c
@@ -1841,6 +1841,7 @@ static struct omap_clk omap2420_clks[] = {
1841 CLK(NULL, "aes_ick", &aes_ick, CK_242X), 1841 CLK(NULL, "aes_ick", &aes_ick, CK_242X),
1842 CLK(NULL, "pka_ick", &pka_ick, CK_242X), 1842 CLK(NULL, "pka_ick", &pka_ick, CK_242X),
1843 CLK(NULL, "usb_fck", &usb_fck, CK_242X), 1843 CLK(NULL, "usb_fck", &usb_fck, CK_242X),
1844 CLK("musb_hdrc", "fck", &osc_ck, CK_242X),
1844}; 1845};
1845 1846
1846/* 1847/*
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 402e8f0d0f21..87f676acf61d 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -237,7 +237,7 @@ static void __init _omap2_map_common_io(void)
237} 237}
238 238
239#ifdef CONFIG_ARCH_OMAP2420 239#ifdef CONFIG_ARCH_OMAP2420
240void __init omap242x_map_common_io() 240void __init omap242x_map_common_io(void)
241{ 241{
242 iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc)); 242 iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc));
243 iotable_init(omap242x_io_desc, ARRAY_SIZE(omap242x_io_desc)); 243 iotable_init(omap242x_io_desc, ARRAY_SIZE(omap242x_io_desc));
@@ -246,7 +246,7 @@ void __init omap242x_map_common_io()
246#endif 246#endif
247 247
248#ifdef CONFIG_ARCH_OMAP2430 248#ifdef CONFIG_ARCH_OMAP2430
249void __init omap243x_map_common_io() 249void __init omap243x_map_common_io(void)
250{ 250{
251 iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc)); 251 iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc));
252 iotable_init(omap243x_io_desc, ARRAY_SIZE(omap243x_io_desc)); 252 iotable_init(omap243x_io_desc, ARRAY_SIZE(omap243x_io_desc));
@@ -255,7 +255,7 @@ void __init omap243x_map_common_io()
255#endif 255#endif
256 256
257#ifdef CONFIG_ARCH_OMAP3 257#ifdef CONFIG_ARCH_OMAP3
258void __init omap34xx_map_common_io() 258void __init omap34xx_map_common_io(void)
259{ 259{
260 iotable_init(omap34xx_io_desc, ARRAY_SIZE(omap34xx_io_desc)); 260 iotable_init(omap34xx_io_desc, ARRAY_SIZE(omap34xx_io_desc));
261 _omap2_map_common_io(); 261 _omap2_map_common_io();
@@ -263,7 +263,7 @@ void __init omap34xx_map_common_io()
263#endif 263#endif
264 264
265#ifdef CONFIG_ARCH_OMAP4 265#ifdef CONFIG_ARCH_OMAP4
266void __init omap44xx_map_common_io() 266void __init omap44xx_map_common_io(void)
267{ 267{
268 iotable_init(omap44xx_io_desc, ARRAY_SIZE(omap44xx_io_desc)); 268 iotable_init(omap44xx_io_desc, ARRAY_SIZE(omap44xx_io_desc));
269 _omap2_map_common_io(); 269 _omap2_map_common_io();
@@ -309,7 +309,6 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
309{ 309{
310 pwrdm_init(powerdomains_omap); 310 pwrdm_init(powerdomains_omap);
311 clkdm_init(clockdomains_omap, clkdm_autodeps); 311 clkdm_init(clockdomains_omap, clkdm_autodeps);
312#ifndef CONFIG_ARCH_OMAP4 /* FIXME: Remove this once the clkdev is ready */
313 if (cpu_is_omap242x()) 312 if (cpu_is_omap242x())
314 omap2420_hwmod_init(); 313 omap2420_hwmod_init();
315 else if (cpu_is_omap243x()) 314 else if (cpu_is_omap243x())
@@ -319,7 +318,6 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
319 omap2_mux_init(); 318 omap2_mux_init();
320 /* The OPP tables have to be registered before a clk init */ 319 /* The OPP tables have to be registered before a clk init */
321 omap_pm_if_early_init(mpu_opps, dsp_opps, l3_opps); 320 omap_pm_if_early_init(mpu_opps, dsp_opps, l3_opps);
322#endif
323 321
324 if (cpu_is_omap2420()) 322 if (cpu_is_omap2420())
325 omap2420_clk_init(); 323 omap2420_clk_init();
@@ -333,11 +331,12 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
333 pr_err("Could not init clock framework - unknown CPU\n"); 331 pr_err("Could not init clock framework - unknown CPU\n");
334 332
335 omap_serial_early_init(); 333 omap_serial_early_init();
336#ifndef CONFIG_ARCH_OMAP4 334 if (cpu_is_omap24xx() || cpu_is_omap34xx()) /* FIXME: OMAP4 */
337 omap_hwmod_late_init(); 335 omap_hwmod_late_init();
338 omap_pm_if_init(); 336 omap_pm_if_init();
339 omap2_sdrc_init(sdrc_cs0, sdrc_cs1); 337 if (cpu_is_omap24xx() || cpu_is_omap34xx()) {
340 _omap2_init_reprogram_sdrc(); 338 omap2_sdrc_init(sdrc_cs0, sdrc_cs1);
341#endif 339 _omap2_init_reprogram_sdrc();
340 }
342 gpmc_init(); 341 gpmc_init();
343} 342}
diff --git a/arch/arm/mach-omap2/iommu2.c b/arch/arm/mach-omap2/iommu2.c
index 6f4b7cc8f4d1..4f63dc6859a4 100644
--- a/arch/arm/mach-omap2/iommu2.c
+++ b/arch/arm/mach-omap2/iommu2.c
@@ -15,6 +15,7 @@
15#include <linux/device.h> 15#include <linux/device.h>
16#include <linux/jiffies.h> 16#include <linux/jiffies.h>
17#include <linux/module.h> 17#include <linux/module.h>
18#include <linux/slab.h>
18#include <linux/stringify.h> 19#include <linux/stringify.h>
19 20
20#include <plat/iommu.h> 21#include <plat/iommu.h>
diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c
index 52a981cb8fdd..318f3638653c 100644
--- a/arch/arm/mach-omap2/mailbox.c
+++ b/arch/arm/mach-omap2/mailbox.c
@@ -430,19 +430,19 @@ static int __devinit omap2_mbox_probe(struct platform_device *pdev)
430 if (unlikely(!res)) { 430 if (unlikely(!res)) {
431 dev_err(&pdev->dev, "invalid irq resource\n"); 431 dev_err(&pdev->dev, "invalid irq resource\n");
432 ret = -ENODEV; 432 ret = -ENODEV;
433 goto err_iva1; 433 omap_mbox_unregister(&mbox_dsp_info);
434 goto err_dsp;
434 } 435 }
435 mbox_iva_info.irq = res->start; 436 mbox_iva_info.irq = res->start;
436 ret = omap_mbox_register(&pdev->dev, &mbox_iva_info); 437 ret = omap_mbox_register(&pdev->dev, &mbox_iva_info);
437 if (ret) 438 if (ret) {
438 goto err_iva1; 439 omap_mbox_unregister(&mbox_dsp_info);
440 goto err_dsp;
441 }
439 } 442 }
440#endif 443#endif
441 return 0; 444 return 0;
442 445
443err_iva1:
444 omap_mbox_unregister(&mbox_dsp_info);
445
446err_dsp: 446err_dsp:
447 iounmap(mbox_base); 447 iounmap(mbox_base);
448 return ret; 448 return ret;
diff --git a/arch/arm/mach-omap2/mcbsp.c b/arch/arm/mach-omap2/mcbsp.c
index be8fce395a58..2f3cad6f9402 100644
--- a/arch/arm/mach-omap2/mcbsp.c
+++ b/arch/arm/mach-omap2/mcbsp.c
@@ -16,6 +16,7 @@
16#include <linux/err.h> 16#include <linux/err.h>
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19#include <linux/slab.h>
19 20
20#include <mach/irqs.h> 21#include <mach/irqs.h>
21#include <plat/dma.h> 22#include <plat/dma.h>
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
index b4ca84ee0a95..8b3d26935a39 100644
--- a/arch/arm/mach-omap2/mux.c
+++ b/arch/arm/mach-omap2/mux.c
@@ -26,6 +26,7 @@
26#include <linux/module.h> 26#include <linux/module.h>
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/io.h> 28#include <linux/io.h>
29#include <linux/slab.h>
29#include <linux/spinlock.h> 30#include <linux/spinlock.h>
30#include <linux/list.h> 31#include <linux/list.h>
31#include <linux/ctype.h> 32#include <linux/ctype.h>
diff --git a/arch/arm/mach-omap2/omap44xx-smc.S b/arch/arm/mach-omap2/omap44xx-smc.S
new file mode 100644
index 000000000000..89bb2b141473
--- /dev/null
+++ b/arch/arm/mach-omap2/omap44xx-smc.S
@@ -0,0 +1,32 @@
1/*
2 * OMAP44xx secure APIs file.
3 *
4 * Copyright (C) 2010 Texas Instruments, Inc.
5 * Written by Santosh Shilimkar <santosh.shilimkar@ti.com>
6 *
7 *
8 * This program is free software,you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */
12
13#include <linux/linkage.h>
14
15/*
16 * This is common routine to manage secure monitor API
17 * used to modify the PL310 secure registers.
18 * 'r0' contains the value to be modified and 'r12' contains
19 * the monitor API number. It uses few CPU registers
20 * internally and hence they need be backed up including
21 * link register "lr".
22 * Function signature : void omap_smc1(u32 fn, u32 arg)
23 */
24
25ENTRY(omap_smc1)
26 stmfd sp!, {r2-r12, lr}
27 mov r12, r0
28 mov r0, r1
29 dsb
30 smc
31 ldmfd sp!, {r2-r12, pc}
32END(omap_smc1)
diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c
index c18f7f2f19bc..6cac9817c243 100644
--- a/arch/arm/mach-omap2/pm-debug.c
+++ b/arch/arm/mach-omap2/pm-debug.c
@@ -25,6 +25,7 @@
25#include <linux/err.h> 25#include <linux/err.h>
26#include <linux/io.h> 26#include <linux/io.h>
27#include <linux/module.h> 27#include <linux/module.h>
28#include <linux/slab.h>
28 29
29#include <plat/clock.h> 30#include <plat/clock.h>
30#include <plat/board.h> 31#include <plat/board.h>
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index fee2efb172e7..ea0000bc5358 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -27,6 +27,7 @@
27#include <linux/gpio.h> 27#include <linux/gpio.h>
28#include <linux/clk.h> 28#include <linux/clk.h>
29#include <linux/delay.h> 29#include <linux/delay.h>
30#include <linux/slab.h>
30 31
31#include <plat/sram.h> 32#include <plat/sram.h>
32#include <plat/clockdomain.h> 33#include <plat/clockdomain.h>
diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c
index 81872aacb801..9537f6f2352d 100644
--- a/arch/arm/mach-omap2/prcm.c
+++ b/arch/arm/mach-omap2/prcm.c
@@ -133,7 +133,7 @@ u32 omap_prcm_get_reset_sources(void)
133EXPORT_SYMBOL(omap_prcm_get_reset_sources); 133EXPORT_SYMBOL(omap_prcm_get_reset_sources);
134 134
135/* Resets clock rates and reboots the system. Only called from system.h */ 135/* Resets clock rates and reboots the system. Only called from system.h */
136void omap_prcm_arch_reset(char mode) 136void omap_prcm_arch_reset(char mode, const char *cmd)
137{ 137{
138 s16 prcm_offs = 0; 138 s16 prcm_offs = 0;
139 139
@@ -145,7 +145,7 @@ void omap_prcm_arch_reset(char mode)
145 u32 l; 145 u32 l;
146 146
147 prcm_offs = OMAP3430_GR_MOD; 147 prcm_offs = OMAP3430_GR_MOD;
148 l = ('B' << 24) | ('M' << 16) | mode; 148 l = ('B' << 24) | ('M' << 16) | (cmd ? (u8)*cmd : 0);
149 /* Reserve the first word in scratchpad for communicating 149 /* Reserve the first word in scratchpad for communicating
150 * with the boot ROM. A pointer to a data structure 150 * with the boot ROM. A pointer to a data structure
151 * describing the boot process can be stored there, 151 * describing the boot process can be stored there,
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index b79bc8926cc9..da77930480e9 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -644,16 +644,21 @@ static void serial_out_override(struct uart_port *up, int offset, int value)
644} 644}
645void __init omap_serial_early_init(void) 645void __init omap_serial_early_init(void)
646{ 646{
647 int i; 647 int i, nr_ports;
648 char name[16]; 648 char name[16];
649 649
650 if (!(cpu_is_omap3630() || cpu_is_omap4430()))
651 nr_ports = 3;
652 else
653 nr_ports = ARRAY_SIZE(omap_uart);
654
650 /* 655 /*
651 * Make sure the serial ports are muxed on at this point. 656 * Make sure the serial ports are muxed on at this point.
652 * You have to mux them off in device drivers later on 657 * You have to mux them off in device drivers later on
653 * if not needed. 658 * if not needed.
654 */ 659 */
655 660
656 for (i = 0; i < ARRAY_SIZE(omap_uart); i++) { 661 for (i = 0; i < nr_ports; i++) {
657 struct omap_uart_state *uart = &omap_uart[i]; 662 struct omap_uart_state *uart = &omap_uart[i];
658 struct platform_device *pdev = &uart->pdev; 663 struct platform_device *pdev = &uart->pdev;
659 struct device *dev = &pdev->dev; 664 struct device *dev = &pdev->dev;
@@ -669,17 +674,17 @@ void __init omap_serial_early_init(void)
669 continue; 674 continue;
670 } 675 }
671 676
672 sprintf(name, "uart%d_ick", i+1); 677 sprintf(name, "uart%d_ick", i + 1);
673 uart->ick = clk_get(NULL, name); 678 uart->ick = clk_get(NULL, name);
674 if (IS_ERR(uart->ick)) { 679 if (IS_ERR(uart->ick)) {
675 printk(KERN_ERR "Could not get uart%d_ick\n", i+1); 680 printk(KERN_ERR "Could not get uart%d_ick\n", i + 1);
676 uart->ick = NULL; 681 uart->ick = NULL;
677 } 682 }
678 683
679 sprintf(name, "uart%d_fck", i+1); 684 sprintf(name, "uart%d_fck", i+1);
680 uart->fck = clk_get(NULL, name); 685 uart->fck = clk_get(NULL, name);
681 if (IS_ERR(uart->fck)) { 686 if (IS_ERR(uart->fck)) {
682 printk(KERN_ERR "Could not get uart%d_fck\n", i+1); 687 printk(KERN_ERR "Could not get uart%d_fck\n", i + 1);
683 uart->fck = NULL; 688 uart->fck = NULL;
684 } 689 }
685 690
diff --git a/arch/arm/mach-omap2/usb-ehci.c b/arch/arm/mach-omap2/usb-ehci.c
index f1df873d59db..ee9f548d5d81 100644
--- a/arch/arm/mach-omap2/usb-ehci.c
+++ b/arch/arm/mach-omap2/usb-ehci.c
@@ -70,7 +70,7 @@ static struct platform_device ehci_device = {
70/* 70/*
71 * setup_ehci_io_mux - initialize IO pad mux for USBHOST 71 * setup_ehci_io_mux - initialize IO pad mux for USBHOST
72 */ 72 */
73static void setup_ehci_io_mux(enum ehci_hcd_omap_mode *port_mode) 73static void setup_ehci_io_mux(const enum ehci_hcd_omap_mode *port_mode)
74{ 74{
75 switch (port_mode[0]) { 75 switch (port_mode[0]) {
76 case EHCI_HCD_OMAP_MODE_PHY: 76 case EHCI_HCD_OMAP_MODE_PHY:
@@ -213,7 +213,7 @@ static void setup_ehci_io_mux(enum ehci_hcd_omap_mode *port_mode)
213 return; 213 return;
214} 214}
215 215
216void __init usb_ehci_init(struct ehci_hcd_omap_platform_data *pdata) 216void __init usb_ehci_init(const struct ehci_hcd_omap_platform_data *pdata)
217{ 217{
218 platform_device_add_data(&ehci_device, pdata, sizeof(*pdata)); 218 platform_device_add_data(&ehci_device, pdata, sizeof(*pdata));
219 219
@@ -229,7 +229,7 @@ void __init usb_ehci_init(struct ehci_hcd_omap_platform_data *pdata)
229 229
230#else 230#else
231 231
232void __init usb_ehci_init(struct ehci_hcd_omap_platform_data *pdata) 232void __init usb_ehci_init(const struct ehci_hcd_omap_platform_data *pdata)
233 233
234{ 234{
235} 235}