[PATCH v4 0/3] Add SiFive power provider driver

Nick Hu nick.hu at sifive.com
Mon Feb 23 19:08:09 PST 2026


Any feedback on this?

On Thu, Jan 8, 2026 at 4:58 PM Nick Hu <nick.hu at sifive.com> wrote:
>
> This patchset introduces the SiFive power provider driver, which sets up a
> generic power domain (genpd) provider to coordinate with the RISC-V SBI
> CPU idle driver.
>
> To enable this coordination, split the power domain initialization out
> of the RISC-V SBI CPU idle driver. This allows coordination between
> power domain management and CPU idle states on SiFive platforms.
>
> Changes in v4:
> - Split the power domain initialization out of the RISC-V SBI CPU idle
>   driver in PATCH 1
> - Refine the commit messages of PATCH 1 and PATCH 3
> - Rename cpuidle-sifive-dmc-pd.c to cpuidle-sifive-dmc-domain.c
> - Rename SIFIVE_DMC_PD_CPUIDLE to CONFIG_SIFIVE_DMC_CPUIDLE_DOMAIN
>
> Changes in v3:
> - Update the explanation for the absence of the SoC-specific compatible
>   string.
> - Drop the smc3/tmc3/cmc3 bindings.
> - Separate the genpd init and the idle driver init. The genpd remains
>   functional even when the idle state is absent.
> - Address the warning from the kernel test robot
>
> Changes in v2:
> - Add the driver for SiFive TMC, CMC and SMC
> - Drop the `sifive,feature-level` property
>
> Nick Hu (3):
>   dt-bindings: power: Add SiFive Domain Management controllers
>   cpuidle: riscv-sbi: Work with the external pmdomain driver
>   cpuidle: Add SiFive power provider
>
>  .../devicetree/bindings/power/sifive,tmc.yaml |  58 ++++++++++
>  drivers/cpuidle/Kconfig.riscv                 |  11 ++
>  drivers/cpuidle/Makefile                      |   1 +
>  drivers/cpuidle/cpuidle-riscv-sbi.c           |  46 ++++----
>  drivers/cpuidle/cpuidle-riscv-sbi.h           |  20 ++++
>  drivers/cpuidle/cpuidle-sifive-dmc-pd.c       | 102 ++++++++++++++++++
>  6 files changed, 220 insertions(+), 18 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/power/sifive,tmc.yaml
>  create mode 100644 drivers/cpuidle/cpuidle-riscv-sbi.h
>  create mode 100644 drivers/cpuidle/cpuidle-sifive-dmc-pd.c
>
> --
> 2.17.1
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
>
> ---
> Nick Hu (3):
>       cpuidle: riscv-sbi: Split PM domain init out of the cpuidle driver
>       dt-bindings: power: Add SiFive Domain Management controllers
>       cpuidle: Add SiFive power provider driver
>
>  .../devicetree/bindings/power/sifive,tmc.yaml      |  58 +++++++
>  MAINTAINERS                                        |   2 +
>  drivers/cpuidle/Kconfig.riscv                      |  25 ++-
>  drivers/cpuidle/Makefile                           |   2 +
>  drivers/cpuidle/cpuidle-riscv-sbi-domain.c         | 176 ++++++++++++++++++++
>  drivers/cpuidle/cpuidle-riscv-sbi.c                | 178 ++-------------------
>  drivers/cpuidle/cpuidle-riscv-sbi.h                |  29 ++++
>  drivers/cpuidle/cpuidle-sifive-dmc-domain.c        | 124 ++++++++++++++
>  8 files changed, 423 insertions(+), 171 deletions(-)
> ---
> base-commit: f0b9d8eb98dfee8d00419aa07543bdc2c1a44fb1
> change-id: 20251207-sifive-pd-drivers-66de65108b1c
>
> Best regards,
> --
> Nick Hu <nick.hu at sifive.com>
>



More information about the linux-riscv mailing list