/* * linux/arch/arm/common/sa1111.c * * SA1111 support * * Original code by John Dorsey * * 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 * published by the Free Software Foundation. * * This file contains all generic SA1111 support. * * All initialization functions provided here are intended to be called * from machine specific code with proper arguments when required. */#include<linux/module.h>#include<linux/init.h>#include<linux/irq.h>#include<linux/kernel.h>#include<linux/delay.h>#include<linux/errno.h>#include<linux/ioport.h>#include<linux/platform_device.h>#include<linux/slab.h>#include<linux/spinlock.h>#include<linux/dma-mapping.h>#include<linux/clk.h>#include<linux/io.h>#include<mach/hardware.h>#include<asm/mach/irq.h>#include<asm/mach-types.h>#include<asm/sizes.h>#include<asm/hardware/sa1111.h>/* SA1111 IRQs */#define IRQ_GPAIN0 (0)#define IRQ_GPAIN1 (1)#define IRQ_GPAIN2 (2)#define IRQ_GPAIN3 (3)#define IRQ_GPBIN0 (4)#define IRQ_GPBIN1 (5)#define IRQ_GPBIN2 (6)#define IRQ_GPBIN3 (7)#define IRQ_GPBIN4 (8)#define IRQ_GPBIN5 (9)#define IRQ_GPCIN0 (10)#define IRQ_GPCIN1 (11)#define IRQ_GPCIN2 (12)#define IRQ_GPCIN3 (13)#define IRQ_GPCIN4 (14)#define IRQ_GPCIN5 (15)#define IRQ_GPCIN6 (16)#define IRQ_GPCIN7 (17)#define IRQ_MSTXINT (18)#define IRQ_MSRXINT (19)#define IRQ_MSSTOPERRINT (20)#define IRQ_TPTXINT (21)#define IRQ_TPRXINT (22)#define IRQ_TPSTOPERRINT (23)#define SSPXMTINT (24)#define SSPRCVINT (25)#define SSPROR (26)#define AUDXMTDMADONEA (32)#define AUDRCVDMADONEA (33)#define AUDXMTDMADONEB (34)#define AUDRCVDMADONEB (35)#define AUDTFSR (36)#define AUDRFSR (37)#define AUDTUR (38)#define AUDROR (39)#define AUDDTS (40)#define AUDRDD (41)#define AUDSTO (42)#define IRQ_USBPWR (43)#define IRQ_HCIM (44)#define IRQ_HCIBUFFACC (45)#define IRQ_HCIRMTWKP (46)#define IRQ_NHCIMFCIR (47)#define IRQ_USB_PORT_RESUME (48)#define IRQ_S0_READY_NINT (49)#define IRQ_S1_READY_NINT (50)#define IRQ_S0_CD_VALID (51)#define IRQ_S1_CD_VALID (52)#define IRQ_S0_BVD1_STSCHG (53)#define IRQ_S1_BVD1_STSCHG (54)#define SA1111_IRQ_NR (55)externvoidsa1110_mb_enable(void);externvoidsa1110_mb_disable(void);/* * We keep the following data for the overall SA1111. Note that the * struct device and struct resource are "fake"; they should be supplied * by the bus above us. However, in the interests of getting all SA1111 * drivers converted over to the device model, we provide this as an * anchor point for all the other drivers. */structsa1111{structdevice*dev;structclk*clk;unsignedlongphys;in