]> git.baikalelectronics.ru Git - kernel.git/commit
net: dsa: bcm_sf2: setup BCM4908 internal crossbar
authorRafał Miłecki <rafal@milecki.pl>
Fri, 12 Mar 2021 10:41:08 +0000 (11:41 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 13 Mar 2021 01:06:37 +0000 (17:06 -0800)
commit09de7cb95c7b579520b8c1c4502859802e0ba9e8
tree9d311a1da7f58735d27dbba426d3b87ee2f2ebb8
parenta3209f63d3f8a0a1cca701d10c1a083eaa3048bc
net: dsa: bcm_sf2: setup BCM4908 internal crossbar

On some SoCs (e.g. BCM4908, BCM631[345]8) SF2 has an integrated
crossbar. It allows connecting its selected external ports to internal
ports. It's used by vendors to handle custom Ethernet setups.

BCM4908 has following 3x2 crossbar. On Asus GT-AC5300 rgmii is used for
connecting external BCM53134S switch. GPHY4 is usually used for WAN
port. More fancy devices use SerDes for 2.5 Gbps Ethernet.

              ┌──────────┐
SerDes ─── 0 ─┤          │
              │   3x2    ├─ 0 ─── switch port 7
 GPHY4 ─── 1 ─┤          │
              │ crossbar ├─ 1 ─── runner (accelerator)
 rgmii ─── 2 ─┤          │
              └──────────┘

Use setup data based on DT info to configure BCM4908's switch port 7.
Right now only GPHY and rgmii variants are supported. Handling SerDes
can be implemented later.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/bcm_sf2.c
drivers/net/dsa/bcm_sf2.h
drivers/net/dsa/bcm_sf2_regs.h