diff options
author | Ben Dooks <ben-linux@fluff.org> | 2008-02-05 01:02:01 +0100 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-02-11 17:05:22 +0100 |
commit | 33ba509191dd6c6735cc96d2ba411fa311f9a6be (patch) | |
tree | 94294478bc81af77c5e05cd977314baf207d37e6 | |
parent | DM9000: Fix endian-ness of data accesses. (diff) | |
download | linux-33ba509191dd6c6735cc96d2ba411fa311f9a6be.tar.xz linux-33ba509191dd6c6735cc96d2ba411fa311f9a6be.zip |
DM9000: Add platform data to specify external phy
Patch from: Laurent Pinchart <laurentp@cse-semaphore.com>
This patch adds a flag to the DM9000 platform data which, when set,
configures the device to use an external PHY.
Signed-off-by: Laurent Pinchart <laurentp@cse-semaphore.com>
Signed-off-by: Ben Dooks <ben-linuy@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r-- | drivers/net/dm9000.c | 6 | ||||
-rw-r--r-- | include/linux/dm9000.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c index e4390d917b81..b5e47dfa5529 100644 --- a/drivers/net/dm9000.c +++ b/drivers/net/dm9000.c @@ -137,6 +137,7 @@ typedef struct board_info { u16 dbug_cnt; u8 io_mode; /* 0:word, 2:byte */ u8 phy_addr; + unsigned int flags; void (*inblk)(void __iomem *port, void *data, int length); void (*outblk)(void __iomem *port, void *data, int length); @@ -525,6 +526,8 @@ dm9000_probe(struct platform_device *pdev) if (pdata->dumpblk != NULL) db->dumpblk = pdata->dumpblk; + + db->flags = pdata->flags; } dm9000_reset(db); @@ -665,6 +668,9 @@ dm9000_init_dm9000(struct net_device *dev) iow(db, DM9000_GPCR, GPCR_GEP_CNTL); /* Let GPIO0 output */ iow(db, DM9000_GPR, 0); /* Enable PHY */ + if (db->flags & DM9000_PLATF_EXT_PHY) + iow(db, DM9000_NCR, NCR_EXT_PHY); + /* Program operating register */ iow(db, DM9000_TCR, 0); /* TX Polling clear */ iow(db, DM9000_BPTR, 0x3f); /* Less 3Kb, 200us */ diff --git a/include/linux/dm9000.h b/include/linux/dm9000.h index 0008e2ad0c9f..ea530fd1be74 100644 --- a/include/linux/dm9000.h +++ b/include/linux/dm9000.h @@ -19,6 +19,7 @@ #define DM9000_PLATF_8BITONLY (0x0001) #define DM9000_PLATF_16BITONLY (0x0002) #define DM9000_PLATF_32BITONLY (0x0004) +#define DM9000_PLATF_EXT_PHY (0x0008) /* platfrom data for platfrom device structure's platfrom_data field */ |