xref: /freebsd-src/sys/contrib/device-tree/Bindings/spmi/spmi.yaml (revision e67e85659c0de33e617e5fbf1028c6e8b49eee53)
16be33864SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
26be33864SEmmanuel Vadot%YAML 1.2
36be33864SEmmanuel Vadot---
46be33864SEmmanuel Vadot$id: http://devicetree.org/schemas/spmi/spmi.yaml#
56be33864SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
66be33864SEmmanuel Vadot
76be33864SEmmanuel Vadottitle: System Power Management Interface (SPMI) Controller
86be33864SEmmanuel Vadot
96be33864SEmmanuel Vadotmaintainers:
106be33864SEmmanuel Vadot  - Stephen Boyd <sboyd@kernel.org>
116be33864SEmmanuel Vadot
126be33864SEmmanuel Vadotdescription: |
136be33864SEmmanuel Vadot  The System Power Management (SPMI) controller is a 2-wire bus defined
146be33864SEmmanuel Vadot  by the MIPI Alliance for power management control to be used on SoC designs.
156be33864SEmmanuel Vadot
166be33864SEmmanuel Vadot  SPMI controllers are modelled in device tree using a generic set of
176be33864SEmmanuel Vadot  bindings defined here, plus any bus controller specific properties, if
186be33864SEmmanuel Vadot  needed.
196be33864SEmmanuel Vadot
206be33864SEmmanuel Vadot  Each SPMI controller has zero or more child nodes (up to 16 ones), each
216be33864SEmmanuel Vadot  one representing an unique slave at the bus.
226be33864SEmmanuel Vadot
236be33864SEmmanuel Vadotproperties:
246be33864SEmmanuel Vadot  $nodename:
256be33864SEmmanuel Vadot    pattern: "^spmi@.*"
266be33864SEmmanuel Vadot
276be33864SEmmanuel Vadot  "#address-cells":
286be33864SEmmanuel Vadot    const: 2
296be33864SEmmanuel Vadot
306be33864SEmmanuel Vadot  "#size-cells":
316be33864SEmmanuel Vadot    const: 0
326be33864SEmmanuel Vadot
336be33864SEmmanuel VadotpatternProperties:
346be33864SEmmanuel Vadot  "@[0-9a-f]$":
356be33864SEmmanuel Vadot    description: up to 16 child PMIC nodes
366be33864SEmmanuel Vadot    type: object
376be33864SEmmanuel Vadot
386be33864SEmmanuel Vadot    properties:
396be33864SEmmanuel Vadot      reg:
40*5956d97fSEmmanuel Vadot        items:
41*5956d97fSEmmanuel Vadot          - minItems: 1
426be33864SEmmanuel Vadot            items:
436be33864SEmmanuel Vadot              - minimum: 0
446be33864SEmmanuel Vadot                maximum: 0xf
456be33864SEmmanuel Vadot              - enum: [ 0 ]
46*5956d97fSEmmanuel Vadot                description:
47*5956d97fSEmmanuel Vadot                  0 means user ID address. 1 is reserved for group ID
48*5956d97fSEmmanuel Vadot                  address.
496be33864SEmmanuel Vadot
506be33864SEmmanuel Vadot    required:
516be33864SEmmanuel Vadot      - reg
526be33864SEmmanuel Vadot
536be33864SEmmanuel Vadotrequired:
546be33864SEmmanuel Vadot  - reg
556be33864SEmmanuel Vadot
566be33864SEmmanuel VadotadditionalProperties: true
576be33864SEmmanuel Vadot
586be33864SEmmanuel Vadotexamples:
596be33864SEmmanuel Vadot  - |
606be33864SEmmanuel Vadot    #include <dt-bindings/spmi/spmi.h>
616be33864SEmmanuel Vadot
626be33864SEmmanuel Vadot    spmi@0 {
636be33864SEmmanuel Vadot      reg = <0 0>;
646be33864SEmmanuel Vadot
656be33864SEmmanuel Vadot      #address-cells = <2>;
666be33864SEmmanuel Vadot      #size-cells = <0>;
676be33864SEmmanuel Vadot
686be33864SEmmanuel Vadot      child@0 {
696be33864SEmmanuel Vadot        reg = <0 SPMI_USID>;
706be33864SEmmanuel Vadot      };
716be33864SEmmanuel Vadot
726be33864SEmmanuel Vadot      child@7 {
736be33864SEmmanuel Vadot        reg = <7 SPMI_USID>;
746be33864SEmmanuel Vadot      };
756be33864SEmmanuel Vadot    };
76