Re: [PATCH v2 1/3] dt-bindings: regulator: Add RPMI voltage service bindings
From: Krzysztof Kozlowski
Date: Wed Sep 23 2026 - 16:53:52 EST
On 23/09/2026 09:00, Joshua Yeong wrote:
> +additionalProperties: false
> +
> +examples:
> + - |
> + voltage-service {
There is no such service. Don't invent names. See DT spec.
> + compatible = "riscv,rpmi-mpxy-voltage";
> + mboxes = <&rpmi_shmem_mbox 0x7>;
> + riscv,sbi-mpxy-channel-id = <0x1004>;
> + };
> +...
> diff --git a/Documentation/devicetree/bindings/regulator/riscv,rpmi-voltage.yaml b/Documentation/devicetree/bindings/regulator/riscv,rpmi-voltage.yaml
> new file mode 100644
> index 000000000000..6334ebd31dc8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/riscv,rpmi-voltage.yaml
> @@ -0,0 +1,147 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/regulator/riscv,rpmi-voltage.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: RISC-V RPMI voltage service group based regulator controller
> +
> +maintainers:
> + - Joshua Yeong <joshua.yeong@xxxxxxxxxxxxxxxx>
> +
> +description: |
> + The RISC-V Platform Management Interface (RPMI) [1] defines a
> + messaging protocol which is modular and extensible. The supervisor
> + software can send/receive RPMI messages via SBI MPXY extension [2]
> + or some dedicated supervisor-mode RPMI transport.
> +
> + The RPMI specification [1] defines voltage service group for accessing
> + and controlling the voltage domains managed by a platform
> + microcontroller. The supervisor software can access RPMI voltage
> + service group via SBI MPXY channel or some dedicated supervisor-mode
> + RPMI transport.
> +
> + The voltage domains are discovered at runtime from the platform
> + microcontroller, which reports the name, the level format, the supported
> + levels and the always-on capability of each one, so none of that is
> + described here.
> +
> + A consumer names a domain in one of two ways. The first is through a
> + "<name>-supply" phandle to a child of the optional "regulators" container,
> + whose "reg" is the domain's RPMI DOMAIN_ID. The second needs no child with
> + "#voltage-domain-cells" on the provider, a consumer lists
> + "voltage-domains = <&provider DOMAIN_ID>" and names each entry in
> + "voltage-domain-names", the way it names a voltage power domain. Both
> + properties belong to the consumer, so a consumer binding describes them
> + itself:
And where do you explain what is that "voltage domain" and why it is
completely different than everything else we have?
No, don't come up with your own naming for standard things.
Best regards,
Krzysztof