Commit 9d95329c authored by Arun Ramadoss's avatar Arun Ramadoss Committed by David S. Miller

net: dsa: microchip: move remaining register offset to ksz_chip_reg

This patch moves the broadcast ctrl, multicast ctrl and start control
registers from ksz_chip_dat to ksz_chip_reg.
Signed-off-by: default avatarArun Ramadoss <arun.ramadoss@microchip.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6877102f
...@@ -217,6 +217,9 @@ static const u16 ksz8795_regs[] = { ...@@ -217,6 +217,9 @@ static const u16 ksz8795_regs[] = {
[P_SPEED_STATUS] = 0x09, [P_SPEED_STATUS] = 0x09,
[S_TAIL_TAG_CTRL] = 0x0C, [S_TAIL_TAG_CTRL] = 0x0C,
[P_STP_CTRL] = 0x02, [P_STP_CTRL] = 0x02,
[S_START_CTRL] = 0x01,
[S_BROADCAST_CTRL] = 0x06,
[S_MULTICAST_CTRL] = 0x04,
}; };
static const u32 ksz8795_masks[] = { static const u32 ksz8795_masks[] = {
...@@ -268,6 +271,9 @@ static const u16 ksz8863_regs[] = { ...@@ -268,6 +271,9 @@ static const u16 ksz8863_regs[] = {
[P_SPEED_STATUS] = 0x0F, [P_SPEED_STATUS] = 0x0F,
[S_TAIL_TAG_CTRL] = 0x03, [S_TAIL_TAG_CTRL] = 0x03,
[P_STP_CTRL] = 0x02, [P_STP_CTRL] = 0x02,
[S_START_CTRL] = 0x01,
[S_BROADCAST_CTRL] = 0x06,
[S_MULTICAST_CTRL] = 0x04,
}; };
static const u32 ksz8863_masks[] = { static const u32 ksz8863_masks[] = {
...@@ -305,6 +311,9 @@ static u8 ksz8863_shifts[] = { ...@@ -305,6 +311,9 @@ static u8 ksz8863_shifts[] = {
static const u16 ksz9477_regs[] = { static const u16 ksz9477_regs[] = {
[P_STP_CTRL] = 0x0B04, [P_STP_CTRL] = 0x0B04,
[S_START_CTRL] = 0x0300,
[S_BROADCAST_CTRL] = 0x0332,
[S_MULTICAST_CTRL] = 0x0331,
}; };
...@@ -325,9 +334,6 @@ const struct ksz_chip_data ksz_switch_chips[] = { ...@@ -325,9 +334,6 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.regs = ksz8795_regs, .regs = ksz8795_regs,
.masks = ksz8795_masks, .masks = ksz8795_masks,
.shifts = ksz8795_shifts, .shifts = ksz8795_shifts,
.broadcast_ctrl_reg = 0x06,
.multicast_ctrl_reg = 0x04,
.start_ctrl_reg = 0x01,
.supports_mii = {false, false, false, false, true}, .supports_mii = {false, false, false, false, true},
.supports_rmii = {false, false, false, false, true}, .supports_rmii = {false, false, false, false, true},
.supports_rgmii = {false, false, false, false, true}, .supports_rgmii = {false, false, false, false, true},
...@@ -364,9 +370,6 @@ const struct ksz_chip_data ksz_switch_chips[] = { ...@@ -364,9 +370,6 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.regs = ksz8795_regs, .regs = ksz8795_regs,
.masks = ksz8795_masks, .masks = ksz8795_masks,
.shifts = ksz8795_shifts, .shifts = ksz8795_shifts,
.broadcast_ctrl_reg = 0x06,
.multicast_ctrl_reg = 0x04,
.start_ctrl_reg = 0x01,
.supports_mii = {false, false, false, false, true}, .supports_mii = {false, false, false, false, true},
.supports_rmii = {false, false, false, false, true}, .supports_rmii = {false, false, false, false, true},
.supports_rgmii = {false, false, false, false, true}, .supports_rgmii = {false, false, false, false, true},
...@@ -389,9 +392,6 @@ const struct ksz_chip_data ksz_switch_chips[] = { ...@@ -389,9 +392,6 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.regs = ksz8795_regs, .regs = ksz8795_regs,
.masks = ksz8795_masks, .masks = ksz8795_masks,
.shifts = ksz8795_shifts, .shifts = ksz8795_shifts,
.broadcast_ctrl_reg = 0x06,
.multicast_ctrl_reg = 0x04,
.start_ctrl_reg = 0x01,
.supports_mii = {false, false, false, false, true}, .supports_mii = {false, false, false, false, true},
.supports_rmii = {false, false, false, false, true}, .supports_rmii = {false, false, false, false, true},
.supports_rgmii = {false, false, false, false, true}, .supports_rgmii = {false, false, false, false, true},
...@@ -413,9 +413,6 @@ const struct ksz_chip_data ksz_switch_chips[] = { ...@@ -413,9 +413,6 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.regs = ksz8863_regs, .regs = ksz8863_regs,
.masks = ksz8863_masks, .masks = ksz8863_masks,
.shifts = ksz8863_shifts, .shifts = ksz8863_shifts,
.broadcast_ctrl_reg = 0x06,
.multicast_ctrl_reg = 0x04,
.start_ctrl_reg = 0x01,
.supports_mii = {false, false, true}, .supports_mii = {false, false, true},
.supports_rmii = {false, false, true}, .supports_rmii = {false, false, true},
.internal_phy = {true, true, false}, .internal_phy = {true, true, false},
...@@ -435,9 +432,6 @@ const struct ksz_chip_data ksz_switch_chips[] = { ...@@ -435,9 +432,6 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.mib_cnt = ARRAY_SIZE(ksz9477_mib_names), .mib_cnt = ARRAY_SIZE(ksz9477_mib_names),
.reg_mib_cnt = MIB_COUNTER_NUM, .reg_mib_cnt = MIB_COUNTER_NUM,
.regs = ksz9477_regs, .regs = ksz9477_regs,
.broadcast_ctrl_reg = 0x0332,
.multicast_ctrl_reg = 0x0331,
.start_ctrl_reg = 0x0300,
.supports_mii = {false, false, false, false, .supports_mii = {false, false, false, false,
false, true, false}, false, true, false},
.supports_rmii = {false, false, false, false, .supports_rmii = {false, false, false, false,
...@@ -462,9 +456,6 @@ const struct ksz_chip_data ksz_switch_chips[] = { ...@@ -462,9 +456,6 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.mib_cnt = ARRAY_SIZE(ksz9477_mib_names), .mib_cnt = ARRAY_SIZE(ksz9477_mib_names),
.reg_mib_cnt = MIB_COUNTER_NUM, .reg_mib_cnt = MIB_COUNTER_NUM,
.regs = ksz9477_regs, .regs = ksz9477_regs,
.broadcast_ctrl_reg = 0x0332,
.multicast_ctrl_reg = 0x0331,
.start_ctrl_reg = 0x0300,
.supports_mii = {false, false, false, false, .supports_mii = {false, false, false, false,
false, true, true}, false, true, true},
.supports_rmii = {false, false, false, false, .supports_rmii = {false, false, false, false,
...@@ -488,9 +479,6 @@ const struct ksz_chip_data ksz_switch_chips[] = { ...@@ -488,9 +479,6 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.mib_cnt = ARRAY_SIZE(ksz9477_mib_names), .mib_cnt = ARRAY_SIZE(ksz9477_mib_names),
.reg_mib_cnt = MIB_COUNTER_NUM, .reg_mib_cnt = MIB_COUNTER_NUM,
.regs = ksz9477_regs, .regs = ksz9477_regs,
.broadcast_ctrl_reg = 0x0332,
.multicast_ctrl_reg = 0x0331,
.start_ctrl_reg = 0x0300,
.supports_mii = {false, false, true}, .supports_mii = {false, false, true},
.supports_rmii = {false, false, true}, .supports_rmii = {false, false, true},
.supports_rgmii = {false, false, true}, .supports_rgmii = {false, false, true},
...@@ -511,9 +499,6 @@ const struct ksz_chip_data ksz_switch_chips[] = { ...@@ -511,9 +499,6 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.mib_cnt = ARRAY_SIZE(ksz9477_mib_names), .mib_cnt = ARRAY_SIZE(ksz9477_mib_names),
.reg_mib_cnt = MIB_COUNTER_NUM, .reg_mib_cnt = MIB_COUNTER_NUM,
.regs = ksz9477_regs, .regs = ksz9477_regs,
.broadcast_ctrl_reg = 0x0332,
.multicast_ctrl_reg = 0x0331,
.start_ctrl_reg = 0x0300,
.supports_mii = {false, false, false, false, .supports_mii = {false, false, false, false,
false, true, true}, false, true, true},
.supports_rmii = {false, false, false, false, .supports_rmii = {false, false, false, false,
...@@ -536,9 +521,6 @@ const struct ksz_chip_data ksz_switch_chips[] = { ...@@ -536,9 +521,6 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.mib_cnt = ARRAY_SIZE(ksz9477_mib_names), .mib_cnt = ARRAY_SIZE(ksz9477_mib_names),
.reg_mib_cnt = MIB_COUNTER_NUM, .reg_mib_cnt = MIB_COUNTER_NUM,
.regs = ksz9477_regs, .regs = ksz9477_regs,
.broadcast_ctrl_reg = 0x0332,
.multicast_ctrl_reg = 0x0331,
.start_ctrl_reg = 0x0300,
.supports_mii = {false, false, false, false, true}, .supports_mii = {false, false, false, false, true},
.supports_rmii = {false, false, false, false, true}, .supports_rmii = {false, false, false, false, true},
.supports_rgmii = {false, false, false, false, true}, .supports_rgmii = {false, false, false, false, true},
...@@ -557,9 +539,6 @@ const struct ksz_chip_data ksz_switch_chips[] = { ...@@ -557,9 +539,6 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.mib_cnt = ARRAY_SIZE(ksz9477_mib_names), .mib_cnt = ARRAY_SIZE(ksz9477_mib_names),
.reg_mib_cnt = MIB_COUNTER_NUM, .reg_mib_cnt = MIB_COUNTER_NUM,
.regs = ksz9477_regs, .regs = ksz9477_regs,
.broadcast_ctrl_reg = 0x0332,
.multicast_ctrl_reg = 0x0331,
.start_ctrl_reg = 0x0300,
.supports_mii = {false, false, false, false, true, true}, .supports_mii = {false, false, false, false, true, true},
.supports_rmii = {false, false, false, false, true, true}, .supports_rmii = {false, false, false, false, true, true},
.supports_rgmii = {false, false, false, false, true, true}, .supports_rgmii = {false, false, false, false, true, true},
...@@ -578,9 +557,6 @@ const struct ksz_chip_data ksz_switch_chips[] = { ...@@ -578,9 +557,6 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.mib_cnt = ARRAY_SIZE(ksz9477_mib_names), .mib_cnt = ARRAY_SIZE(ksz9477_mib_names),
.reg_mib_cnt = MIB_COUNTER_NUM, .reg_mib_cnt = MIB_COUNTER_NUM,
.regs = ksz9477_regs, .regs = ksz9477_regs,
.broadcast_ctrl_reg = 0x0332,
.multicast_ctrl_reg = 0x0331,
.start_ctrl_reg = 0x0300,
.supports_mii = {false, false, false, false, .supports_mii = {false, false, false, false,
true, true, false, false}, true, true, false, false},
.supports_rmii = {false, false, false, false, .supports_rmii = {false, false, false, false,
...@@ -603,9 +579,6 @@ const struct ksz_chip_data ksz_switch_chips[] = { ...@@ -603,9 +579,6 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.mib_cnt = ARRAY_SIZE(ksz9477_mib_names), .mib_cnt = ARRAY_SIZE(ksz9477_mib_names),
.reg_mib_cnt = MIB_COUNTER_NUM, .reg_mib_cnt = MIB_COUNTER_NUM,
.regs = ksz9477_regs, .regs = ksz9477_regs,
.broadcast_ctrl_reg = 0x0332,
.multicast_ctrl_reg = 0x0331,
.start_ctrl_reg = 0x0300,
.supports_mii = {false, false, false, false, .supports_mii = {false, false, false, false,
true, true, false, false}, true, true, false, false},
.supports_rmii = {false, false, false, false, .supports_rmii = {false, false, false, false,
...@@ -628,9 +601,6 @@ const struct ksz_chip_data ksz_switch_chips[] = { ...@@ -628,9 +601,6 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.mib_cnt = ARRAY_SIZE(ksz9477_mib_names), .mib_cnt = ARRAY_SIZE(ksz9477_mib_names),
.reg_mib_cnt = MIB_COUNTER_NUM, .reg_mib_cnt = MIB_COUNTER_NUM,
.regs = ksz9477_regs, .regs = ksz9477_regs,
.broadcast_ctrl_reg = 0x0332,
.multicast_ctrl_reg = 0x0331,
.start_ctrl_reg = 0x0300,
.supports_mii = {false, false, false, false, .supports_mii = {false, false, false, false,
true, true, false, false}, true, true, false, false},
.supports_rmii = {false, false, false, false, .supports_rmii = {false, false, false, false,
...@@ -830,8 +800,11 @@ static void ksz_update_port_member(struct ksz_device *dev, int port) ...@@ -830,8 +800,11 @@ static void ksz_update_port_member(struct ksz_device *dev, int port)
static int ksz_setup(struct dsa_switch *ds) static int ksz_setup(struct dsa_switch *ds)
{ {
struct ksz_device *dev = ds->priv; struct ksz_device *dev = ds->priv;
const u16 *regs;
int ret; int ret;
regs = dev->info->regs;
dev->vlan_cache = devm_kcalloc(dev->dev, sizeof(struct vlan_table), dev->vlan_cache = devm_kcalloc(dev->dev, sizeof(struct vlan_table),
dev->info->num_vlans, GFP_KERNEL); dev->info->num_vlans, GFP_KERNEL);
if (!dev->vlan_cache) if (!dev->vlan_cache)
...@@ -844,7 +817,7 @@ static int ksz_setup(struct dsa_switch *ds) ...@@ -844,7 +817,7 @@ static int ksz_setup(struct dsa_switch *ds)
} }
/* set broadcast storm protection 10% rate */ /* set broadcast storm protection 10% rate */
regmap_update_bits(dev->regmap[1], dev->info->broadcast_ctrl_reg, regmap_update_bits(dev->regmap[1], regs[S_BROADCAST_CTRL],
BROADCAST_STORM_RATE, BROADCAST_STORM_RATE,
(BROADCAST_STORM_VALUE * (BROADCAST_STORM_VALUE *
BROADCAST_STORM_PROT_RATE) / 100); BROADCAST_STORM_PROT_RATE) / 100);
...@@ -853,7 +826,7 @@ static int ksz_setup(struct dsa_switch *ds) ...@@ -853,7 +826,7 @@ static int ksz_setup(struct dsa_switch *ds)
dev->dev_ops->enable_stp_addr(dev); dev->dev_ops->enable_stp_addr(dev);
regmap_update_bits(dev->regmap[0], dev->info->multicast_ctrl_reg, regmap_update_bits(dev->regmap[0], regs[S_MULTICAST_CTRL],
MULTICAST_STORM_DISABLE, MULTICAST_STORM_DISABLE); MULTICAST_STORM_DISABLE, MULTICAST_STORM_DISABLE);
ksz_init_mib_timer(dev); ksz_init_mib_timer(dev);
...@@ -867,7 +840,7 @@ static int ksz_setup(struct dsa_switch *ds) ...@@ -867,7 +840,7 @@ static int ksz_setup(struct dsa_switch *ds)
} }
/* start switch */ /* start switch */
regmap_update_bits(dev->regmap[0], dev->info->start_ctrl_reg, regmap_update_bits(dev->regmap[0], regs[S_START_CTRL],
SW_START, SW_START); SW_START, SW_START);
return 0; return 0;
......
...@@ -165,6 +165,9 @@ enum ksz_regs { ...@@ -165,6 +165,9 @@ enum ksz_regs {
P_SPEED_STATUS, P_SPEED_STATUS,
S_TAIL_TAG_CTRL, S_TAIL_TAG_CTRL,
P_STP_CTRL, P_STP_CTRL,
S_START_CTRL,
S_BROADCAST_CTRL,
S_MULTICAST_CTRL,
}; };
enum ksz_masks { enum ksz_masks {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment