Commit f710b49e authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Rob Herring
Browse files

dt-bindings: convert spmi.txt to spmi.yaml



Convert the SPMI bus documentation to JSON/yaml.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/ee4c4ca9f29a39f6af772b3a526a996176499da3.1598415179.git.mchehab+huawei@kernel.org


[robh: Correct maintainer, unit-address should be hex]
Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent af4ed018
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ Required properties:
                   or generalized "qcom,spmi-pmic".
- reg:             Specifies the SPMI USID slave address for this device.
                   For more information see:
                   Documentation/devicetree/bindings/spmi/spmi.txt
                   Documentation/devicetree/bindings/spmi/spmi.yaml

Required properties for peripheral child nodes:
- compatible:      Should contain "qcom,xxx", where "xxx" is a peripheral name.
+2 −2
Original line number Diff line number Diff line
@@ -7,8 +7,8 @@ devices to control a single SPMI master.
The PMIC Arbiter can also act as an interrupt controller, providing interrupts
to slave devices.

See spmi.txt for the generic SPMI controller binding requirements for child
nodes.
See Documentation/devicetree/bindings/spmi/spmi.yaml for the generic SPMI
controller binding requirements for child nodes.

See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt for
generic interrupt controller binding documentation.
+0 −41
Original line number Diff line number Diff line
System Power Management Interface (SPMI) Controller

This document defines a generic set of bindings for use by SPMI controllers.  A
controller is modelled in device tree as a node with zero or more child nodes,
each representing a unique slave on the bus.

Required properties:
- #address-cells : must be set to 2
- #size-cells : must be set to 0

Child nodes:

An SPMI controller node can contain zero or more child nodes representing slave
devices on the bus.  Child 'reg' properties are specified as an address, type
pair.  The address must be in the range 0-15 (4 bits).  The type must be one of
SPMI_USID (0) or SPMI_GSID (1) for Unique Slave ID or Group Slave ID respectively.
These are the identifiers "statically assigned by the system integrator", as
per the SPMI spec.

Each child node must have one and only one 'reg' entry of type SPMI_USID.

#include <dt-bindings/spmi/spmi.h>

	spmi@.. {
		compatible = "...";
		reg = <...>;

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

		child@0 {
			compatible = "...";
			reg = <0 SPMI_USID>;
		};

		child@7 {
			compatible = "...";
			reg = <7 SPMI_USID
			       3 SPMI_GSID>;
		};
	};
+75 −0
Original line number Diff line number Diff line
# 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

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>;
      };
    };