Re: [PATCH net-next v3 1/4] net: mdio: Introduce a regmap-based mdio driver
From: Maxime Chevallier <maxime.chevallier@bootlin.com>
Date: 2023-05-26 16:59:58
Also in:
linux-arm-kernel, lkml
Hello Vlad, On Fri, 26 May 2023 13:21:39 +0300 Vladimir Oltean [off-list ref] wrote:
quoted
M: William Breathitt Gray [off-list ref] L: linux-iio@vger.kernel.orgdiff --git a/drivers/net/ethernet/altera/Kconfigb/drivers/net/ethernet/altera/Kconfig index dd7fd41ccde5..0a7c0a217536 100644 --- a/drivers/net/ethernet/altera/Kconfig +++ b/drivers/net/ethernet/altera/Kconfig @@ -5,6 +5,8 @@ config ALTERA_TSE select PHYLIB select PHYLINK select PCS_ALTERA_TSE + select MDIO_REGMAP + depends on REGMAPI don't think this bit belongs in this patch. Also: depends on REGMAP or select REGMAP?
Ugh sorry about that... I'll address both the dependency and the wrong patch splitting in next revision.
quoted
help This driver supports the Altera Triple-Speed (TSE) Ethernet MAC.diff --git a/drivers/net/mdio/Kconfig b/drivers/net/mdio/Kconfig index 9ff2e6f22f3f..aef39c89cf44 100644 --- a/drivers/net/mdio/Kconfig +++ b/drivers/net/mdio/Kconfig@@ -185,6 +185,16 @@ config MDIO_IPQ8064 This driver supports the MDIO interface found in thenetwork interface units of the IPQ8064 SoC +config MDIO_REGMAP + tristate + help + This driver allows using MDIO devices that are not sitting on a + regular MDIO bus, but still exposes the standard 802.3 register + layout. It's regmap-based so that it can be used on integrated, + memory-mapped PHYs, SPI PHYs and so on. A new virtual MDIO bus is + created, and its read/write operations are mapped to the underlying + regmap.It would probably be helpful to state that those who select this option should also explicitly select REGMAP.
You're right, I'll update this
quoted
+ config MDIO_THUNDER tristate "ThunderX SOCs MDIO buses" depends on 64BITdiff --git a/drivers/net/mdio/Makefile b/drivers/net/mdio/Makefile index 7d4cb4c11e4e..1015f0db4531 100644 --- a/drivers/net/mdio/Makefile +++ b/drivers/net/mdio/Makefile@@ -19,6 +19,7 @@ obj-$(CONFIG_MDIO_MOXART) +=mdio-moxart.o obj-$(CONFIG_MDIO_MSCC_MIIM) += mdio-mscc-miim.o obj-$(CONFIG_MDIO_MVUSB) += mdio-mvusb.o obj-$(CONFIG_MDIO_OCTEON) += mdio-octeon.o +obj-$(CONFIG_MDIO_REGMAP) += mdio-regmap.o obj-$(CONFIG_MDIO_SUN4I) += mdio-sun4i.o obj-$(CONFIG_MDIO_THUNDER) += mdio-thunder.o obj-$(CONFIG_MDIO_XGENE) += mdio-xgene.o diff --git a/include/linux/mdio/mdio-regmap.h b/include/linux/mdio/mdio-regmap.h new file mode 100644 index 000000000000..b8508f152552--- /dev/null +++ b/include/linux/mdio/mdio-regmap.h@@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* Driver for MMIO-Mapped MDIO devices. Some IPs expose internalPHYs or PCS + * within the MMIO-mapped area + * + * Copyright (C) 2023 Maxime Chevallier [off-list ref] + */ +#ifndef MDIO_REGMAP_H +#define MDIO_REGMAP_H + +struct device; +struct regmap; + +struct mdio_regmap_config { + struct device *parent; + struct regmap *regmap; + char name[MII_BUS_ID_SIZE];don't we need a header included for the MII_BUS_ID_SIZE macro? An empty C file which includes just <linux/mdio/mdio-regmap.h> must build without errors.
You're correct, I'll include the proper header. Thanks, Maxime