Commit be2874cb authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'fixes-3.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

These are the bug fixes that have accumulated since 3.3-rc3 in arm-soc.
The majority of them are regression fixes for stuff that broke during
the merge 3.3 window.

The notable ones are:

* The at91 ata drivers both broke because of an earlier cleanup patch that
  some other patches were based on. Jean-Christophe decided to remove
  the legacy at91_ide driver and fix the new-style at91-pata driver while
  keeping the cleanup patch. I almost rejected the patches for being too
  late and too big but in the end decided to accept them because they
  fix a regression.

* A patch fixing build breakage from the sysdev-to-device conversion
  colliding with other changes touches a number of mach-s3c files.

* b0654037 "ARM: orion: Fix Orion5x GPIO regression from MPP cleanup"
  is a mechanical change that unfortunately touches a lot of lines
  that should up in the diffstat.

* tag 'fixes-3.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (28 commits)
  ARM: at91: drop ide driver in favor of the pata one
  pata/at91: use newly introduced SMC accessors
  ARM: at91: add accessor to manage SMC
  ARM: at91:rtc/rtc-at91sam9: ioremap register bank
  ARM: at91: USB AT91 gadget registration for module
  ep93xx: fix build of vision_ep93xx.c
  ARM: OMAP2xxx: PM: fix OMAP2xxx-specific UART idle bug in v3.3
  ARM: orion: Fix USB phy for orion5x.
  ARM: orion: Fix Orion5x GPIO regression from MPP cleanup
  ARM: EXYNOS: Add cpu-offset property in gic device tree node
  ARM: EXYNOS: Bring exynos4-dt up to date
  ARM: OMAP3: cm-t35: fix section mismatch warning
  ARM: OMAP2: Fix the OMAP2 only build break seen with 2011+ ARM tool-chains
  ARM: tegra: paz00: fix wrong UART port on mini-pcie plug
  ARM: tegra: paz00: fix wrong SD1 power gpio
  i2c: tegra: Add devexit_p() for remove
  ARM: EXYNOS: Correct M-5MOLS sensor clock frequency on Universal C210 board
  ARM: EXYNOS: Correct framebuffer window size on Nuri board
  ARM: SAMSUNG: Fix missing api-change from subsys_interface change
  ARM: EXYNOS: Fix "warning: initialization from incompatible pointer type"
  ...
parents 584216b7 a5368e77
...@@ -29,6 +29,7 @@ gic:interrupt-controller@10490000 { ...@@ -29,6 +29,7 @@ gic:interrupt-controller@10490000 {
compatible = "arm,cortex-a9-gic"; compatible = "arm,cortex-a9-gic";
#interrupt-cells = <3>; #interrupt-cells = <3>;
interrupt-controller; interrupt-controller;
cpu-offset = <0x8000>;
reg = <0x10490000 0x1000>, <0x10480000 0x100>; reg = <0x10490000 0x1000>, <0x10480000 0x100>;
}; };
......
...@@ -46,11 +46,11 @@ serial@70006040 { ...@@ -46,11 +46,11 @@ serial@70006040 {
}; };
serial@70006200 { serial@70006200 {
status = "disable"; clock-frequency = <216000000>;
}; };
serial@70006300 { serial@70006300 {
clock-frequency = <216000000>; status = "disable";
}; };
serial@70006400 { serial@70006400 {
...@@ -60,7 +60,7 @@ serial@70006400 { ...@@ -60,7 +60,7 @@ serial@70006400 {
sdhci@c8000000 { sdhci@c8000000 {
cd-gpios = <&gpio 173 0>; /* gpio PV5 */ cd-gpios = <&gpio 173 0>; /* gpio PV5 */
wp-gpios = <&gpio 57 0>; /* gpio PH1 */ wp-gpios = <&gpio 57 0>; /* gpio PH1 */
power-gpios = <&gpio 155 0>; /* gpio PT3 */ power-gpios = <&gpio 169 0>; /* gpio PV1 */
}; };
sdhci@c8000200 { sdhci@c8000200 {
......
...@@ -83,7 +83,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {} ...@@ -83,7 +83,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
* USB Device (Gadget) * USB Device (Gadget)
* -------------------------------------------------------------------- */ * -------------------------------------------------------------------- */
#ifdef CONFIG_USB_AT91 #if defined(CONFIG_USB_AT91) || defined(CONFIG_USB_AT91_MODULE)
static struct at91_udc_data udc_data; static struct at91_udc_data udc_data;
static struct resource udc_resources[] = { static struct resource udc_resources[] = {
......
...@@ -84,7 +84,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {} ...@@ -84,7 +84,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
* USB Device (Gadget) * USB Device (Gadget)
* -------------------------------------------------------------------- */ * -------------------------------------------------------------------- */
#ifdef CONFIG_USB_AT91 #if defined(CONFIG_USB_AT91) || defined(CONFIG_USB_AT91_MODULE)
static struct at91_udc_data udc_data; static struct at91_udc_data udc_data;
static struct resource udc_resources[] = { static struct resource udc_resources[] = {
...@@ -1215,8 +1215,7 @@ void __init at91_add_device_serial(void) {} ...@@ -1215,8 +1215,7 @@ void __init at91_add_device_serial(void) {}
* CF/IDE * CF/IDE
* -------------------------------------------------------------------- */ * -------------------------------------------------------------------- */
#if defined(CONFIG_BLK_DEV_IDE_AT91) || defined(CONFIG_BLK_DEV_IDE_AT91_MODULE) || \ #if defined(CONFIG_PATA_AT91) || defined(CONFIG_PATA_AT91_MODULE) || \
defined(CONFIG_PATA_AT91) || defined(CONFIG_PATA_AT91_MODULE) || \
defined(CONFIG_AT91_CF) || defined(CONFIG_AT91_CF_MODULE) defined(CONFIG_AT91_CF) || defined(CONFIG_AT91_CF_MODULE)
static struct at91_cf_data cf0_data; static struct at91_cf_data cf0_data;
...@@ -1313,10 +1312,8 @@ void __init at91_add_device_cf(struct at91_cf_data *data) ...@@ -1313,10 +1312,8 @@ void __init at91_add_device_cf(struct at91_cf_data *data)
if (data->flags & AT91_CF_TRUE_IDE) if (data->flags & AT91_CF_TRUE_IDE)
#if defined(CONFIG_PATA_AT91) || defined(CONFIG_PATA_AT91_MODULE) #if defined(CONFIG_PATA_AT91) || defined(CONFIG_PATA_AT91_MODULE)
pdev->name = "pata_at91"; pdev->name = "pata_at91";
#elif defined(CONFIG_BLK_DEV_IDE_AT91) || defined(CONFIG_BLK_DEV_IDE_AT91_MODULE)
pdev->name = "at91_ide";
#else #else
#warning "board requires AT91_CF_TRUE_IDE: enable either at91_ide or pata_at91" #warning "board requires AT91_CF_TRUE_IDE: enable pata_at91"
#endif #endif
else else
pdev->name = "at91_cf"; pdev->name = "at91_cf";
......
...@@ -87,7 +87,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {} ...@@ -87,7 +87,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
* USB Device (Gadget) * USB Device (Gadget)
* -------------------------------------------------------------------- */ * -------------------------------------------------------------------- */
#ifdef CONFIG_USB_AT91 #if defined(CONFIG_USB_AT91) || defined(CONFIG_USB_AT91_MODULE)
static struct at91_udc_data udc_data; static struct at91_udc_data udc_data;
static struct resource udc_resources[] = { static struct resource udc_resources[] = {
......
...@@ -92,7 +92,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {} ...@@ -92,7 +92,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
* USB Device (Gadget) * USB Device (Gadget)
* -------------------------------------------------------------------- */ * -------------------------------------------------------------------- */
#ifdef CONFIG_USB_AT91 #if defined(CONFIG_USB_AT91) || defined(CONFIG_USB_AT91_MODULE)
static struct at91_udc_data udc_data; static struct at91_udc_data udc_data;
static struct resource udc_resources[] = { static struct resource udc_resources[] = {
...@@ -355,8 +355,8 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {} ...@@ -355,8 +355,8 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {}
* Compact Flash (PCMCIA or IDE) * Compact Flash (PCMCIA or IDE)
* -------------------------------------------------------------------- */ * -------------------------------------------------------------------- */
#if defined(CONFIG_AT91_CF) || defined(CONFIG_AT91_CF_MODULE) || \ #if defined(CONFIG_PATA_AT91) || defined(CONFIG_PATA_AT91_MODULE) || \
defined(CONFIG_BLK_DEV_IDE_AT91) || defined(CONFIG_BLK_DEV_IDE_AT91_MODULE) defined(CONFIG_AT91_CF) || defined(CONFIG_AT91_CF_MODULE)
static struct at91_cf_data cf0_data; static struct at91_cf_data cf0_data;
...@@ -450,7 +450,7 @@ void __init at91_add_device_cf(struct at91_cf_data *data) ...@@ -450,7 +450,7 @@ void __init at91_add_device_cf(struct at91_cf_data *data)
at91_set_A_periph(AT91_PIN_PD9, 0); /* CFCE2 */ at91_set_A_periph(AT91_PIN_PD9, 0); /* CFCE2 */
at91_set_A_periph(AT91_PIN_PD14, 0); /* CFNRW */ at91_set_A_periph(AT91_PIN_PD14, 0); /* CFNRW */
pdev->name = (data->flags & AT91_CF_TRUE_IDE) ? "at91_ide" : "at91_cf"; pdev->name = (data->flags & AT91_CF_TRUE_IDE) ? "pata_at91" : "at91_cf";
platform_device_register(pdev); platform_device_register(pdev);
} }
#else #else
......
...@@ -18,6 +18,35 @@ ...@@ -18,6 +18,35 @@
#include <mach/cpu.h> #include <mach/cpu.h>
#ifndef __ASSEMBLY__
struct sam9_smc_config {
/* Setup register */
u8 ncs_read_setup;
u8 nrd_setup;
u8 ncs_write_setup;
u8 nwe_setup;
/* Pulse register */
u8 ncs_read_pulse;
u8 nrd_pulse;
u8 ncs_write_pulse;
u8 nwe_pulse;
/* Cycle register */
u16 read_cycle;
u16 write_cycle;
/* Mode register */
u32 mode;
u8 tdf_cycles:4;
};
extern void sam9_smc_configure(int id, int cs, struct sam9_smc_config *config);
extern void sam9_smc_read(int id, int cs, struct sam9_smc_config *config);
extern void sam9_smc_read_mode(int id, int cs, struct sam9_smc_config *config);
extern void sam9_smc_write_mode(int id, int cs, struct sam9_smc_config *config);
#endif
#define AT91_SMC_SETUP 0x00 /* Setup Register for CS n */ #define AT91_SMC_SETUP 0x00 /* Setup Register for CS n */
#define AT91_SMC_NWESETUP (0x3f << 0) /* NWE Setup Length */ #define AT91_SMC_NWESETUP (0x3f << 0) /* NWE Setup Length */
#define AT91_SMC_NWESETUP_(x) ((x) << 0) #define AT91_SMC_NWESETUP_(x) ((x) << 0)
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
* linux/arch/arm/mach-at91/sam9_smc.c * linux/arch/arm/mach-at91/sam9_smc.c
* *
* Copyright (C) 2008 Andrew Victor * Copyright (C) 2008 Andrew Victor
* Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as * it under the terms of the GNU General Public License version 2 as
...@@ -22,7 +23,22 @@ ...@@ -22,7 +23,22 @@
static void __iomem *smc_base_addr[2]; static void __iomem *smc_base_addr[2];
static void __init sam9_smc_cs_configure(void __iomem *base, struct sam9_smc_config* config) static void sam9_smc_cs_write_mode(void __iomem *base,
struct sam9_smc_config *config)
{
__raw_writel(config->mode
| AT91_SMC_TDF_(config->tdf_cycles),
base + AT91_SMC_MODE);
}
void sam9_smc_write_mode(int id, int cs,
struct sam9_smc_config *config)
{
sam9_smc_cs_write_mode(AT91_SMC_CS(id, cs), config);
}
static void sam9_smc_cs_configure(void __iomem *base,
struct sam9_smc_config *config)
{ {
/* Setup register */ /* Setup register */
...@@ -45,16 +61,66 @@ static void __init sam9_smc_cs_configure(void __iomem *base, struct sam9_smc_con ...@@ -45,16 +61,66 @@ static void __init sam9_smc_cs_configure(void __iomem *base, struct sam9_smc_con
base + AT91_SMC_CYCLE); base + AT91_SMC_CYCLE);
/* Mode register */ /* Mode register */
__raw_writel(config->mode sam9_smc_cs_write_mode(base, config);
| AT91_SMC_TDF_(config->tdf_cycles),
base + AT91_SMC_MODE);
} }
void __init sam9_smc_configure(int id, int cs, struct sam9_smc_config* config) void sam9_smc_configure(int id, int cs,
struct sam9_smc_config *config)
{ {
sam9_smc_cs_configure(AT91_SMC_CS(id, cs), config); sam9_smc_cs_configure(AT91_SMC_CS(id, cs), config);
} }
static void sam9_smc_cs_read_mode(void __iomem *base,
struct sam9_smc_config *config)
{
u32 val = __raw_readl(base + AT91_SMC_MODE);
config->mode = (val & ~AT91_SMC_NWECYCLE);
config->tdf_cycles = (val & AT91_SMC_NWECYCLE) >> 16 ;
}
void sam9_smc_read_mode(int id, int cs,
struct sam9_smc_config *config)
{
sam9_smc_cs_read_mode(AT91_SMC_CS(id, cs), config);
}
static void sam9_smc_cs_read(void __iomem *base,
struct sam9_smc_config *config)
{
u32 val;
/* Setup register */
val = __raw_readl(base + AT91_SMC_SETUP);
config->nwe_setup = val & AT91_SMC_NWESETUP;
config->ncs_write_setup = (val & AT91_SMC_NCS_WRSETUP) >> 8;
config->nrd_setup = (val & AT91_SMC_NRDSETUP) >> 16;
config->ncs_read_setup = (val & AT91_SMC_NCS_RDSETUP) >> 24;
/* Pulse register */
val = __raw_readl(base + AT91_SMC_PULSE);
config->nwe_setup = val & AT91_SMC_NWEPULSE;
config->ncs_write_pulse = (val & AT91_SMC_NCS_WRPULSE) >> 8;
config->nrd_pulse = (val & AT91_SMC_NRDPULSE) >> 16;
config->ncs_read_pulse = (val & AT91_SMC_NCS_RDPULSE) >> 24;
/* Cycle register */
val = __raw_readl(base + AT91_SMC_CYCLE);
config->write_cycle = val & AT91_SMC_NWECYCLE;
config->read_cycle = (val & AT91_SMC_NRDCYCLE) >> 16;
/* Mode register */
sam9_smc_cs_read_mode(base, config);
}
void sam9_smc_read(int id, int cs, struct sam9_smc_config *config)
{
sam9_smc_cs_read(AT91_SMC_CS(id, cs), config);
}
void __init at91sam9_ioremap_smc(int id, u32 addr) void __init at91sam9_ioremap_smc(int id, u32 addr)
{ {
if (id > 1) { if (id > 1) {
......
...@@ -8,27 +8,4 @@ ...@@ -8,27 +8,4 @@
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
struct sam9_smc_config {
/* Setup register */
u8 ncs_read_setup;
u8 nrd_setup;
u8 ncs_write_setup;
u8 nwe_setup;
/* Pulse register */
u8 ncs_read_pulse;
u8 nrd_pulse;
u8 ncs_write_pulse;
u8 nwe_pulse;
/* Cycle register */
u16 read_cycle;
u16 write_cycle;
/* Mode register */
u32 mode;
u8 tdf_cycles:4;
};
extern void __init sam9_smc_configure(int id, int cs, struct sam9_smc_config* config);
extern void __init at91sam9_ioremap_smc(int id, u32 addr); extern void __init at91sam9_ioremap_smc(int id, u32 addr);
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <plat/time.h> #include <plat/time.h>
#include <plat/ehci-orion.h>
#include <plat/common.h> #include <plat/common.h>
#include <plat/addr-map.h> #include <plat/addr-map.h>
#include "common.h" #include "common.h"
...@@ -71,7 +72,7 @@ void __init dove_map_io(void) ...@@ -71,7 +72,7 @@ void __init dove_map_io(void)
****************************************************************************/ ****************************************************************************/
void __init dove_ehci0_init(void) void __init dove_ehci0_init(void)
{ {
orion_ehci_init(DOVE_USB0_PHYS_BASE, IRQ_DOVE_USB0); orion_ehci_init(DOVE_USB0_PHYS_BASE, IRQ_DOVE_USB0, EHCI_PHY_NA);
} }
/***************************************************************************** /*****************************************************************************
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/fb.h> #include <mach/fb.h>
#include <mach/ep93xx_spi.h> #include <mach/ep93xx_spi.h>
#include <mach/gpio-ep93xx.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
...@@ -153,7 +154,6 @@ static struct i2c_board_info vision_i2c_info[] __initdata = { ...@@ -153,7 +154,6 @@ static struct i2c_board_info vision_i2c_info[] __initdata = {
}, { }, {
I2C_BOARD_INFO("pca9539", 0x74), I2C_BOARD_INFO("pca9539", 0x74),
.platform_data = &pca953x_74_gpio_data, .platform_data = &pca953x_74_gpio_data,
.irq = gpio_to_irq(EP93XX_GPIO_LINE_F(7)),
}, { }, {
I2C_BOARD_INFO("pca9539", 0x75), I2C_BOARD_INFO("pca9539", 0x75),
.platform_data = &pca953x_75_gpio_data, .platform_data = &pca953x_75_gpio_data,
...@@ -348,6 +348,8 @@ static void __init vision_init_machine(void) ...@@ -348,6 +348,8 @@ static void __init vision_init_machine(void)
"pca9539:74")) "pca9539:74"))
pr_warn("cannot request interrupt gpio for pca9539:74\n"); pr_warn("cannot request interrupt gpio for pca9539:74\n");
vision_i2c_info[1].irq = gpio_to_irq(EP93XX_GPIO_LINE_F(7));
ep93xx_register_i2c(&vision_i2c_gpio_data, vision_i2c_info, ep93xx_register_i2c(&vision_i2c_gpio_data, vision_i2c_info,
ARRAY_SIZE(vision_i2c_info)); ARRAY_SIZE(vision_i2c_info));
ep93xx_register_spi(&vision_spi_master, vision_spi_board_info, ep93xx_register_spi(&vision_spi_master, vision_spi_board_info,
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include "common.h" #include "common.h"
#ifdef CONFIG_PM_SLEEP
static struct sleep_save exynos4210_clock_save[] = { static struct sleep_save exynos4210_clock_save[] = {
SAVE_ITEM(S5P_CLKSRC_IMAGE), SAVE_ITEM(S5P_CLKSRC_IMAGE),
SAVE_ITEM(S5P_CLKSRC_LCD1), SAVE_ITEM(S5P_CLKSRC_LCD1),
...@@ -42,6 +43,7 @@ static struct sleep_save exynos4210_clock_save[] = { ...@@ -42,6 +43,7 @@ static struct sleep_save exynos4210_clock_save[] = {
SAVE_ITEM(S5P_CLKGATE_IP_LCD1), SAVE_ITEM(S5P_CLKGATE_IP_LCD1),
SAVE_ITEM(S5P_CLKGATE_IP_PERIR_4210), SAVE_ITEM(S5P_CLKGATE_IP_PERIR_4210),
}; };
#endif
static struct clksrc_clk *sysclks[] = { static struct clksrc_clk *sysclks[] = {
/* nothing here yet */ /* nothing here yet */
......
...@@ -32,12 +32,14 @@ ...@@ -32,12 +32,14 @@
#include "common.h" #include "common.h"
#ifdef CONFIG_PM_SLEEP
static struct sleep_save exynos4212_clock_save[] = { static struct sleep_save exynos4212_clock_save[] = {
SAVE_ITEM(S5P_CLKSRC_IMAGE), SAVE_ITEM(S5P_CLKSRC_IMAGE),
SAVE_ITEM(S5P_CLKDIV_IMAGE), SAVE_ITEM(S5P_CLKDIV_IMAGE),
SAVE_ITEM(S5P_CLKGATE_IP_IMAGE_4212), SAVE_ITEM(S5P_CLKGATE_IP_IMAGE_4212),
SAVE_ITEM(S5P_CLKGATE_IP_PERIR_4212), SAVE_ITEM(S5P_CLKGATE_IP_PERIR_4212),
}; };
#endif
static struct clk *clk_src_mpll_user_list[] = { static struct clk *clk_src_mpll_user_list[] = {
[0] = &clk_fin_mpll, [0] = &clk_fin_mpll,
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include "common.h" #include "common.h"
#ifdef CONFIG_PM_SLEEP
static struct sleep_save exynos4_clock_save[] = { static struct sleep_save exynos4_clock_save[] = {
SAVE_ITEM(S5P_CLKDIV_LEFTBUS), SAVE_ITEM(S5P_CLKDIV_LEFTBUS),
SAVE_ITEM(S5P_CLKGATE_IP_LEFTBUS), SAVE_ITEM(S5P_CLKGATE_IP_LEFTBUS),
...@@ -93,6 +94,7 @@ static struct sleep_save exynos4_clock_save[] = { ...@@ -93,6 +94,7 @@ static struct sleep_save exynos4_clock_save[] = {
SAVE_ITEM(S5P_CLKGATE_SCLKCPU), SAVE_ITEM(S5P_CLKGATE_SCLKCPU),
SAVE_ITEM(S5P_CLKGATE_IP_CPU), SAVE_ITEM(S5P_CLKGATE_IP_CPU),
}; };
#endif
struct clk clk_sclk_hdmi27m = { struct clk clk_sclk_hdmi27m = {
.name = "sclk_hdmi27m", .name = "sclk_hdmi27m",
......
...@@ -15,11 +15,13 @@ ...@@ -15,11 +15,13 @@
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
#include <mach/map.h> #include <mach/map.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/regs-serial.h> #include <plat/regs-serial.h>
#include <plat/exynos4.h>
#include "common.h"
/* /*
* The following lookup table is used to override device names when devices * The following lookup table is used to override device names when devices
...@@ -60,7 +62,7 @@ static const struct of_dev_auxdata exynos4210_auxdata_lookup[] __initconst = { ...@@ -60,7 +62,7 @@ static const struct of_dev_auxdata exynos4210_auxdata_lookup[] __initconst = {
static void __init exynos4210_dt_map_io(void) static void __init exynos4210_dt_map_io(void)
{ {
s5p_init_io(NULL, 0, S5P_VA_CHIPID); exynos_init_io(NULL, 0);
s3c24xx_init_clocks(24000000); s3c24xx_init_clocks(24000000);
} }
...@@ -79,7 +81,9 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)") ...@@ -79,7 +81,9 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)")
/* Maintainer: Thomas Abraham <thomas.abraham@linaro.org> */ /* Maintainer: Thomas Abraham <thomas.abraham@linaro.org> */
.init_irq = exynos4_init_irq, .init_irq = exynos4_init_irq,
.map_io = exynos4210_dt_map_io, .map_io = exynos4210_dt_map_io,
.handle_irq = gic_handle_irq,
.init_machine = exynos4210_dt_machine_init, .init_machine = exynos4210_dt_machine_init,
.timer = &exynos4_timer, .timer = &exynos4_timer,
.dt_compat = exynos4210_dt_compat, .dt_compat = exynos4210_dt_compat,
.restart = exynos4_restart,
MACHINE_END MACHINE_END
...@@ -220,14 +220,14 @@ static struct s3c_fb_pd_win nuri_fb_win0 = { ...@@ -220,14 +220,14 @@ static struct s3c_fb_pd_win nuri_fb_win0 = {
.lower_margin = 1, .lower_margin = 1,
.hsync_len = 48, .hsync_len = 48,
.vsync_len = 3, .vsync_len = 3,
.xres = 1280, .xres = 1024,
.yres = 800, .yres = 600,
.refresh = 60, .refresh = 60,
}, },
.max_bpp = 24, .max_bpp = 24,
.default_bpp = 16, .default_bpp = 16,
.virtual_x = 1280, .virtual_x = 1024,
.virtual_y = 800, .virtual_y = 2 * 600,
}; };
static struct s3c_fb_platdata nuri_fb_pdata __initdata = { static struct s3c_fb_platdata nuri_fb_pdata __initdata = {
......
...@@ -910,7 +910,7 @@ static struct s5p_fimc_isp_info universal_camera_sensors[] = { ...@@ -910,7 +910,7 @@ static struct s5p_fimc_isp_info universal_camera_sensors[] = {
.bus_type = FIMC_MIPI_CSI2, .bus_type = FIMC_MIPI_CSI2,
.board_info = &m5mols_board_info, .board_info = &m5mols_board_info,
.i2c_bus_num = 0, .i2c_bus_num = 0,
.clk_frequency = 21600000UL, .clk_frequency = 24000000UL,
.csi_data_align = 32, .csi_data_align = 32,
}, },
}; };
......
...@@ -206,7 +206,7 @@ static void exynos4_pm_prepare(void) ...@@ -206,7 +206,7 @@ static void exynos4_pm_prepare(void)
} }
static int exynos4_pm_add(struct device *dev) static int exynos4_pm_add(struct device *dev, struct subsys_interface *sif)
{ {
pm_cpu_prep = exynos4_pm_prepare; pm_cpu_prep = exynos4_pm_prepare;
pm_cpu_sleep = exynos4_cpu_suspend; pm_cpu_sleep = exynos4_cpu_suspend;
...@@ -384,7 +384,9 @@ static void exynos4_pm_resume(void) ...@@ -384,7 +384,9 @@ static void exynos4_pm_resume(void)
exynos4_restore_pll(); exynos4_restore_pll();
#ifdef CONFIG_SMP
scu_enable(S5P_VA_SCU); scu_enable(S5P_VA_SCU);
#endif
#ifdef CONFIG_CACHE_L2X0 #ifdef CONFIG_CACHE_L2X0
s3c_pm_do_restore_core(exynos4_l2cc_save, ARRAY_SIZE(exynos4_l2cc_save)); s3c_pm_do_restore_core(exynos4_l2cc_save, ARRAY_SIZE(exynos4_l2cc_save));
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#include <plat/cache-feroceon-l2.h> #include <plat/cache-feroceon-l2.h>
#include <plat/mvsdio.h> #include <plat/mvsdio.h>
#include <plat/orion_nand.h> #include <plat/orion_nand.h>
#include <plat/ehci-orion.h>
#include <plat/common.h> #include <plat/common.h>
#include <plat/time.h> #include <plat/time.h>
#include <plat/addr-map.h> #include <plat/addr-map.h>
...@@ -73,7 +74,7 @@ unsigned int kirkwood_clk_ctrl = CGC_DUNIT | CGC_RESERVED; ...@@ -73,7 +74,7 @@ unsigned int kirkwood_clk_ctrl = CGC_DUNIT | CGC_RESERVED;
void __init kirkwood_ehci_init(void) void __init kirkwood_ehci_init(void)
{ {
kirkwood_clk_ctrl |= CGC_USB0; kirkwood_clk_ctrl |= CGC_USB0;
orion_ehci_init(USB_PHYS_BASE, IRQ_KIRKWOOD_USB); orion_ehci_init(USB_PHYS_BASE, IRQ_KIRKWOOD_USB, EHCI_PHY_NA);
} }
......
This diff is collapsed.
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <mach/mv78xx0.h> #include <mach/mv78xx0.h>
#include <mach/bridge-regs.h> #include <mach/bridge-regs.h>
#include <plat/cache-feroceon-l2.h> #include <plat/cache-feroceon-l2.h>
#include <plat/ehci-orion.h>
#include <plat/orion_nand.h> #include <plat/orion_nand.h>
#include <plat/time.h> #include <plat/time.h>
#include <plat/common.h> #include <plat/common.h>
...@@ -169,7 +170,7 @@ void __init mv78xx0_map_io(void) ...@@ -169,7 +170,7 @@ void __init mv78xx0_map_io(void)
****************************************************************************/ ****************************************************************************/
void __init mv78xx0_ehci0_init(void) void __init mv78xx0_ehci0_init(void)
{ {
orion_ehci_init(USB0_PHYS_BASE, IRQ_MV78XX0_USB_0); orion_ehci_init(USB0_PHYS_BASE, IRQ_MV78XX0_USB_0, EHCI_PHY_NA);
} }
......
This diff is collapsed.
...@@ -11,9 +11,9 @@ hwmod-common = omap_hwmod.o \ ...@@ -11,9 +11,9 @@ hwmod-common = omap_hwmod.o \
omap_hwmod_common_data.o omap_hwmod_common_data.o
clock-common = clock.o clock_common_data.o \ clock-common = clock.o clock_common_data.o \
clkt_dpll.o clkt_clksel.o clkt_dpll.o clkt_clksel.o
secure-common = omap-smc.o omap-secure.o secure-common = omap-smc.o omap-secure.o
obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(hwmod-common) $(secure-common) obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(hwmod-common)
obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(hwmod-common) $(secure-common) obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(hwmod-common) $(secure-common)
obj-$(CONFIG_ARCH_OMAP4) += prm44xx.o $(hwmod-common) $(secure-common) obj-$(CONFIG_ARCH_OMAP4) += prm44xx.o $(hwmod-common) $(secure-common)
......
...@@ -437,7 +437,7 @@ static struct usbhs_omap_board_data usbhs_bdata __initdata = { ...@@ -437,7 +437,7 @@ static struct usbhs_omap_board_data usbhs_bdata __initdata = {
.reset_gpio_port[2] = -EINVAL .reset_gpio_port[2] = -EINVAL
}; };
static void cm_t35_init_usbh(void) static void __init cm_t35_init_usbh(void)
{ {
int err; int err;
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <linux/i2c/twl.h> #include <linux/i2c/twl.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/hardware/gic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <plat/board.h> #include <plat/board.h>
...@@ -102,6 +103,7 @@ DT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)") ...@@ -102,6 +103,7 @@ DT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)")
.map_io = omap242x_map_io, .map_io = omap242x_map_io,
.init_early = omap2420_init_early, .init_early = omap2420_init_early,
.init_irq = omap2_init_irq, .init_irq = omap2_init_irq,
.handle_irq = omap2_intc_handle_irq,
.init_machine = omap_generic_init, .init_machine = omap_generic_init,
.timer = &omap2_timer, .timer = &omap2_timer,
.dt_compat = omap242x_boards_compat, .dt_compat = omap242x_boards_compat,
...@@ -141,6 +143,7 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)") ...@@ -141,6 +143,7 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = omap3430_init_early, .init_early = omap3430_init_early,
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = omap3_init, .init_machine = omap3_init,
.timer = &omap3_timer, .timer = &omap3_timer,
.dt_compat = omap3_boards_compat, .dt_compat = omap3_boards_compat,
...@@ -160,6 +163,7 @@ DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)") ...@@ -160,6 +163,7 @@ DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
.map_io = omap4_map_io, .map_io = omap4_map_io,
.init_early = omap4430_init_early, .init_early = omap4430_init_early,
.init_irq = gic_init_irq, .init_irq = gic_init_irq,
.handle_irq = gic_handle_irq,
.init_machine = omap4_init, .init_machine = omap4_init,
.timer = &omap4_timer, .timer = &omap4_timer,
.dt_compat = omap4_boards_compat, .dt_compat = omap4_boards_compat,
......
...@@ -82,13 +82,7 @@ static int omap2_fclks_active(void) ...@@ -82,13 +82,7 @@ static int omap2_fclks_active(void)
f1 = omap2_cm_read_mod_reg(CORE_MOD, CM_FCLKEN1); f1 = omap2_cm_read_mod_reg(CORE_MOD, CM_FCLKEN1);
f2 = omap2_cm_read_mod_reg(CORE_MOD, OMAP24XX_CM_FCLKEN2); f2 = omap2_cm_read_mod_reg(CORE_MOD, OMAP24XX_CM_FCLKEN2);
/* Ignore UART clocks. These are handled by UART core (serial.c) */ return (f1 | f2) ? 1 : 0;
f1 &= ~(OMAP24XX_EN_UART1_MASK | OMAP24XX_EN_UART2_MASK);
f2 &= ~OMAP24XX_EN_UART3_MASK;
if (f1 | f2)
return 1;
return 0;
} }
static void omap2_enter_full_retention(void) static void omap2_enter_full_retention(void)
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/orion5x.h> #include <mach/orion5x.h>
#include <plat/orion_nand.h> #include <plat/orion_nand.h>
#include <plat/ehci-orion.h>
#include <plat/time.h> #include <plat/time.h>
#include <plat/common.h> #include <plat/common.h>
#include <plat/addr-map.h> #include <plat/addr-map.h>
...@@ -72,7 +73,8 @@ void __init orion5x_map_io(void) ...@@ -72,7 +73,8 @@ void __init orion5x_map_io(void)
****************************************************************************/ ****************************************************************************/
void __init orion5x_ehci0_init(void) void __init orion5x_ehci0_init(void)
{ {
orion_ehci_init(ORION5X_USB0_PHYS_BASE, IRQ_ORION5X_USB0_CTRL); orion_ehci_init(ORION5X_USB0_PHYS_BASE, IRQ_ORION5X_USB0_CTRL,
EHCI_PHY_ORION);
} }
......
...@@ -115,7 +115,8 @@ static struct s3c_cpufreq_info s3c2410_cpufreq_info = { ...@@ -115,7 +115,8 @@ static struct s3c_cpufreq_info s3c2410_cpufreq_info = {
.debug_io_show = s3c_cpufreq_debugfs_call(s3c2410_iotiming_debugfs), .debug_io_show = s3c_cpufreq_debugfs_call(s3c2410_iotiming_debugfs),
}; };
static int s3c2410_cpufreq_add(struct device *dev) static int s3c2410_cpufreq_add(struct device *dev,
struct subsys_interface *sif)
{ {
return s3c_cpufreq_register(&s3c2410_cpufreq_info); return s3c_cpufreq_register(&s3c2410_cpufreq_info);
} }
...@@ -133,7 +134,8 @@ static int __init s3c2410_cpufreq_init(void) ...@@ -133,7 +134,8 @@ static int __init s3c2410_cpufreq_init(void)
arch_initcall(s3c2410_cpufreq_init); arch_initcall(s3c2410_cpufreq_init);
static int s3c2410a_cpufreq_add(struct device *dev) static int s3c2410a_cpufreq_add(struct device *dev,
struct subsys_interface *sif)
{ {
/* alter the maximum freq settings for S3C2410A. If a board knows /* alter the maximum freq settings for S3C2410A. If a board knows
* it only has a maximum of 200, then it should register its own * it only has a maximum of 200, then it should register its own
...@@ -144,7 +146,7 @@ static int s3c2410a_cpufreq_add(struct device *dev) ...@@ -144,7 +146,7 @@ static int s3c2410a_cpufreq_add(struct device *dev)
s3c2410_cpufreq_info.max.pclk = 66500000; s3c2410_cpufreq_info.max.pclk = 66500000;
s3c2410_cpufreq_info.name = "s3c2410a"; s3c2410_cpufreq_info.name = "s3c2410a";
return s3c2410_cpufreq_add(dev); return s3c2410_cpufreq_add(dev, sif);
} }
static struct subsys_interface s3c2410a_cpufreq_interface = { static struct subsys_interface s3c2410a_cpufreq_interface = {
......
...@@ -132,7 +132,8 @@ static struct s3c24xx_dma_order __initdata s3c2410_dma_order = { ...@@ -132,7 +132,8 @@ static struct s3c24xx_dma_order __initdata s3c2410_dma_order = {
}, },
}; };
static int __init s3c2410_dma_add(struct device *dev) static int __init s3c2410_dma_add(struct device *dev,
struct subsys_interface *sif)
{ {
s3c2410_dma_init(); s3c2410_dma_init();
s3c24xx_dma_order_set(&s3c2410_dma_order); s3c24xx_dma_order_set(&s3c2410_dma_order);
...@@ -148,7 +149,7 @@ static struct subsys_interface s3c2410_dma_interface = { ...@@ -148,7 +149,7 @@ static struct subsys_interface s3c2410_dma_interface = {
static int __init s3c2410_dma_drvinit(void) static int __init s3c2410_dma_drvinit(void)
{ {
return subsys_interface_register(&s3c2410_interface); return subsys_interface_register(&s3c2410_dma_interface);
} }
arch_initcall(s3c2410_dma_drvinit); arch_initcall(s3c2410_dma_drvinit);
......
...@@ -66,7 +66,7 @@ static struct cpufreq_frequency_table pll_vals_12MHz[] = { ...@@ -66,7 +66,7 @@ static struct cpufreq_frequency_table pll_vals_12MHz[] = {
{ .frequency = 270000000, .index = PLLVAL(127, 1, 1), }, { .frequency = 270000000, .index = PLLVAL(127, 1, 1), },
}; };
static int s3c2410_plls_add(struct device *dev) static int s3c2410_plls_add(struct device *dev, struct subsys_interface *sif)
{ {
return s3c_plltab_register(pll_vals_12MHz, ARRAY_SIZE(pll_vals_12MHz)); return s3c_plltab_register(pll_vals_12MHz, ARRAY_SIZE(pll_vals_12MHz));
} }
......
...@@ -111,7 +111,7 @@ struct syscore_ops s3c2410_pm_syscore_ops = { ...@@ -111,7 +111,7 @@ struct syscore_ops s3c2410_pm_syscore_ops = {
.resume = s3c2410_pm_resume, .resume = s3c2410_pm_resume,
}; };
static int s3c2410_pm_add(struct device *dev) static int s3c2410_pm_add(struct device *dev, struct subsys_interface *sif)
{ {
pm_cpu_prep = s3c2410_pm_prepare; pm_cpu_prep = s3c2410_pm_prepare;
pm_cpu_sleep = s3c2410_cpu_suspend; pm_cpu_sleep = s3c2410_cpu_suspend;
......
...@@ -194,7 +194,8 @@ static struct s3c_cpufreq_info s3c2412_cpufreq_info = { ...@@ -194,7 +194,8 @@ static struct s3c_cpufreq_info s3c2412_cpufreq_info = {
.debug_io_show = s3c_cpufreq_debugfs_call(s3c2412_iotiming_debugfs), .debug_io_show = s3c_cpufreq_debugfs_call(s3c2412_iotiming_debugfs),
}; };
static int s3c2412_cpufreq_add(struct device *dev) static int s3c2412_cpufreq_add(struct device *dev,
struct subsys_interface *sif)
{ {
unsigned long fclk_rate; unsigned long fclk_rate;
......
...@@ -159,7 +159,8 @@ static struct s3c24xx_dma_selection __initdata s3c2412_dma_sel = { ...@@ -159,7 +159,8 @@ static struct s3c24xx_dma_selection __initdata s3c2412_dma_sel = {
.map_size = ARRAY_SIZE(s3c2412_dma_mappings), .map_size = ARRAY_SIZE(s3c2412_dma_mappings),
}; };
static int __init s3c2412_dma_add(struct device *dev) static int __init s3c2412_dma_add(struct device *dev,
struct subsys_interface *sif)
{ {
s3c2410_dma_init(); s3c2410_dma_init();
return s3c24xx_dma_init_map(&s3c2412_dma_sel); return s3c24xx_dma_init_map(&s3c2412_dma_sel);
......
...@@ -170,7 +170,7 @@ static int s3c2412_irq_rtc_wake(struct irq_data *data, unsigned int state) ...@@ -170,7 +170,7 @@ static int s3c2412_irq_rtc_wake(struct irq_data *data, unsigned int state)
static struct irq_chip s3c2412_irq_rtc_chip; static struct irq_chip s3c2412_irq_rtc_chip;
static int s3c2412_irq_add(struct device *dev) static int s3c2412_irq_add(struct device *dev, struct subsys_interface *sif)
{ {
unsigned int irqno; unsigned int irqno;
......
...@@ -56,7 +56,7 @@ static void s3c2412_pm_prepare(void) ...@@ -56,7 +56,7 @@ static void s3c2412_pm_prepare(void)
{ {
} }
static int s3c2412_pm_add(struct device *dev) static int s3c2412_pm_add(struct device *dev, struct subsys_interface *sif)
{ {
pm_cpu_prep = s3c2412_pm_prepare; pm_cpu_prep = s3c2412_pm_prepare;
pm_cpu_sleep = s3c2412_cpu_suspend; pm_cpu_sleep = s3c2412_cpu_suspend;
......
...@@ -213,7 +213,8 @@ static int __init s3c2416_add_sub(unsigned int base, ...@@ -213,7 +213,8 @@ static int __init s3c2416_add_sub(unsigned int base,
return 0; return 0;
} }
static int __init s3c2416_irq_add(struct device *dev) static int __init s3c2416_irq_add(struct device *dev,
struct subsys_interface *sif)
{ {
printk(KERN_INFO "S3C2416: IRQ Support\n"); printk(KERN_INFO "S3C2416: IRQ Support\n");
......
...@@ -48,7 +48,7 @@ static void s3c2416_pm_prepare(void) ...@@ -48,7 +48,7 @@ static void s3c2416_pm_prepare(void)
__raw_writel(virt_to_phys(s3c_cpu_resume), S3C2412_INFORM1); __raw_writel(virt_to_phys(s3c_cpu_resume), S3C2412_INFORM1);
} }
static int s3c2416_pm_add(struct device *dev) static int s3c2416_pm_add(struct device *dev, struct subsys_interface *sif)
{ {
pm_cpu_prep = s3c2416_pm_prepare; pm_cpu_prep = s3c2416_pm_prepare;
pm_cpu_sleep = s3c2416_cpu_suspend; pm_cpu_sleep = s3c2416_cpu_suspend;
......
...@@ -149,7 +149,7 @@ static struct clk_lookup s3c2440_clk_lookup[] = { ...@@ -149,7 +149,7 @@ static struct clk_lookup s3c2440_clk_lookup[] = {
CLKDEV_INIT(NULL, "clk_uart_baud3", &s3c2440_clk_fclk_n), CLKDEV_INIT(NULL, "clk_uart_baud3", &s3c2440_clk_fclk_n),
}; };
static int s3c2440_clk_add(struct device *dev) static int s3c2440_clk_add(struct device *dev, struct subsys_interface *sif)
{ {
struct clk *clock_upll; struct clk *clock_upll;
struct clk *clock_h; struct clk *clock_h;
......
...@@ -174,7 +174,8 @@ static struct s3c24xx_dma_order __initdata s3c2440_dma_order = { ...@@ -174,7 +174,8 @@ static struct s3c24xx_dma_order __initdata s3c2440_dma_order = {
}, },
}; };
static int __init s3c2440_dma_add(struct device *dev) static int __init s3c2440_dma_add(struct device *dev,
struct subsys_interface *sif)
{ {
s3c2410_dma_init(); s3c2410_dma_init();
s3c24xx_dma_order_set(&s3c2440_dma_order); s3c24xx_dma_order_set(&s3c2440_dma_order);
......
...@@ -92,7 +92,7 @@ static struct irq_chip s3c_irq_wdtac97 = { ...@@ -92,7 +92,7 @@ static struct irq_chip s3c_irq_wdtac97 = {
.irq_ack = s3c_irq_wdtac97_ack, .irq_ack = s3c_irq_wdtac97_ack,
}; };
static int s3c2440_irq_add(struct device *dev) static int s3c2440_irq_add(struct device *dev, struct subsys_interface *sif)
{ {
unsigned int irqno; unsigned int irqno;
......
...@@ -270,7 +270,8 @@ struct s3c_cpufreq_info s3c2440_cpufreq_info = { ...@@ -270,7 +270,8 @@ struct s3c_cpufreq_info s3c2440_cpufreq_info = {
.debug_io_show = s3c_cpufreq_debugfs_call(s3c2410_iotiming_debugfs), .debug_io_show = s3c_cpufreq_debugfs_call(s3c2410_iotiming_debugfs),
}; };
static int s3c2440_cpufreq_add(struct device *dev) static int s3c2440_cpufreq_add(struct device *dev,
struct subsys_interface *sif)
{ {
xtal = s3c_cpufreq_clk_get(NULL, "xtal"); xtal = s3c_cpufreq_clk_get(NULL, "xtal");
hclk = s3c_cpufreq_clk_get(NULL, "hclk"); hclk = s3c_cpufreq_clk_get(NULL, "hclk");
......
...@@ -51,7 +51,7 @@ static struct cpufreq_frequency_table s3c2440_plls_12[] __initdata = { ...@@ -51,7 +51,7 @@ static struct cpufreq_frequency_table s3c2440_plls_12[] __initdata = {
{ .frequency = 400000000, .index = PLLVAL(0x5c, 1, 1), }, /* FVco 800.000000 */ { .frequency = 400000000, .index = PLLVAL(0x5c, 1, 1), }, /* FVco 800.000000 */
}; };
static int s3c2440_plls12_add(struct device *dev) static int s3c2440_plls12_add(struct device *dev, struct subsys_interface *sif)
{ {
struct clk *xtal_clk; struct clk *xtal_clk;
unsigned long xtal; unsigned long xtal;
......
...@@ -79,7 +79,8 @@ static struct cpufreq_frequency_table s3c2440_plls_169344[] __initdata = { ...@@ -79,7 +79,8 @@ static struct cpufreq_frequency_table s3c2440_plls_169344[] __initdata = {
{ .frequency = 402192000, .index = PLLVAL(87, 2, 1), }, /* FVco 804.384000 */ { .frequency = 402192000, .index = PLLVAL(87, 2, 1), }, /* FVco 804.384000 */
}; };
static int s3c2440_plls169344_add(struct device *dev) static int s3c2440_plls169344_add(struct device *dev,
struct subsys_interface *sif)
{ {
struct clk *xtal_clk; struct clk *xtal_clk;
unsigned long xtal; unsigned long xtal;
......
...@@ -122,7 +122,7 @@ static struct clk s3c2442_clk_cam_upll = { ...@@ -122,7 +122,7 @@ static struct clk s3c2442_clk_cam_upll = {
}, },
}; };
static int s3c2442_clk_add(struct device *dev) static int s3c2442_clk_add(struct device *dev, struct subsys_interface *sif)
{ {
struct clk *clock_upll; struct clk *clock_upll;
struct clk *clock_h; struct clk *clock_h;
......
...@@ -72,7 +72,7 @@ static struct clk clk_arm = { ...@@ -72,7 +72,7 @@ static struct clk clk_arm = {
}, },
}; };
static int s3c244x_clk_add(struct device *dev) static int s3c244x_clk_add(struct device *dev, struct subsys_interface *sif)
{ {
unsigned long camdivn = __raw_readl(S3C2440_CAMDIVN); unsigned long camdivn = __raw_readl(S3C2440_CAMDIVN);
unsigned long clkdivn; unsigned long clkdivn;
......
...@@ -91,7 +91,7 @@ static struct irq_chip s3c_irq_cam = { ...@@ -91,7 +91,7 @@ static struct irq_chip s3c_irq_cam = {
.irq_ack = s3c_irq_cam_ack, .irq_ack = s3c_irq_cam_ack,
}; };
static int s3c244x_irq_add(struct device *dev) static int s3c244x_irq_add(struct device *dev, struct subsys_interface *sif)
{ {
unsigned int irqno; unsigned int irqno;
......
...@@ -135,7 +135,8 @@ static struct s3c24xx_dma_selection __initdata s3c2443_dma_sel = { ...@@ -135,7 +135,8 @@ static struct s3c24xx_dma_selection __initdata s3c2443_dma_sel = {
.map_size = ARRAY_SIZE(s3c2443_dma_mappings), .map_size = ARRAY_SIZE(s3c2443_dma_mappings),
}; };
static int __init s3c2443_dma_add(struct device *dev) static int __init s3c2443_dma_add(struct device *dev,
struct subsys_interface *sif)
{ {
s3c24xx_dma_init(6, IRQ_S3C2443_DMA0, 0x100); s3c24xx_dma_init(6, IRQ_S3C2443_DMA0, 0x100);
return s3c24xx_dma_init_map(&s3c2443_dma_sel); return s3c24xx_dma_init_map(&s3c2443_dma_sel);
......
...@@ -241,7 +241,8 @@ static int __init s3c2443_add_sub(unsigned int base, ...@@ -241,7 +241,8 @@ static int __init s3c2443_add_sub(unsigned int base,
return 0; return 0;
} }
static int __init s3c2443_irq_add(struct device *dev) static int __init s3c2443_irq_add(struct device *dev,
struct subsys_interface *sif)
{ {
printk("S3C2443: IRQ Support\n"); printk("S3C2443: IRQ Support\n");
......
...@@ -138,6 +138,11 @@ static struct clk init_clocks_off[] = { ...@@ -138,6 +138,11 @@ static struct clk init_clocks_off[] = {
.ctrlbit = S3C_CLKCON_PCLK_TSADC, .ctrlbit = S3C_CLKCON_PCLK_TSADC,
}, { }, {
.name = "i2c", .name = "i2c",
#ifdef CONFIG_S3C_DEV_I2C1
.devname = "s3c2440-i2c.0",
#else
.devname = "s3c2440-i2c",
#endif
.parent = &clk_p, .parent = &clk_p,
.enable = s3c64xx_pclk_ctrl, .enable = s3c64xx_pclk_ctrl,
.ctrlbit = S3C_CLKCON_PCLK_IIC, .ctrlbit = S3C_CLKCON_PCLK_IIC,
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
/* uart registration process */ /* uart registration process */
void __init s3c64xx_init_uarts(struct s3c2410_uartcfg *cfg, int no) static void __init s3c64xx_init_uarts(struct s3c2410_uartcfg *cfg, int no)
{ {
s3c24xx_init_uartdevs("s3c6400-uart", s3c64xx_uart_resources, cfg, no); s3c24xx_init_uartdevs("s3c6400-uart", s3c64xx_uart_resources, cfg, no);
} }
......
...@@ -160,7 +160,7 @@ static void s5p64x0_pm_prepare(void) ...@@ -160,7 +160,7 @@ static void s5p64x0_pm_prepare(void)
} }
static int s5p64x0_pm_add(struct device *dev) static int s5p64x0_pm_add(struct device *dev, struct subsys_interface *sif)
{ {
pm_cpu_prep = s5p64x0_pm_prepare; pm_cpu_prep = s5p64x0_pm_prepare;
pm_cpu_sleep = s5p64x0_cpu_suspend; pm_cpu_sleep = s5p64x0_cpu_suspend;
......
...@@ -175,7 +175,7 @@ static int s5pv210_clk_mask1_ctrl(struct clk *clk, int enable) ...@@ -175,7 +175,7 @@ static int s5pv210_clk_mask1_ctrl(struct clk *clk, int enable)
return s5p_gatectrl(S5P_CLK_SRC_MASK1, clk, enable); return s5p_gatectrl(S5P_CLK_SRC_MASK1, clk, enable);
} }
static int exynos4_clk_hdmiphy_ctrl(struct clk *clk, int enable) static int s5pv210_clk_hdmiphy_ctrl(struct clk *clk, int enable)
{ {
return s5p_gatectrl(S5P_HDMI_PHY_CONTROL, clk, enable); return s5p_gatectrl(S5P_HDMI_PHY_CONTROL, clk, enable);
} }
...@@ -372,7 +372,7 @@ static struct clk init_clocks_off[] = { ...@@ -372,7 +372,7 @@ static struct clk init_clocks_off[] = {
}, { }, {
.name = "hdmiphy", .name = "hdmiphy",
.devname = "s5pv210-hdmi", .devname = "s5pv210-hdmi",
.enable = exynos4_clk_hdmiphy_ctrl, .enable = s5pv210_clk_hdmiphy_ctrl,
.ctrlbit = (1 << 0), .ctrlbit = (1 << 0),
}, { }, {
.name = "dacphy", .name = "dacphy",
......
...@@ -133,7 +133,7 @@ static void s5pv210_pm_prepare(void) ...@@ -133,7 +133,7 @@ static void s5pv210_pm_prepare(void)
s3c_pm_do_save(s5pv210_core_save, ARRAY_SIZE(s5pv210_core_save)); s3c_pm_do_save(s5pv210_core_save, ARRAY_SIZE(s5pv210_core_save));
} }
static int s5pv210_pm_add(struct device *dev) static int s5pv210_pm_add(struct device *dev, struct subsys_interface *sif)
{ {
pm_cpu_prep = s5pv210_pm_prepare; pm_cpu_prep = s5pv210_pm_prepare;
pm_cpu_sleep = s5pv210_cpu_suspend; pm_cpu_sleep = s5pv210_cpu_suspend;
......
...@@ -60,9 +60,9 @@ static struct plat_serial8250_port debug_uart_platform_data[] = { ...@@ -60,9 +60,9 @@ static struct plat_serial8250_port debug_uart_platform_data[] = {
.uartclk = 216000000, .uartclk = 216000000,
}, { }, {
/* serial port on mini-pcie */ /* serial port on mini-pcie */
.membase = IO_ADDRESS(TEGRA_UARTD_BASE), .membase = IO_ADDRESS(TEGRA_UARTC_BASE),
.mapbase = TEGRA_UARTD_BASE, .mapbase = TEGRA_UARTC_BASE,
.irq = INT_UARTD, .irq = INT_UARTC,
.flags = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE, .flags = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE,
.type = PORT_TEGRA, .type = PORT_TEGRA,
.iotype = UPIO_MEM, .iotype = UPIO_MEM,
...@@ -174,7 +174,7 @@ static void __init tegra_paz00_fixup(struct tag *tags, char **cmdline, ...@@ -174,7 +174,7 @@ static void __init tegra_paz00_fixup(struct tag *tags, char **cmdline,
static __initdata struct tegra_clk_init_table paz00_clk_init_table[] = { static __initdata struct tegra_clk_init_table paz00_clk_init_table[] = {
/* name parent rate enabled */ /* name parent rate enabled */
{ "uarta", "pll_p", 216000000, true }, { "uarta", "pll_p", 216000000, true },
{ "uartd", "pll_p", 216000000, true }, { "uartc", "pll_p", 216000000, true },
{ "pll_p_out4", "pll_p", 24000000, true }, { "pll_p_out4", "pll_p", 24000000, true },
{ "usbd", "clk_m", 12000000, false }, { "usbd", "clk_m", 12000000, false },
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
/* SDCARD */ /* SDCARD */
#define TEGRA_GPIO_SD1_CD TEGRA_GPIO_PV5 #define TEGRA_GPIO_SD1_CD TEGRA_GPIO_PV5
#define TEGRA_GPIO_SD1_WP TEGRA_GPIO_PH1 #define TEGRA_GPIO_SD1_WP TEGRA_GPIO_PH1
#define TEGRA_GPIO_SD1_POWER TEGRA_GPIO_PT3 #define TEGRA_GPIO_SD1_POWER TEGRA_GPIO_PV1
/* ULPI */ /* ULPI */
#define TEGRA_ULPI_RST TEGRA_GPIO_PV0 #define TEGRA_ULPI_RST TEGRA_GPIO_PV0
......
...@@ -23,11 +23,6 @@ ...@@ -23,11 +23,6 @@
#include <linux/list.h> #include <linux/list.h>
#if defined(CONFIG_TEGRA_SYSTEM_DMA)
struct tegra_dma_req;
struct tegra_dma_channel;
#define TEGRA_DMA_REQ_SEL_CNTR 0 #define TEGRA_DMA_REQ_SEL_CNTR 0
#define TEGRA_DMA_REQ_SEL_I2S_2 1 #define TEGRA_DMA_REQ_SEL_I2S_2 1
#define TEGRA_DMA_REQ_SEL_I2S_1 2 #define TEGRA_DMA_REQ_SEL_I2S_1 2
...@@ -56,6 +51,11 @@ struct tegra_dma_channel; ...@@ -56,6 +51,11 @@ struct tegra_dma_channel;
#define TEGRA_DMA_REQ_SEL_OWR 25 #define TEGRA_DMA_REQ_SEL_OWR 25
#define TEGRA_DMA_REQ_SEL_INVALID 31 #define TEGRA_DMA_REQ_SEL_INVALID 31
#if defined(CONFIG_TEGRA_SYSTEM_DMA)
struct tegra_dma_req;
struct tegra_dma_channel;
enum tegra_dma_mode { enum tegra_dma_mode {
TEGRA_DMA_SHARED = 1, TEGRA_DMA_SHARED = 1,
TEGRA_DMA_MODE_CONTINOUS = 2, TEGRA_DMA_MODE_CONTINOUS = 2,
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#include <linux/types.h> #include <linux/types.h>
#ifdef CONFIG_ARCH_OMAP2PLUS #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
extern int omap_secure_ram_reserve_memblock(void); extern int omap_secure_ram_reserve_memblock(void);
#else #else
static inline void omap_secure_ram_reserve_memblock(void) static inline void omap_secure_ram_reserve_memblock(void)
......
...@@ -789,10 +789,7 @@ void __init orion_xor1_init(unsigned long mapbase_low, ...@@ -789,10 +789,7 @@ void __init orion_xor1_init(unsigned long mapbase_low,
/***************************************************************************** /*****************************************************************************
* EHCI * EHCI
****************************************************************************/ ****************************************************************************/
static struct orion_ehci_data orion_ehci_data = { static struct orion_ehci_data orion_ehci_data;
.phy_version = EHCI_PHY_NA,
};
static u64 ehci_dmamask = DMA_BIT_MASK(32); static u64 ehci_dmamask = DMA_BIT_MASK(32);
...@@ -812,8 +809,10 @@ static struct platform_device orion_ehci = { ...@@ -812,8 +809,10 @@ static struct platform_device orion_ehci = {
}; };
void __init orion_ehci_init(unsigned long mapbase, void __init orion_ehci_init(unsigned long mapbase,
unsigned long irq) unsigned long irq,
enum orion_ehci_phy_ver phy_version)
{ {
orion_ehci_data.phy_version = phy_version;
fill_resources(&orion_ehci, orion_ehci_resources, mapbase, SZ_4K - 1, fill_resources(&orion_ehci, orion_ehci_resources, mapbase, SZ_4K - 1,
irq); irq);
......
...@@ -89,7 +89,8 @@ void __init orion_xor1_init(unsigned long mapbase_low, ...@@ -89,7 +89,8 @@ void __init orion_xor1_init(unsigned long mapbase_low,
unsigned long irq_1); unsigned long irq_1);
void __init orion_ehci_init(unsigned long mapbase, void __init orion_ehci_init(unsigned long mapbase,
unsigned long irq); unsigned long irq,
enum orion_ehci_phy_ver phy_version);
void __init orion_ehci_1_init(unsigned long mapbase, void __init orion_ehci_1_init(unsigned long mapbase,
unsigned long irq); unsigned long irq);
......
...@@ -64,8 +64,7 @@ void __init orion_mpp_conf(unsigned int *mpp_list, unsigned int variant_mask, ...@@ -64,8 +64,7 @@ void __init orion_mpp_conf(unsigned int *mpp_list, unsigned int variant_mask,
gpio_mode |= GPIO_INPUT_OK; gpio_mode |= GPIO_INPUT_OK;
if (*mpp_list & MPP_OUTPUT_MASK) if (*mpp_list & MPP_OUTPUT_MASK)
gpio_mode |= GPIO_OUTPUT_OK; gpio_mode |= GPIO_OUTPUT_OK;
if (sel != 0)
gpio_mode = 0;
orion_gpio_set_valid(num, gpio_mode); orion_gpio_set_valid(num, gpio_mode);
} }
......
...@@ -468,8 +468,10 @@ void __init s3c_i2c0_set_platdata(struct s3c2410_platform_i2c *pd) ...@@ -468,8 +468,10 @@ void __init s3c_i2c0_set_platdata(struct s3c2410_platform_i2c *pd)
{ {
struct s3c2410_platform_i2c *npd; struct s3c2410_platform_i2c *npd;
if (!pd) if (!pd) {
pd = &default_i2c_data; pd = &default_i2c_data;
pd->bus_num = 0;
}
npd = s3c_set_platdata(pd, sizeof(struct s3c2410_platform_i2c), npd = s3c_set_platdata(pd, sizeof(struct s3c2410_platform_i2c),
&s3c_device_i2c0); &s3c_device_i2c0);
......
...@@ -207,11 +207,11 @@ static void set_smc_timing(struct device *dev, struct ata_device *adev, ...@@ -207,11 +207,11 @@ static void set_smc_timing(struct device *dev, struct ata_device *adev,
{ {
int ret = 0; int ret = 0;
int use_iordy; int use_iordy;
struct sam9_smc_config smc;
unsigned int t6z; /* data tristate time in ns */ unsigned int t6z; /* data tristate time in ns */
unsigned int cycle; /* SMC Cycle width in MCK ticks */ unsigned int cycle; /* SMC Cycle width in MCK ticks */
unsigned int setup; /* SMC Setup width in MCK ticks */ unsigned int setup; /* SMC Setup width in MCK ticks */
unsigned int pulse; /* CFIOR and CFIOW pulse width in MCK ticks */ unsigned int pulse; /* CFIOR and CFIOW pulse width in MCK ticks */
unsigned int cs_setup = 0;/* CS4 or CS5 setup width in MCK ticks */
unsigned int cs_pulse; /* CS4 or CS5 pulse width in MCK ticks*/ unsigned int cs_pulse; /* CS4 or CS5 pulse width in MCK ticks*/
unsigned int tdf_cycles; /* SMC TDF MCK ticks */ unsigned int tdf_cycles; /* SMC TDF MCK ticks */
unsigned long mck_hz; /* MCK frequency in Hz */ unsigned long mck_hz; /* MCK frequency in Hz */
...@@ -244,26 +244,20 @@ static void set_smc_timing(struct device *dev, struct ata_device *adev, ...@@ -244,26 +244,20 @@ static void set_smc_timing(struct device *dev, struct ata_device *adev,
} }
dev_dbg(dev, "Use IORDY=%u, TDF Cycles=%u\n", use_iordy, tdf_cycles); dev_dbg(dev, "Use IORDY=%u, TDF Cycles=%u\n", use_iordy, tdf_cycles);
info->mode |= AT91_SMC_TDF_(tdf_cycles);
/* SMC Setup Register */
/* write SMC Setup Register */ smc.nwe_setup = smc.nrd_setup = setup;
at91_sys_write(AT91_SMC_SETUP(info->cs), smc.ncs_write_setup = smc.ncs_read_setup = 0;
AT91_SMC_NWESETUP_(setup) | /* SMC Pulse Register */
AT91_SMC_NRDSETUP_(setup) | smc.nwe_pulse = smc.nrd_pulse = pulse;
AT91_SMC_NCS_WRSETUP_(cs_setup) | smc.ncs_write_pulse = smc.ncs_read_pulse = cs_pulse;
AT91_SMC_NCS_RDSETUP_(cs_setup)); /* SMC Cycle Register */
/* write SMC Pulse Register */ smc.write_cycle = smc.read_cycle = cycle;
at91_sys_write(AT91_SMC_PULSE(info->cs), /* SMC Mode Register*/
AT91_SMC_NWEPULSE_(pulse) | smc.tdf_cycles = tdf_cycles;
AT91_SMC_NRDPULSE_(pulse) | smc.mode = info->mode;
AT91_SMC_NCS_WRPULSE_(cs_pulse) |
AT91_SMC_NCS_RDPULSE_(cs_pulse)); sam9_smc_configure(0, info->cs, &smc);
/* write SMC Cycle Register */
at91_sys_write(AT91_SMC_CYCLE(info->cs),
AT91_SMC_NWECYCLE_(cycle) |
AT91_SMC_NRDCYCLE_(cycle));
/* write SMC Mode Register*/
at91_sys_write(AT91_SMC_MODE(info->cs), info->mode);
} }
static void pata_at91_set_piomode(struct ata_port *ap, struct ata_device *adev) static void pata_at91_set_piomode(struct ata_port *ap, struct ata_device *adev)
...@@ -288,20 +282,20 @@ static unsigned int pata_at91_data_xfer_noirq(struct ata_device *dev, ...@@ -288,20 +282,20 @@ static unsigned int pata_at91_data_xfer_noirq(struct ata_device *dev,
struct at91_ide_info *info = dev->link->ap->host->private_data; struct at91_ide_info *info = dev->link->ap->host->private_data;
unsigned int consumed; unsigned int consumed;
unsigned long flags; unsigned long flags;
unsigned int mode; struct sam9_smc_config smc;
local_irq_save(flags); local_irq_save(flags);
mode = at91_sys_read(AT91_SMC_MODE(info->cs)); sam9_smc_read_mode(0, info->cs, &smc);
/* set 16bit mode before writing data */ /* set 16bit mode before writing data */
at91_sys_write(AT91_SMC_MODE(info->cs), smc.mode = (smc.mode & ~AT91_SMC_DBW) | AT91_SMC_DBW_16;
(mode & ~AT91_SMC_DBW) | AT91_SMC_DBW_16); sam9_smc_write_mode(0, info->cs, &smc);
consumed = ata_sff_data_xfer(dev, buf, buflen, rw); consumed = ata_sff_data_xfer(dev, buf, buflen, rw);
/* restore 8bit mode after data is written */ /* restore 8bit mode after data is written */
at91_sys_write(AT91_SMC_MODE(info->cs), smc.mode = (smc.mode & ~AT91_SMC_DBW) | AT91_SMC_DBW_8;
(mode & ~AT91_SMC_DBW) | AT91_SMC_DBW_8); sam9_smc_write_mode(0, info->cs, &smc);
local_irq_restore(flags); local_irq_restore(flags);
return consumed; return consumed;
......
...@@ -755,7 +755,7 @@ MODULE_DEVICE_TABLE(of, tegra_i2c_of_match); ...@@ -755,7 +755,7 @@ MODULE_DEVICE_TABLE(of, tegra_i2c_of_match);
static struct platform_driver tegra_i2c_driver = { static struct platform_driver tegra_i2c_driver = {
.probe = tegra_i2c_probe, .probe = tegra_i2c_probe,
.remove = tegra_i2c_remove, .remove = __devexit_p(tegra_i2c_remove),
#ifdef CONFIG_PM #ifdef CONFIG_PM
.suspend = tegra_i2c_suspend, .suspend = tegra_i2c_suspend,
.resume = tegra_i2c_resume, .resume = tegra_i2c_resume,
......
...@@ -116,4 +116,3 @@ obj-$(CONFIG_BLK_DEV_IDE_AU1XXX) += au1xxx-ide.o ...@@ -116,4 +116,3 @@ obj-$(CONFIG_BLK_DEV_IDE_AU1XXX) += au1xxx-ide.o
obj-$(CONFIG_BLK_DEV_IDE_TX4938) += tx4938ide.o obj-$(CONFIG_BLK_DEV_IDE_TX4938) += tx4938ide.o
obj-$(CONFIG_BLK_DEV_IDE_TX4939) += tx4939ide.o obj-$(CONFIG_BLK_DEV_IDE_TX4939) += tx4939ide.o
obj-$(CONFIG_BLK_DEV_IDE_AT91) += at91_ide.o
This diff is collapsed.
...@@ -307,8 +307,12 @@ static int __init at91_rtc_probe(struct platform_device *pdev) ...@@ -307,8 +307,12 @@ static int __init at91_rtc_probe(struct platform_device *pdev)
device_init_wakeup(&pdev->dev, 1); device_init_wakeup(&pdev->dev, 1);
platform_set_drvdata(pdev, rtc); platform_set_drvdata(pdev, rtc);
rtc->rtt = (void __force __iomem *) (AT91_VA_BASE_SYS - AT91_BASE_SYS); rtc->rtt = ioremap(r->start, resource_size(r));
rtc->rtt += r->start; if (!rtc->rtt) {
dev_err(&pdev->dev, "failed to map registers, aborting.\n");
ret = -ENOMEM;
goto fail;
}
mr = rtt_readl(rtc, MR); mr = rtt_readl(rtc, MR);
...@@ -326,7 +330,7 @@ static int __init at91_rtc_probe(struct platform_device *pdev) ...@@ -326,7 +330,7 @@ static int __init at91_rtc_probe(struct platform_device *pdev)
&at91_rtc_ops, THIS_MODULE); &at91_rtc_ops, THIS_MODULE);
if (IS_ERR(rtc->rtcdev)) { if (IS_ERR(rtc->rtcdev)) {
ret = PTR_ERR(rtc->rtcdev); ret = PTR_ERR(rtc->rtcdev);
goto fail; goto fail_register;
} }
/* register irq handler after we know what name we'll use */ /* register irq handler after we know what name we'll use */
...@@ -351,6 +355,8 @@ static int __init at91_rtc_probe(struct platform_device *pdev) ...@@ -351,6 +355,8 @@ static int __init at91_rtc_probe(struct platform_device *pdev)
return 0; return 0;
fail_register:
iounmap(rtc->rtt);
fail: fail:
platform_set_drvdata(pdev, NULL); platform_set_drvdata(pdev, NULL);
kfree(rtc); kfree(rtc);
...@@ -371,6 +377,7 @@ static int __exit at91_rtc_remove(struct platform_device *pdev) ...@@ -371,6 +377,7 @@ static int __exit at91_rtc_remove(struct platform_device *pdev)
rtc_device_unregister(rtc->rtcdev); rtc_device_unregister(rtc->rtcdev);
iounmap(rtc->rtt);
platform_set_drvdata(pdev, NULL); platform_set_drvdata(pdev, NULL);
kfree(rtc); kfree(rtc);
return 0; return 0;
......
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