forked from Minki/linux
Merge branch 'fixes' of git://git.linaro.org/people/arnd/arm-soc
* 'fixes' of git://git.linaro.org/people/arnd/arm-soc: mach-integrator: fix VGA base regression arm/dt: Tegra: Update SDHCI nodes to match bindings ARM: EXYNOS4: fix incorrect pad configuration for keypad row lines ARM: SAMSUNG: fix to prevent declaring duplicated ARM: SAMSUNG: fix watchdog reset issue with clk_get() ARM: S3C64XX: Remove un-used code backlight code on SMDK6410 ARM: EXYNOS4: restart clocksource while system resumes ARM: EXYNOS4: Fix routing timer interrupt to offline CPU ARM: EXYNOS4: Fix return type of local_timer_setup() ARM: EXYNOS4: Fix wrong pll type for vpll ARM: Dove: fix second SPI initialization call
This commit is contained in:
commit
38867a28a7
@ -57,14 +57,14 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
sdhci@c8000200 {
|
sdhci@c8000200 {
|
||||||
gpios = <&gpio 69 0>, /* cd, gpio PI5 */
|
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||||
<&gpio 57 0>, /* wp, gpio PH1 */
|
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||||
<&gpio 155 0>; /* power, gpio PT3 */
|
power-gpios = <&gpio 155 0>; /* gpio PT3 */
|
||||||
};
|
};
|
||||||
|
|
||||||
sdhci@c8000600 {
|
sdhci@c8000600 {
|
||||||
gpios = <&gpio 58 0>, /* cd, gpio PH2 */
|
cd-gpios = <&gpio 58 0>; /* gpio PH2 */
|
||||||
<&gpio 59 0>, /* wp, gpio PH3 */
|
wp-gpios = <&gpio 59 0>; /* gpio PH3 */
|
||||||
<&gpio 70 0>; /* power, gpio PI6 */
|
power-gpios = <&gpio 70 0>; /* gpio PI6 */
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -21,8 +21,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
sdhci@c8000400 {
|
sdhci@c8000400 {
|
||||||
gpios = <&gpio 69 0>, /* cd, gpio PI5 */
|
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||||
<&gpio 57 0>, /* wp, gpio PH1 */
|
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||||
<&gpio 70 0>; /* power, gpio PI6 */
|
power-gpios = <&gpio 70 0>; /* gpio PI6 */
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -158,7 +158,7 @@ void __init dove_spi0_init(void)
|
|||||||
|
|
||||||
void __init dove_spi1_init(void)
|
void __init dove_spi1_init(void)
|
||||||
{
|
{
|
||||||
orion_spi_init(DOVE_SPI1_PHYS_BASE, get_tclk());
|
orion_spi_1_init(DOVE_SPI1_PHYS_BASE, get_tclk());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -1160,7 +1160,7 @@ void __init_or_cpufreq exynos4_setup_clocks(void)
|
|||||||
|
|
||||||
vpllsrc = clk_get_rate(&clk_vpllsrc.clk);
|
vpllsrc = clk_get_rate(&clk_vpllsrc.clk);
|
||||||
vpll = s5p_get_pll46xx(vpllsrc, __raw_readl(S5P_VPLL_CON0),
|
vpll = s5p_get_pll46xx(vpllsrc, __raw_readl(S5P_VPLL_CON0),
|
||||||
__raw_readl(S5P_VPLL_CON1), pll_4650);
|
__raw_readl(S5P_VPLL_CON1), pll_4650c);
|
||||||
|
|
||||||
clk_fout_apll.ops = &exynos4_fout_apll_ops;
|
clk_fout_apll.ops = &exynos4_fout_apll_ops;
|
||||||
clk_fout_mpll.rate = mpll;
|
clk_fout_mpll.rate = mpll;
|
||||||
|
@ -132,12 +132,18 @@ static cycle_t exynos4_frc_read(struct clocksource *cs)
|
|||||||
return ((cycle_t)hi << 32) | lo;
|
return ((cycle_t)hi << 32) | lo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void exynos4_frc_resume(struct clocksource *cs)
|
||||||
|
{
|
||||||
|
exynos4_mct_frc_start(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
struct clocksource mct_frc = {
|
struct clocksource mct_frc = {
|
||||||
.name = "mct-frc",
|
.name = "mct-frc",
|
||||||
.rating = 400,
|
.rating = 400,
|
||||||
.read = exynos4_frc_read,
|
.read = exynos4_frc_read,
|
||||||
.mask = CLOCKSOURCE_MASK(64),
|
.mask = CLOCKSOURCE_MASK(64),
|
||||||
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
|
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
|
||||||
|
.resume = exynos4_frc_resume,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __init exynos4_clocksource_init(void)
|
static void __init exynos4_clocksource_init(void)
|
||||||
@ -389,9 +395,11 @@ static void exynos4_mct_tick_init(struct clock_event_device *evt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Setup the local clock events for a CPU */
|
/* Setup the local clock events for a CPU */
|
||||||
void __cpuinit local_timer_setup(struct clock_event_device *evt)
|
int __cpuinit local_timer_setup(struct clock_event_device *evt)
|
||||||
{
|
{
|
||||||
exynos4_mct_tick_init(evt);
|
exynos4_mct_tick_init(evt);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int local_timer_ack(void)
|
int local_timer_ack(void)
|
||||||
|
@ -106,6 +106,8 @@ void __cpuinit platform_secondary_init(unsigned int cpu)
|
|||||||
*/
|
*/
|
||||||
spin_lock(&boot_lock);
|
spin_lock(&boot_lock);
|
||||||
spin_unlock(&boot_lock);
|
spin_unlock(&boot_lock);
|
||||||
|
|
||||||
|
set_cpu_online(cpu, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
|
int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||||
|
@ -19,15 +19,16 @@ void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)
|
|||||||
|
|
||||||
if (rows > 8) {
|
if (rows > 8) {
|
||||||
/* Set all the necessary GPX2 pins: KP_ROW[0~7] */
|
/* Set all the necessary GPX2 pins: KP_ROW[0~7] */
|
||||||
s3c_gpio_cfgrange_nopull(EXYNOS4_GPX2(0), 8, S3C_GPIO_SFN(3));
|
s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), 8, S3C_GPIO_SFN(3),
|
||||||
|
S3C_GPIO_PULL_UP);
|
||||||
|
|
||||||
/* Set all the necessary GPX3 pins: KP_ROW[8~] */
|
/* Set all the necessary GPX3 pins: KP_ROW[8~] */
|
||||||
s3c_gpio_cfgrange_nopull(EXYNOS4_GPX3(0), (rows - 8),
|
s3c_gpio_cfgall_range(EXYNOS4_GPX3(0), (rows - 8),
|
||||||
S3C_GPIO_SFN(3));
|
S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);
|
||||||
} else {
|
} else {
|
||||||
/* Set all the necessary GPX2 pins: KP_ROW[x] */
|
/* Set all the necessary GPX2 pins: KP_ROW[x] */
|
||||||
s3c_gpio_cfgrange_nopull(EXYNOS4_GPX2(0), rows,
|
s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), rows, S3C_GPIO_SFN(3),
|
||||||
S3C_GPIO_SFN(3));
|
S3C_GPIO_PULL_UP);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set all the necessary GPX1 pins to special-function 3: KP_COL[x] */
|
/* Set all the necessary GPX1 pins to special-function 3: KP_COL[x] */
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <linux/mtd/physmap.h>
|
#include <linux/mtd/physmap.h>
|
||||||
|
#include <video/vga.h>
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
#include <mach/platform.h>
|
#include <mach/platform.h>
|
||||||
@ -154,6 +155,7 @@ static struct map_desc ap_io_desc[] __initdata = {
|
|||||||
static void __init ap_map_io(void)
|
static void __init ap_map_io(void)
|
||||||
{
|
{
|
||||||
iotable_init(ap_io_desc, ARRAY_SIZE(ap_io_desc));
|
iotable_init(ap_io_desc, ARRAY_SIZE(ap_io_desc));
|
||||||
|
vga_base = PCI_MEMORY_VADDR;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define INTEGRATOR_SC_VALID_INT 0x003fffff
|
#define INTEGRATOR_SC_VALID_INT 0x003fffff
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
#include <linux/spinlock.h>
|
#include <linux/spinlock.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <video/vga.h>
|
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
#include <mach/platform.h>
|
#include <mach/platform.h>
|
||||||
@ -505,7 +504,6 @@ void __init pci_v3_preinit(void)
|
|||||||
|
|
||||||
pcibios_min_io = 0x6000;
|
pcibios_min_io = 0x6000;
|
||||||
pcibios_min_mem = 0x00100000;
|
pcibios_min_mem = 0x00100000;
|
||||||
vga_base = PCI_MEMORY_VADDR;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Hook in our fault handler for PCI errors
|
* Hook in our fault handler for PCI errors
|
||||||
|
@ -262,45 +262,6 @@ static struct samsung_keypad_platdata smdk6410_keypad_data __initdata = {
|
|||||||
.cols = 8,
|
.cols = 8,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int smdk6410_backlight_init(struct device *dev)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = gpio_request(S3C64XX_GPF(15), "Backlight");
|
|
||||||
if (ret) {
|
|
||||||
printk(KERN_ERR "failed to request GPF for PWM-OUT1\n");
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Configure GPIO pin with S3C64XX_GPF15_PWM_TOUT1 */
|
|
||||||
s3c_gpio_cfgpin(S3C64XX_GPF(15), S3C_GPIO_SFN(2));
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void smdk6410_backlight_exit(struct device *dev)
|
|
||||||
{
|
|
||||||
s3c_gpio_cfgpin(S3C64XX_GPF(15), S3C_GPIO_OUTPUT);
|
|
||||||
gpio_free(S3C64XX_GPF(15));
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct platform_pwm_backlight_data smdk6410_backlight_data = {
|
|
||||||
.pwm_id = 1,
|
|
||||||
.max_brightness = 255,
|
|
||||||
.dft_brightness = 255,
|
|
||||||
.pwm_period_ns = 78770,
|
|
||||||
.init = smdk6410_backlight_init,
|
|
||||||
.exit = smdk6410_backlight_exit,
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device smdk6410_backlight_device = {
|
|
||||||
.name = "pwm-backlight",
|
|
||||||
.dev = {
|
|
||||||
.parent = &s3c_device_timer[1].dev,
|
|
||||||
.platform_data = &smdk6410_backlight_data,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct map_desc smdk6410_iodesc[] = {};
|
static struct map_desc smdk6410_iodesc[] = {};
|
||||||
|
|
||||||
static struct platform_device *smdk6410_devices[] __initdata = {
|
static struct platform_device *smdk6410_devices[] __initdata = {
|
||||||
|
@ -64,6 +64,17 @@ static LIST_HEAD(clocks);
|
|||||||
*/
|
*/
|
||||||
DEFINE_SPINLOCK(clocks_lock);
|
DEFINE_SPINLOCK(clocks_lock);
|
||||||
|
|
||||||
|
/* Global watchdog clock used by arch_wtd_reset() callback */
|
||||||
|
struct clk *s3c2410_wdtclk;
|
||||||
|
static int __init s3c_wdt_reset_init(void)
|
||||||
|
{
|
||||||
|
s3c2410_wdtclk = clk_get(NULL, "watchdog");
|
||||||
|
if (IS_ERR(s3c2410_wdtclk))
|
||||||
|
printk(KERN_WARNING "%s: warning: cannot get watchdog clock\n", __func__);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
arch_initcall(s3c_wdt_reset_init);
|
||||||
|
|
||||||
/* enable and disable calls for use with the clk struct */
|
/* enable and disable calls for use with the clk struct */
|
||||||
|
|
||||||
static int clk_null_enable(struct clk *clk, int enable)
|
static int clk_null_enable(struct clk *clk, int enable)
|
||||||
|
@ -9,6 +9,9 @@
|
|||||||
* published by the Free Software Foundation.
|
* published by the Free Software Foundation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef __ASM_PLAT_CLOCK_H
|
||||||
|
#define __ASM_PLAT_CLOCK_H __FILE__
|
||||||
|
|
||||||
#include <linux/spinlock.h>
|
#include <linux/spinlock.h>
|
||||||
#include <linux/clkdev.h>
|
#include <linux/clkdev.h>
|
||||||
|
|
||||||
@ -121,3 +124,8 @@ extern int s3c64xx_sclk_ctrl(struct clk *clk, int enable);
|
|||||||
|
|
||||||
extern void s3c_pwmclk_init(void);
|
extern void s3c_pwmclk_init(void);
|
||||||
|
|
||||||
|
/* Global watchdog clock used by arch_wtd_reset() callback */
|
||||||
|
|
||||||
|
extern struct clk *s3c2410_wdtclk;
|
||||||
|
|
||||||
|
#endif /* __ASM_PLAT_CLOCK_H */
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
* published by the Free Software Foundation.
|
* published by the Free Software Foundation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <plat/clock.h>
|
||||||
#include <plat/regs-watchdog.h>
|
#include <plat/regs-watchdog.h>
|
||||||
#include <mach/map.h>
|
#include <mach/map.h>
|
||||||
|
|
||||||
@ -19,17 +20,12 @@
|
|||||||
|
|
||||||
static inline void arch_wdt_reset(void)
|
static inline void arch_wdt_reset(void)
|
||||||
{
|
{
|
||||||
struct clk *wdtclk;
|
|
||||||
|
|
||||||
printk("arch_reset: attempting watchdog reset\n");
|
printk("arch_reset: attempting watchdog reset\n");
|
||||||
|
|
||||||
__raw_writel(0, S3C2410_WTCON); /* disable watchdog, to be safe */
|
__raw_writel(0, S3C2410_WTCON); /* disable watchdog, to be safe */
|
||||||
|
|
||||||
wdtclk = clk_get(NULL, "watchdog");
|
if (s3c2410_wdtclk)
|
||||||
if (!IS_ERR(wdtclk)) {
|
clk_enable(s3c2410_wdtclk);
|
||||||
clk_enable(wdtclk);
|
|
||||||
} else
|
|
||||||
printk(KERN_WARNING "%s: warning: cannot get watchdog clock\n", __func__);
|
|
||||||
|
|
||||||
/* put initial values into count and data */
|
/* put initial values into count and data */
|
||||||
__raw_writel(0x80, S3C2410_WTCNT);
|
__raw_writel(0x80, S3C2410_WTCNT);
|
||||||
|
Loading…
Reference in New Issue
Block a user