diff options
author | Andy Fleming <afleming@freescale.com> | 2008-04-09 20:38:13 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-04-16 20:09:35 -0400 |
commit | 9d9326d3bc0ea9a8bbe40bf3e5e66c7b9858caa0 (patch) | |
tree | 51b2ee6bfa87bbd6faac0bc00a787354e1fb72a0 /include | |
parent | d080cd6301e107e79c6a0fc654319f8979f70549 (diff) |
phy: Change mii_bus id field to a string
Having the id field be an int was making more complex bus topologies
excessively difficult. For now, just convert it to a string, and
change all instances of "bus->id = val" to
snprintf(id, MII_BUS_ID_LEN, "%x", val).
Signed-off-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/fsl_devices.h | 2 | ||||
-rw-r--r-- | include/linux/phy.h | 12 |
2 files changed, 9 insertions, 5 deletions
diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h index 1831b196c70a..2cad5c67397e 100644 --- a/include/linux/fsl_devices.h +++ b/include/linux/fsl_devices.h | |||
@@ -50,7 +50,7 @@ struct gianfar_platform_data { | |||
50 | u32 device_flags; | 50 | u32 device_flags; |
51 | /* board specific information */ | 51 | /* board specific information */ |
52 | u32 board_flags; | 52 | u32 board_flags; |
53 | u32 bus_id; | 53 | char bus_id[MII_BUS_ID_SIZE]; |
54 | u32 phy_id; | 54 | u32 phy_id; |
55 | u8 mac_addr[6]; | 55 | u8 mac_addr[6]; |
56 | phy_interface_t interface; | 56 | phy_interface_t interface; |
diff --git a/include/linux/phy.h b/include/linux/phy.h index 5e43ae751412..6509f377bb10 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h | |||
@@ -63,8 +63,6 @@ typedef enum { | |||
63 | PHY_INTERFACE_MODE_RTBI | 63 | PHY_INTERFACE_MODE_RTBI |
64 | } phy_interface_t; | 64 | } phy_interface_t; |
65 | 65 | ||
66 | #define MII_BUS_MAX 4 | ||
67 | |||
68 | 66 | ||
69 | #define PHY_INIT_TIMEOUT 100000 | 67 | #define PHY_INIT_TIMEOUT 100000 |
70 | #define PHY_STATE_TIME 1 | 68 | #define PHY_STATE_TIME 1 |
@@ -74,13 +72,19 @@ typedef enum { | |||
74 | #define PHY_MAX_ADDR 32 | 72 | #define PHY_MAX_ADDR 32 |
75 | 73 | ||
76 | /* Used when trying to connect to a specific phy (mii bus id:phy device id) */ | 74 | /* Used when trying to connect to a specific phy (mii bus id:phy device id) */ |
77 | #define PHY_ID_FMT "%x:%02x" | 75 | #define PHY_ID_FMT "%s:%02x" |
76 | |||
77 | /* | ||
78 | * Need to be a little smaller than phydev->dev.bus_id to leave room | ||
79 | * for the ":%02x" | ||
80 | */ | ||
81 | #define MII_BUS_ID_SIZE (BUS_ID_SIZE - 3) | ||
78 | 82 | ||
79 | /* The Bus class for PHYs. Devices which provide access to | 83 | /* The Bus class for PHYs. Devices which provide access to |
80 | * PHYs should register using this structure */ | 84 | * PHYs should register using this structure */ |
81 | struct mii_bus { | 85 | struct mii_bus { |
82 | const char *name; | 86 | const char *name; |
83 | int id; | 87 | char id[MII_BUS_ID_SIZE]; |
84 | void *priv; | 88 | void *priv; |
85 | int (*read)(struct mii_bus *bus, int phy_id, int regnum); | 89 | int (*read)(struct mii_bus *bus, int phy_id, int regnum); |
86 | int (*write)(struct mii_bus *bus, int phy_id, int regnum, u16 val); | 90 | int (*write)(struct mii_bus *bus, int phy_id, int regnum, u16 val); |