diff options
author | Rasmus Villemoes <rasmus.villemoes@prevas.dk> | 2019-06-04 09:34:24 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-06-05 05:07:56 +0200 |
commit | f30a19b828c645cdde1e7a7733dce1cab8bcb25a (patch) | |
tree | b08ef587db6259666dbb41c55e3ae0f598668851 /drivers/net/dsa/mv88e6xxx/chip.h | |
parent | net: dsa: mv88e6xxx: add mv88e6250_g1_ieee_pri_map (diff) | |
download | linux-f30a19b828c645cdde1e7a7733dce1cab8bcb25a.tar.xz linux-f30a19b828c645cdde1e7a7733dce1cab8bcb25a.zip |
net: dsa: mv88e6xxx: introduce support for two chips using direct smi addressing
The 88e6250 (as well as 6220, 6071, 6070, 6020) do not support
multi-chip (indirect) addressing. However, one can still have two of
them on the same mdio bus, since the device only uses 16 of the 32
possible addresses, either addresses 0x00-0x0F or 0x10-0x1F depending
on the ADDR4 pin at reset [since ADDR4 is internally pulled high, the
latter is the default].
In order to prepare for supporting the 88e6250 and friends, introduce
mv88e6xxx_info::dual_chip to allow having a non-zero sw_addr while
still using direct addressing.
Reviewed-by: Vivien Didelot <vivien.didelot@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/dsa/mv88e6xxx/chip.h')
-rw-r--r-- | drivers/net/dsa/mv88e6xxx/chip.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/dsa/mv88e6xxx/chip.h b/drivers/net/dsa/mv88e6xxx/chip.h index faa3fa889f19..74777c3bc313 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.h +++ b/drivers/net/dsa/mv88e6xxx/chip.h @@ -112,6 +112,12 @@ struct mv88e6xxx_info { * when it is non-zero, and use indirect access to internal registers. */ bool multi_chip; + /* Dual-chip Addressing Mode + * Some chips respond to only half of the 32 SMI addresses, + * allowing two to coexist on the same SMI interface. + */ + bool dual_chip; + enum dsa_tag_protocol tag_protocol; /* Mask for FromPort and ToPort value of PortVec used in ATU Move |