On 2026-06-12 07:59, Oleksij Rempel wrote: > Port the Microchip LAN966X Generic Clock Controller (GCK) driver from > the Linux kernel. GCK generates and supplies clocks to peripherals on > the LAN966X and LAN969X switch SoCs (UART, SDHCI, QSPI, SGPIO, ...). > > Ported from Linux drivers/clk/clk-lan966x.c at tag v7.1-rc7 > Barebox-specific deltas: > - probe() takes `struct device *` instead of `platform_device` > - no devm_* - explicit kfree on probe failure > - clk_parent_data carries both `.fw_name` (for Linux source-compat) and > `.name` (used by barebox at register time, since barebox's clk > framework does not resolve `fw_name` via clock-names). > - Linux's `.determine_rate` is implemented here as `.round_rate`. > > Signed-off-by: Oleksij Rempel <[email protected]> > --- > drivers/clk/Kconfig | 9 ++ > drivers/clk/Makefile | 1 + > drivers/clk/clk-lan966x.c | 325 ++++++++++++++++++++++++++++++++++++++ > 3 files changed, 335 insertions(+) > create mode 100644 drivers/clk/clk-lan966x.c > > diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig > index d2a61329e125..fe7056f8971b 100644 > --- a/drivers/clk/Kconfig > +++ b/drivers/clk/Kconfig > @@ -84,4 +84,13 @@ config COMMON_CLK_GPIO > > source "drivers/clk/sifive/Kconfig" > > +config COMMON_CLK_LAN966X > + bool "Generic Clock Controller driver for LAN966X SoC" > + depends on OFDEVICE > + depends on COMMON_CLK > + help > + Microchip LAN966X and LAN969X SoC Generic Clock Controller (GCK). > + GCK generates and supplies clocks to various peripherals within the > + SoC. > + > endif > diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile > index 4fda2c1e0dd3..d7e06de04230 100644 > --- a/drivers/clk/Makefile > +++ b/drivers/clk/Makefile > @@ -33,3 +33,4 @@ obj-$(CONFIG_COMMON_CLK_SCMI) += clk-scmi.o > obj-$(CONFIG_COMMON_CLK_GPIO) += clk-gpio.o > obj-$(CONFIG_TI_SCI_CLK) += ti-sci-clk.o > obj-$(CONFIG_ARCH_K3) += k3/ > +obj-$(CONFIG_COMMON_CLK_LAN966X) += clk-lan966x.o > diff --git a/drivers/clk/clk-lan966x.c b/drivers/clk/clk-lan966x.c > new file mode 100644 > index 000000000000..a2f43b2f8dce > --- /dev/null > +++ b/drivers/clk/clk-lan966x.c > @@ -0,0 +1,325 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later > +/* > + * Microchip LAN966x SoC Clock driver. > + * > + * Copyright (C) 2021 Microchip Technology, Inc. and its subsidiaries > + * > + * Author: Kavyasree Kotagiri <[email protected]> > + * > + * Ported from Linux drivers/clk/clk-lan966x.c. Structure and identifiers > + * are kept aligned with Linux so future fixes can be backported with > + * minimal context churn.
We have a new // SPDX-Comment: Origin-URL: tag which you could use here and other code you are adding from Linux. Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
