#define SMI_ACCESS_PHY_CTRL_2 0xcb78
#define PHY_CTRL_INDATA GENMASK(31, 16)
#define PHY_CTRL_DATA GENMASK(15, 0)
-#define SMI_ACCESS_PHY_CTRL_3 0xcb7c
+#define RTL9300_SMI_ACCESS_PHY_CTRL_3 0xcb7c
#define PHY_CTRL_MMD_DEVAD GENMASK(20, 16)
#define PHY_CTRL_MMD_REG GENMASK(15, 0)
#define SMI_PORT0_5_ADDR_CTRL 0xcb80
#define MAX_SMI_ADDR 0x1f
#define RAW_PAGE(priv) ((priv)->info->num_pages - 1)
+
+struct otto_emdio_cmd_regs {
+ u32 c45_data;
+};
+
struct otto_emdio_info {
+ struct otto_emdio_cmd_regs cmd_regs;
u8 num_buses;
u8 num_ports;
u16 num_pages;
val = FIELD_PREP(PHY_CTRL_MMD_DEVAD, dev_addr) |
FIELD_PREP(PHY_CTRL_MMD_REG, regnum);
- err = regmap_write(regmap, SMI_ACCESS_PHY_CTRL_3, val);
+ err = regmap_write(regmap, priv->info->cmd_regs.c45_data, val);
if (err)
goto out_err;
val = FIELD_PREP(PHY_CTRL_MMD_DEVAD, dev_addr) |
FIELD_PREP(PHY_CTRL_MMD_REG, regnum);
- err = regmap_write(regmap, SMI_ACCESS_PHY_CTRL_3, val);
+ err = regmap_write(regmap, priv->info->cmd_regs.c45_data, val);
if (err)
goto out_err;
}
static const struct otto_emdio_info otto_emdio_9300_info = {
+ .cmd_regs = {
+ .c45_data = RTL9300_SMI_ACCESS_PHY_CTRL_3,
+ },
.num_buses = RTL9300_NUM_BUSES,
.num_ports = RTL9300_NUM_PORTS,
.num_pages = RTL9300_NUM_PAGES,