# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/spmi/spmi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: System Power Management Interface (SPMI) Controller

maintainers:
  - Stephen Boyd <sboyd@kernel.org>

description: |
  The System Power Management (SPMI) controller is a 2-wire bus defined
  by the MIPI Alliance for power management control to be used on SoC designs.

  SPMI controllers are modelled in device tree using a generic set of
  bindings defined here, plus any bus controller specific properties, if
  needed.

  Each SPMI controller has zero or more child nodes (up to 16 ones), each
  one representing an unique slave at the bus.

properties:
  $nodename:
    pattern: "^spmi@.*"

  reg:
    maxItems: 1

  "#address-cells":
    const: 2

  "#size-cells":
    const: 0

patternProperties:
  "@[0-9a-f]$":
    description: up to 16 child PMIC nodes
    type: object

    properties:
      reg:
        minItems: 1
        maxItems: 2
        items:
          - minimum: 0
            maximum: 0xf
          - enum: [ 0 ]
            description: |
              0 means user ID address. 1 is reserved for group ID address.

    required:
      - reg

required:
  - reg

additionalProperties: true

examples:
  - |
    #include <dt-bindings/spmi/spmi.h>

    spmi@0 {
      reg = <0 0>;

      #address-cells = <2>;
      #size-cells = <0>;

      child@0 {
        reg = <0 SPMI_USID>;
      };

      child@7 {
        reg = <7 SPMI_USID>;
      };
    };
