Commit fda55c72 authored by Nishanth Menon's avatar Nishanth Menon Committed by Rob Herring
Browse files

dt-bindings: soc: ti: Convert ti,sci-pm-domain to json schema



Convert the ti,sci-pm-domain to json schema for better checks and
documentation.

Differences being:
 - Drop consumer example as they are documented in the corresponding
   bindings themselves.
 - Drop phandle description for reset consumer or cell definition as it
   is redundant.

Signed-off-by: default avatarNishanth Menon <nm@ti.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Reviewed-by: default avatarTero Kristo <kristo@kernel.org>
Acked-by: default avatarStephen Boyd <sboyd@kernel.org>
Link: https://lore.kernel.org/r/20210426155457.21221-4-nm@ti.com


Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent a7dbfa6f
Loading
Loading
Loading
Loading
+0 −65
Original line number Diff line number Diff line
Texas Instruments TI-SCI Generic Power Domain
---------------------------------------------

Some TI SoCs contain a system controller (like the PMMC, etc...) that is
responsible for controlling the state of the IPs that are present.
Communication between the host processor running an OS and the system
controller happens through a protocol known as TI-SCI [1].

[1] Documentation/devicetree/bindings/arm/keystone/ti,sci.txt

PM Domain Node
==============
The PM domain node represents the global PM domain managed by the PMMC, which
in this case is the implementation as documented by the generic PM domain
bindings in Documentation/devicetree/bindings/power/power-domain.yaml.  Because
this relies on the TI SCI protocol to communicate with the PMMC it must be a
child of the pmmc node.

Required Properties:
--------------------
- compatible: should be "ti,sci-pm-domain"
- #power-domain-cells: Can be one of the following:
			1: Containing the device id of each node
			2: First entry should be device id
			   Second entry should be one of the floowing:
			   TI_SCI_PD_EXCLUSIVE: To allow device to be
						exclusively controlled by
						the requesting hosts.
			   TI_SCI_PD_SHARED: To allow device to be shared
					     by multiple hosts.

Example (K2G):
-------------
	pmmc: pmmc {
		compatible = "ti,k2g-sci";
		...

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

PM Domain Consumers
===================
Hardware blocks belonging to a PM domain should contain a "power-domains"
property that is a phandle pointing to the corresponding PM domain node
along with an index representing the device id to be passed to the PMMC
for device control.

Required Properties:
--------------------
- power-domains: phandle pointing to the corresponding PM domain node
		 and an ID representing the device.

See http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data for the list
of valid identifiers for k2g.

Example (K2G):
--------------------
	uart0: serial@2530c00 {
		compatible = "ns16550a";
		...
		power-domains = <&k2g_pds 0x002c>;
	};
+59 −0
Original line number Diff line number Diff line
# 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 node bindings

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  http://processors.wiki.ti.com/index.php/TISCI 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>;
    };