diff options
| author | Sascha Hauer <s.hauer@pengutronix.de> | 2011-02-11 02:32:18 -0500 |
|---|---|---|
| committer | Sascha Hauer <s.hauer@pengutronix.de> | 2011-02-11 02:33:14 -0500 |
| commit | f19693a17c6705e197eb24d4618060eaac1b535c (patch) | |
| tree | fc39dc23297c0e6be730cb0dfd74a34d9c0b8bfd /arch/arm/mach-omap2 | |
| parent | 23b120cdfae4f5c29da69de750d545bad719ead4 (diff) | |
| parent | 100b33c8bd8a3235fd0b7948338d6cbb3db3c63d (diff) | |
Merge commit 'v2.6.38-rc4' into imx-for-2.6.39
Conflicts:
arch/arm/mach-mxs/clock-mx28.c
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-omap2')
| -rw-r--r-- | arch/arm/mach-omap2/board-cm-t3517.c | 29 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/board-devkit8000.c | 30 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/board-omap4panda.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/board-rm680.c | 3 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/clock44xx_data.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/clockdomain.c | 30 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/clockdomains44xx_data.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/dma.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/include/mach/entry-macro.S | 14 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/io.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/mux.c | 3 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/pm24xx.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/pm34xx.c | 11 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/powerdomain2xxx_3xxx.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/serial.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/smartreflex.c | 11 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/timer-gp.c | 10 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/voltage.c | 1 |
18 files changed, 96 insertions, 68 deletions
diff --git a/arch/arm/mach-omap2/board-cm-t3517.c b/arch/arm/mach-omap2/board-cm-t3517.c index 5b0c77732dfc..8f9a64d650ee 100644 --- a/arch/arm/mach-omap2/board-cm-t3517.c +++ b/arch/arm/mach-omap2/board-cm-t3517.c | |||
| @@ -124,8 +124,9 @@ static inline void cm_t3517_init_hecc(void) {} | |||
| 124 | #if defined(CONFIG_RTC_DRV_V3020) || defined(CONFIG_RTC_DRV_V3020_MODULE) | 124 | #if defined(CONFIG_RTC_DRV_V3020) || defined(CONFIG_RTC_DRV_V3020_MODULE) |
| 125 | #define RTC_IO_GPIO (153) | 125 | #define RTC_IO_GPIO (153) |
| 126 | #define RTC_WR_GPIO (154) | 126 | #define RTC_WR_GPIO (154) |
| 127 | #define RTC_RD_GPIO (160) | 127 | #define RTC_RD_GPIO (53) |
| 128 | #define RTC_CS_GPIO (163) | 128 | #define RTC_CS_GPIO (163) |
| 129 | #define RTC_CS_EN_GPIO (160) | ||
| 129 | 130 | ||
| 130 | struct v3020_platform_data cm_t3517_v3020_pdata = { | 131 | struct v3020_platform_data cm_t3517_v3020_pdata = { |
| 131 | .use_gpio = 1, | 132 | .use_gpio = 1, |
| @@ -145,6 +146,16 @@ static struct platform_device cm_t3517_rtc_device = { | |||
| 145 | 146 | ||
| 146 | static void __init cm_t3517_init_rtc(void) | 147 | static void __init cm_t3517_init_rtc(void) |
| 147 | { | 148 | { |
| 149 | int err; | ||
| 150 | |||
| 151 | err = gpio_request(RTC_CS_EN_GPIO, "rtc cs en"); | ||
| 152 | if (err) { | ||
| 153 | pr_err("CM-T3517: rtc cs en gpio request failed: %d\n", err); | ||
| 154 | return; | ||
| 155 | } | ||
| 156 | |||
| 157 | gpio_direction_output(RTC_CS_EN_GPIO, 1); | ||
| 158 | |||
| 148 | platform_device_register(&cm_t3517_rtc_device); | 159 | platform_device_register(&cm_t3517_rtc_device); |
| 149 | } | 160 | } |
| 150 | #else | 161 | #else |
| @@ -214,12 +225,12 @@ static struct mtd_partition cm_t3517_nand_partitions[] = { | |||
| 214 | }, | 225 | }, |
| 215 | { | 226 | { |
| 216 | .name = "linux", | 227 | .name = "linux", |
| 217 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x280000 */ | 228 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x2A0000 */ |
| 218 | .size = 32 * NAND_BLOCK_SIZE, | 229 | .size = 32 * NAND_BLOCK_SIZE, |
| 219 | }, | 230 | }, |
| 220 | { | 231 | { |
| 221 | .name = "rootfs", | 232 | .name = "rootfs", |
| 222 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x680000 */ | 233 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x6A0000 */ |
| 223 | .size = MTDPART_SIZ_FULL, | 234 | .size = MTDPART_SIZ_FULL, |
| 224 | }, | 235 | }, |
| 225 | }; | 236 | }; |
| @@ -256,11 +267,19 @@ static void __init cm_t3517_init_irq(void) | |||
| 256 | static struct omap_board_mux board_mux[] __initdata = { | 267 | static struct omap_board_mux board_mux[] __initdata = { |
| 257 | /* GPIO186 - Green LED */ | 268 | /* GPIO186 - Green LED */ |
| 258 | OMAP3_MUX(SYS_CLKOUT2, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), | 269 | OMAP3_MUX(SYS_CLKOUT2, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), |
| 259 | /* RTC GPIOs: IO, WR#, RD#, CS# */ | 270 | |
| 271 | /* RTC GPIOs: */ | ||
| 272 | /* IO - GPIO153 */ | ||
| 260 | OMAP3_MUX(MCBSP4_DR, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | 273 | OMAP3_MUX(MCBSP4_DR, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), |
| 274 | /* WR# - GPIO154 */ | ||
| 261 | OMAP3_MUX(MCBSP4_DX, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | 275 | OMAP3_MUX(MCBSP4_DX, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), |
| 262 | OMAP3_MUX(MCBSP_CLKS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | 276 | /* RD# - GPIO53 */ |
| 277 | OMAP3_MUX(GPMC_NCS2, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | ||
| 278 | /* CS# - GPIO163 */ | ||
| 263 | OMAP3_MUX(UART3_CTS_RCTX, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | 279 | OMAP3_MUX(UART3_CTS_RCTX, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), |
| 280 | /* CS EN - GPIO160 */ | ||
| 281 | OMAP3_MUX(MCBSP_CLKS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | ||
| 282 | |||
| 264 | /* HSUSB1 RESET */ | 283 | /* HSUSB1 RESET */ |
| 265 | OMAP3_MUX(UART2_TX, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), | 284 | OMAP3_MUX(UART2_TX, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), |
| 266 | /* HSUSB2 RESET */ | 285 | /* HSUSB2 RESET */ |
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c index 00bb1fc5e017..9a2a31e011ce 100644 --- a/arch/arm/mach-omap2/board-devkit8000.c +++ b/arch/arm/mach-omap2/board-devkit8000.c | |||
| @@ -115,9 +115,6 @@ static struct omap2_hsmmc_info mmc[] = { | |||
| 115 | 115 | ||
| 116 | static int devkit8000_panel_enable_lcd(struct omap_dss_device *dssdev) | 116 | static int devkit8000_panel_enable_lcd(struct omap_dss_device *dssdev) |
| 117 | { | 117 | { |
| 118 | twl_i2c_write_u8(TWL4030_MODULE_GPIO, 0x80, REG_GPIODATADIR1); | ||
| 119 | twl_i2c_write_u8(TWL4030_MODULE_LED, 0x0, 0x0); | ||
| 120 | |||
| 121 | if (gpio_is_valid(dssdev->reset_gpio)) | 118 | if (gpio_is_valid(dssdev->reset_gpio)) |
| 122 | gpio_set_value_cansleep(dssdev->reset_gpio, 1); | 119 | gpio_set_value_cansleep(dssdev->reset_gpio, 1); |
| 123 | return 0; | 120 | return 0; |
| @@ -247,6 +244,8 @@ static struct gpio_led gpio_leds[]; | |||
| 247 | static int devkit8000_twl_gpio_setup(struct device *dev, | 244 | static int devkit8000_twl_gpio_setup(struct device *dev, |
| 248 | unsigned gpio, unsigned ngpio) | 245 | unsigned gpio, unsigned ngpio) |
| 249 | { | 246 | { |
| 247 | int ret; | ||
| 248 | |||
| 250 | omap_mux_init_gpio(29, OMAP_PIN_INPUT); | 249 | omap_mux_init_gpio(29, OMAP_PIN_INPUT); |
| 251 | /* gpio + 0 is "mmc0_cd" (input/IRQ) */ | 250 | /* gpio + 0 is "mmc0_cd" (input/IRQ) */ |
| 252 | mmc[0].gpio_cd = gpio + 0; | 251 | mmc[0].gpio_cd = gpio + 0; |
| @@ -255,17 +254,23 @@ static int devkit8000_twl_gpio_setup(struct device *dev, | |||
| 255 | /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ | 254 | /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ |
| 256 | gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; | 255 | gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; |
| 257 | 256 | ||
| 258 | /* gpio + 1 is "LCD_PWREN" (out, active high) */ | 257 | /* TWL4030_GPIO_MAX + 0 is "LCD_PWREN" (out, active high) */ |
| 259 | devkit8000_lcd_device.reset_gpio = gpio + 1; | 258 | devkit8000_lcd_device.reset_gpio = gpio + TWL4030_GPIO_MAX + 0; |
| 260 | gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN"); | 259 | ret = gpio_request_one(devkit8000_lcd_device.reset_gpio, |
| 261 | /* Disable until needed */ | 260 | GPIOF_DIR_OUT | GPIOF_INIT_LOW, "LCD_PWREN"); |
| 262 | gpio_direction_output(devkit8000_lcd_device.reset_gpio, 0); | 261 | if (ret < 0) { |
| 262 | devkit8000_lcd_device.reset_gpio = -EINVAL; | ||
| 263 | printk(KERN_ERR "Failed to request GPIO for LCD_PWRN\n"); | ||
| 264 | } | ||
| 263 | 265 | ||
| 264 | /* gpio + 7 is "DVI_PD" (out, active low) */ | 266 | /* gpio + 7 is "DVI_PD" (out, active low) */ |
| 265 | devkit8000_dvi_device.reset_gpio = gpio + 7; | 267 | devkit8000_dvi_device.reset_gpio = gpio + 7; |
| 266 | gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown"); | 268 | ret = gpio_request_one(devkit8000_dvi_device.reset_gpio, |
| 267 | /* Disable until needed */ | 269 | GPIOF_DIR_OUT | GPIOF_INIT_LOW, "DVI PowerDown"); |
| 268 | gpio_direction_output(devkit8000_dvi_device.reset_gpio, 0); | 270 | if (ret < 0) { |
| 271 | devkit8000_dvi_device.reset_gpio = -EINVAL; | ||
| 272 | printk(KERN_ERR "Failed to request GPIO for DVI PowerDown\n"); | ||
| 273 | } | ||
| 269 | 274 | ||
| 270 | return 0; | 275 | return 0; |
| 271 | } | 276 | } |
| @@ -275,8 +280,7 @@ static struct twl4030_gpio_platform_data devkit8000_gpio_data = { | |||
| 275 | .irq_base = TWL4030_GPIO_IRQ_BASE, | 280 | .irq_base = TWL4030_GPIO_IRQ_BASE, |
| 276 | .irq_end = TWL4030_GPIO_IRQ_END, | 281 | .irq_end = TWL4030_GPIO_IRQ_END, |
| 277 | .use_leds = true, | 282 | .use_leds = true, |
| 278 | .pullups = BIT(1), | 283 | .pulldowns = BIT(1) | BIT(2) | BIT(6) | BIT(8) | BIT(13) |
| 279 | .pulldowns = BIT(2) | BIT(6) | BIT(7) | BIT(8) | BIT(13) | ||
| 280 | | BIT(15) | BIT(16) | BIT(17), | 284 | | BIT(15) | BIT(16) | BIT(17), |
| 281 | .setup = devkit8000_twl_gpio_setup, | 285 | .setup = devkit8000_twl_gpio_setup, |
| 282 | }; | 286 | }; |
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index e001a048dc0c..e944025d5ef8 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c | |||
| @@ -409,8 +409,6 @@ static void __init omap4_panda_init(void) | |||
| 409 | platform_add_devices(panda_devices, ARRAY_SIZE(panda_devices)); | 409 | platform_add_devices(panda_devices, ARRAY_SIZE(panda_devices)); |
| 410 | omap_serial_init(); | 410 | omap_serial_init(); |
| 411 | omap4_twl6030_hsmmc_init(mmc); | 411 | omap4_twl6030_hsmmc_init(mmc); |
| 412 | /* OMAP4 Panda uses internal transceiver so register nop transceiver */ | ||
| 413 | usb_nop_xceiv_register(); | ||
| 414 | omap4_ehci_init(); | 412 | omap4_ehci_init(); |
| 415 | usb_musb_init(&musb_board_data); | 413 | usb_musb_init(&musb_board_data); |
| 416 | } | 414 | } |
diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-omap2/board-rm680.c index cb77be7ac44f..39a71bb8a308 100644 --- a/arch/arm/mach-omap2/board-rm680.c +++ b/arch/arm/mach-omap2/board-rm680.c | |||
| @@ -40,9 +40,6 @@ static struct regulator_consumer_supply rm680_vemmc_consumers[] = { | |||
| 40 | static struct regulator_init_data rm680_vemmc = { | 40 | static struct regulator_init_data rm680_vemmc = { |
| 41 | .constraints = { | 41 | .constraints = { |
| 42 | .name = "rm680_vemmc", | 42 | .name = "rm680_vemmc", |
| 43 | .min_uV = 2900000, | ||
| 44 | .max_uV = 2900000, | ||
| 45 | .apply_uV = 1, | ||
| 46 | .valid_modes_mask = REGULATOR_MODE_NORMAL | 43 | .valid_modes_mask = REGULATOR_MODE_NORMAL |
| 47 | | REGULATOR_MODE_STANDBY, | 44 | | REGULATOR_MODE_STANDBY, |
| 48 | .valid_ops_mask = REGULATOR_CHANGE_STATUS | 45 | .valid_ops_mask = REGULATOR_CHANGE_STATUS |
diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c index e8cb32fd7f13..de9ec8ddd2ae 100644 --- a/arch/arm/mach-omap2/clock44xx_data.c +++ b/arch/arm/mach-omap2/clock44xx_data.c | |||
| @@ -34,7 +34,6 @@ | |||
| 34 | #include "cm2_44xx.h" | 34 | #include "cm2_44xx.h" |
| 35 | #include "cm-regbits-44xx.h" | 35 | #include "cm-regbits-44xx.h" |
| 36 | #include "prm44xx.h" | 36 | #include "prm44xx.h" |
| 37 | #include "prm44xx.h" | ||
| 38 | #include "prm-regbits-44xx.h" | 37 | #include "prm-regbits-44xx.h" |
| 39 | #include "control.h" | 38 | #include "control.h" |
| 40 | #include "scrm44xx.h" | 39 | #include "scrm44xx.h" |
diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c index e20b98636ab4..58e42f76603f 100644 --- a/arch/arm/mach-omap2/clockdomain.c +++ b/arch/arm/mach-omap2/clockdomain.c | |||
| @@ -423,6 +423,12 @@ int clkdm_add_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2) | |||
| 423 | { | 423 | { |
| 424 | struct clkdm_dep *cd; | 424 | struct clkdm_dep *cd; |
| 425 | 425 | ||
| 426 | if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { | ||
| 427 | pr_err("clockdomain: %s/%s: %s: not yet implemented\n", | ||
| 428 | clkdm1->name, clkdm2->name, __func__); | ||
| 429 | return -EINVAL; | ||
| 430 | } | ||
| 431 | |||
| 426 | if (!clkdm1 || !clkdm2) | 432 | if (!clkdm1 || !clkdm2) |
| 427 | return -EINVAL; | 433 | return -EINVAL; |
| 428 | 434 | ||
| @@ -458,6 +464,12 @@ int clkdm_del_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2) | |||
| 458 | { | 464 | { |
| 459 | struct clkdm_dep *cd; | 465 | struct clkdm_dep *cd; |
| 460 | 466 | ||
| 467 | if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { | ||
| 468 | pr_err("clockdomain: %s/%s: %s: not yet implemented\n", | ||
| 469 | clkdm1->name, clkdm2->name, __func__); | ||
| 470 | return -EINVAL; | ||
| 471 | } | ||
| 472 | |||
| 461 | if (!clkdm1 || !clkdm2) | 473 | if (!clkdm1 || !clkdm2) |
| 462 | return -EINVAL; | 474 | return -EINVAL; |
| 463 | 475 | ||
| @@ -500,6 +512,12 @@ int clkdm_read_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2) | |||
| 500 | if (!clkdm1 || !clkdm2) | 512 | if (!clkdm1 || !clkdm2) |
| 501 | return -EINVAL; | 513 | return -EINVAL; |
| 502 | 514 | ||
| 515 | if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { | ||
| 516 | pr_err("clockdomain: %s/%s: %s: not yet implemented\n", | ||
| 517 | clkdm1->name, clkdm2->name, __func__); | ||
| 518 | return -EINVAL; | ||
| 519 | } | ||
| 520 | |||
| 503 | cd = _clkdm_deps_lookup(clkdm2, clkdm1->wkdep_srcs); | 521 | cd = _clkdm_deps_lookup(clkdm2, clkdm1->wkdep_srcs); |
| 504 | if (IS_ERR(cd)) { | 522 | if (IS_ERR(cd)) { |
| 505 | pr_debug("clockdomain: hardware cannot set/clear wake up of " | 523 | pr_debug("clockdomain: hardware cannot set/clear wake up of " |
| @@ -527,6 +545,12 @@ int clkdm_clear_all_wkdeps(struct clockdomain *clkdm) | |||
| 527 | struct clkdm_dep *cd; | 545 | struct clkdm_dep *cd; |
| 528 | u32 mask = 0; | 546 | u32 mask = 0; |
| 529 | 547 | ||
| 548 | if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { | ||
| 549 | pr_err("clockdomain: %s: %s: not yet implemented\n", | ||
| 550 | clkdm->name, __func__); | ||
| 551 | return -EINVAL; | ||
| 552 | } | ||
| 553 | |||
| 530 | if (!clkdm) | 554 | if (!clkdm) |
| 531 | return -EINVAL; | 555 | return -EINVAL; |
| 532 | 556 | ||
| @@ -830,8 +854,7 @@ void omap2_clkdm_allow_idle(struct clockdomain *clkdm) | |||
| 830 | * dependency code and data for OMAP4. | 854 | * dependency code and data for OMAP4. |
| 831 | */ | 855 | */ |
| 832 | if (cpu_is_omap44xx()) { | 856 | if (cpu_is_omap44xx()) { |
| 833 | WARN_ONCE(1, "clockdomain: OMAP4 wakeup/sleep dependency " | 857 | pr_err("clockdomain: %s: OMAP4 wakeup/sleep dependency support: not yet implemented\n", clkdm->name); |
| 834 | "support is not yet implemented\n"); | ||
| 835 | } else { | 858 | } else { |
| 836 | if (atomic_read(&clkdm->usecount) > 0) | 859 | if (atomic_read(&clkdm->usecount) > 0) |
| 837 | _clkdm_add_autodeps(clkdm); | 860 | _clkdm_add_autodeps(clkdm); |
| @@ -872,8 +895,7 @@ void omap2_clkdm_deny_idle(struct clockdomain *clkdm) | |||
| 872 | * dependency code and data for OMAP4. | 895 | * dependency code and data for OMAP4. |
| 873 | */ | 896 | */ |
| 874 | if (cpu_is_omap44xx()) { | 897 | if (cpu_is_omap44xx()) { |
| 875 | WARN_ONCE(1, "clockdomain: OMAP4 wakeup/sleep dependency " | 898 | pr_err("clockdomain: %s: OMAP4 wakeup/sleep dependency support: not yet implemented\n", clkdm->name); |
| 876 | "support is not yet implemented\n"); | ||
| 877 | } else { | 899 | } else { |
| 878 | if (atomic_read(&clkdm->usecount) > 0) | 900 | if (atomic_read(&clkdm->usecount) > 0) |
| 879 | _clkdm_del_autodeps(clkdm); | 901 | _clkdm_del_autodeps(clkdm); |
diff --git a/arch/arm/mach-omap2/clockdomains44xx_data.c b/arch/arm/mach-omap2/clockdomains44xx_data.c index 51920fc7fc52..10622c914abc 100644 --- a/arch/arm/mach-omap2/clockdomains44xx_data.c +++ b/arch/arm/mach-omap2/clockdomains44xx_data.c | |||
| @@ -30,8 +30,6 @@ | |||
| 30 | #include "cm1_44xx.h" | 30 | #include "cm1_44xx.h" |
| 31 | #include "cm2_44xx.h" | 31 | #include "cm2_44xx.h" |
| 32 | 32 | ||
| 33 | #include "cm1_44xx.h" | ||
| 34 | #include "cm2_44xx.h" | ||
| 35 | #include "cm-regbits-44xx.h" | 33 | #include "cm-regbits-44xx.h" |
| 36 | #include "prm44xx.h" | 34 | #include "prm44xx.h" |
| 37 | #include "prcm44xx.h" | 35 | #include "prcm44xx.h" |
diff --git a/arch/arm/mach-omap2/dma.c b/arch/arm/mach-omap2/dma.c index d2f15f5cfd36..34922b2d2e3f 100644 --- a/arch/arm/mach-omap2/dma.c +++ b/arch/arm/mach-omap2/dma.c | |||
| @@ -264,7 +264,7 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) | |||
| 264 | if (IS_ERR(od)) { | 264 | if (IS_ERR(od)) { |
| 265 | pr_err("%s: Cant build omap_device for %s:%s.\n", | 265 | pr_err("%s: Cant build omap_device for %s:%s.\n", |
| 266 | __func__, name, oh->name); | 266 | __func__, name, oh->name); |
| 267 | return IS_ERR(od); | 267 | return PTR_ERR(od); |
| 268 | } | 268 | } |
| 269 | 269 | ||
| 270 | mem = platform_get_resource(&od->pdev, IORESOURCE_MEM, 0); | 270 | mem = platform_get_resource(&od->pdev, IORESOURCE_MEM, 0); |
diff --git a/arch/arm/mach-omap2/include/mach/entry-macro.S b/arch/arm/mach-omap2/include/mach/entry-macro.S index befa321c4c13..81985a665cb3 100644 --- a/arch/arm/mach-omap2/include/mach/entry-macro.S +++ b/arch/arm/mach-omap2/include/mach/entry-macro.S | |||
| @@ -38,20 +38,6 @@ | |||
| 38 | */ | 38 | */ |
| 39 | 39 | ||
| 40 | #ifdef MULTI_OMAP2 | 40 | #ifdef MULTI_OMAP2 |
| 41 | |||
| 42 | /* | ||
| 43 | * We use __glue to avoid errors with multiple definitions of | ||
| 44 | * .globl omap_irq_base as it's included from entry-armv.S but not | ||
| 45 | * from entry-common.S. | ||
| 46 | */ | ||
| 47 | #ifdef __glue | ||
| 48 | .pushsection .data | ||
| 49 | .globl omap_irq_base | ||
| 50 | omap_irq_base: | ||
| 51 | .word 0 | ||
| 52 | .popsection | ||
| 53 | #endif | ||
| 54 | |||
| 55 | /* | 41 | /* |
| 56 | * Configure the interrupt base on the first interrupt. | 42 | * Configure the interrupt base on the first interrupt. |
| 57 | * See also omap_irq_base_init for setting omap_irq_base. | 43 | * See also omap_irq_base_init for setting omap_irq_base. |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index e66687b0b9de..c2032041d26f 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
| @@ -314,14 +314,13 @@ static int _set_hwmod_postsetup_state(struct omap_hwmod *oh, void *data) | |||
| 314 | return omap_hwmod_set_postsetup_state(oh, *(u8 *)data); | 314 | return omap_hwmod_set_postsetup_state(oh, *(u8 *)data); |
| 315 | } | 315 | } |
| 316 | 316 | ||
| 317 | void __iomem *omap_irq_base; | ||
| 318 | |||
| 317 | /* | 319 | /* |
| 318 | * Initialize asm_irq_base for entry-macro.S | 320 | * Initialize asm_irq_base for entry-macro.S |
| 319 | */ | 321 | */ |
| 320 | static inline void omap_irq_base_init(void) | 322 | static inline void omap_irq_base_init(void) |
| 321 | { | 323 | { |
| 322 | extern void __iomem *omap_irq_base; | ||
| 323 | |||
| 324 | #ifdef MULTI_OMAP2 | ||
| 325 | if (cpu_is_omap24xx()) | 324 | if (cpu_is_omap24xx()) |
| 326 | omap_irq_base = OMAP2_L4_IO_ADDRESS(OMAP24XX_IC_BASE); | 325 | omap_irq_base = OMAP2_L4_IO_ADDRESS(OMAP24XX_IC_BASE); |
| 327 | else if (cpu_is_omap34xx()) | 326 | else if (cpu_is_omap34xx()) |
| @@ -330,7 +329,6 @@ static inline void omap_irq_base_init(void) | |||
| 330 | omap_irq_base = OMAP2_L4_IO_ADDRESS(OMAP44XX_GIC_CPU_BASE); | 329 | omap_irq_base = OMAP2_L4_IO_ADDRESS(OMAP44XX_GIC_CPU_BASE); |
| 331 | else | 330 | else |
| 332 | pr_err("Could not initialize omap_irq_base\n"); | 331 | pr_err("Could not initialize omap_irq_base\n"); |
| 333 | #endif | ||
| 334 | } | 332 | } |
| 335 | 333 | ||
| 336 | void __init omap2_init_common_infrastructure(void) | 334 | void __init omap2_init_common_infrastructure(void) |
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index df8d2f2872c6..98148b6c36e9 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c | |||
| @@ -160,7 +160,7 @@ static int __init _omap_mux_get_by_name(struct omap_mux_partition *partition, | |||
| 160 | struct omap_mux *mux = NULL; | 160 | struct omap_mux *mux = NULL; |
| 161 | struct omap_mux_entry *e; | 161 | struct omap_mux_entry *e; |
| 162 | const char *mode_name; | 162 | const char *mode_name; |
| 163 | int found = 0, found_mode, mode0_len = 0; | 163 | int found = 0, found_mode = 0, mode0_len = 0; |
| 164 | struct list_head *muxmodes = &partition->muxmodes; | 164 | struct list_head *muxmodes = &partition->muxmodes; |
| 165 | 165 | ||
| 166 | mode_name = strchr(muxname, '.'); | 166 | mode_name = strchr(muxname, '.'); |
| @@ -1000,6 +1000,7 @@ int __init omap_mux_init(const char *name, u32 flags, | |||
| 1000 | if (!partition->base) { | 1000 | if (!partition->base) { |
| 1001 | pr_err("%s: Could not ioremap mux partition at 0x%08x\n", | 1001 | pr_err("%s: Could not ioremap mux partition at 0x%08x\n", |
| 1002 | __func__, partition->phys); | 1002 | __func__, partition->phys); |
| 1003 | kfree(partition); | ||
| 1003 | return -ENODEV; | 1004 | return -ENODEV; |
| 1004 | } | 1005 | } |
| 1005 | 1006 | ||
diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c index 9e5dc8ed51e9..97feb3ab6a69 100644 --- a/arch/arm/mach-omap2/pm24xx.c +++ b/arch/arm/mach-omap2/pm24xx.c | |||
| @@ -134,7 +134,7 @@ static void omap2_enter_full_retention(void) | |||
| 134 | 134 | ||
| 135 | /* Block console output in case it is on one of the OMAP UARTs */ | 135 | /* Block console output in case it is on one of the OMAP UARTs */ |
| 136 | if (!is_suspending()) | 136 | if (!is_suspending()) |
| 137 | if (try_acquire_console_sem()) | 137 | if (!console_trylock()) |
| 138 | goto no_sleep; | 138 | goto no_sleep; |
| 139 | 139 | ||
| 140 | omap_uart_prepare_idle(0); | 140 | omap_uart_prepare_idle(0); |
| @@ -151,7 +151,7 @@ static void omap2_enter_full_retention(void) | |||
| 151 | omap_uart_resume_idle(0); | 151 | omap_uart_resume_idle(0); |
| 152 | 152 | ||
| 153 | if (!is_suspending()) | 153 | if (!is_suspending()) |
| 154 | release_console_sem(); | 154 | console_unlock(); |
| 155 | 155 | ||
| 156 | no_sleep: | 156 | no_sleep: |
| 157 | if (omap2_pm_debug) { | 157 | if (omap2_pm_debug) { |
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 8cbbeade4b8a..2f864e4b085d 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
| @@ -168,9 +168,10 @@ static void omap3_core_restore_context(void) | |||
| 168 | * once during boot sequence, but this works as we are not using secure | 168 | * once during boot sequence, but this works as we are not using secure |
| 169 | * services. | 169 | * services. |
| 170 | */ | 170 | */ |
| 171 | static void omap3_save_secure_ram_context(u32 target_mpu_state) | 171 | static void omap3_save_secure_ram_context(void) |
| 172 | { | 172 | { |
| 173 | u32 ret; | 173 | u32 ret; |
| 174 | int mpu_next_state = pwrdm_read_next_pwrst(mpu_pwrdm); | ||
| 174 | 175 | ||
| 175 | if (omap_type() != OMAP2_DEVICE_TYPE_GP) { | 176 | if (omap_type() != OMAP2_DEVICE_TYPE_GP) { |
| 176 | /* | 177 | /* |
| @@ -181,7 +182,7 @@ static void omap3_save_secure_ram_context(u32 target_mpu_state) | |||
| 181 | pwrdm_set_next_pwrst(mpu_pwrdm, PWRDM_POWER_ON); | 182 | pwrdm_set_next_pwrst(mpu_pwrdm, PWRDM_POWER_ON); |
| 182 | ret = _omap_save_secure_sram((u32 *) | 183 | ret = _omap_save_secure_sram((u32 *) |
| 183 | __pa(omap3_secure_ram_storage)); | 184 | __pa(omap3_secure_ram_storage)); |
| 184 | pwrdm_set_next_pwrst(mpu_pwrdm, target_mpu_state); | 185 | pwrdm_set_next_pwrst(mpu_pwrdm, mpu_next_state); |
| 185 | /* Following is for error tracking, it should not happen */ | 186 | /* Following is for error tracking, it should not happen */ |
| 186 | if (ret) { | 187 | if (ret) { |
| 187 | printk(KERN_ERR "save_secure_sram() returns %08x\n", | 188 | printk(KERN_ERR "save_secure_sram() returns %08x\n", |
| @@ -398,7 +399,7 @@ void omap_sram_idle(void) | |||
| 398 | if (!is_suspending()) | 399 | if (!is_suspending()) |
| 399 | if (per_next_state < PWRDM_POWER_ON || | 400 | if (per_next_state < PWRDM_POWER_ON || |
| 400 | core_next_state < PWRDM_POWER_ON) | 401 | core_next_state < PWRDM_POWER_ON) |
| 401 | if (try_acquire_console_sem()) | 402 | if (!console_trylock()) |
| 402 | goto console_still_active; | 403 | goto console_still_active; |
| 403 | 404 | ||
| 404 | /* PER */ | 405 | /* PER */ |
| @@ -481,7 +482,7 @@ void omap_sram_idle(void) | |||
| 481 | } | 482 | } |
| 482 | 483 | ||
| 483 | if (!is_suspending()) | 484 | if (!is_suspending()) |
| 484 | release_console_sem(); | 485 | console_unlock(); |
| 485 | 486 | ||
| 486 | console_still_active: | 487 | console_still_active: |
| 487 | /* Disable IO-PAD and IO-CHAIN wakeup */ | 488 | /* Disable IO-PAD and IO-CHAIN wakeup */ |
| @@ -1094,7 +1095,7 @@ static int __init omap3_pm_init(void) | |||
| 1094 | local_fiq_disable(); | 1095 | local_fiq_disable(); |
| 1095 | 1096 | ||
| 1096 | omap_dma_global_context_save(); | 1097 | omap_dma_global_context_save(); |
| 1097 | omap3_save_secure_ram_context(PWRDM_POWER_ON); | 1098 | omap3_save_secure_ram_context(); |
| 1098 | omap_dma_global_context_restore(); | 1099 | omap_dma_global_context_restore(); |
| 1099 | 1100 | ||
| 1100 | local_irq_enable(); | 1101 | local_irq_enable(); |
diff --git a/arch/arm/mach-omap2/powerdomain2xxx_3xxx.c b/arch/arm/mach-omap2/powerdomain2xxx_3xxx.c index d5233890370c..cf600e22bf8e 100644 --- a/arch/arm/mach-omap2/powerdomain2xxx_3xxx.c +++ b/arch/arm/mach-omap2/powerdomain2xxx_3xxx.c | |||
| @@ -19,7 +19,6 @@ | |||
| 19 | #include <plat/prcm.h> | 19 | #include <plat/prcm.h> |
| 20 | 20 | ||
| 21 | #include "powerdomain.h" | 21 | #include "powerdomain.h" |
| 22 | #include "prm-regbits-34xx.h" | ||
| 23 | #include "prm.h" | 22 | #include "prm.h" |
| 24 | #include "prm-regbits-24xx.h" | 23 | #include "prm-regbits-24xx.h" |
| 25 | #include "prm-regbits-34xx.h" | 24 | #include "prm-regbits-34xx.h" |
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index 302da7403a10..32e91a9c8b6b 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c | |||
| @@ -812,7 +812,7 @@ void __init omap_serial_init_port(struct omap_board_data *bdata) | |||
| 812 | 812 | ||
| 813 | oh->dev_attr = uart; | 813 | oh->dev_attr = uart; |
| 814 | 814 | ||
| 815 | acquire_console_sem(); /* in case the earlycon is on the UART */ | 815 | console_lock(); /* in case the earlycon is on the UART */ |
| 816 | 816 | ||
| 817 | /* | 817 | /* |
| 818 | * Because of early UART probing, UART did not get idled | 818 | * Because of early UART probing, UART did not get idled |
| @@ -838,7 +838,7 @@ void __init omap_serial_init_port(struct omap_board_data *bdata) | |||
| 838 | omap_uart_block_sleep(uart); | 838 | omap_uart_block_sleep(uart); |
| 839 | uart->timeout = DEFAULT_TIMEOUT; | 839 | uart->timeout = DEFAULT_TIMEOUT; |
| 840 | 840 | ||
| 841 | release_console_sem(); | 841 | console_unlock(); |
| 842 | 842 | ||
| 843 | if ((cpu_is_omap34xx() && uart->padconf) || | 843 | if ((cpu_is_omap34xx() && uart->padconf) || |
| 844 | (uart->wk_en && uart->wk_mask)) { | 844 | (uart->wk_en && uart->wk_mask)) { |
diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c index 77ecebf3fae2..c37e823266d3 100644 --- a/arch/arm/mach-omap2/smartreflex.c +++ b/arch/arm/mach-omap2/smartreflex.c | |||
| @@ -780,8 +780,7 @@ static int omap_sr_autocomp_show(void *data, u64 *val) | |||
| 780 | struct omap_sr *sr_info = (struct omap_sr *) data; | 780 | struct omap_sr *sr_info = (struct omap_sr *) data; |
| 781 | 781 | ||
| 782 | if (!sr_info) { | 782 | if (!sr_info) { |
| 783 | pr_warning("%s: omap_sr struct for sr_%s not found\n", | 783 | pr_warning("%s: omap_sr struct not found\n", __func__); |
| 784 | __func__, sr_info->voltdm->name); | ||
| 785 | return -EINVAL; | 784 | return -EINVAL; |
| 786 | } | 785 | } |
| 787 | 786 | ||
| @@ -795,8 +794,7 @@ static int omap_sr_autocomp_store(void *data, u64 val) | |||
| 795 | struct omap_sr *sr_info = (struct omap_sr *) data; | 794 | struct omap_sr *sr_info = (struct omap_sr *) data; |
| 796 | 795 | ||
| 797 | if (!sr_info) { | 796 | if (!sr_info) { |
| 798 | pr_warning("%s: omap_sr struct for sr_%s not found\n", | 797 | pr_warning("%s: omap_sr struct not found\n", __func__); |
| 799 | __func__, sr_info->voltdm->name); | ||
| 800 | return -EINVAL; | 798 | return -EINVAL; |
| 801 | } | 799 | } |
| 802 | 800 | ||
| @@ -834,7 +832,8 @@ static int __init omap_sr_probe(struct platform_device *pdev) | |||
| 834 | 832 | ||
| 835 | if (!pdata) { | 833 | if (!pdata) { |
| 836 | dev_err(&pdev->dev, "%s: platform data missing\n", __func__); | 834 | dev_err(&pdev->dev, "%s: platform data missing\n", __func__); |
| 837 | return -EINVAL; | 835 | ret = -EINVAL; |
| 836 | goto err_free_devinfo; | ||
| 838 | } | 837 | } |
| 839 | 838 | ||
| 840 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 839 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| @@ -966,7 +965,7 @@ static int __devexit omap_sr_remove(struct platform_device *pdev) | |||
| 966 | } | 965 | } |
| 967 | 966 | ||
| 968 | sr_info = _sr_lookup(pdata->voltdm); | 967 | sr_info = _sr_lookup(pdata->voltdm); |
| 969 | if (!sr_info) { | 968 | if (IS_ERR(sr_info)) { |
| 970 | dev_warn(&pdev->dev, "%s: omap_sr struct not found\n", | 969 | dev_warn(&pdev->dev, "%s: omap_sr struct not found\n", |
| 971 | __func__); | 970 | __func__); |
| 972 | return -EINVAL; | 971 | return -EINVAL; |
diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c index 4e48e786bec7..7b7c2683ae7b 100644 --- a/arch/arm/mach-omap2/timer-gp.c +++ b/arch/arm/mach-omap2/timer-gp.c | |||
| @@ -42,6 +42,8 @@ | |||
| 42 | 42 | ||
| 43 | #include "timer-gp.h" | 43 | #include "timer-gp.h" |
| 44 | 44 | ||
| 45 | #include <plat/common.h> | ||
| 46 | |||
| 45 | /* MAX_GPTIMER_ID: number of GPTIMERs on the chip */ | 47 | /* MAX_GPTIMER_ID: number of GPTIMERs on the chip */ |
| 46 | #define MAX_GPTIMER_ID 12 | 48 | #define MAX_GPTIMER_ID 12 |
| 47 | 49 | ||
| @@ -176,10 +178,14 @@ static void __init omap2_gp_clockevent_init(void) | |||
| 176 | /* | 178 | /* |
| 177 | * When 32k-timer is enabled, don't use GPTimer for clocksource | 179 | * When 32k-timer is enabled, don't use GPTimer for clocksource |
| 178 | * instead, just leave default clocksource which uses the 32k | 180 | * instead, just leave default clocksource which uses the 32k |
| 179 | * sync counter. See clocksource setup in see plat-omap/common.c. | 181 | * sync counter. See clocksource setup in plat-omap/counter_32k.c |
| 180 | */ | 182 | */ |
| 181 | 183 | ||
| 182 | static inline void __init omap2_gp_clocksource_init(void) {} | 184 | static void __init omap2_gp_clocksource_init(void) |
| 185 | { | ||
| 186 | omap_init_clocksource_32k(); | ||
| 187 | } | ||
| 188 | |||
| 183 | #else | 189 | #else |
| 184 | /* | 190 | /* |
| 185 | * clocksource | 191 | * clocksource |
diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-omap2/voltage.c index ed6079c94c57..12be525b8df4 100644 --- a/arch/arm/mach-omap2/voltage.c +++ b/arch/arm/mach-omap2/voltage.c | |||
| @@ -471,6 +471,7 @@ static void __init vdd_debugfs_init(struct omap_vdd_info *vdd) | |||
| 471 | strcat(name, vdd->voltdm.name); | 471 | strcat(name, vdd->voltdm.name); |
| 472 | 472 | ||
| 473 | vdd->debug_dir = debugfs_create_dir(name, voltage_dir); | 473 | vdd->debug_dir = debugfs_create_dir(name, voltage_dir); |
| 474 | kfree(name); | ||
| 474 | if (IS_ERR(vdd->debug_dir)) { | 475 | if (IS_ERR(vdd->debug_dir)) { |
| 475 | pr_warning("%s: Unable to create debugfs directory for" | 476 | pr_warning("%s: Unable to create debugfs directory for" |
| 476 | " vdd_%s\n", __func__, vdd->voltdm.name); | 477 | " vdd_%s\n", __func__, vdd->voltdm.name); |
