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? Best regards, Jernej