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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/rohm,bd71837-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ROHM BD71837 Power Management Integrated Circuit regulators
maintainers:
- Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
description: |
List of regulators provided by this controller. BD71837 regulators node
should be sub node of the BD71837 MFD node. See BD71837 MFD bindings at
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml
Regulator nodes should be named to BUCK_<number> and LDO_<number>. The
definition for each of these nodes is defined using the standard
binding for regulators at
Documentation/devicetree/bindings/regulator/regulator.txt.
Note that if BD71837 starts at RUN state you probably want to use
regulator-boot-on at least for BUCK6 and BUCK7 so that those are not
disabled by driver at startup. LDO5 and LDO6 are supplied by those and
if they are disabled at startup the voltage monitoring for LDO5/LDO6 will
cause PMIC to reset.
#The valid names for BD71837 regulator nodes are:
#BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6, BUCK7, BUCK8
#LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7
patternProperties:
"^LDO[1-7]$":
type: object
$ref: regulator.yaml#
description:
Properties for single LDO regulator.
properties:
regulator-name:
pattern: "^ldo[1-7]$"
description:
should be "ldo1", ..., "ldo7"
unevaluatedProperties: false
"^BUCK[1-8]$":
type: object
$ref: regulator.yaml#
description:
Properties for single BUCK regulator.
properties:
regulator-name:
pattern: "^buck[1-8]$"
description:
should be "buck1", ..., "buck8"
rohm,dvs-run-voltage:
$ref: "/schemas/types.yaml#/definitions/uint32"
minimum: 0
maximum: 1300000
description:
PMIC default "RUN" state voltage in uV. See below table for
bucks which support this. 0 means disabled.
rohm,dvs-idle-voltage:
$ref: "/schemas/types.yaml#/definitions/uint32"
minimum: 0
maximum: 1300000
description:
PMIC default "IDLE" state voltage in uV. See below table for
bucks which support this. 0 means disabled.
rohm,dvs-suspend-voltage:
$ref: "/schemas/types.yaml#/definitions/uint32"
minimum: 0
maximum: 1300000
description:
PMIC default "SUSPEND" state voltage in uV. See below table for
bucks which support this. 0 means disabled.
# Supported default DVS states:
#
# BD71837:
# buck | dvs-run-voltage | dvs-idle-voltage | dvs-suspend-voltage
# ----------------------------------------------------------------
# 1 | supported | supported | supported
# ----------------------------------------------------------------
# 2 | supported | supported | not supported
# ----------------------------------------------------------------
# 3 | supported | not supported | not supported
# ----------------------------------------------------------------
# 4 | supported | not supported | not supported
# ----------------------------------------------------------------
# rest | not supported | not supported | not supported
# BD71837 power outputs can either be controlled by the PMIC internal
# hardware state machine or by software. If you need regulators to be
# turned ON/OFF for example based on PMIC_STBY_REQ line (which toggles
# PMIC HW state machine) - then you should set this property.
# Tradeoff is that then SW can't control the ON/OFF state for this
# regulator (other than invoking a PMIC state change).
rohm,no-regulator-enable-control:
description: |
Enable/Disable control of this regulator must be left to the
PMIC hardware state machine.
type: boolean
# Setups where regulator (especially the buck8) output voltage is scaled
# by adding external connection where some other regulator output is
# connected to feedback-pin (over suitable resistors) is getting popular
# amongst users of BD71837. (This allows for example scaling down the
# buck8 voltages to suit lover GPU voltages for projects where buck8 is
# (ab)used to supply power for GPU.
#
# So we allow describing this external connection from DT and scale the
# voltages accordingly. This is what the connection should look like:
#
# |---------------|
# | buck 8 |-------+----->Vout
# | | |
# |---------------| |
# | |
# | |
# +-------+--R2----+
# |
# R1
# |
# V FB-pull-up
#
# Here the buck output is sifted according to formula:
#
# Vout_o = Vo - (Vpu - Vo)*R2/R1
# Linear_step = step_orig*(R1+R2)/R1
#
# where:
# Vout_o is adjusted voltage output at vsel reg value 0
# Vo is original voltage output at vsel reg value 0
# Vpu is the pull-up voltage V FB-pull-up in the picture
# R1 and R2 are resistor values.
rohm,fb-pull-up-microvolt:
description:
Feedback-pin has pull-up connection to adjust voltage range. This is
the used pull-up voltage before R1.
rohm,feedback-pull-up-r1-ohms:
description:
Feedback-pin has pull-up connection to adjust voltage range. This is
the used R1 resistor.
rohm,feedback-pull-up-r2-ohms:
description:
Feedback-pin has pull-up connection to adjust voltage range. This is
the used R2 resistor.
required:
- regulator-name
unevaluatedProperties: false
additionalProperties: false
|