Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 3507/1: Replace map_desc.physical with map_desc.pfn: aaed2000 [ARM] 3506/1: aaec2000: debug-macro.S needs hardware.h [ARM] 3505/1: aaec2000: entry-macro.S needs asm/arch/irqs.h [ARM] 3504/1: Fix clcd includes for aaec2000 [ARM] 3503/1: Fix map_desc structure for aaec2000 [ARM] 3501/1: i.MX: fix lowlevel debug macros [ARM] rtc-sa1100: fix compiler warnings and error cleanup [ARM] Allow SA1100 RTC alarm to be configured for wakeup
This commit is contained in:
@@ -79,7 +79,12 @@ static void __init aaed2000_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static struct map_desc aaed2000_io_desc[] __initdata = {
|
static struct map_desc aaed2000_io_desc[] __initdata = {
|
||||||
{ EXT_GPIO_VBASE, EXT_GPIO_PBASE, EXT_GPIO_LENGTH, MT_DEVICE }, /* Ext GPIO */
|
{
|
||||||
|
.virtual = EXT_GPIO_VBASE,
|
||||||
|
.pfn = __phys_to_pfn(EXT_GPIO_PBASE),
|
||||||
|
.length = EXT_GPIO_LENGTH,
|
||||||
|
.type = MT_DEVICE
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __init aaed2000_map_io(void)
|
static void __init aaed2000_map_io(void)
|
||||||
|
@@ -20,7 +20,6 @@
|
|||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/timex.h>
|
#include <linux/timex.h>
|
||||||
#include <linux/signal.h>
|
#include <linux/signal.h>
|
||||||
#include <linux/amba/bus.h>
|
|
||||||
|
|
||||||
#include <asm/hardware.h>
|
#include <asm/hardware.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
@@ -50,12 +49,12 @@
|
|||||||
static struct map_desc standard_io_desc[] __initdata = {
|
static struct map_desc standard_io_desc[] __initdata = {
|
||||||
{
|
{
|
||||||
.virtual = VIO_APB_BASE,
|
.virtual = VIO_APB_BASE,
|
||||||
.physical = __phys_to_pfn(PIO_APB_BASE),
|
.pfn = __phys_to_pfn(PIO_APB_BASE),
|
||||||
.length = IO_APB_LENGTH,
|
.length = IO_APB_LENGTH,
|
||||||
.type = MT_DEVICE
|
.type = MT_DEVICE
|
||||||
}, {
|
}, {
|
||||||
.virtual = VIO_AHB_BASE,
|
.virtual = VIO_AHB_BASE,
|
||||||
.physical = __phys_to_pfn(PIO_AHB_BASE),
|
.pfn = __phys_to_pfn(PIO_AHB_BASE),
|
||||||
.length = IO_AHB_LENGTH,
|
.length = IO_AHB_LENGTH,
|
||||||
.type = MT_DEVICE
|
.type = MT_DEVICE
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <linux/amba/bus.h>
|
||||||
#include <linux/amba/clcd.h>
|
#include <linux/amba/clcd.h>
|
||||||
|
|
||||||
struct sys_timer;
|
struct sys_timer;
|
||||||
|
@@ -161,7 +161,7 @@ mx1ads_map_io(void)
|
|||||||
MACHINE_START(MX1ADS, "Motorola MX1ADS")
|
MACHINE_START(MX1ADS, "Motorola MX1ADS")
|
||||||
/* Maintainer: Sascha Hauer, Pengutronix */
|
/* Maintainer: Sascha Hauer, Pengutronix */
|
||||||
.phys_io = 0x00200000,
|
.phys_io = 0x00200000,
|
||||||
.io_pg_offst = ((0xe0200000) >> 18) & 0xfffc,
|
.io_pg_offst = ((0xe0000000) >> 18) & 0xfffc,
|
||||||
.boot_params = 0x08000100,
|
.boot_params = 0x08000100,
|
||||||
.map_io = mx1ads_map_io,
|
.map_io = mx1ads_map_io,
|
||||||
.init_irq = imx_init_irq,
|
.init_irq = imx_init_irq,
|
||||||
|
@@ -199,10 +199,26 @@ static void sa1100_unmask_irq(unsigned int irq)
|
|||||||
ICMR |= (1 << irq);
|
ICMR |= (1 << irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Apart form GPIOs, only the RTC alarm can be a wakeup event.
|
||||||
|
*/
|
||||||
|
static int sa1100_set_wake(unsigned int irq, unsigned int on)
|
||||||
|
{
|
||||||
|
if (irq == IRQ_RTCAlrm) {
|
||||||
|
if (on)
|
||||||
|
PWER |= PWER_RTC;
|
||||||
|
else
|
||||||
|
PWER &= ~PWER_RTC;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
static struct irqchip sa1100_normal_chip = {
|
static struct irqchip sa1100_normal_chip = {
|
||||||
.ack = sa1100_mask_irq,
|
.ack = sa1100_mask_irq,
|
||||||
.mask = sa1100_mask_irq,
|
.mask = sa1100_mask_irq,
|
||||||
.unmask = sa1100_unmask_irq,
|
.unmask = sa1100_unmask_irq,
|
||||||
|
.set_wake = sa1100_set_wake,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource irq_resource = {
|
static struct resource irq_resource = {
|
||||||
|
@@ -178,9 +178,9 @@ static int sa1100_rtc_open(struct device *dev)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail_pi:
|
fail_pi:
|
||||||
free_irq(IRQ_RTCAlrm, NULL);
|
free_irq(IRQ_RTCAlrm, dev);
|
||||||
fail_ai:
|
fail_ai:
|
||||||
free_irq(IRQ_RTC1Hz, NULL);
|
free_irq(IRQ_RTC1Hz, dev);
|
||||||
fail_ui:
|
fail_ui:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -295,7 +295,7 @@ static int sa1100_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
|
|||||||
|
|
||||||
static int sa1100_rtc_proc(struct device *dev, struct seq_file *seq)
|
static int sa1100_rtc_proc(struct device *dev, struct seq_file *seq)
|
||||||
{
|
{
|
||||||
seq_printf(seq, "trim/divider\t: 0x%08x\n", RTTR);
|
seq_printf(seq, "trim/divider\t: 0x%08lx\n", RTTR);
|
||||||
seq_printf(seq, "alarm_IRQ\t: %s\n",
|
seq_printf(seq, "alarm_IRQ\t: %s\n",
|
||||||
(RTSR & RTSR_ALE) ? "yes" : "no" );
|
(RTSR & RTSR_ALE) ? "yes" : "no" );
|
||||||
seq_printf(seq, "update_IRQ\t: %s\n",
|
seq_printf(seq, "update_IRQ\t: %s\n",
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
* published by the Free Software Foundation.
|
* published by the Free Software Foundation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "hardware.h"
|
||||||
.macro addruart,rx
|
.macro addruart,rx
|
||||||
mrc p15, 0, \rx, c1, c0
|
mrc p15, 0, \rx, c1, c0
|
||||||
tst \rx, #1 @ MMU enabled?
|
tst \rx, #1 @ MMU enabled?
|
||||||
|
@@ -10,6 +10,7 @@
|
|||||||
* published by the Free Software Foundation.
|
* published by the Free Software Foundation.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
#include <asm/arch/irqs.h>
|
||||||
|
|
||||||
.macro disable_fiq
|
.macro disable_fiq
|
||||||
.endm
|
.endm
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
tst \rx, #1 @ MMU enabled?
|
tst \rx, #1 @ MMU enabled?
|
||||||
moveq \rx, #0x00000000 @ physical
|
moveq \rx, #0x00000000 @ physical
|
||||||
movne \rx, #0xe0000000 @ virtual
|
movne \rx, #0xe0000000 @ virtual
|
||||||
orr \rx, \rx, #0x00200000
|
orreq \rx, \rx, #0x00200000 @ physical
|
||||||
orr \rx, \rx, #0x00006000 @ UART1 offset
|
orr \rx, \rx, #0x00006000 @ UART1 offset
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user