# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/ti/sci-pm-domain.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: TI-SCI generic power domain

maintainers:
  - Nishanth Menon <nm@ti.com>

allOf:
  - $ref: /schemas/power/power-domain.yaml#

description: |
  Some TI SoCs contain a system controller (like the Power Management Micro
  Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling
  the state of the various hardware modules present on the SoC. Communication
  between the host processor running an OS and the system controller happens
  through a protocol called TI System Control Interface (TI-SCI protocol).

  This PM domain node represents the global PM domain managed by the TI-SCI
  controller. Since this relies on the TI SCI protocol to communicate with
  the TI-SCI controller, it must be a child of the TI-SCI controller node.

properties:
  compatible:
    const: ti,sci-pm-domain

  "#power-domain-cells":
    enum: [1, 2]
    description:
      The two cells represent values that the TI-SCI controller defines.

      The first cell should contain the device ID.

      The second cell, if cell-value is 2, should be one of the following
      TI_SCI_PD_EXCLUSIVE - Allows the device to be exclusively controlled
      or
      TI_SCI_PD_SHARED - Allows the device to be shared by multiple hosts.
      Please refer to dt-bindings/soc/ti,sci_pm_domain.h for the definitions.

      Please see https://software-dl.ti.com/tisci/esd/latest/index.html for
      protocol documentation for the values to be used for different devices.

additionalProperties: false

examples:
  - |
    k2g_pds: power-controller {
        compatible = "ti,sci-pm-domain";
        #power-domain-cells = <1>;
    };

  - |
    k3_pds: power-controller {
        compatible = "ti,sci-pm-domain";
        #power-domain-cells = <2>;
    };
