Blackfin arch: Port the dm9000 driver to Blackfin by using the correct low-level io routines
Signed-off-by: Alex Landau <landau.alex@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
This commit is contained in:
parent
9be343c5bc
commit
f40d24d909
@ -157,6 +157,28 @@ static struct platform_device smc91x_device = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
|
||||||
|
static struct resource dm9000_resources[] = {
|
||||||
|
[0] = {
|
||||||
|
.start = 0x203FB800,
|
||||||
|
.end = 0x203FB800 + 8,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
[1] = {
|
||||||
|
.start = IRQ_PF9,
|
||||||
|
.end = IRQ_PF9,
|
||||||
|
.flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device dm9000_device = {
|
||||||
|
.name = "dm9000",
|
||||||
|
.id = -1,
|
||||||
|
.num_resources = ARRAY_SIZE(dm9000_resources),
|
||||||
|
.resource = dm9000_resources,
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
|
#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
|
||||||
static struct resource sl811_hcd_resources[] = {
|
static struct resource sl811_hcd_resources[] = {
|
||||||
{
|
{
|
||||||
@ -568,6 +590,10 @@ static struct platform_device *stamp_devices[] __initdata = {
|
|||||||
&smc91x_device,
|
&smc91x_device,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
|
||||||
|
&dm9000_device,
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
||||||
&bfin_mac_device,
|
&bfin_mac_device,
|
||||||
#endif
|
#endif
|
||||||
|
@ -877,7 +877,7 @@ config NET_NETX
|
|||||||
|
|
||||||
config DM9000
|
config DM9000
|
||||||
tristate "DM9000 support"
|
tristate "DM9000 support"
|
||||||
depends on ARM || MIPS
|
depends on ARM || BLACKFIN || MIPS
|
||||||
select CRC32
|
select CRC32
|
||||||
select MII
|
select MII
|
||||||
---help---
|
---help---
|
||||||
|
@ -104,6 +104,18 @@
|
|||||||
#define PRINTK(args...) printk(KERN_DEBUG args)
|
#define PRINTK(args...) printk(KERN_DEBUG args)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_BLACKFIN
|
||||||
|
#define readsb insb
|
||||||
|
#define readsw insw
|
||||||
|
#define readsl insl
|
||||||
|
#define writesb outsb
|
||||||
|
#define writesw outsw
|
||||||
|
#define writesl outsl
|
||||||
|
#define DM9000_IRQ_FLAGS (IRQF_SHARED | IRQF_TRIGGER_HIGH)
|
||||||
|
#else
|
||||||
|
#define DM9000_IRQ_FLAGS IRQF_SHARED
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Transmit timeout, default 5 seconds.
|
* Transmit timeout, default 5 seconds.
|
||||||
*/
|
*/
|
||||||
@ -431,6 +443,9 @@ dm9000_probe(struct platform_device *pdev)
|
|||||||
db->io_addr = (void __iomem *)base;
|
db->io_addr = (void __iomem *)base;
|
||||||
db->io_data = (void __iomem *)(base + 4);
|
db->io_data = (void __iomem *)(base + 4);
|
||||||
|
|
||||||
|
/* ensure at least we have a default set of IO routines */
|
||||||
|
dm9000_set_io(db, 2);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
db->addr_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
db->addr_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||||
db->data_res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
|
db->data_res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
|
||||||
@ -614,7 +629,7 @@ dm9000_open(struct net_device *dev)
|
|||||||
|
|
||||||
PRINTK2("entering dm9000_open\n");
|
PRINTK2("entering dm9000_open\n");
|
||||||
|
|
||||||
if (request_irq(dev->irq, &dm9000_interrupt, IRQF_SHARED, dev->name, dev))
|
if (request_irq(dev->irq, &dm9000_interrupt, DM9000_IRQ_FLAGS, dev->name, dev))
|
||||||
return -EAGAIN;
|
return -EAGAIN;
|
||||||
|
|
||||||
/* Initialize DM9000 board */
|
/* Initialize DM9000 board */
|
||||||
|
Loading…
Reference in New Issue
Block a user