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); |
