diff options
Diffstat (limited to 'arch/blackfin/mach-bf537/boards/generic_board.c')
-rw-r--r-- | arch/blackfin/mach-bf537/boards/generic_board.c | 59 |
1 files changed, 26 insertions, 33 deletions
diff --git a/arch/blackfin/mach-bf537/boards/generic_board.c b/arch/blackfin/mach-bf537/boards/generic_board.c index 78a13d5bfd55..99b2503d95a9 100644 --- a/arch/blackfin/mach-bf537/boards/generic_board.c +++ b/arch/blackfin/mach-bf537/boards/generic_board.c | |||
@@ -56,51 +56,40 @@ const char bfin_board_name[] = "GENERIC Board"; | |||
56 | * Driver needs to know address, irq and flag pin. | 56 | * Driver needs to know address, irq and flag pin. |
57 | */ | 57 | */ |
58 | 58 | ||
59 | #define ISP1761_BASE 0x203C0000 | ||
60 | #define ISP1761_IRQ IRQ_PF7 | ||
61 | |||
62 | #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) | 59 | #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) |
63 | static struct resource bfin_isp1761_resources[] = { | 60 | #include <linux/usb/isp1760.h> |
61 | static struct resource bfin_isp1760_resources[] = { | ||
64 | [0] = { | 62 | [0] = { |
65 | .name = "isp1761-regs", | 63 | .start = 0x203C0000, |
66 | .start = ISP1761_BASE + 0x00000000, | 64 | .end = 0x203C0000 + 0x000fffff, |
67 | .end = ISP1761_BASE + 0x000fffff, | ||
68 | .flags = IORESOURCE_MEM, | 65 | .flags = IORESOURCE_MEM, |
69 | }, | 66 | }, |
70 | [1] = { | 67 | [1] = { |
71 | .start = ISP1761_IRQ, | 68 | .start = IRQ_PF7, |
72 | .end = ISP1761_IRQ, | 69 | .end = IRQ_PF7, |
73 | .flags = IORESOURCE_IRQ, | 70 | .flags = IORESOURCE_IRQ, |
74 | }, | 71 | }, |
75 | }; | 72 | }; |
76 | 73 | ||
77 | static struct platform_device bfin_isp1761_device = { | 74 | static struct isp1760_platform_data isp1760_priv = { |
78 | .name = "isp1761", | 75 | .is_isp1761 = 0, |
79 | .id = 0, | 76 | .port1_disable = 0, |
80 | .num_resources = ARRAY_SIZE(bfin_isp1761_resources), | 77 | .bus_width_16 = 1, |
81 | .resource = bfin_isp1761_resources, | 78 | .port1_otg = 0, |
79 | .analog_oc = 0, | ||
80 | .dack_polarity_high = 0, | ||
81 | .dreq_polarity_high = 0, | ||
82 | }; | 82 | }; |
83 | 83 | ||
84 | static struct platform_device *bfin_isp1761_devices[] = { | 84 | static struct platform_device bfin_isp1760_device = { |
85 | &bfin_isp1761_device, | 85 | .name = "isp1760-hcd", |
86 | .id = 0, | ||
87 | .dev = { | ||
88 | .platform_data = &isp1760_priv, | ||
89 | }, | ||
90 | .num_resources = ARRAY_SIZE(bfin_isp1760_resources), | ||
91 | .resource = bfin_isp1760_resources, | ||
86 | }; | 92 | }; |
87 | |||
88 | int __init bfin_isp1761_init(void) | ||
89 | { | ||
90 | unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices); | ||
91 | |||
92 | printk(KERN_INFO "%s(): registering device resources\n", __func__); | ||
93 | set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING); | ||
94 | |||
95 | return platform_add_devices(bfin_isp1761_devices, num_devices); | ||
96 | } | ||
97 | |||
98 | void __exit bfin_isp1761_exit(void) | ||
99 | { | ||
100 | platform_device_unregister(&bfin_isp1761_device); | ||
101 | } | ||
102 | |||
103 | arch_initcall(bfin_isp1761_init); | ||
104 | #endif | 93 | #endif |
105 | 94 | ||
106 | #if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) | 95 | #if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) |
@@ -651,6 +640,10 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
651 | &net2272_bfin_device, | 640 | &net2272_bfin_device, |
652 | #endif | 641 | #endif |
653 | 642 | ||
643 | #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) | ||
644 | &bfin_isp1760_device, | ||
645 | #endif | ||
646 | |||
654 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 647 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
655 | &bfin_spi0_device, | 648 | &bfin_spi0_device, |
656 | #endif | 649 | #endif |