[PATCH v4 0/8] Add StarFive JHB100 syscon modules
Changhuang Liang <[email protected]> Sat, 8 Aug 2026 18:50:46 -0700
| Newsgroups | org.kernel.vger.linux-clk,org.infradead.lists.linux-riscv,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
StarFive JHB100 has many syscon modules, as listed below: - pcieep0_ecsr_syscon (PCIe endpoint 0 externel syscon) - pcieep1_ecsr_syscon - host0_syscon (Host0 syscon) - host1_syscon - husb0_syscon (Host USB 0 syscon) - husb1_syscon - husbd0_syscon (Host USB device 0 syscon) - husbd1_syscon - husbcmn_syscon (Host USB common syscon) - gpu0_syscon (GPU0 syscon) - gpu1_syscon - b2h_syscon (BMC to Host syscon) - h2b_syscon (Host to BMC syscon) - vout_syscon (Video output syscon) - pcierp_ecsr_syscon (PCIe root port externel syscon) - pcierp_syscon (PCIe root port syscon) - usb_syscon - npu_syscon - per0_syscon (Peripheral 0 syscon) - per1_syscon - per2_syscon - per3_syscon - sys0_syscon (System 0 syscon) - sys1_syscon - sys2_syscon - strap_syscon - sfc0_filter_syscon (SFC0 filter syscon) - sfc1_filter_syscon - sfc2_filter_syscon Some syscon modules contain PLL, reset, and socinfo nodes This series will add these syscon modules, as well as the nodes under them. -PATCH 1: syscon binging -PATCH 2/3/4: syscon sys0/per0/per1 PLL driver -PATCH 5/6: syscon PCIe RP reset driver -PATCH 7: syscon socinfo driver -PATCH 8: syscon device tree This series depends on the series: https://lore.kernel.org/all/[email protected]/ changes since v3: PATCH 1: - Add a new "starfive,jhb100-sfc-filter-syscon" use for JHB100 SFC PATCH 2: - clk use regmap_read_poll_timeout() instead of the _atomic() variant. - clk switch PLL ops from .enable.disable to .prepare.unprepare so the sleeping syscon regmap is no longer accessed under the Common Clock Framework spinlock. - clk use 64-bit math and div64_ul() in jhb100_pll_rate_to_preset() - clk use mul_u32_u32 and div64_ul() in jhb100_pll_recalc_rate() - Replace builtin_platform_driver_probe with builtin_platform_driver to support deferred probing. PATCH 5: - Add bool active_low = data->info && data->info->active_low; to simplify the code PATCH 6: - Fix typo: discontigous ==> discontiguous - Fix typo: JHB110 ==> JHB100 - Allow RESET_STARFIVE_JHB100_SYSCON to be compiled as a module PATCH 7: - check kasprintf() failure in the socinfo probe path. - Add #define pr_fmt(fmt) "jhb100-socinfo: " fmt - include the <linux/slab.h> and <linux/string.h> headers PATCH 8: - Fix sys2_syscon reg length (0x4000 - 0x2000); it overlapped strap_syscon. - Add sfc0/1/2_filter_syscon nodes. v3: https://lore.kernel.org/all/[email protected]/ v2: https://lore.kernel.org/all/[email protected]/ V1: https://lore.kernel.org/all/[email protected]/ Changhuang Liang (8): dt-bindings: soc: starfive: Add StarFive JHB100 syscon modules clk: starfive: Add system-0 domain PLL clock driver clk: starfive: Add peripheral-0 domain PLL clock driver clk: starfive: Add Peripheral-1 domain PLL clock driver reset: starfive: Introduce active_low reset: starfive: Add syscon reset driver support soc: starfive: Add socinfo driver for JHB100 SoC riscv: dts: starfive: jhb100: Add syscon nodes .../soc/starfive/starfive,jhb100-syscon.yaml | 115 ++++ MAINTAINERS | 11 + arch/riscv/boot/dts/starfive/jhb100.dtsi | 193 +++++- drivers/clk/starfive/Kconfig | 8 + drivers/clk/starfive/Makefile | 1 + .../clk/starfive/clk-starfive-jhb100-pll.c | 593 ++++++++++++++++++ drivers/reset/starfive/Kconfig | 9 + drivers/reset/starfive/Makefile | 1 + .../reset/starfive/reset-starfive-common.c | 6 +- .../reset/starfive/reset-starfive-common.h | 6 + .../starfive/reset-starfive-jhb100-syscon.c | 62 ++ drivers/soc/Kconfig | 1 + drivers/soc/Makefile | 1 + drivers/soc/starfive/Kconfig | 6 + drivers/soc/starfive/Makefile | 2 + drivers/soc/starfive/socinfo/Kconfig | 11 + drivers/soc/starfive/socinfo/Makefile | 2 + drivers/soc/starfive/socinfo/jhb100-socinfo.c | 90 +++ .../dt-bindings/clock/starfive,jhb100-crg.h | 12 + .../dt-bindings/reset/starfive,jhb100-crg.h | 3 + 20 files changed, 1098 insertions(+), 35 deletions(-) create mode 100644 Documentation/devicetree/bindings/soc/starfive/starfive,jhb100-syscon.yaml create mode 100644 drivers/clk/starfive/clk-starfive-jhb100-pll.c create mode 100644 drivers/reset/starfive/reset-starfive-jhb100-syscon.c create mode 100644 drivers/soc/starfive/Kconfig create mode 100644 drivers/soc/starfive/Makefile create mode 100644 drivers/soc/starfive/socinfo/Kconfig create mode 100644 drivers/soc/starfive/socinfo/Makefile create mode 100644 drivers/soc/starfive/socinfo/jhb100-socinfo.c -- 2.25.1