On 17.04.2020 18:15, Jernej Škrabec wrote: > Dne četrtek, 16. april 2020 ob 22:18:52 CEST je Heiner Kallweit napisal(a): >> On 16.04.2020 20:57, Jernej Skrabec wrote: >>> AC200 MFD IC supports Fast Ethernet PHY. Add a driver for it. >>> >>> Signed-off-by: Jernej Skrabec <jernej.skrabec@xxxxxxxx> >>> --- >>> >>> drivers/net/phy/Kconfig | 7 ++ >>> drivers/net/phy/Makefile | 1 + >>> drivers/net/phy/ac200.c | 206 +++++++++++++++++++++++++++++++++++++++ >>> 3 files changed, 214 insertions(+) >>> create mode 100644 drivers/net/phy/ac200.c >>> >>> diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig >>> index 3fa33d27eeba..16af69f69eaf 100644 >>> --- a/drivers/net/phy/Kconfig >>> +++ b/drivers/net/phy/Kconfig >>> @@ -288,6 +288,13 @@ config ADIN_PHY >>> >>> - ADIN1300 - Robust,Industrial, Low Latency 10/100/1000 Gigabit >>> >>> Ethernet PHY >>> >>> +config AC200_PHY >>> + tristate "AC200 EPHY" >>> + depends on NVMEM >>> + depends on OF >>> + help >>> + Fast ethernet PHY as found in X-Powers AC200 multi-function > device. >>> + >>> >>> config AMD_PHY >>> >>> tristate "AMD PHYs" >>> ---help--- >>> >>> diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile >>> index 2f5c7093a65b..b0c5b91900fa 100644 >>> --- a/drivers/net/phy/Makefile >>> +++ b/drivers/net/phy/Makefile >>> @@ -53,6 +53,7 @@ obj-$(CONFIG_SFP) += sfp.o >>> >>> sfp-obj-$(CONFIG_SFP) += sfp-bus.o >>> obj-y += $(sfp-obj-y) $(sfp-obj-m) >>> >>> +obj-$(CONFIG_AC200_PHY) += ac200.o >>> >>> obj-$(CONFIG_ADIN_PHY) += adin.o >>> obj-$(CONFIG_AMD_PHY) += amd.o >>> aquantia-objs += aquantia_main.o >>> >>> diff --git a/drivers/net/phy/ac200.c b/drivers/net/phy/ac200.c >>> new file mode 100644 >>> index 000000000000..3d7856ff8f91 >>> --- /dev/null >>> +++ b/drivers/net/phy/ac200.c >>> @@ -0,0 +1,206 @@ >>> +// SPDX-License-Identifier: GPL-2.0+ >>> +/** >>> + * Driver for AC200 Ethernet PHY >>> + * >>> + * Copyright (c) 2020 Jernej Skrabec <jernej.skrabec@xxxxxxxx> >>> + */ >>> + >>> +#include <linux/kernel.h> >>> +#include <linux/module.h> >>> +#include <linux/mfd/ac200.h> >>> +#include <linux/nvmem-consumer.h> >>> +#include <linux/of.h> >>> +#include <linux/phy.h> >>> +#include <linux/platform_device.h> >>> + >>> +#define AC200_EPHY_ID 0x00441400 >>> +#define AC200_EPHY_ID_MASK 0x0ffffff0 >>> + >> >> You could use PHY_ID_MATCH_MODEL() here. > > Hm... This doesn't work with dynamically allocated memory, right? > Right .. > Best regards, > Jernej > >