On Fri, Dec 1, 2023 at 4:52 AM Tzuyi Chang <tychang@xxxxxxxxxxx> wrote: > > Implement the phy driver to support PCIe PHY for Realtek DHC (Digital Home > Center) RTD SoCs. > > Signed-off-by: Tzuyi Chang <tychang@xxxxxxxxxxx> > --- > drivers/phy/realtek/Kconfig | 8 + > drivers/phy/realtek/Makefile | 1 + > drivers/phy/realtek/phy-rtk-pcie.c | 738 +++++++++++++++++++++++++++++ > 3 files changed, 747 insertions(+) > create mode 100644 drivers/phy/realtek/phy-rtk-pcie.c > > diff --git a/drivers/phy/realtek/Kconfig b/drivers/phy/realtek/Kconfig > index 75ac7e7c31ae..11c51f3714f1 100644 > --- a/drivers/phy/realtek/Kconfig > +++ b/drivers/phy/realtek/Kconfig > @@ -29,4 +29,12 @@ config PHY_RTK_RTD_USB3PHY > DWC3 USB IP. This driver will do the PHY initialization > of the parameters. > > +config PHY_RTD_PCIE > + tristate "Realtek RTD PCIe PHY driver" > + depends on OF > + select GENERIC_PHY > + help > + Enable this to support the PCIe PHY on Realtek DHC (digital home center) > + RTD series SoCs. > + > endif # ARCH_REALTEK || COMPILE_TEST > diff --git a/drivers/phy/realtek/Makefile b/drivers/phy/realtek/Makefile > index ed7b47ff8a26..a1f0ad199476 100644 > --- a/drivers/phy/realtek/Makefile > +++ b/drivers/phy/realtek/Makefile > @@ -1,3 +1,4 @@ > # SPDX-License-Identifier: GPL-2.0 > obj-$(CONFIG_PHY_RTK_RTD_USB2PHY) += phy-rtk-usb2.o > obj-$(CONFIG_PHY_RTK_RTD_USB3PHY) += phy-rtk-usb3.o > +obj-$(CONFIG_PHY_RTD_PCIE) += phy-rtk-pcie.o > diff --git a/drivers/phy/realtek/phy-rtk-pcie.c b/drivers/phy/realtek/phy-rtk-pcie.c > new file mode 100644 > index 000000000000..8ec845890271 > --- /dev/null > +++ b/drivers/phy/realtek/phy-rtk-pcie.c > @@ -0,0 +1,738 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later > +/* > + * Realtek DHC PCIe PHY driver > + * > + * Copyright (c) 2023 Realtek Semiconductor Corp. > + */ > + > +#include <linux/mfd/syscon.h> > +#include <linux/module.h> > +#include <linux/nvmem-consumer.h> > +#include <linux/of_address.h> > +#include <linux/of_device.h> You probably don't need this header and the implicit includes it makes are dropped now in linux-next. Please check what you actually need and make them explicit. of_address.h is likely not needed either. Please check. Rob