forked from Minki/linux
Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (21 commits) ARM: OMAP4: MMC: increase delay for pbias arm: omap2plus: move NAND_BLOCK_SIZE out of boards omap4: hwmod: Enable the keypad omap3: Free Beagle rev gpios when they are read, so others can read them later arm: omap3: beagle: Ensure msecure is mux'd to be able to set the RTC omap: rx51: Don't power up speaker amplifier at bootup omap: rx51: Set regulator V28_A always on ARM: OMAP4: MMC: no regulator off during probe for eMMC arm: omap2plus: fix ads7846 pendown gpio request ARM: OMAP2: Add missing iounmap in omap4430_phy_init ARM: omap4: Pass core and wakeup mux tables to omap4_mux_init ARM: omap2+: mux: Allow board mux settings to be NULL OMAP4: fix return value of omap4_l3_init OMAP: iovmm: fix SW flags passed by user arch/arm/mach-omap1/dma.c: Invert calls to platform_device_put and platform_device_del OMAP2+: mux: fix compilation warnings OMAP: SRAM: Fix warning: format '%08lx' expects type 'long unsigned int' arm: omap3: cm-t3517: fix section mismatch warning OMAP2+: Fix 9 section mismatch(es) warnings from mach-omap2/built-in.o ARM: OMAP2: Add missing include of linux/gpio.h ...
This commit is contained in:
commit
8ea656bdc9
@ -284,14 +284,15 @@ static int __init omap1_system_dma_init(void)
|
||||
dma_base = ioremap(res[0].start, resource_size(&res[0]));
|
||||
if (!dma_base) {
|
||||
pr_err("%s: Unable to ioremap\n", __func__);
|
||||
return -ENODEV;
|
||||
ret = -ENODEV;
|
||||
goto exit_device_put;
|
||||
}
|
||||
|
||||
ret = platform_device_add_resources(pdev, res, ARRAY_SIZE(res));
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "%s: Unable to add resources for %s%d\n",
|
||||
__func__, pdev->name, pdev->id);
|
||||
goto exit_device_del;
|
||||
goto exit_device_put;
|
||||
}
|
||||
|
||||
p = kzalloc(sizeof(struct omap_system_dma_plat_info), GFP_KERNEL);
|
||||
@ -299,7 +300,7 @@ static int __init omap1_system_dma_init(void)
|
||||
dev_err(&pdev->dev, "%s: Unable to allocate 'p' for %s\n",
|
||||
__func__, pdev->name);
|
||||
ret = -ENOMEM;
|
||||
goto exit_device_put;
|
||||
goto exit_device_del;
|
||||
}
|
||||
|
||||
d = kzalloc(sizeof(struct omap_dma_dev_attr), GFP_KERNEL);
|
||||
@ -380,10 +381,10 @@ exit_release_d:
|
||||
kfree(d);
|
||||
exit_release_p:
|
||||
kfree(p);
|
||||
exit_device_put:
|
||||
platform_device_put(pdev);
|
||||
exit_device_del:
|
||||
platform_device_del(pdev);
|
||||
exit_device_put:
|
||||
platform_device_put(pdev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -26,13 +26,13 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/gpmc.h>
|
||||
|
@ -622,19 +622,19 @@ static struct omap_device_pad serial3_pads[] __initdata = {
|
||||
OMAP_MUX_MODE0),
|
||||
};
|
||||
|
||||
static struct omap_board_data serial1_data = {
|
||||
static struct omap_board_data serial1_data __initdata = {
|
||||
.id = 0,
|
||||
.pads = serial1_pads,
|
||||
.pads_cnt = ARRAY_SIZE(serial1_pads),
|
||||
};
|
||||
|
||||
static struct omap_board_data serial2_data = {
|
||||
static struct omap_board_data serial2_data __initdata = {
|
||||
.id = 1,
|
||||
.pads = serial2_pads,
|
||||
.pads_cnt = ARRAY_SIZE(serial2_pads),
|
||||
};
|
||||
|
||||
static struct omap_board_data serial3_data = {
|
||||
static struct omap_board_data serial3_data __initdata = {
|
||||
.id = 2,
|
||||
.pads = serial3_pads,
|
||||
.pads_cnt = ARRAY_SIZE(serial3_pads),
|
||||
|
@ -258,7 +258,7 @@ static struct gpio sdp4430_eth_gpios[] __initdata = {
|
||||
{ ETH_KS8851_IRQ, GPIOF_IN, "eth_irq" },
|
||||
};
|
||||
|
||||
static int omap_ethernet_init(void)
|
||||
static int __init omap_ethernet_init(void)
|
||||
{
|
||||
int status;
|
||||
|
||||
@ -322,6 +322,7 @@ static struct omap2_hsmmc_info mmc[] = {
|
||||
.gpio_wp = -EINVAL,
|
||||
.nonremovable = true,
|
||||
.ocr_mask = MMC_VDD_29_30,
|
||||
.no_off_init = true,
|
||||
},
|
||||
{
|
||||
.mmc = 1,
|
||||
@ -681,19 +682,19 @@ static struct omap_device_pad serial4_pads[] __initdata = {
|
||||
OMAP_PIN_OUTPUT | OMAP_MUX_MODE0),
|
||||
};
|
||||
|
||||
static struct omap_board_data serial2_data = {
|
||||
static struct omap_board_data serial2_data __initdata = {
|
||||
.id = 1,
|
||||
.pads = serial2_pads,
|
||||
.pads_cnt = ARRAY_SIZE(serial2_pads),
|
||||
};
|
||||
|
||||
static struct omap_board_data serial3_data = {
|
||||
static struct omap_board_data serial3_data __initdata = {
|
||||
.id = 2,
|
||||
.pads = serial3_pads,
|
||||
.pads_cnt = ARRAY_SIZE(serial3_pads),
|
||||
};
|
||||
|
||||
static struct omap_board_data serial4_data = {
|
||||
static struct omap_board_data serial4_data __initdata = {
|
||||
.id = 3,
|
||||
.pads = serial4_pads,
|
||||
.pads_cnt = ARRAY_SIZE(serial4_pads),
|
||||
@ -729,7 +730,7 @@ static void __init omap_4430sdp_init(void)
|
||||
|
||||
if (omap_rev() == OMAP4430_REV_ES1_0)
|
||||
package = OMAP_PACKAGE_CBL;
|
||||
omap4_mux_init(board_mux, package);
|
||||
omap4_mux_init(board_mux, NULL, package);
|
||||
|
||||
omap_board_config = sdp4430_config;
|
||||
omap_board_config_size = ARRAY_SIZE(sdp4430_config);
|
||||
|
@ -27,13 +27,13 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/smc91x.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <plat/led.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/board.h>
|
||||
|
@ -63,8 +63,6 @@
|
||||
#define SB_T35_SMSC911X_CS 4
|
||||
#define SB_T35_SMSC911X_GPIO 65
|
||||
|
||||
#define NAND_BLOCK_SIZE SZ_128K
|
||||
|
||||
#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
|
||||
#include <linux/smsc911x.h>
|
||||
#include <plat/gpmc-smsc911x.h>
|
||||
|
@ -48,6 +48,7 @@
|
||||
|
||||
#include "mux.h"
|
||||
#include "control.h"
|
||||
#include "common-board-devices.h"
|
||||
|
||||
#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
|
||||
static struct gpio_led cm_t3517_leds[] = {
|
||||
@ -177,7 +178,7 @@ static struct usbhs_omap_board_data cm_t3517_ehci_pdata __initdata = {
|
||||
.reset_gpio_port[2] = -EINVAL,
|
||||
};
|
||||
|
||||
static int cm_t3517_init_usbh(void)
|
||||
static int __init cm_t3517_init_usbh(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
@ -203,8 +204,6 @@ static inline int cm_t3517_init_usbh(void)
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MTD_NAND_OMAP2) || defined(CONFIG_MTD_NAND_OMAP2_MODULE)
|
||||
#define NAND_BLOCK_SIZE SZ_128K
|
||||
|
||||
static struct mtd_partition cm_t3517_nand_partitions[] = {
|
||||
{
|
||||
.name = "xloader",
|
||||
|
@ -61,8 +61,6 @@
|
||||
#include "timer-gp.h"
|
||||
#include "common-board-devices.h"
|
||||
|
||||
#define NAND_BLOCK_SIZE SZ_128K
|
||||
|
||||
#define OMAP_DM9000_GPIO_IRQ 25
|
||||
#define OMAP3_DEVKIT_TS_GPIO 27
|
||||
|
||||
|
@ -54,8 +54,6 @@
|
||||
#include "pm.h"
|
||||
#include "common-board-devices.h"
|
||||
|
||||
#define NAND_BLOCK_SIZE SZ_128K
|
||||
|
||||
/*
|
||||
* OMAP3 Beagle revision
|
||||
* Run time detection of Beagle revision is done by reading GPIO.
|
||||
@ -106,6 +104,9 @@ static void __init omap3_beagle_init_rev(void)
|
||||
beagle_rev = gpio_get_value(171) | (gpio_get_value(172) << 1)
|
||||
| (gpio_get_value(173) << 2);
|
||||
|
||||
gpio_free_array(omap3_beagle_rev_gpios,
|
||||
ARRAY_SIZE(omap3_beagle_rev_gpios));
|
||||
|
||||
switch (beagle_rev) {
|
||||
case 7:
|
||||
printk(KERN_INFO "OMAP3 Beagle Rev: Ax/Bx\n");
|
||||
@ -579,6 +580,9 @@ static void __init omap3_beagle_init(void)
|
||||
omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions,
|
||||
ARRAY_SIZE(omap3beagle_nand_partitions));
|
||||
|
||||
/* Ensure msecure is mux'd to be able to set the RTC. */
|
||||
omap_mux_init_signal("sys_drm_msecure", OMAP_PIN_OFF_OUTPUT_HIGH);
|
||||
|
||||
/* Ensure SDRC pins are mux'd for self-refresh */
|
||||
omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
|
||||
omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include <linux/leds.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/input/matrix_keypad.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/mmc/card.h>
|
||||
@ -41,7 +42,6 @@
|
||||
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/usb.h>
|
||||
@ -57,8 +57,6 @@
|
||||
#define PANDORA_WIFI_NRESET_GPIO 23
|
||||
#define OMAP3_PANDORA_TS_GPIO 94
|
||||
|
||||
#define NAND_BLOCK_SIZE SZ_128K
|
||||
|
||||
static struct mtd_partition omap3pandora_nand_partitions[] = {
|
||||
{
|
||||
.name = "xloader",
|
||||
|
@ -56,8 +56,6 @@
|
||||
|
||||
#include <asm/setup.h>
|
||||
|
||||
#define NAND_BLOCK_SIZE SZ_128K
|
||||
|
||||
#define OMAP3_AC_GPIO 136
|
||||
#define OMAP3_TS_GPIO 162
|
||||
#define TB_BL_PWM_TIMER 9
|
||||
|
@ -526,19 +526,19 @@ static struct omap_device_pad serial4_pads[] __initdata = {
|
||||
OMAP_PIN_OUTPUT | OMAP_MUX_MODE0),
|
||||
};
|
||||
|
||||
static struct omap_board_data serial2_data = {
|
||||
static struct omap_board_data serial2_data __initdata = {
|
||||
.id = 1,
|
||||
.pads = serial2_pads,
|
||||
.pads_cnt = ARRAY_SIZE(serial2_pads),
|
||||
};
|
||||
|
||||
static struct omap_board_data serial3_data = {
|
||||
static struct omap_board_data serial3_data __initdata = {
|
||||
.id = 2,
|
||||
.pads = serial3_pads,
|
||||
.pads_cnt = ARRAY_SIZE(serial3_pads),
|
||||
};
|
||||
|
||||
static struct omap_board_data serial4_data = {
|
||||
static struct omap_board_data serial4_data __initdata = {
|
||||
.id = 3,
|
||||
.pads = serial4_pads,
|
||||
.pads_cnt = ARRAY_SIZE(serial4_pads),
|
||||
@ -687,7 +687,7 @@ static void __init omap4_panda_init(void)
|
||||
|
||||
if (omap_rev() == OMAP4430_REV_ES1_0)
|
||||
package = OMAP_PACKAGE_CBL;
|
||||
omap4_mux_init(board_mux, package);
|
||||
omap4_mux_init(board_mux, NULL, package);
|
||||
|
||||
if (wl12xx_set_platform_data(&omap_panda_wlan_data))
|
||||
pr_err("error setting wl12xx data\n");
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
@ -45,7 +46,6 @@
|
||||
#include <plat/common.h>
|
||||
#include <video/omapdss.h>
|
||||
#include <video/omap-panel-generic-dpi.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <plat/nand.h>
|
||||
@ -65,8 +65,6 @@
|
||||
#define OVERO_GPIO_USBH_CPEN 168
|
||||
#define OVERO_GPIO_USBH_NRESET 183
|
||||
|
||||
#define NAND_BLOCK_SIZE SZ_128K
|
||||
|
||||
#define OVERO_SMSC911X_CS 5
|
||||
#define OVERO_SMSC911X_GPIO 176
|
||||
#define OVERO_SMSC911X2_CS 4
|
||||
|
@ -488,6 +488,7 @@ static struct regulator_init_data rx51_vmmc2 = {
|
||||
.name = "V28_A",
|
||||
.min_uV = 2800000,
|
||||
.max_uV = 3000000,
|
||||
.always_on = true, /* due VIO leak to AIC34 VDDs */
|
||||
.apply_uV = true,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
@ -582,7 +583,7 @@ static int rx51_twlgpio_setup(struct device *dev, unsigned gpio, unsigned n)
|
||||
{
|
||||
/* FIXME this gpio setup is just a placeholder for now */
|
||||
gpio_request_one(gpio + 6, GPIOF_OUT_INIT_LOW, "backlight_pwm");
|
||||
gpio_request_one(gpio + 7, GPIOF_OUT_INIT_HIGH, "speaker_en");
|
||||
gpio_request_one(gpio + 7, GPIOF_OUT_INIT_LOW, "speaker_en");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ static struct gpio zoom_lcd_gpios[] __initdata = {
|
||||
{ LCD_PANEL_QVGA_GPIO, GPIOF_OUT_INIT_HIGH, "lcd qvga" },
|
||||
};
|
||||
|
||||
static void zoom_lcd_panel_init(void)
|
||||
static void __init zoom_lcd_panel_init(void)
|
||||
{
|
||||
zoom_lcd_gpios[0].gpio = (omap_rev() > OMAP3430_REV_ES3_0) ?
|
||||
LCD_PANEL_RESET_GPIO_PROD :
|
||||
|
@ -85,18 +85,18 @@ void __init omap_ads7846_init(int bus_num, int gpio_pendown, int gpio_debounce,
|
||||
struct spi_board_info *spi_bi = &ads7846_spi_board_info;
|
||||
int err;
|
||||
|
||||
err = gpio_request(gpio_pendown, "TS PenDown");
|
||||
if (err) {
|
||||
pr_err("Could not obtain gpio for TS PenDown: %d\n", err);
|
||||
return;
|
||||
if (board_pdata && board_pdata->get_pendown_state) {
|
||||
err = gpio_request_one(gpio_pendown, GPIOF_IN, "TSPenDown");
|
||||
if (err) {
|
||||
pr_err("Couldn't obtain gpio for TSPenDown: %d\n", err);
|
||||
return;
|
||||
}
|
||||
gpio_export(gpio_pendown, 0);
|
||||
|
||||
if (gpio_debounce)
|
||||
gpio_set_debounce(gpio_pendown, gpio_debounce);
|
||||
}
|
||||
|
||||
gpio_direction_input(gpio_pendown);
|
||||
gpio_export(gpio_pendown, 0);
|
||||
|
||||
if (gpio_debounce)
|
||||
gpio_set_debounce(gpio_pendown, gpio_debounce);
|
||||
|
||||
ads7846_config.gpio_pendown = gpio_pendown;
|
||||
|
||||
spi_bi->bus_num = bus_num;
|
||||
|
@ -1,6 +1,8 @@
|
||||
#ifndef __OMAP_COMMON_BOARD_DEVICES__
|
||||
#define __OMAP_COMMON_BOARD_DEVICES__
|
||||
|
||||
#define NAND_BLOCK_SIZE SZ_128K
|
||||
|
||||
struct twl4030_platform_data;
|
||||
struct mtd_partition;
|
||||
|
||||
|
@ -97,7 +97,7 @@ static int __init omap4_l3_init(void)
|
||||
|
||||
WARN(IS_ERR(od), "could not build omap_device for %s\n", oh_name);
|
||||
|
||||
return PTR_ERR(od);
|
||||
return IS_ERR(od) ? PTR_ERR(od) : 0;
|
||||
}
|
||||
postcore_initcall(omap4_l3_init);
|
||||
|
||||
|
@ -145,6 +145,7 @@ static void omap4_hsmmc1_after_set_reg(struct device *dev, int slot,
|
||||
int power_on, int vdd)
|
||||
{
|
||||
u32 reg;
|
||||
unsigned long timeout;
|
||||
|
||||
if (power_on) {
|
||||
reg = omap4_ctrl_pad_readl(control_pbias_offset);
|
||||
@ -157,9 +158,15 @@ static void omap4_hsmmc1_after_set_reg(struct device *dev, int slot,
|
||||
OMAP4_MMC1_PWRDNZ_MASK |
|
||||
OMAP4_USBC1_ICUSB_PWRDNZ_MASK);
|
||||
omap4_ctrl_pad_writel(reg, control_pbias_offset);
|
||||
/* 4 microsec delay for comparator to generate an error*/
|
||||
udelay(4);
|
||||
reg = omap4_ctrl_pad_readl(control_pbias_offset);
|
||||
|
||||
timeout = jiffies + msecs_to_jiffies(5);
|
||||
do {
|
||||
reg = omap4_ctrl_pad_readl(control_pbias_offset);
|
||||
if (!(reg & OMAP4_MMC1_PBIASLITE_VMODE_ERROR_MASK))
|
||||
break;
|
||||
usleep_range(100, 200);
|
||||
} while (!time_after(jiffies, timeout));
|
||||
|
||||
if (reg & OMAP4_MMC1_PBIASLITE_VMODE_ERROR_MASK) {
|
||||
pr_err("Pbias Voltage is not same as LDO\n");
|
||||
/* Caution : On VMODE_ERROR Power Down MMC IO */
|
||||
@ -331,6 +338,9 @@ static int __init omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c,
|
||||
if (c->no_off)
|
||||
mmc->slots[0].no_off = 1;
|
||||
|
||||
if (c->no_off_init)
|
||||
mmc->slots[0].no_regulator_off_init = c->no_off_init;
|
||||
|
||||
if (c->vcc_aux_disable_is_sleep)
|
||||
mmc->slots[0].vcc_aux_disable_is_sleep = 1;
|
||||
|
||||
|
@ -18,6 +18,7 @@ struct omap2_hsmmc_info {
|
||||
bool nonremovable; /* Nonremovable e.g. eMMC */
|
||||
bool power_saving; /* Try to sleep or power off when possible */
|
||||
bool no_off; /* power_saving and power is not to go off */
|
||||
bool no_off_init; /* no power off when not in MMC sleep state */
|
||||
bool vcc_aux_disable_is_sleep; /* Regulator off remapped to sleep */
|
||||
int gpio_cd; /* or -EINVAL */
|
||||
int gpio_wp; /* or -EINVAL */
|
||||
|
@ -83,6 +83,9 @@ void omap_mux_write(struct omap_mux_partition *partition, u16 val,
|
||||
void omap_mux_write_array(struct omap_mux_partition *partition,
|
||||
struct omap_board_mux *board_mux)
|
||||
{
|
||||
if (!board_mux)
|
||||
return;
|
||||
|
||||
while (board_mux->reg_offset != OMAP_MUX_TERMINATOR) {
|
||||
omap_mux_write(partition, board_mux->value,
|
||||
board_mux->reg_offset);
|
||||
@ -906,7 +909,7 @@ static struct omap_mux *omap_mux_get_by_gpio(
|
||||
u16 omap_mux_get_gpio(int gpio)
|
||||
{
|
||||
struct omap_mux_partition *partition;
|
||||
struct omap_mux *m;
|
||||
struct omap_mux *m = NULL;
|
||||
|
||||
list_for_each_entry(partition, &mux_partitions, node) {
|
||||
m = omap_mux_get_by_gpio(partition, gpio);
|
||||
|
@ -323,10 +323,12 @@ int omap3_mux_init(struct omap_board_mux *board_mux, int flags);
|
||||
|
||||
/**
|
||||
* omap4_mux_init() - initialize mux system with board specific set
|
||||
* @board_mux: Board specific mux table
|
||||
* @board_subset: Board specific mux table
|
||||
* @board_wkup_subset: Board specific mux table for wakeup instance
|
||||
* @flags: OMAP package type used for the board
|
||||
*/
|
||||
int omap4_mux_init(struct omap_board_mux *board_mux, int flags);
|
||||
int omap4_mux_init(struct omap_board_mux *board_subset,
|
||||
struct omap_board_mux *board_wkup_subset, int flags);
|
||||
|
||||
/**
|
||||
* omap_mux_init - private mux init function, do not call
|
||||
|
@ -1309,7 +1309,8 @@ static struct omap_ball __initdata omap4_wkup_cbl_cbs_ball[] = {
|
||||
#define omap4_wkup_cbl_cbs_ball NULL
|
||||
#endif
|
||||
|
||||
int __init omap4_mux_init(struct omap_board_mux *board_subset, int flags)
|
||||
int __init omap4_mux_init(struct omap_board_mux *board_subset,
|
||||
struct omap_board_mux *board_wkup_subset, int flags)
|
||||
{
|
||||
struct omap_ball *package_balls_core;
|
||||
struct omap_ball *package_balls_wkup = omap4_wkup_cbl_cbs_ball;
|
||||
@ -1347,7 +1348,7 @@ int __init omap4_mux_init(struct omap_board_mux *board_subset, int flags)
|
||||
OMAP_MUX_GPIO_IN_MODE3,
|
||||
OMAP4_CTRL_MODULE_PAD_WKUP_MUX_PBASE,
|
||||
OMAP4_CTRL_MODULE_PAD_WKUP_MUX_SIZE,
|
||||
omap4_wkup_muxmodes, NULL, board_subset,
|
||||
omap4_wkup_muxmodes, NULL, board_wkup_subset,
|
||||
package_balls_wkup);
|
||||
|
||||
return ret;
|
||||
|
@ -1628,7 +1628,7 @@ int omap_hwmod_for_each(int (*fn)(struct omap_hwmod *oh, void *data),
|
||||
void *data)
|
||||
{
|
||||
struct omap_hwmod *temp_oh;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
|
||||
if (!fn)
|
||||
return -EINVAL;
|
||||
|
@ -5109,7 +5109,7 @@ static __initdata struct omap_hwmod *omap44xx_hwmods[] = {
|
||||
&omap44xx_iva_seq1_hwmod,
|
||||
|
||||
/* kbd class */
|
||||
/* &omap44xx_kbd_hwmod, */
|
||||
&omap44xx_kbd_hwmod,
|
||||
|
||||
/* mailbox class */
|
||||
&omap44xx_mailbox_hwmod,
|
||||
|
@ -56,8 +56,10 @@ int omap4430_phy_init(struct device *dev)
|
||||
/* Power down the phy */
|
||||
__raw_writel(PHY_PD, ctrl_base + CONTROL_DEV_CONF);
|
||||
|
||||
if (!dev)
|
||||
if (!dev) {
|
||||
iounmap(ctrl_base);
|
||||
return 0;
|
||||
}
|
||||
|
||||
phyclk = clk_get(dev, "ocp2scp_usb_phy_ick");
|
||||
if (IS_ERR(phyclk)) {
|
||||
|
@ -11,6 +11,7 @@
|
||||
|
||||
#include <linux/mtd/map.h>
|
||||
|
||||
struct platform_device;
|
||||
extern void omap1_set_vpp(struct platform_device *pdev, int enable);
|
||||
|
||||
#endif
|
||||
|
@ -29,9 +29,6 @@ struct iovm_struct {
|
||||
* lower 16 bit is used for h/w and upper 16 bit is for s/w.
|
||||
*/
|
||||
#define IOVMF_SW_SHIFT 16
|
||||
#define IOVMF_HW_SIZE (1 << IOVMF_SW_SHIFT)
|
||||
#define IOVMF_HW_MASK (IOVMF_HW_SIZE - 1)
|
||||
#define IOVMF_SW_MASK (~IOVMF_HW_MASK)UL
|
||||
|
||||
/*
|
||||
* iovma: h/w flags derived from cam and ram attribute
|
||||
|
@ -101,6 +101,9 @@ struct omap_mmc_platform_data {
|
||||
/* If using power_saving and the MMC power is not to go off */
|
||||
unsigned no_off:1;
|
||||
|
||||
/* eMMC does not handle power off when not in sleep state */
|
||||
unsigned no_regulator_off_init:1;
|
||||
|
||||
/* Regulator off remapped to sleep */
|
||||
unsigned vcc_aux_disable_is_sleep:1;
|
||||
|
||||
|
@ -648,7 +648,6 @@ u32 iommu_vmap(struct iommu *obj, u32 da, const struct sg_table *sgt,
|
||||
return PTR_ERR(va);
|
||||
}
|
||||
|
||||
flags &= IOVMF_HW_MASK;
|
||||
flags |= IOVMF_DISCONT;
|
||||
flags |= IOVMF_MMIO;
|
||||
|
||||
@ -706,7 +705,6 @@ u32 iommu_vmalloc(struct iommu *obj, u32 da, size_t bytes, u32 flags)
|
||||
if (!va)
|
||||
return -ENOMEM;
|
||||
|
||||
flags &= IOVMF_HW_MASK;
|
||||
flags |= IOVMF_DISCONT;
|
||||
flags |= IOVMF_ALLOC;
|
||||
|
||||
@ -795,7 +793,6 @@ u32 iommu_kmap(struct iommu *obj, u32 da, u32 pa, size_t bytes,
|
||||
if (!va)
|
||||
return -ENOMEM;
|
||||
|
||||
flags &= IOVMF_HW_MASK;
|
||||
flags |= IOVMF_LINEAR;
|
||||
flags |= IOVMF_MMIO;
|
||||
|
||||
@ -853,7 +850,6 @@ u32 iommu_kmalloc(struct iommu *obj, u32 da, size_t bytes, u32 flags)
|
||||
return -ENOMEM;
|
||||
pa = virt_to_phys(va);
|
||||
|
||||
flags &= IOVMF_HW_MASK;
|
||||
flags |= IOVMF_LINEAR;
|
||||
flags |= IOVMF_ALLOC;
|
||||
|
||||
|
@ -166,7 +166,7 @@ static void __init omap_detect_sram(void)
|
||||
else if (cpu_is_omap1611())
|
||||
omap_sram_size = SZ_256K;
|
||||
else {
|
||||
printk(KERN_ERR "Could not detect SRAM size\n");
|
||||
pr_err("Could not detect SRAM size\n");
|
||||
omap_sram_size = 0x4000;
|
||||
}
|
||||
}
|
||||
@ -221,10 +221,10 @@ static void __init omap_map_sram(void)
|
||||
omap_sram_io_desc[0].length = ROUND_DOWN(omap_sram_size, PAGE_SIZE);
|
||||
iotable_init(omap_sram_io_desc, ARRAY_SIZE(omap_sram_io_desc));
|
||||
|
||||
printk(KERN_INFO "SRAM: Mapped pa 0x%08lx to va 0x%08lx size: 0x%lx\n",
|
||||
__pfn_to_phys(omap_sram_io_desc[0].pfn),
|
||||
omap_sram_io_desc[0].virtual,
|
||||
omap_sram_io_desc[0].length);
|
||||
pr_info("SRAM: Mapped pa 0x%08llx to va 0x%08lx size: 0x%lx\n",
|
||||
(long long) __pfn_to_phys(omap_sram_io_desc[0].pfn),
|
||||
omap_sram_io_desc[0].virtual,
|
||||
omap_sram_io_desc[0].length);
|
||||
|
||||
/*
|
||||
* Normally devicemaps_init() would flush caches and tlb after
|
||||
@ -252,7 +252,7 @@ static void __init omap_map_sram(void)
|
||||
void *omap_sram_push_address(unsigned long size)
|
||||
{
|
||||
if (size > (omap_sram_ceil - (omap_sram_base + SRAM_BOOTLOADER_SZ))) {
|
||||
printk(KERN_ERR "Not enough space in SRAM\n");
|
||||
pr_err("Not enough space in SRAM\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -435,6 +435,9 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
|
||||
reg = regulator_get(host->dev, "vmmc_aux");
|
||||
host->vcc_aux = IS_ERR(reg) ? NULL : reg;
|
||||
|
||||
/* For eMMC do not power off when not in sleep state */
|
||||
if (mmc_slot(host).no_regulator_off_init)
|
||||
return 0;
|
||||
/*
|
||||
* UGLY HACK: workaround regulator framework bugs.
|
||||
* When the bootloader leaves a supply active, it's
|
||||
|
Loading…
Reference in New Issue
Block a user