mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 21:24:08 +08:00
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] pxa: ensure mfp is in correct range in mfp_{read,write} [ARM] pxa/hx4700: fix hx4700 touchscreen pressure values ARM: 5787/1: U300 COH 901 331 fixes ARM: Fix warning in sa1100-flash.c [ARM] Kirkwood: disable propagation of mbus error to the CPU local bus [ARM] pxa: fix incorrect mfp_to_gpio() conversion [ARM] pxa/colibri: fix AC97 ifdefs and add missing include [ARM] pxa: fix missing underscores in mfp-pxa910.h [ARM] pxa: fix interrupts number calculation when CONFIG_PXA_HAVE_ISA_IRQS=y
This commit is contained in:
commit
a044a1b147
@ -915,6 +915,14 @@ void __init kirkwood_init(void)
|
||||
kirkwood_uart0_data[0].uartclk = kirkwood_tclk;
|
||||
kirkwood_uart1_data[0].uartclk = kirkwood_tclk;
|
||||
|
||||
/*
|
||||
* Disable propagation of mbus errors to the CPU local bus,
|
||||
* as this causes mbus errors (which can occur for example
|
||||
* for PCI aborts) to throw CPU aborts, which we're not set
|
||||
* up to deal with.
|
||||
*/
|
||||
writel(readl(CPU_CONFIG) & ~CPU_CONFIG_ERROR_PROP, CPU_CONFIG);
|
||||
|
||||
kirkwood_setup_cpu_mbus();
|
||||
|
||||
#ifdef CONFIG_CACHE_FEROCEON_L2
|
||||
|
@ -13,6 +13,9 @@
|
||||
|
||||
#include <mach/kirkwood.h>
|
||||
|
||||
#define CPU_CONFIG (BRIDGE_VIRT_BASE | 0x0100)
|
||||
#define CPU_CONFIG_ERROR_PROP 0x00000004
|
||||
|
||||
#define CPU_CONTROL (BRIDGE_VIRT_BASE | 0x0104)
|
||||
#define CPU_RESET 0x00000002
|
||||
|
||||
|
@ -160,7 +160,7 @@
|
||||
#define MMC1_WP_MMC1_WP MFP_CFG_DRV(MMC1_WP, AF0, MEDIUM)
|
||||
|
||||
/* PWM */
|
||||
#define GPIO27 PWM3 AF2 MFP_CFG(GPIO27, AF2)
|
||||
#define GPIO27_PWM3_AF2 MFP_CFG(GPIO27, AF2)
|
||||
#define GPIO51_PWM2_OUT MFP_CFG(GPIO51, AF2)
|
||||
#define GPIO117_PWM1_OUT MFP_CFG(GPIO117, AF2)
|
||||
#define GPIO118_PWM2_OUT MFP_CFG(GPIO118, AF2)
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <mach/colibri.h>
|
||||
#include <mach/pxafb.h>
|
||||
#include <mach/ohci.h>
|
||||
#include <mach/audio.h>
|
||||
|
||||
#include "generic.h"
|
||||
#include "devices.h"
|
||||
@ -145,7 +146,8 @@ static void __init colibri_pxa320_init_lcd(void)
|
||||
static inline void colibri_pxa320_init_lcd(void) {}
|
||||
#endif
|
||||
|
||||
#if defined(SND_AC97_CODEC) || defined(SND_AC97_CODEC_MODULE)
|
||||
#if defined(CONFIG_SND_AC97_CODEC) || \
|
||||
defined(CONFIG_SND_AC97_CODEC_MODULE)
|
||||
static mfp_cfg_t colibri_pxa320_ac97_pin_config[] __initdata = {
|
||||
GPIO34_AC97_SYSCLK,
|
||||
GPIO35_AC97_SDATA_IN_0,
|
||||
|
@ -604,7 +604,7 @@ static struct platform_device gpio_vbus = {
|
||||
static const struct ads7846_platform_data tsc2046_info = {
|
||||
.model = 7846,
|
||||
.vref_delay_usecs = 100,
|
||||
.pressure_max = 512,
|
||||
.pressure_max = 1024,
|
||||
.debounce_max = 10,
|
||||
.debounce_tol = 3,
|
||||
.debounce_rep = 1,
|
||||
|
@ -46,5 +46,6 @@
|
||||
beq 1001f
|
||||
bic \irqstat, \irqstat, #0x80000000
|
||||
mov \irqnr, \irqstat, lsr #16
|
||||
add \irqnr, \irqnr, #(PXA_IRQ(0))
|
||||
1001:
|
||||
.endm
|
||||
|
@ -408,7 +408,7 @@ static struct platform_device keypad_device = {
|
||||
};
|
||||
|
||||
static struct platform_device rtc_device = {
|
||||
.name = "rtc0",
|
||||
.name = "rtc-coh901331",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(rtc_resources),
|
||||
.resource = rtc_resources,
|
||||
|
@ -16,7 +16,7 @@
|
||||
#ifndef __ASM_PLAT_MFP_H
|
||||
#define __ASM_PLAT_MFP_H
|
||||
|
||||
#define mfp_to_gpio(m) ((m) % 128)
|
||||
#define mfp_to_gpio(m) ((m) % 256)
|
||||
|
||||
/* list of all the configurable MFP pins */
|
||||
enum {
|
||||
|
@ -207,7 +207,7 @@ unsigned long mfp_read(int mfp)
|
||||
{
|
||||
unsigned long val, flags;
|
||||
|
||||
BUG_ON(mfp >= MFP_PIN_MAX);
|
||||
BUG_ON(mfp < 0 || mfp >= MFP_PIN_MAX);
|
||||
|
||||
spin_lock_irqsave(&mfp_spin_lock, flags);
|
||||
val = mfpr_readl(mfp_table[mfp].mfpr_off);
|
||||
@ -220,7 +220,7 @@ void mfp_write(int mfp, unsigned long val)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
BUG_ON(mfp >= MFP_PIN_MAX);
|
||||
BUG_ON(mfp < 0 || mfp >= MFP_PIN_MAX);
|
||||
|
||||
spin_lock_irqsave(&mfp_spin_lock, flags);
|
||||
mfpr_writel(mfp_table[mfp].mfpr_off, val);
|
||||
|
@ -209,8 +209,8 @@ static int sa1100_probe_subdev(struct sa_subdev_info *subdev, struct resource *r
|
||||
}
|
||||
subdev->mtd->owner = THIS_MODULE;
|
||||
|
||||
printk(KERN_INFO "SA1100 flash: CFI device at 0x%08lx, %dMiB, "
|
||||
"%d-bit\n", phys, subdev->mtd->size >> 20,
|
||||
printk(KERN_INFO "SA1100 flash: CFI device at 0x%08lx, %uMiB, %d-bit\n",
|
||||
phys, (unsigned)(subdev->mtd->size >> 20),
|
||||
subdev->map.bankwidth * 8);
|
||||
|
||||
return 0;
|
||||
|
@ -58,7 +58,16 @@ static irqreturn_t coh901331_interrupt(int irq, void *data)
|
||||
clk_enable(rtap->clk);
|
||||
/* Ack IRQ */
|
||||
writel(1, rtap->virtbase + COH901331_IRQ_EVENT);
|
||||
/*
|
||||
* Disable the interrupt. This is necessary because
|
||||
* the RTC lives on a lower-clocked line and will
|
||||
* not release the IRQ line until after a few (slower)
|
||||
* clock cycles. The interrupt will be re-enabled when
|
||||
* a new alarm is set anyway.
|
||||
*/
|
||||
writel(0, rtap->virtbase + COH901331_IRQ_MASK);
|
||||
clk_disable(rtap->clk);
|
||||
|
||||
/* Set alarm flag */
|
||||
rtc_update_irq(rtap->rtc, 1, RTC_AF);
|
||||
|
||||
@ -128,6 +137,8 @@ static int coh901331_alarm_irq_enable(struct device *dev, unsigned int enabled)
|
||||
else
|
||||
writel(0, rtap->virtbase + COH901331_IRQ_MASK);
|
||||
clk_disable(rtap->clk);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct rtc_class_ops coh901331_ops = {
|
||||
|
Loading…
Reference in New Issue
Block a user