Commit 17282b98 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'omap-fixes-for-linus' of...

Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6

* 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (39 commits)
  omap: delete unused bootloader tag variables
  omap: Devkit8000: Remove unused pins
  omap: Devkit8000: Change position of init calls
  omap: Devkit8000: Remove unnecessary include file
  omap: Devkit8000: Fix typo in pin name
  omap: Devkit8000: Add missing package selection
  omap: Devkit8000: Fix typo in supplies
  n8x0_defconfig: remove CONFIG_NILFS2_FS override
  omap: board-sdp-flash.c: Fix typos in debug output
  omap4: Fix McBSP4 base address
  omap: rx51_defconfig: Remove CONFIG_SYSFS_DEPRECATED*=y options
  omap: rx51_defconfig: Remove duplicate phonet
  omap: fix a gpmc nand problem
  AM3517: initialize i2c subsystem after mux subsystem
  omap: remove one of the define of INT_34XX_BENCH_MPU_EMUL
  omap: fix the compile error if CONFIG_MTD_NAND_OMAP2 is notenabled
  OMAP4: Clocks: Change SPI Instance Names
  omap: Devkit8000: Fix wrong usb port on Devkit8000
  OMAP4: Fix for CONTROL register Base
  OMAP4-HSMMC: FIX for MMC5 Controller IRQ Base
  ...
parents 58927533 223e632c
...@@ -1058,7 +1058,6 @@ CONFIG_JFFS2_CMODE_PRIORITY=y ...@@ -1058,7 +1058,6 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
# CONFIG_ROMFS_FS is not set # CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set # CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set # CONFIG_UFS_FS is not set
# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NETWORK_FILESYSTEMS=y
# CONFIG_NFS_FS is not set # CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set # CONFIG_NFSD is not set
......
...@@ -661,7 +661,7 @@ CONFIG_DEVKMEM=y ...@@ -661,7 +661,7 @@ CONFIG_DEVKMEM=y
CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=1
CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_SHARE_IRQ=y
......
...@@ -680,7 +680,7 @@ CONFIG_DEVKMEM=y ...@@ -680,7 +680,7 @@ CONFIG_DEVKMEM=y
CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=1
CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_SHARE_IRQ=y
......
...@@ -59,8 +59,6 @@ CONFIG_FAIR_GROUP_SCHED=y ...@@ -59,8 +59,6 @@ CONFIG_FAIR_GROUP_SCHED=y
CONFIG_USER_SCHED=y CONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not set # CONFIG_CGROUP_SCHED is not set
# CONFIG_CGROUPS is not set # CONFIG_CGROUPS is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set # CONFIG_RELAY is not set
# CONFIG_NAMESPACES is not set # CONFIG_NAMESPACES is not set
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
...@@ -480,7 +478,6 @@ CONFIG_BT_HIDP=m ...@@ -480,7 +478,6 @@ CONFIG_BT_HIDP=m
# CONFIG_BT_HCIBFUSB is not set # CONFIG_BT_HCIBFUSB is not set
# CONFIG_BT_HCIVHCI is not set # CONFIG_BT_HCIVHCI is not set
# CONFIG_AF_RXRPC is not set # CONFIG_AF_RXRPC is not set
# CONFIG_PHONET is not set
CONFIG_WIRELESS=y CONFIG_WIRELESS=y
CONFIG_CFG80211=y CONFIG_CFG80211=y
# CONFIG_CFG80211_REG_DEBUG is not set # CONFIG_CFG80211_REG_DEBUG is not set
......
...@@ -68,12 +68,6 @@ struct sys_timer omap_timer; ...@@ -68,12 +68,6 @@ struct sys_timer omap_timer;
* --------------------------------------------------------------------------- * ---------------------------------------------------------------------------
*/ */
#if defined(CONFIG_ARCH_OMAP16XX)
#define TIMER_32K_SYNCHRONIZED 0xfffbc410
#else
#error OMAP 32KHz timer does not currently work on 15XX!
#endif
/* 16xx specific defines */ /* 16xx specific defines */
#define OMAP1_32K_TIMER_BASE 0xfffb9000 #define OMAP1_32K_TIMER_BASE 0xfffb9000
#define OMAP1_32K_TIMER_CR 0x08 #define OMAP1_32K_TIMER_CR 0x08
...@@ -150,15 +144,6 @@ static struct clock_event_device clockevent_32k_timer = { ...@@ -150,15 +144,6 @@ static struct clock_event_device clockevent_32k_timer = {
.set_mode = omap_32k_timer_set_mode, .set_mode = omap_32k_timer_set_mode,
}; };
/*
* The 32KHz synchronized timer is an additional timer on 16xx.
* It is always running.
*/
static inline unsigned long omap_32k_sync_timer_read(void)
{
return omap_readl(TIMER_32K_SYNCHRONIZED);
}
static irqreturn_t omap_32k_timer_interrupt(int irq, void *dev_id) static irqreturn_t omap_32k_timer_interrupt(int irq, void *dev_id)
{ {
struct clock_event_device *evt = &clockevent_32k_timer; struct clock_event_device *evt = &clockevent_32k_timer;
......
...@@ -59,8 +59,10 @@ config MACH_OMAP3_BEAGLE ...@@ -59,8 +59,10 @@ config MACH_OMAP3_BEAGLE
select OMAP_PACKAGE_CBB select OMAP_PACKAGE_CBB
config MACH_DEVKIT8000 config MACH_DEVKIT8000
bool "DEVKIT8000 board" bool "DEVKIT8000 board"
depends on ARCH_OMAP3 depends on ARCH_OMAP3
select OMAP_PACKAGE_CUS
select OMAP_MUX
config MACH_OMAP_LDP config MACH_OMAP_LDP
bool "OMAP3 LDP board" bool "OMAP3 LDP board"
......
...@@ -96,6 +96,7 @@ static struct omap_board_mux board_mux[] __initdata = { ...@@ -96,6 +96,7 @@ static struct omap_board_mux board_mux[] __initdata = {
static void __init omap_sdp_init(void) static void __init omap_sdp_init(void)
{ {
omap3_mux_init(board_mux, OMAP_PACKAGE_CBP); omap3_mux_init(board_mux, OMAP_PACKAGE_CBP);
omap_serial_init();
zoom_peripherals_init(); zoom_peripherals_init();
board_smc91x_init(); board_smc91x_init();
enable_board_wakeup_source(); enable_board_wakeup_source();
......
...@@ -294,9 +294,9 @@ static struct omap_board_mux board_mux[] __initdata = { ...@@ -294,9 +294,9 @@ static struct omap_board_mux board_mux[] __initdata = {
static void __init am3517_evm_init(void) static void __init am3517_evm_init(void)
{ {
am3517_evm_i2c_init();
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
am3517_evm_i2c_init();
platform_add_devices(am3517_evm_devices, platform_add_devices(am3517_evm_devices,
ARRAY_SIZE(am3517_evm_devices)); ARRAY_SIZE(am3517_evm_devices));
......
...@@ -50,7 +50,6 @@ ...@@ -50,7 +50,6 @@
#include <linux/input/matrix_keypad.h> #include <linux/input/matrix_keypad.h>
#include <linux/spi/spi.h> #include <linux/spi/spi.h>
#include <linux/spi/ads7846.h> #include <linux/spi/ads7846.h>
#include <linux/usb/otg.h>
#include <linux/dm9000.h> #include <linux/dm9000.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
...@@ -269,20 +268,6 @@ static int devkit8000_twl_gpio_setup(struct device *dev, ...@@ -269,20 +268,6 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
devkit8000_vmmc1_supply.dev = mmc[0].dev; devkit8000_vmmc1_supply.dev = mmc[0].dev;
devkit8000_vsim_supply.dev = mmc[0].dev; devkit8000_vsim_supply.dev = mmc[0].dev;
/* REVISIT: need ehci-omap hooks for external VBUS
* power switch and overcurrent detect
*/
gpio_request(gpio + 1, "EHCI_nOC");
gpio_direction_input(gpio + 1);
/* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */
gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR");
gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1);
/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
return 0; return 0;
} }
...@@ -303,7 +288,7 @@ static struct regulator_consumer_supply devkit8000_vpll2_supplies[] = { ...@@ -303,7 +288,7 @@ static struct regulator_consumer_supply devkit8000_vpll2_supplies[] = {
.dev = &devkit8000_lcd_device.dev, .dev = &devkit8000_lcd_device.dev,
}, },
{ {
.supply = "vdss_dsi", .supply = "vdds_dsi",
.dev = &devkit8000_dss_device.dev, .dev = &devkit8000_dss_device.dev,
} }
}; };
...@@ -639,17 +624,21 @@ static struct omap_musb_board_data musb_board_data = { ...@@ -639,17 +624,21 @@ static struct omap_musb_board_data musb_board_data = {
static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
.port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
.port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
.port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
.phy_reset = true, .phy_reset = true,
.reset_gpio_port[0] = -EINVAL, .reset_gpio_port[0] = -EINVAL,
.reset_gpio_port[1] = 147, .reset_gpio_port[1] = -EINVAL,
.reset_gpio_port[2] = -EINVAL .reset_gpio_port[2] = -EINVAL
}; };
static void __init devkit8000_init(void) static void __init devkit8000_init(void)
{ {
omap_serial_init();
omap_dm9000_init();
devkit8000_i2c_init(); devkit8000_i2c_init();
platform_add_devices(devkit8000_devices, platform_add_devices(devkit8000_devices,
ARRAY_SIZE(devkit8000_devices)); ARRAY_SIZE(devkit8000_devices));
...@@ -659,25 +648,15 @@ static void __init devkit8000_init(void) ...@@ -659,25 +648,15 @@ static void __init devkit8000_init(void)
spi_register_board_info(devkit8000_spi_board_info, spi_register_board_info(devkit8000_spi_board_info,
ARRAY_SIZE(devkit8000_spi_board_info)); ARRAY_SIZE(devkit8000_spi_board_info));
omap_serial_init();
omap_dm9000_init();
devkit8000_ads7846_init(); devkit8000_ads7846_init();
omap_mux_init_gpio(170, OMAP_PIN_INPUT);
gpio_request(170, "DVI_nPD");
/* REVISIT leave DVI powered down until it's needed ... */
gpio_direction_output(170, true);
usb_musb_init(&musb_board_data); usb_musb_init(&musb_board_data);
usb_ehci_init(&ehci_pdata); usb_ehci_init(&ehci_pdata);
devkit8000_flash_init(); devkit8000_flash_init();
/* Ensure SDRC pins are mux'd for self-refresh */ /* Ensure SDRC pins are mux'd for self-refresh */
omap_mux_init_signal("sdr_cke0", OMAP_PIN_OUTPUT); omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
omap_mux_init_signal("sdr_cke1", OMAP_PIN_OUTPUT); omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);
} }
static void __init devkit8000_map_io(void) static void __init devkit8000_map_io(void)
......
...@@ -458,13 +458,13 @@ static struct omap_musb_board_data musb_board_data = { ...@@ -458,13 +458,13 @@ static struct omap_musb_board_data musb_board_data = {
}; };
static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
.port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
.port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
.port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
.phy_reset = true, .phy_reset = true,
.reset_gpio_port[0] = -EINVAL, .reset_gpio_port[0] = IGEP2_GPIO_USBH_NRESET,
.reset_gpio_port[1] = IGEP2_GPIO_USBH_NRESET, .reset_gpio_port[1] = -EINVAL,
.reset_gpio_port[2] = -EINVAL, .reset_gpio_port[2] = -EINVAL,
}; };
......
...@@ -216,7 +216,7 @@ static void __init n8x0_onenand_init(void) {} ...@@ -216,7 +216,7 @@ static void __init n8x0_onenand_init(void) {}
*/ */
#define N8X0_SLOT_SWITCH_GPIO 96 #define N8X0_SLOT_SWITCH_GPIO 96
#define N810_EMMC_VSD_GPIO 23 #define N810_EMMC_VSD_GPIO 23
#define NN810_EMMC_VIO_GPIO 9 #define N810_EMMC_VIO_GPIO 9
static int n8x0_mmc_switch_slot(struct device *dev, int slot) static int n8x0_mmc_switch_slot(struct device *dev, int slot)
{ {
...@@ -304,10 +304,10 @@ static void n810_set_power_emmc(struct device *dev, ...@@ -304,10 +304,10 @@ static void n810_set_power_emmc(struct device *dev,
if (power_on) { if (power_on) {
gpio_set_value(N810_EMMC_VSD_GPIO, 1); gpio_set_value(N810_EMMC_VSD_GPIO, 1);
msleep(1); msleep(1);
gpio_set_value(NN810_EMMC_VIO_GPIO, 1); gpio_set_value(N810_EMMC_VIO_GPIO, 1);
msleep(1); msleep(1);
} else { } else {
gpio_set_value(NN810_EMMC_VIO_GPIO, 0); gpio_set_value(N810_EMMC_VIO_GPIO, 0);
msleep(50); msleep(50);
gpio_set_value(N810_EMMC_VSD_GPIO, 0); gpio_set_value(N810_EMMC_VSD_GPIO, 0);
msleep(50); msleep(50);
...@@ -468,7 +468,7 @@ static void n8x0_mmc_cleanup(struct device *dev) ...@@ -468,7 +468,7 @@ static void n8x0_mmc_cleanup(struct device *dev)
if (machine_is_nokia_n810()) { if (machine_is_nokia_n810()) {
gpio_free(N810_EMMC_VSD_GPIO); gpio_free(N810_EMMC_VSD_GPIO);
gpio_free(NN810_EMMC_VIO_GPIO); gpio_free(N810_EMMC_VIO_GPIO);
} }
} }
...@@ -529,7 +529,7 @@ void __init n8x0_mmc_init(void) ...@@ -529,7 +529,7 @@ void __init n8x0_mmc_init(void)
err = gpio_request(N8X0_SLOT_SWITCH_GPIO, "MMC slot switch"); err = gpio_request(N8X0_SLOT_SWITCH_GPIO, "MMC slot switch");
if (err) if (err)
return err; return;
gpio_direction_output(N8X0_SLOT_SWITCH_GPIO, 0); gpio_direction_output(N8X0_SLOT_SWITCH_GPIO, 0);
...@@ -537,17 +537,17 @@ void __init n8x0_mmc_init(void) ...@@ -537,17 +537,17 @@ void __init n8x0_mmc_init(void)
err = gpio_request(N810_EMMC_VSD_GPIO, "MMC slot 2 Vddf"); err = gpio_request(N810_EMMC_VSD_GPIO, "MMC slot 2 Vddf");
if (err) { if (err) {
gpio_free(N8X0_SLOT_SWITCH_GPIO); gpio_free(N8X0_SLOT_SWITCH_GPIO);
return err; return;
} }
gpio_direction_output(N810_EMMC_VSD_GPIO, 0); gpio_direction_output(N810_EMMC_VSD_GPIO, 0);
err = gpio_request(NN810_EMMC_VIO_GPIO, "MMC slot 2 Vdd"); err = gpio_request(N810_EMMC_VIO_GPIO, "MMC slot 2 Vdd");
if (err) { if (err) {
gpio_free(N8X0_SLOT_SWITCH_GPIO); gpio_free(N8X0_SLOT_SWITCH_GPIO);
gpio_free(N810_EMMC_VSD_GPIO); gpio_free(N810_EMMC_VSD_GPIO);
return err; return;
} }
gpio_direction_output(NN810_EMMC_VIO_GPIO, 0); gpio_direction_output(N810_EMMC_VIO_GPIO, 0);
} }
mmc_data[0] = &mmc1_data; mmc_data[0] = &mmc1_data;
......
...@@ -253,20 +253,20 @@ void __init sdp_flash_init(struct flash_partitions sdp_partition_info[]) ...@@ -253,20 +253,20 @@ void __init sdp_flash_init(struct flash_partitions sdp_partition_info[])
} }
if (norcs > GPMC_CS_NUM) if (norcs > GPMC_CS_NUM)
printk(KERN_INFO "OneNAND: Unable to find configuration " printk(KERN_INFO "NOR: Unable to find configuration "
" in GPMC\n "); "in GPMC\n");
else else
board_nor_init(sdp_partition_info[0], norcs); board_nor_init(sdp_partition_info[0], norcs);
if (onenandcs > GPMC_CS_NUM) if (onenandcs > GPMC_CS_NUM)
printk(KERN_INFO "OneNAND: Unable to find configuration " printk(KERN_INFO "OneNAND: Unable to find configuration "
" in GPMC\n "); "in GPMC\n");
else else
board_onenand_init(sdp_partition_info[1], onenandcs); board_onenand_init(sdp_partition_info[1], onenandcs);
if (nandcs > GPMC_CS_NUM) if (nandcs > GPMC_CS_NUM)
printk(KERN_INFO "NAND: Unable to find configuration " printk(KERN_INFO "NAND: Unable to find configuration "
" in GPMC\n "); "in GPMC\n");
else else
board_nand_init(sdp_partition_info[2], nandcs); board_nand_init(sdp_partition_info[2], nandcs);
} }
...@@ -96,7 +96,7 @@ static struct plat_serial8250_port serial_platform_data[] = { ...@@ -96,7 +96,7 @@ static struct plat_serial8250_port serial_platform_data[] = {
static struct platform_device zoom_debugboard_serial_device = { static struct platform_device zoom_debugboard_serial_device = {
.name = "serial8250", .name = "serial8250",
.id = 3, .id = PLAT8250_DEV_PLATFORM,
.dev = { .dev = {
.platform_data = serial_platform_data, .platform_data = serial_platform_data,
}, },
......
...@@ -280,7 +280,6 @@ static void enable_board_wakeup_source(void) ...@@ -280,7 +280,6 @@ static void enable_board_wakeup_source(void)
void __init zoom_peripherals_init(void) void __init zoom_peripherals_init(void)
{ {
omap_i2c_init(); omap_i2c_init();
omap_serial_init();
usb_musb_init(&musb_board_data); usb_musb_init(&musb_board_data);
enable_board_wakeup_source(); enable_board_wakeup_source();
} }
...@@ -895,7 +895,7 @@ static struct clk dpll4_m4x2_ck = { ...@@ -895,7 +895,7 @@ static struct clk dpll4_m4x2_ck = {
.ops = &clkops_omap2_dflt_wait, .ops = &clkops_omap2_dflt_wait,
.parent = &dpll4_m4_ck, .parent = &dpll4_m4_ck,
.enable_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), .enable_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN),
.enable_bit = OMAP3430_PWRDN_CAM_SHIFT, .enable_bit = OMAP3430_PWRDN_DSS1_SHIFT,
.flags = INVERT_ENABLE, .flags = INVERT_ENABLE,
.clkdm_name = "dpll4_clkdm", .clkdm_name = "dpll4_clkdm",
.recalc = &omap3_clkoutx2_recalc, .recalc = &omap3_clkoutx2_recalc,
......
...@@ -2671,10 +2671,10 @@ static struct omap_clk omap44xx_clks[] = { ...@@ -2671,10 +2671,10 @@ static struct omap_clk omap44xx_clks[] = {
CLK("omap-mcbsp.2", "ick", &dummy_ck, CK_443X), CLK("omap-mcbsp.2", "ick", &dummy_ck, CK_443X),
CLK("omap-mcbsp.3", "ick", &dummy_ck, CK_443X), CLK("omap-mcbsp.3", "ick", &dummy_ck, CK_443X),
CLK("omap-mcbsp.4", "ick", &dummy_ck, CK_443X), CLK("omap-mcbsp.4", "ick", &dummy_ck, CK_443X),
CLK("omap-mcspi.1", "ick", &dummy_ck, CK_443X), CLK("omap2_mcspi.1", "ick", &dummy_ck, CK_443X),
CLK("omap-mcspi.2", "ick", &dummy_ck, CK_443X), CLK("omap2_mcspi.2", "ick", &dummy_ck, CK_443X),
CLK("omap-mcspi.3", "ick", &dummy_ck, CK_443X), CLK("omap2_mcspi.3", "ick", &dummy_ck, CK_443X),
CLK("omap-mcspi.4", "ick", &dummy_ck, CK_443X), CLK("omap2_mcspi.4", "ick", &dummy_ck, CK_443X),
CLK(NULL, "uart1_ick", &dummy_ck, CK_443X), CLK(NULL, "uart1_ick", &dummy_ck, CK_443X),
CLK(NULL, "uart2_ick", &dummy_ck, CK_443X), CLK(NULL, "uart2_ick", &dummy_ck, CK_443X),
CLK(NULL, "uart3_ick", &dummy_ck, CK_443X), CLK(NULL, "uart3_ick", &dummy_ck, CK_443X),
......
...@@ -240,7 +240,7 @@ static void _omap2_clkdm_set_hwsup(struct clockdomain *clkdm, int enable) ...@@ -240,7 +240,7 @@ static void _omap2_clkdm_set_hwsup(struct clockdomain *clkdm, int enable)
bits = OMAP24XX_CLKSTCTRL_ENABLE_AUTO; bits = OMAP24XX_CLKSTCTRL_ENABLE_AUTO;
else else
bits = OMAP24XX_CLKSTCTRL_DISABLE_AUTO; bits = OMAP24XX_CLKSTCTRL_DISABLE_AUTO;
} else if (cpu_is_omap34xx() | cpu_is_omap44xx()) { } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
if (enable) if (enable)
bits = OMAP34XX_CLKSTCTRL_ENABLE_AUTO; bits = OMAP34XX_CLKSTCTRL_ENABLE_AUTO;
else else
...@@ -812,7 +812,7 @@ int omap2_clkdm_sleep(struct clockdomain *clkdm) ...@@ -812,7 +812,7 @@ int omap2_clkdm_sleep(struct clockdomain *clkdm)
cm_set_mod_reg_bits(OMAP24XX_FORCESTATE, cm_set_mod_reg_bits(OMAP24XX_FORCESTATE,
clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL); clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL);
} else if (cpu_is_omap34xx() | cpu_is_omap44xx()) { } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_SLEEP << u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_SLEEP <<
__ffs(clkdm->clktrctrl_mask)); __ffs(clkdm->clktrctrl_mask));
...@@ -856,7 +856,7 @@ int omap2_clkdm_wakeup(struct clockdomain *clkdm) ...@@ -856,7 +856,7 @@ int omap2_clkdm_wakeup(struct clockdomain *clkdm)
cm_clear_mod_reg_bits(OMAP24XX_FORCESTATE, cm_clear_mod_reg_bits(OMAP24XX_FORCESTATE,
clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL); clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL);
} else if (cpu_is_omap34xx() | cpu_is_omap44xx()) { } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_WAKEUP << u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_WAKEUP <<
__ffs(clkdm->clktrctrl_mask)); __ffs(clkdm->clktrctrl_mask));
......
...@@ -726,7 +726,7 @@ void __init omap2_init_mmc(struct omap_mmc_platform_data **mmc_data, ...@@ -726,7 +726,7 @@ void __init omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
if (!cpu_is_omap44xx()) if (!cpu_is_omap44xx())
return; return;
base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET; base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET;
irq = OMAP44XX_IRQ_MMC4; irq = OMAP44XX_IRQ_MMC5;
break; break;
default: default:
continue; continue;
......
...@@ -39,6 +39,9 @@ static int omap2_nand_gpmc_retime(void) ...@@ -39,6 +39,9 @@ static int omap2_nand_gpmc_retime(void)
struct gpmc_timings t; struct gpmc_timings t;
int err; int err;
if (!gpmc_nand_data->gpmc_t)
return 0;
memset(&t, 0, sizeof(t)); memset(&t, 0, sizeof(t));
t.sync_clk = gpmc_round_ns_to_ticks(gpmc_nand_data->gpmc_t->sync_clk); t.sync_clk = gpmc_round_ns_to_ticks(gpmc_nand_data->gpmc_t->sync_clk);
t.cs_on = gpmc_round_ns_to_ticks(gpmc_nand_data->gpmc_t->cs_on); t.cs_on = gpmc_round_ns_to_ticks(gpmc_nand_data->gpmc_t->cs_on);
......
...@@ -52,7 +52,7 @@ omap_irq_base: .word 0 ...@@ -52,7 +52,7 @@ omap_irq_base: .word 0
mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision
and \tmp, \tmp, #0x000f0000 @ only check architecture and \tmp, \tmp, #0x000f0000 @ only check architecture
cmp \tmp, #0x00060000 @ is v6? cmp \tmp, #0x00070000 @ is v6?
beq 2400f @ found v6 so it's omap24xx beq 2400f @ found v6 so it's omap24xx
mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision
and \tmp, \tmp, #0x000000f0 @ check cortex 8 or 9 and \tmp, \tmp, #0x000000f0 @ check cortex 8 or 9
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
ENTRY(omap_secondary_startup) ENTRY(omap_secondary_startup)
hold: ldr r12,=0x103 hold: ldr r12,=0x103
dsb dsb
smc @ read from AuxCoreBoot0 smc #0 @ read from AuxCoreBoot0
mov r0, r0, lsr #9 mov r0, r0, lsr #9
mrc p15, 0, r4, c0, c0, 5 mrc p15, 0, r4, c0, c0, 5
and r4, r4, #0x0f and r4, r4, #0x0f
...@@ -52,7 +52,7 @@ ENTRY(omap_modify_auxcoreboot0) ...@@ -52,7 +52,7 @@ ENTRY(omap_modify_auxcoreboot0)
stmfd sp!, {r1-r12, lr} stmfd sp!, {r1-r12, lr}
ldr r12, =0x104 ldr r12, =0x104
dsb dsb
smc smc #0
ldmfd sp!, {r1-r12, pc} ldmfd sp!, {r1-r12, pc}
END(omap_modify_auxcoreboot0) END(omap_modify_auxcoreboot0)
...@@ -60,6 +60,6 @@ ENTRY(omap_auxcoreboot_addr) ...@@ -60,6 +60,6 @@ ENTRY(omap_auxcoreboot_addr)
stmfd sp!, {r2-r12, lr} stmfd sp!, {r2-r12, lr}
ldr r12, =0x105 ldr r12, =0x105
dsb dsb
smc smc #0
ldmfd sp!, {r2-r12, pc} ldmfd sp!, {r2-r12, pc}
END(omap_auxcoreboot_addr) END(omap_auxcoreboot_addr)
...@@ -27,6 +27,6 @@ ENTRY(omap_smc1) ...@@ -27,6 +27,6 @@ ENTRY(omap_smc1)
mov r12, r0 mov r12, r0
mov r0, r1 mov r0, r1
dsb dsb
smc smc #0
ldmfd sp!, {r2-r12, pc} ldmfd sp!, {r2-r12, pc}
END(omap_smc1) END(omap_smc1)
...@@ -1511,6 +1511,9 @@ struct powerdomain *omap_hwmod_get_pwrdm(struct omap_hwmod *oh) ...@@ -1511,6 +1511,9 @@ struct powerdomain *omap_hwmod_get_pwrdm(struct omap_hwmod *oh)
c = oh->slaves[oh->_mpu_port_index]->_clk; c = oh->slaves[oh->_mpu_port_index]->_clk;
} }
if (!c->clkdm)
return NULL;
return c->clkdm->pwrdm.ptr; return c->clkdm->pwrdm.ptr;
} }
......
...@@ -222,7 +222,7 @@ void pwrdm_init(struct powerdomain **pwrdm_list) ...@@ -222,7 +222,7 @@ void pwrdm_init(struct powerdomain **pwrdm_list)
{ {
struct powerdomain **p = NULL; struct powerdomain **p = NULL;
if (cpu_is_omap24xx() | cpu_is_omap34xx()) { if (cpu_is_omap24xx() || cpu_is_omap34xx()) {
pwrstctrl_reg_offs = OMAP2_PM_PWSTCTRL; pwrstctrl_reg_offs = OMAP2_PM_PWSTCTRL;
pwrstst_reg_offs = OMAP2_PM_PWSTST; pwrstst_reg_offs = OMAP2_PM_PWSTST;
} else if (cpu_is_omap44xx()) { } else if (cpu_is_omap44xx()) {
......
...@@ -123,7 +123,7 @@ struct omap3_prcm_regs prcm_context; ...@@ -123,7 +123,7 @@ struct omap3_prcm_regs prcm_context;
u32 omap_prcm_get_reset_sources(void) u32 omap_prcm_get_reset_sources(void)
{ {
/* XXX This presumably needs modification for 34XX */ /* XXX This presumably needs modification for 34XX */
if (cpu_is_omap24xx() | cpu_is_omap34xx()) if (cpu_is_omap24xx() || cpu_is_omap34xx())
return prm_read_mod_reg(WKUP_MOD, OMAP2_RM_RSTST) & 0x7f; return prm_read_mod_reg(WKUP_MOD, OMAP2_RM_RSTST) & 0x7f;
if (cpu_is_omap44xx()) if (cpu_is_omap44xx())
return prm_read_mod_reg(WKUP_MOD, OMAP4_RM_RSTST) & 0x7f; return prm_read_mod_reg(WKUP_MOD, OMAP4_RM_RSTST) & 0x7f;
...@@ -157,7 +157,7 @@ void omap_prcm_arch_reset(char mode, const char *cmd) ...@@ -157,7 +157,7 @@ void omap_prcm_arch_reset(char mode, const char *cmd)
else else
WARN_ON(1); WARN_ON(1);
if (cpu_is_omap24xx() | cpu_is_omap34xx()) if (cpu_is_omap24xx() || cpu_is_omap34xx())
prm_set_mod_reg_bits(OMAP_RST_DPLL3, prcm_offs, prm_set_mod_reg_bits(OMAP_RST_DPLL3, prcm_offs,
OMAP2_RM_RSTCTRL); OMAP2_RM_RSTCTRL);
if (cpu_is_omap44xx()) if (cpu_is_omap44xx())
......
...@@ -115,7 +115,6 @@ static struct plat_serial8250_port serial_platform_data2[] = { ...@@ -115,7 +115,6 @@ static struct plat_serial8250_port serial_platform_data2[] = {
} }
}; };
#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
static struct plat_serial8250_port serial_platform_data3[] = { static struct plat_serial8250_port serial_platform_data3[] = {
{ {
.irq = 70, .irq = 70,
...@@ -128,23 +127,12 @@ static struct plat_serial8250_port serial_platform_data3[] = { ...@@ -128,23 +127,12 @@ static struct plat_serial8250_port serial_platform_data3[] = {
} }
}; };
static inline void omap2_set_globals_uart4(struct omap_globals *omap2_globals)
{
serial_platform_data3[0].mapbase = omap2_globals->uart4_phys;
}
#else
static inline void omap2_set_globals_uart4(struct omap_globals *omap2_globals)
{
}
#endif
void __init omap2_set_globals_uart(struct omap_globals *omap2_globals) void __init omap2_set_globals_uart(struct omap_globals *omap2_globals)
{ {
serial_platform_data0[0].mapbase = omap2_globals->uart1_phys; serial_platform_data0[0].mapbase = omap2_globals->uart1_phys;
serial_platform_data1[0].mapbase = omap2_globals->uart2_phys; serial_platform_data1[0].mapbase = omap2_globals->uart2_phys;
serial_platform_data2[0].mapbase = omap2_globals->uart3_phys; serial_platform_data2[0].mapbase = omap2_globals->uart3_phys;
if (cpu_is_omap3630() || cpu_is_omap44xx()) serial_platform_data3[0].mapbase = omap2_globals->uart4_phys;
omap2_set_globals_uart4(omap2_globals);
} }
static inline unsigned int __serial_read_reg(struct uart_port *up, static inline unsigned int __serial_read_reg(struct uart_port *up,
...@@ -550,7 +538,7 @@ static ssize_t sleep_timeout_store(struct device *dev, ...@@ -550,7 +538,7 @@ static ssize_t sleep_timeout_store(struct device *dev,
unsigned int value; unsigned int value;
if (sscanf(buf, "%u", &value) != 1) { if (sscanf(buf, "%u", &value) != 1) {
printk(KERN_ERR "sleep_timeout_store: Invalid value\n"); dev_err(dev, "sleep_timeout_store: Invalid value\n");
return -EINVAL; return -EINVAL;
} }
...@@ -664,27 +652,33 @@ void __init omap_serial_early_init(void) ...@@ -664,27 +652,33 @@ void __init omap_serial_early_init(void)
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
struct plat_serial8250_port *p = dev->platform_data; struct plat_serial8250_port *p = dev->platform_data;
/* Don't map zero-based physical address */
if (p->mapbase == 0) {
dev_warn(dev, "no physical address for uart#%d,"
" so skipping early_init...\n", i);
continue;
}
/* /*
* Module 4KB + L4 interconnect 4KB * Module 4KB + L4 interconnect 4KB
* Static mapping, never released * Static mapping, never released
*/ */
p->membase = ioremap(p->mapbase, SZ_8K); p->membase = ioremap(p->mapbase, SZ_8K);
if (!p->membase) { if (!p->membase) {
printk(KERN_ERR "ioremap failed for uart%i\n", i + 1); dev_err(dev, "ioremap failed for uart%i\n", i + 1);
continue; continue;
} }
sprintf(name, "uart%d_ick", i + 1); sprintf(name, "uart%d_ick", i + 1);
uart->ick = clk_get(NULL, name); uart->ick = clk_get(NULL, name);
if (IS_ERR(uart->ick)) { if (IS_ERR(uart->ick)) {
printk(KERN_ERR "Could not get uart%d_ick\n", i + 1); dev_err(dev, "Could not get uart%d_ick\n", i + 1);
uart->ick = NULL; uart->ick = NULL;
} }
sprintf(name, "uart%d_fck", i+1); sprintf(name, "uart%d_fck", i+1);
uart->fck = clk_get(NULL, name); uart->fck = clk_get(NULL, name);
if (IS_ERR(uart->fck)) { if (IS_ERR(uart->fck)) {
printk(KERN_ERR "Could not get uart%d_fck\n", i + 1); dev_err(dev, "Could not get uart%d_fck\n", i + 1);
uart->fck = NULL; uart->fck = NULL;
} }
...@@ -727,6 +721,13 @@ void __init omap_serial_init_port(int port) ...@@ -727,6 +721,13 @@ void __init omap_serial_init_port(int port)
pdev = &uart->pdev; pdev = &uart->pdev;
dev = &pdev->dev; dev = &pdev->dev;
/* Don't proceed if there's no clocks available */
if (unlikely(!uart->ick || !uart->fck)) {
WARN(1, "%s: can't init uart%d, no clocks available\n",
kobject_name(&dev->kobj), port);
return;
}
omap_uart_enable_clocks(uart); omap_uart_enable_clocks(uart);
omap_uart_reset(uart); omap_uart_reset(uart);
......
...@@ -44,9 +44,6 @@ ...@@ -44,9 +44,6 @@
#define NO_LENGTH_CHECK 0xffffffff #define NO_LENGTH_CHECK 0xffffffff
unsigned char omap_bootloader_tag[512];
int omap_bootloader_tag_len;
struct omap_board_config_kernel *omap_board_config; struct omap_board_config_kernel *omap_board_config;
int omap_board_config_size; int omap_board_config_size;
...@@ -100,10 +97,17 @@ EXPORT_SYMBOL(omap_get_var_config); ...@@ -100,10 +97,17 @@ EXPORT_SYMBOL(omap_get_var_config);
#include <linux/clocksource.h> #include <linux/clocksource.h>
/*
* offset_32k holds the init time counter value. It is then subtracted
* from every counter read to achieve a counter that counts time from the
* kernel boot (needed for sched_clock()).
*/
static u32 offset_32k __read_mostly;
#ifdef CONFIG_ARCH_OMAP16XX #ifdef CONFIG_ARCH_OMAP16XX
static cycle_t omap16xx_32k_read(struct clocksource *cs) static cycle_t omap16xx_32k_read(struct clocksource *cs)
{ {
return omap_readl(OMAP16XX_TIMER_32K_SYNCHRONIZED); return omap_readl(OMAP16XX_TIMER_32K_SYNCHRONIZED) - offset_32k;
} }
#else #else
#define omap16xx_32k_read NULL #define omap16xx_32k_read NULL
...@@ -112,7 +116,7 @@ static cycle_t omap16xx_32k_read(struct clocksource *cs) ...@@ -112,7 +116,7 @@ static cycle_t omap16xx_32k_read(struct clocksource *cs)
#ifdef CONFIG_ARCH_OMAP2420 #ifdef CONFIG_ARCH_OMAP2420
static cycle_t omap2420_32k_read(struct clocksource *cs) static cycle_t omap2420_32k_read(struct clocksource *cs)
{ {
return omap_readl(OMAP2420_32KSYNCT_BASE + 0x10); return omap_readl(OMAP2420_32KSYNCT_BASE + 0x10) - offset_32k;
} }
#else #else
#define omap2420_32k_read NULL #define omap2420_32k_read NULL
...@@ -121,7 +125,7 @@ static cycle_t omap2420_32k_read(struct clocksource *cs) ...@@ -121,7 +125,7 @@ static cycle_t omap2420_32k_read(struct clocksource *cs)
#ifdef CONFIG_ARCH_OMAP2430 #ifdef CONFIG_ARCH_OMAP2430
static cycle_t omap2430_32k_read(struct clocksource *cs) static cycle_t omap2430_32k_read(struct clocksource *cs)
{ {
return omap_readl(OMAP2430_32KSYNCT_BASE + 0x10); return omap_readl(OMAP2430_32KSYNCT_BASE + 0x10) - offset_32k;
} }
#else #else
#define omap2430_32k_read NULL #define omap2430_32k_read NULL
...@@ -130,7 +134,7 @@ static cycle_t omap2430_32k_read(struct clocksource *cs) ...@@ -130,7 +134,7 @@ static cycle_t omap2430_32k_read(struct clocksource *cs)
#ifdef CONFIG_ARCH_OMAP3 #ifdef CONFIG_ARCH_OMAP3
static cycle_t omap34xx_32k_read(struct clocksource *cs) static cycle_t omap34xx_32k_read(struct clocksource *cs)
{ {
return omap_readl(OMAP3430_32KSYNCT_BASE + 0x10); return omap_readl(OMAP3430_32KSYNCT_BASE + 0x10) - offset_32k;
} }
#else #else
#define omap34xx_32k_read NULL #define omap34xx_32k_read NULL
...@@ -139,7 +143,7 @@ static cycle_t omap34xx_32k_read(struct clocksource *cs) ...@@ -139,7 +143,7 @@ static cycle_t omap34xx_32k_read(struct clocksource *cs)
#ifdef CONFIG_ARCH_OMAP4 #ifdef CONFIG_ARCH_OMAP4
static cycle_t omap44xx_32k_read(struct clocksource *cs) static cycle_t omap44xx_32k_read(struct clocksource *cs)
{ {
return omap_readl(OMAP4430_32KSYNCT_BASE + 0x10); return omap_readl(OMAP4430_32KSYNCT_BASE + 0x10) - offset_32k;
} }
#else #else
#define omap44xx_32k_read NULL #define omap44xx_32k_read NULL
...@@ -227,6 +231,8 @@ static int __init omap_init_clocksource_32k(void) ...@@ -227,6 +231,8 @@ static int __init omap_init_clocksource_32k(void)
clocksource_32k.mult = clocksource_hz2mult(32768, clocksource_32k.mult = clocksource_hz2mult(32768,
clocksource_32k.shift); clocksource_32k.shift);
offset_32k = clocksource_32k.read(&clocksource_32k);
if (clocksource_register(&clocksource_32k)) if (clocksource_register(&clocksource_32k))
printk(err, clocksource_32k.name); printk(err, clocksource_32k.name);
} }
......
...@@ -937,6 +937,15 @@ void omap_start_dma(int lch) ...@@ -937,6 +937,15 @@ void omap_start_dma(int lch)
{ {
u32 l; u32 l;
/*
* The CPC/CDAC register needs to be initialized to zero
* before starting dma transfer.
*/
if (cpu_is_omap15xx())
dma_write(0, CPC(lch));
else
dma_write(0, CDAC(lch));
if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) { if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) {
int next_lch, cur_lch; int next_lch, cur_lch;
char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT]; char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT];
......
...@@ -798,7 +798,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) ...@@ -798,7 +798,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
case METHOD_MPUIO: case METHOD_MPUIO:
reg += OMAP_MPUIO_GPIO_INT_EDGE; reg += OMAP_MPUIO_GPIO_INT_EDGE;
l = __raw_readl(reg); l = __raw_readl(reg);
if (trigger & IRQ_TYPE_EDGE_BOTH) if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
bank->toggle_mask |= 1 << gpio; bank->toggle_mask |= 1 << gpio;
if (trigger & IRQ_TYPE_EDGE_RISING) if (trigger & IRQ_TYPE_EDGE_RISING)
l |= 1 << gpio; l |= 1 << gpio;
...@@ -812,7 +812,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) ...@@ -812,7 +812,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
case METHOD_GPIO_1510: case METHOD_GPIO_1510:
reg += OMAP1510_GPIO_INT_CONTROL; reg += OMAP1510_GPIO_INT_CONTROL;
l = __raw_readl(reg); l = __raw_readl(reg);
if (trigger & IRQ_TYPE_EDGE_BOTH) if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
bank->toggle_mask |= 1 << gpio; bank->toggle_mask |= 1 << gpio;
if (trigger & IRQ_TYPE_EDGE_RISING) if (trigger & IRQ_TYPE_EDGE_RISING)
l |= 1 << gpio; l |= 1 << gpio;
...@@ -846,7 +846,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) ...@@ -846,7 +846,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
case METHOD_GPIO_7XX: case METHOD_GPIO_7XX:
reg += OMAP7XX_GPIO_INT_CONTROL; reg += OMAP7XX_GPIO_INT_CONTROL;
l = __raw_readl(reg); l = __raw_readl(reg);
if (trigger & IRQ_TYPE_EDGE_BOTH) if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
bank->toggle_mask |= 1 << gpio; bank->toggle_mask |= 1 << gpio;
if (trigger & IRQ_TYPE_EDGE_RISING) if (trigger & IRQ_TYPE_EDGE_RISING)
l |= 1 << gpio; l |= 1 << gpio;
......
...@@ -345,8 +345,6 @@ ...@@ -345,8 +345,6 @@
#define INT_34XX_MMC3_IRQ 94 #define INT_34XX_MMC3_IRQ 94
#define INT_34XX_GPT12_IRQ 95 #define INT_34XX_GPT12_IRQ 95
#define INT_34XX_BENCH_MPU_EMUL 3
#define INT_35XX_HECC0_IRQ 24 #define INT_35XX_HECC0_IRQ 24
#define INT_35XX_HECC1_IRQ 28 #define INT_35XX_HECC1_IRQ 28
#define INT_35XX_EMAC_C0_RXTHRESH_IRQ 67 #define INT_35XX_EMAC_C0_RXTHRESH_IRQ 67
......
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
#define OMAP44XX_MCBSP1_BASE 0x49022000 #define OMAP44XX_MCBSP1_BASE 0x49022000
#define OMAP44XX_MCBSP2_BASE 0x49024000 #define OMAP44XX_MCBSP2_BASE 0x49024000
#define OMAP44XX_MCBSP3_BASE 0x49026000 #define OMAP44XX_MCBSP3_BASE 0x49026000
#define OMAP44XX_MCBSP4_BASE 0x48074000 #define OMAP44XX_MCBSP4_BASE 0x48096000
#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) #if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
......
...@@ -29,4 +29,11 @@ struct omap_nand_platform_data { ...@@ -29,4 +29,11 @@ struct omap_nand_platform_data {
/* size (4 KiB) for IO mapping */ /* size (4 KiB) for IO mapping */
#define NAND_IO_SIZE SZ_4K #define NAND_IO_SIZE SZ_4K
#if defined(CONFIG_MTD_NAND_OMAP2) || defined(CONFIG_MTD_NAND_OMAP2_MODULE)
extern int gpmc_nand_init(struct omap_nand_platform_data *d); extern int gpmc_nand_init(struct omap_nand_platform_data *d);
#else
static inline int gpmc_nand_init(struct omap_nand_platform_data *d)
{
return 0;
}
#endif
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
#define OMAP4430_PRM_BASE 0x4a306000 #define OMAP4430_PRM_BASE 0x4a306000
#define OMAP44XX_GPMC_BASE 0x50000000 #define OMAP44XX_GPMC_BASE 0x50000000
#define OMAP443X_SCM_BASE 0x4a002000 #define OMAP443X_SCM_BASE 0x4a002000
#define OMAP443X_CTRL_BASE OMAP443X_SCM_BASE #define OMAP443X_CTRL_BASE 0x4a100000
#define OMAP44XX_IC_BASE 0x48200000 #define OMAP44XX_IC_BASE 0x48200000
#define OMAP44XX_IVA_INTC_BASE 0x40000000 #define OMAP44XX_IVA_INTC_BASE 0x40000000
#define IRQ_SIR_IRQ 0x0040 #define IRQ_SIR_IRQ 0x0040
......
...@@ -294,8 +294,8 @@ struct omap_hwmod_class_sysconfig { ...@@ -294,8 +294,8 @@ struct omap_hwmod_class_sysconfig {
u16 rev_offs; u16 rev_offs;
u16 sysc_offs; u16 sysc_offs;
u16 syss_offs; u16 syss_offs;
u16 sysc_flags;
u8 idlemodes; u8 idlemodes;
u8 sysc_flags;
u8 clockact; u8 clockact;
struct omap_hwmod_sysc_fields *sysc_fields; struct omap_hwmod_sysc_fields *sysc_fields;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment