Although the AN8855 eFuse driver was merged upstream, other
drivers were not. Restore Kconfig dependencies to enable it.
Also remove useless change logs from the patch.
Fixes: 2129465 ("mediatek: fix patches for Linux 6.18")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/23250
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
194 lines
7.5 KiB
Diff
194 lines
7.5 KiB
Diff
From: Christian Marangi <ansuelsmth@gmail.com>
|
|
To: Christian Marangi <ansuelsmth@gmail.com>,
|
|
Lee Jones <lee@kernel.org>, Rob Herring <robh@kernel.org>,
|
|
Krzysztof Kozlowski <krzk+dt@kernel.org>,
|
|
Conor Dooley <conor+dt@kernel.org>,
|
|
Andrew Lunn <andrew+netdev@lunn.ch>,
|
|
"David S. Miller" <davem@davemloft.net>,
|
|
Eric Dumazet <edumazet@google.com>,
|
|
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
|
|
Vladimir Oltean <olteanv@gmail.com>,
|
|
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
|
|
Heiner Kallweit <hkallweit1@gmail.com>,
|
|
Russell King <linux@armlinux.org.uk>,
|
|
Matthias Brugger <matthias.bgg@gmail.com>,
|
|
AngeloGioacchino Del Regno
|
|
<angelogioacchino.delregno@collabora.com>,
|
|
linux-arm-kernel@lists.infradead.org,
|
|
linux-mediatek@lists.infradead.org, netdev@vger.kernel.org,
|
|
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
|
|
upstream@airoha.com
|
|
Subject: [net-next PATCH v11 0/9] net: dsa: Add Airoha AN8855 support
|
|
Date: Mon, 9 Dec 2024 14:44:17 +0100 [thread overview]
|
|
Message-ID: <20241209134459.27110-1-ansuelsmth@gmail.com> (raw)
|
|
|
|
This small series add the initial support for the Airoha AN8855 Switch.
|
|
|
|
It's a 5 port Gigabit Switch with SGMII/HSGMII upstream port.
|
|
|
|
This is starting to get in the wild and there are already some router
|
|
having this switch chip.
|
|
|
|
It's conceptually similar to mediatek switch but register and bits
|
|
are different. And there is that massive Hell that is the PCS
|
|
configuration.
|
|
Saddly for that part we have absolutely NO documentation currently.
|
|
|
|
There is this special thing where PHY needs to be calibrated with values
|
|
from the switch efuse. (the thing have a whole cpu timer and MCU)
|
|
|
|
---
|
|
.../bindings/mfd/airoha,an8855-mfd.yaml | 178 ++
|
|
.../bindings/net/airoha,an8855-mdio.yaml | 56 +
|
|
.../net/dsa/airoha,an8855-switch.yaml | 105 +
|
|
.../bindings/nvmem/airoha,an8855-efuse.yaml | 123 +
|
|
MAINTAINERS | 17 +
|
|
drivers/mfd/Kconfig | 10 +
|
|
drivers/mfd/Makefile | 1 +
|
|
drivers/mfd/airoha-an8855.c | 278 ++
|
|
drivers/net/dsa/Kconfig | 9 +
|
|
drivers/net/dsa/Makefile | 1 +
|
|
drivers/net/dsa/an8855.c | 2310 +++++++++++++++++
|
|
drivers/net/dsa/an8855.h | 783 ++++++
|
|
drivers/net/mdio/Kconfig | 9 +
|
|
drivers/net/mdio/Makefile | 1 +
|
|
drivers/net/mdio/mdio-an8855.c | 113 +
|
|
drivers/net/phy/Kconfig | 5 +
|
|
drivers/net/phy/Makefile | 1 +
|
|
drivers/net/phy/air_an8855.c | 267 ++
|
|
drivers/nvmem/Kconfig | 11 +
|
|
drivers/nvmem/Makefile | 2 +
|
|
drivers/nvmem/an8855-efuse.c | 63 +
|
|
include/linux/mfd/airoha-an8855-mfd.h | 41 +
|
|
22 files changed, 4384 insertions(+)
|
|
create mode 100644 Documentation/devicetree/bindings/mfd/airoha,an8855-mfd.yaml
|
|
create mode 100644 Documentation/devicetree/bindings/net/airoha,an8855-mdio.yaml
|
|
create mode 100644 Documentation/devicetree/bindings/net/dsa/airoha,an8855-switch.yaml
|
|
create mode 100644 Documentation/devicetree/bindings/nvmem/airoha,an8855-efuse.yaml
|
|
create mode 100644 drivers/mfd/airoha-an8855.c
|
|
create mode 100644 drivers/net/dsa/an8855.c
|
|
create mode 100644 drivers/net/dsa/an8855.h
|
|
create mode 100644 drivers/net/mdio/mdio-an8855.c
|
|
create mode 100644 drivers/net/phy/air_an8855.c
|
|
create mode 100644 drivers/nvmem/an8855-efuse.c
|
|
create mode 100644 include/linux/mfd/airoha-an8855-mfd.h
|
|
|
|
--- a/drivers/mfd/Kconfig
|
|
+++ b/drivers/mfd/Kconfig
|
|
@@ -53,6 +53,16 @@ config MFD_ALTERA_SYSMGR
|
|
using regmap_mmio accesses for ARM32 parts and SMC calls to
|
|
EL3 for ARM64 parts.
|
|
|
|
+config MFD_AIROHA_AN8855
|
|
+ tristate "Airoha AN8855 Switch MFD"
|
|
+ select MFD_CORE
|
|
+ select MDIO_DEVICE
|
|
+ depends on NETDEVICES && OF
|
|
+ help
|
|
+ Support for the Airoha AN8855 Switch MFD. This is a SoC Switch
|
|
+ that provides various peripherals. Currently it provides a
|
|
+ DSA switch and a NVMEM provider.
|
|
+
|
|
config MFD_ACT8945A
|
|
tristate "Active-semi ACT8945A"
|
|
select MFD_CORE
|
|
--- a/drivers/mfd/Makefile
|
|
+++ b/drivers/mfd/Makefile
|
|
@@ -9,6 +9,7 @@ obj-$(CONFIG_MFD_88PM800) += 88pm800.o 8
|
|
obj-$(CONFIG_MFD_88PM805) += 88pm805.o 88pm80x.o
|
|
obj-$(CONFIG_MFD_88PM886_PMIC) += 88pm886.o
|
|
obj-$(CONFIG_MFD_ACT8945A) += act8945a.o
|
|
+obj-$(CONFIG_MFD_AIROHA_AN8855) += airoha-an8855.o
|
|
obj-$(CONFIG_MFD_SM501) += sm501.o
|
|
obj-$(CONFIG_ARCH_BCM2835) += bcm2835-pm.o
|
|
obj-$(CONFIG_MFD_BCM590XX) += bcm590xx.o
|
|
--- a/drivers/net/dsa/Kconfig
|
|
+++ b/drivers/net/dsa/Kconfig
|
|
@@ -24,6 +24,15 @@ config NET_DSA_LOOP
|
|
This enables support for a fake mock-up switch chip which
|
|
exercises the DSA APIs.
|
|
|
|
+config NET_DSA_AN8855
|
|
+ tristate "Airoha AN8855 Ethernet switch support"
|
|
+ depends on MFD_AIROHA_AN8855
|
|
+ depends on NET_DSA
|
|
+ select NET_DSA_TAG_MTK
|
|
+ help
|
|
+ This enables support for the Airoha AN8855 Ethernet switch
|
|
+ chip.
|
|
+
|
|
source "drivers/net/dsa/hirschmann/Kconfig"
|
|
|
|
source "drivers/net/dsa/lantiq/Kconfig"
|
|
--- a/drivers/net/dsa/Makefile
|
|
+++ b/drivers/net/dsa/Makefile
|
|
@@ -1,4 +1,5 @@
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
+obj-$(CONFIG_NET_DSA_AN8855) += an8855.o
|
|
obj-$(CONFIG_NET_DSA_BCM_SF2) += bcm-sf2.o
|
|
bcm-sf2-objs := bcm_sf2.o bcm_sf2_cfp.o
|
|
obj-$(CONFIG_NET_DSA_LOOP) += dsa_loop.o
|
|
--- a/drivers/net/mdio/Kconfig
|
|
+++ b/drivers/net/mdio/Kconfig
|
|
@@ -44,6 +44,15 @@ config MDIO_XGENE
|
|
This module provides a driver for the MDIO busses found in the
|
|
APM X-Gene SoC's.
|
|
|
|
+config MDIO_AN8855
|
|
+ tristate "Airoha AN8855 Switch MDIO bus controller"
|
|
+ depends on MFD_AIROHA_AN8855
|
|
+ depends on OF_MDIO
|
|
+ help
|
|
+ This module provides a driver for the Airoha AN8855 Switch
|
|
+ that requires a MDIO passtrough as switch address is shared
|
|
+ with the internal PHYs and requires additional page handling.
|
|
+
|
|
config MDIO_ASPEED
|
|
tristate "ASPEED MDIO bus controller"
|
|
depends on ARCH_ASPEED || COMPILE_TEST
|
|
--- a/drivers/net/mdio/Makefile
|
|
+++ b/drivers/net/mdio/Makefile
|
|
@@ -6,6 +6,7 @@ obj-$(CONFIG_FWNODE_MDIO) += fwnode_mdio
|
|
obj-$(CONFIG_OF_MDIO) += of_mdio.o
|
|
|
|
obj-$(CONFIG_MDIO_AIROHA) += mdio-airoha.o
|
|
+obj-$(CONFIG_MDIO_AN8855) += mdio-an8855.o
|
|
obj-$(CONFIG_MDIO_ASPEED) += mdio-aspeed.o
|
|
obj-$(CONFIG_MDIO_BCM_IPROC) += mdio-bcm-iproc.o
|
|
obj-$(CONFIG_MDIO_BCM_UNIMAC) += mdio-bcm-unimac.o
|
|
--- a/drivers/net/phy/Kconfig
|
|
+++ b/drivers/net/phy/Kconfig
|
|
@@ -175,6 +175,11 @@ config AIROHA_EN8801SC_PHY
|
|
help
|
|
Currently supports the Airoha EN8801SC PHY.
|
|
|
|
+config AIR_AN8855_PHY
|
|
+ tristate "Airoha AN8855 Internal Gigabit PHY"
|
|
+ help
|
|
+ Currently supports the internal Airoha AN8855 Switch PHY.
|
|
+
|
|
config AIR_EN8811H_PHY
|
|
tristate "Airoha EN8811H 2.5 Gigabit PHY"
|
|
select PHY_COMMON_PROPS
|
|
--- a/drivers/net/phy/Makefile
|
|
+++ b/drivers/net/phy/Makefile
|
|
@@ -45,6 +45,7 @@ obj-y += $(sfp-obj-y) $(sfp-obj-m)
|
|
obj-$(CONFIG_ADIN_PHY) += adin.o
|
|
obj-$(CONFIG_ADIN1100_PHY) += adin1100.o
|
|
obj-$(CONFIG_AIROHA_EN8801SC_PHY) += en8801sc.o
|
|
+obj-$(CONFIG_AIR_AN8855_PHY) += air_an8855.o
|
|
obj-$(CONFIG_AIR_EN8811H_PHY) += air_en8811h.o
|
|
obj-$(CONFIG_AMD_PHY) += amd.o
|
|
obj-$(CONFIG_AMCC_QT2025_PHY) += qt2025.o
|
|
--- a/drivers/nvmem/Kconfig
|
|
+++ b/drivers/nvmem/Kconfig
|
|
@@ -31,7 +31,7 @@ source "drivers/nvmem/layouts/Kconfig"
|
|
|
|
config NVMEM_AN8855_EFUSE
|
|
tristate "Airoha AN8855 eFuse support"
|
|
- depends on COMPILE_TEST
|
|
+ depends on MFD_AIROHA_AN8855 || COMPILE_TEST
|
|
help
|
|
Say y here to enable support for reading eFuses on Airoha AN8855
|
|
Switch. These are e.g. used to store factory programmed
|