0001
0002 #ifndef __MACH_DEVICE_H
0003 #define __MACH_DEVICE_H
0004
0005 #include <linux/types.h>
0006
0007 #define MAX_RESOURCE_DMA 2
0008
0009
0010 struct mmp_device_desc {
0011 const char *dev_name;
0012 const char *drv_name;
0013 int id;
0014 int irq;
0015 unsigned long start;
0016 unsigned long size;
0017 int dma[MAX_RESOURCE_DMA];
0018 };
0019
0020 #define PXA168_DEVICE(_name, _drv, _id, _irq, _start, _size, _dma...) \
0021 struct mmp_device_desc pxa168_device_##_name __initdata = { \
0022 .dev_name = "pxa168-" #_name, \
0023 .drv_name = _drv, \
0024 .id = _id, \
0025 .irq = IRQ_PXA168_##_irq, \
0026 .start = _start, \
0027 .size = _size, \
0028 .dma = { _dma }, \
0029 };
0030
0031 #define PXA910_DEVICE(_name, _drv, _id, _irq, _start, _size, _dma...) \
0032 struct mmp_device_desc pxa910_device_##_name __initdata = { \
0033 .dev_name = "pxa910-" #_name, \
0034 .drv_name = _drv, \
0035 .id = _id, \
0036 .irq = IRQ_PXA910_##_irq, \
0037 .start = _start, \
0038 .size = _size, \
0039 .dma = { _dma }, \
0040 };
0041
0042 #define MMP2_DEVICE(_name, _drv, _id, _irq, _start, _size, _dma...) \
0043 struct mmp_device_desc mmp2_device_##_name __initdata = { \
0044 .dev_name = "mmp2-" #_name, \
0045 .drv_name = _drv, \
0046 .id = _id, \
0047 .irq = IRQ_MMP2_##_irq, \
0048 .start = _start, \
0049 .size = _size, \
0050 .dma = { _dma }, \
0051 }
0052
0053 extern int mmp_register_device(struct mmp_device_desc *, void *, size_t);
0054 extern int pxa_usb_phy_init(void __iomem *phy_reg);
0055 extern void pxa_usb_phy_deinit(void __iomem *phy_reg);
0056
0057 #endif