hc
2024-09-20 cf4ce59b3b70238352c7f1729f0f7223214828ad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/gpio-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
 
title: GPIO controlled regulators
 
maintainers:
  - Liam Girdwood <lgirdwood@gmail.com>
  - Mark Brown <broonie@kernel.org>
 
description:
  Any property defined as part of the core regulator binding, defined in
  regulator.txt, can also be used.
 
allOf:
  - $ref: "regulator.yaml#"
 
properties:
  compatible:
    const: regulator-gpio
 
  regulator-name: true
 
  enable-gpios:
    description: GPIO to use to enable/disable the regulator.
      Warning, the GPIO phandle flags are ignored and the GPIO polarity is
      controlled solely by the presence of "enable-active-high" DT property.
      This is due to compatibility with old DTs.
    maxItems: 1
 
  gpios:
    description: Array of one or more GPIO pins used to select the regulator
      voltage/current listed in "states".
    minItems: 1
    maxItems: 8  # Should be enough...
 
  gpios-states:
    description: |
      On operating systems, that don't support reading back gpio values in
      output mode (most notably linux), this array provides the state of GPIO
      pins set when requesting them from the gpio controller. Systems, that are
      capable of preserving state when requesting the lines, are free to ignore
      this property.
        0: LOW
        1: HIGH
      Default is LOW if nothing else is specified.
    $ref: /schemas/types.yaml#/definitions/uint32-array
    maxItems: 8
    items:
      enum: [0, 1]
      default: 0
 
  states:
    description: Selection of available voltages/currents provided by this
      regulator and matching GPIO configurations to achieve them. If there are
      no states in the "states" array, use a fixed regulator instead.
    $ref: /schemas/types.yaml#/definitions/uint32-matrix
    maxItems: 8
    items:
      items:
        - description: Voltage in microvolts
        - description: GPIO group state value
 
  startup-delay-us:
    description: startup time in microseconds
 
  enable-active-high:
    description: Polarity of "enable-gpio" GPIO is active HIGH. Default is
      active LOW.
    type: boolean
 
  gpio-open-drain:
    description:
      GPIO is open drain type. If this property is missing then default
      assumption is false.
    type: boolean
 
  regulator-type:
    description: Specifies what is being regulated.
    $ref: /schemas/types.yaml#/definitions/string
    enum:
      - voltage
      - current
    default: voltage
 
required:
  - compatible
  - regulator-name
  - gpios
  - states
 
unevaluatedProperties: false
 
examples:
  - |
    gpio-regulator {
      compatible = "regulator-gpio";
 
      regulator-name = "mmci-gpio-supply";
      regulator-min-microvolt = <1800000>;
      regulator-max-microvolt = <2600000>;
      regulator-boot-on;
 
      enable-gpios = <&gpio0 23 0x4>;
      gpios = <&gpio0 24 0x4
        &gpio0 25 0x4>;
      states = <1800000 0x3>,
        <2200000 0x2>,
        <2600000 0x1>,
        <2900000 0x0>;
 
      startup-delay-us = <100000>;
      enable-active-high;
    };
...