blob: 29b350a4f88a0ba95f961561126ae3dbf8419d67 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/regulator/rohm,bd71837-regulator.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: ROHM BD71837 Power Management Integrated Circuit regulators
8
9maintainers:
10 - Matti Vaittinen <mazziesaccount@gmail.com>
11
12description: |
13 List of regulators provided by this controller. BD71837 regulators node
14 should be sub node of the BD71837 MFD node. See BD71837 MFD bindings at
15 Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml
16 Regulator nodes should be named to BUCK_<number> and LDO_<number>. The
17 definition for each of these nodes is defined using the standard
18 binding for regulators at
19 Documentation/devicetree/bindings/regulator/regulator.txt.
20 Note that if BD71837 starts at RUN state you probably want to use
21 regulator-boot-on at least for BUCK6 and BUCK7 so that those are not
22 disabled by driver at startup. LDO5 and LDO6 are supplied by those and
23 if they are disabled at startup the voltage monitoring for LDO5/LDO6 will
24 cause PMIC to reset.
25
26# The valid names for BD71837 regulator nodes are:
27# BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6, BUCK7, BUCK8
28# LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7
29
30patternProperties:
31 "^LDO[1-7]$":
32 type: object
33 $ref: regulator.yaml#
34 description:
35 Properties for single LDO regulator.
36
37 properties:
38 regulator-name:
39 pattern: "^ldo[1-7]$"
40 description:
41 should be "ldo1", ..., "ldo7"
42
43 unevaluatedProperties: false
44
45 "^BUCK[1-8]$":
46 type: object
47 $ref: regulator.yaml#
48 description:
49 Properties for single BUCK regulator.
50
51 properties:
52 regulator-name:
53 pattern: "^buck[1-8]$"
54 description:
55 should be "buck1", ..., "buck8"
56
57 rohm,dvs-run-voltage:
58 $ref: /schemas/types.yaml#/definitions/uint32
59 minimum: 0
60 maximum: 1300000
61 description:
62 PMIC default "RUN" state voltage in uV. See below table for
63 bucks which support this. 0 means disabled.
64
65 rohm,dvs-idle-voltage:
66 $ref: /schemas/types.yaml#/definitions/uint32
67 minimum: 0
68 maximum: 1300000
69 description:
70 PMIC default "IDLE" state voltage in uV. See below table for
71 bucks which support this. 0 means disabled.
72
73 rohm,dvs-suspend-voltage:
74 $ref: /schemas/types.yaml#/definitions/uint32
75 minimum: 0
76 maximum: 1300000
77 description:
78 PMIC default "SUSPEND" state voltage in uV. See below table for
79 bucks which support this. 0 means disabled.
80
81 # Supported default DVS states:
82 #
83 # BD71837:
84 # buck | dvs-run-voltage | dvs-idle-voltage | dvs-suspend-voltage
85 # ----------------------------------------------------------------
86 # 1 | supported | supported | supported
87 # ----------------------------------------------------------------
88 # 2 | supported | supported | not supported
89 # ----------------------------------------------------------------
90 # 3 | supported | not supported | not supported
91 # ----------------------------------------------------------------
92 # 4 | supported | not supported | not supported
93 # ----------------------------------------------------------------
94 # rest | not supported | not supported | not supported
95
96 # BD71837 power outputs can either be controlled by the PMIC internal
97 # hardware state machine or by software. If you need regulators to be
98 # turned ON/OFF for example based on PMIC_STBY_REQ line (which toggles
99 # PMIC HW state machine) - then you should set this property.
100 # Tradeoff is that then SW can't control the ON/OFF state for this
101 # regulator (other than invoking a PMIC state change).
102 rohm,no-regulator-enable-control:
103 description: |
104 Enable/Disable control of this regulator must be left to the
105 PMIC hardware state machine.
106 type: boolean
107
108 # Setups where regulator (especially the buck8) output voltage is scaled
109 # by adding external connection where some other regulator output is
110 # connected to feedback-pin (over suitable resistors) is getting popular
111 # amongst users of BD71837. (This allows for example scaling down the
112 # buck8 voltages to suit lover GPU voltages for projects where buck8 is
113 # (ab)used to supply power for GPU.
114 #
115 # So we allow describing this external connection from DT and scale the
116 # voltages accordingly. This is what the connection should look like:
117 #
118 # |---------------|
119 # | buck 8 |-------+----->Vout
120 # | | |
121 # |---------------| |
122 # | |
123 # | |
124 # +-------+--R2----+
125 # |
126 # R1
127 # |
128 # V FB-pull-up
129 #
130 # Here the buck output is sifted according to formula:
131 #
132 # Vout_o = Vo - (Vpu - Vo)*R2/R1
133 # Linear_step = step_orig*(R1+R2)/R1
134 #
135 # where:
136 # Vout_o is adjusted voltage output at vsel reg value 0
137 # Vo is original voltage output at vsel reg value 0
138 # Vpu is the pull-up voltage V FB-pull-up in the picture
139 # R1 and R2 are resistor values.
140
141 rohm,fb-pull-up-microvolt:
142 description:
143 Feedback-pin has pull-up connection to adjust voltage range. This is
144 the used pull-up voltage before R1.
145
146 rohm,feedback-pull-up-r1-ohms:
147 description:
148 Feedback-pin has pull-up connection to adjust voltage range. This is
149 the used R1 resistor.
150
151 rohm,feedback-pull-up-r2-ohms:
152 description:
153 Feedback-pin has pull-up connection to adjust voltage range. This is
154 the used R2 resistor.
155
156 required:
157 - regulator-name
158
159 unevaluatedProperties: false
160
161additionalProperties: false