xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/spmi/spmi.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun%YAML 1.2
3*4882a593Smuzhiyun---
4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/spmi/spmi.yaml#
5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4882a593Smuzhiyun
7*4882a593Smuzhiyuntitle: System Power Management Interface (SPMI) Controller
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunmaintainers:
10*4882a593Smuzhiyun  - Stephen Boyd <sboyd@kernel.org>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyundescription: |
13*4882a593Smuzhiyun  The System Power Management (SPMI) controller is a 2-wire bus defined
14*4882a593Smuzhiyun  by the MIPI Alliance for power management control to be used on SoC designs.
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun  SPMI controllers are modelled in device tree using a generic set of
17*4882a593Smuzhiyun  bindings defined here, plus any bus controller specific properties, if
18*4882a593Smuzhiyun  needed.
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun  Each SPMI controller has zero or more child nodes (up to 16 ones), each
21*4882a593Smuzhiyun  one representing an unique slave at the bus.
22*4882a593Smuzhiyun
23*4882a593Smuzhiyunproperties:
24*4882a593Smuzhiyun  $nodename:
25*4882a593Smuzhiyun    pattern: "^spmi@.*"
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun  reg:
28*4882a593Smuzhiyun    maxItems: 1
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun  "#address-cells":
31*4882a593Smuzhiyun    const: 2
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun  "#size-cells":
34*4882a593Smuzhiyun    const: 0
35*4882a593Smuzhiyun
36*4882a593SmuzhiyunpatternProperties:
37*4882a593Smuzhiyun  "@[0-9a-f]$":
38*4882a593Smuzhiyun    description: up to 16 child PMIC nodes
39*4882a593Smuzhiyun    type: object
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun    properties:
42*4882a593Smuzhiyun      reg:
43*4882a593Smuzhiyun        minItems: 1
44*4882a593Smuzhiyun        maxItems: 2
45*4882a593Smuzhiyun        items:
46*4882a593Smuzhiyun          - minimum: 0
47*4882a593Smuzhiyun            maximum: 0xf
48*4882a593Smuzhiyun          - enum: [ 0 ]
49*4882a593Smuzhiyun            description: |
50*4882a593Smuzhiyun              0 means user ID address. 1 is reserved for group ID address.
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun    required:
53*4882a593Smuzhiyun      - reg
54*4882a593Smuzhiyun
55*4882a593Smuzhiyunrequired:
56*4882a593Smuzhiyun  - reg
57*4882a593Smuzhiyun
58*4882a593SmuzhiyunadditionalProperties: true
59*4882a593Smuzhiyun
60*4882a593Smuzhiyunexamples:
61*4882a593Smuzhiyun  - |
62*4882a593Smuzhiyun    #include <dt-bindings/spmi/spmi.h>
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun    spmi@0 {
65*4882a593Smuzhiyun      reg = <0 0>;
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun      #address-cells = <2>;
68*4882a593Smuzhiyun      #size-cells = <0>;
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun      child@0 {
71*4882a593Smuzhiyun        reg = <0 SPMI_USID>;
72*4882a593Smuzhiyun      };
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun      child@7 {
75*4882a593Smuzhiyun        reg = <7 SPMI_USID>;
76*4882a593Smuzhiyun      };
77*4882a593Smuzhiyun    };
78