xref: /freebsd-src/sys/contrib/device-tree/Bindings/regulator/rohm,bd71847-regulator.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/regulator/rohm,bd71847-regulator.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: ROHM BD71847 and BD71850 Power Management Integrated Circuit regulators
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
108bab661aSEmmanuel Vadot  - Matti Vaittinen <mazziesaccount@gmail.com>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  List of regulators provided by this controller. BD71847 regulators node
14c66ec88fSEmmanuel Vadot  should be sub node of the BD71847 MFD node. See BD71847 MFD bindings at
15c66ec88fSEmmanuel Vadot  Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
16c66ec88fSEmmanuel Vadot  Regulator nodes should be named to BUCK_<number> and LDO_<number>. The
17c66ec88fSEmmanuel Vadot  definition for each of these nodes is defined using the standard
18c66ec88fSEmmanuel Vadot  binding for regulators at
19c66ec88fSEmmanuel Vadot  Documentation/devicetree/bindings/regulator/regulator.txt.
20c66ec88fSEmmanuel Vadot  Note that if BD71847 starts at RUN state you probably want to use
21c66ec88fSEmmanuel Vadot  regulator-boot-on at least for BUCK5. LDO6 is supplied by it and it must
22c66ec88fSEmmanuel Vadot  not be disabled by driver at startup. If BUCK5 is disabled at startup the
23c66ec88fSEmmanuel Vadot  voltage monitoring for LDO5/LDO6 can cause PMIC to reset.
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot# The valid names for BD71847 regulator nodes are:
26c66ec88fSEmmanuel Vadot# BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6
27c66ec88fSEmmanuel Vadot# LDO1, LDO2, LDO3, LDO4, LDO5, LDO6
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel VadotpatternProperties:
30c66ec88fSEmmanuel Vadot  "^LDO[1-6]$":
31c66ec88fSEmmanuel Vadot    type: object
32c66ec88fSEmmanuel Vadot    $ref: regulator.yaml#
33c66ec88fSEmmanuel Vadot    description:
34c66ec88fSEmmanuel Vadot      Properties for single LDO regulator.
35c66ec88fSEmmanuel Vadot
36c66ec88fSEmmanuel Vadot    properties:
37c66ec88fSEmmanuel Vadot      regulator-name:
38c66ec88fSEmmanuel Vadot        pattern: "^ldo[1-6]$"
39c66ec88fSEmmanuel Vadot        description:
40c66ec88fSEmmanuel Vadot          should be "ldo1", ..., "ldo6"
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot    unevaluatedProperties: false
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot  "^BUCK[1-6]$":
45c66ec88fSEmmanuel Vadot    type: object
46c66ec88fSEmmanuel Vadot    $ref: regulator.yaml#
47c66ec88fSEmmanuel Vadot    description:
48c66ec88fSEmmanuel Vadot      Properties for single BUCK regulator.
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel Vadot    properties:
51c66ec88fSEmmanuel Vadot      regulator-name:
52c66ec88fSEmmanuel Vadot        pattern: "^buck[1-6]$"
53c66ec88fSEmmanuel Vadot        description:
54c66ec88fSEmmanuel Vadot          should be "buck1", ..., "buck6"
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadot      rohm,dvs-run-voltage:
57*fac71e4eSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
58c66ec88fSEmmanuel Vadot        minimum: 0
59c66ec88fSEmmanuel Vadot        maximum: 1300000
60c66ec88fSEmmanuel Vadot        description:
61c66ec88fSEmmanuel Vadot          PMIC default "RUN" state voltage in uV. See below table for
62c66ec88fSEmmanuel Vadot          bucks which support this. 0 means disabled.
63c66ec88fSEmmanuel Vadot
64c66ec88fSEmmanuel Vadot      rohm,dvs-idle-voltage:
65*fac71e4eSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
66c66ec88fSEmmanuel Vadot        minimum: 0
67c66ec88fSEmmanuel Vadot        maximum: 1300000
68c66ec88fSEmmanuel Vadot        description:
69c66ec88fSEmmanuel Vadot          PMIC default "IDLE" state voltage in uV. See below table for
70c66ec88fSEmmanuel Vadot          bucks which support this. 0 means disabled.
71c66ec88fSEmmanuel Vadot
72c66ec88fSEmmanuel Vadot      rohm,dvs-suspend-voltage:
73*fac71e4eSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
74c66ec88fSEmmanuel Vadot        minimum: 0
75c66ec88fSEmmanuel Vadot        maximum: 1300000
76c66ec88fSEmmanuel Vadot        description:
77c66ec88fSEmmanuel Vadot          PMIC default "SUSPEND" state voltage in uV. See below table for
78c66ec88fSEmmanuel Vadot          bucks which support this. 0 means disabled.
79c66ec88fSEmmanuel Vadot
80c66ec88fSEmmanuel Vadot        # Supported default DVS states:
81c66ec88fSEmmanuel Vadot        #
82c66ec88fSEmmanuel Vadot        # BD71847:
83c66ec88fSEmmanuel Vadot        # buck | dvs-run-voltage | dvs-idle-voltage | dvs-suspend-voltage
84c66ec88fSEmmanuel Vadot        # ----------------------------------------------------------------
85c66ec88fSEmmanuel Vadot        # 1    | supported       | supported        | supported
86c66ec88fSEmmanuel Vadot        # ----------------------------------------------------------------
87c66ec88fSEmmanuel Vadot        # 2    | supported       | supported        | not supported
88c66ec88fSEmmanuel Vadot        # ----------------------------------------------------------------
89c66ec88fSEmmanuel Vadot        # rest | not supported   | not supported    | not supported
90c66ec88fSEmmanuel Vadot
916be33864SEmmanuel Vadot      # BD718(47/50) power outputs can either be controlled by the PMIC internal
926be33864SEmmanuel Vadot      # hardware state machine or by software. If you need regulators to be
936be33864SEmmanuel Vadot      # turned ON/OFF for example based on PMIC_STBY_REQ line (which toggles
946be33864SEmmanuel Vadot      # PMIC HW state machine) - then you should set this property.
956be33864SEmmanuel Vadot      # Tradeoff is that then SW can't control the ON/OFF state for this
966be33864SEmmanuel Vadot      # regulator (other than invoking a PMIC state change).
976be33864SEmmanuel Vadot      rohm,no-regulator-enable-control:
986be33864SEmmanuel Vadot        description: |
996be33864SEmmanuel Vadot          Enable/Disable control of this regulator must be left to the
1006be33864SEmmanuel Vadot          PMIC hardware state machine.
1016be33864SEmmanuel Vadot        type: boolean
1025def4c47SEmmanuel Vadot
1035def4c47SEmmanuel Vadot      # Setups where regulator (especially the buck8) output voltage is scaled
1045def4c47SEmmanuel Vadot      # by adding external connection where some other regulator output is
1055def4c47SEmmanuel Vadot      # connected to feedback-pin (over suitable resistors) is getting popular
1065def4c47SEmmanuel Vadot      # amongst users of BD71837. (This allows for example scaling down the
1075def4c47SEmmanuel Vadot      # buck8 voltages to suit lover GPU voltages for projects where buck8 is
1085def4c47SEmmanuel Vadot      # (ab)used to supply power for GPU.
1095def4c47SEmmanuel Vadot      #
1105def4c47SEmmanuel Vadot      # So we allow describing this external connection from DT and scale the
1115def4c47SEmmanuel Vadot      # voltages accordingly. This is what the connection should look like:
1125def4c47SEmmanuel Vadot      #
1135def4c47SEmmanuel Vadot      # |---------------|
1145def4c47SEmmanuel Vadot      # |       buck 8  |-------+----->Vout
1155def4c47SEmmanuel Vadot      # |               |       |
1165def4c47SEmmanuel Vadot      # |---------------|       |
1175def4c47SEmmanuel Vadot      #        |                |
1185def4c47SEmmanuel Vadot      #        |                |
1195def4c47SEmmanuel Vadot      #        +-------+--R2----+
1205def4c47SEmmanuel Vadot      #                |
1215def4c47SEmmanuel Vadot      #                R1
1225def4c47SEmmanuel Vadot      #                |
1235def4c47SEmmanuel Vadot      #        V FB-pull-up
1245def4c47SEmmanuel Vadot      #
1255def4c47SEmmanuel Vadot      # Here the buck output is sifted according to formula:
1265def4c47SEmmanuel Vadot      #
1275def4c47SEmmanuel Vadot      # Vout_o = Vo - (Vpu - Vo)*R2/R1
1285def4c47SEmmanuel Vadot      # Linear_step = step_orig*(R1+R2)/R1
1295def4c47SEmmanuel Vadot      #
1305def4c47SEmmanuel Vadot      # where:
1315def4c47SEmmanuel Vadot      # Vout_o is adjusted voltage output at vsel reg value 0
1325def4c47SEmmanuel Vadot      # Vo is original voltage output at vsel reg value 0
1335def4c47SEmmanuel Vadot      # Vpu is the pull-up voltage V FB-pull-up in the picture
1345def4c47SEmmanuel Vadot      # R1 and R2 are resistor values.
1355def4c47SEmmanuel Vadot
1365def4c47SEmmanuel Vadot      rohm,fb-pull-up-microvolt:
1375def4c47SEmmanuel Vadot        description:
1385def4c47SEmmanuel Vadot          Feedback-pin has pull-up connection to adjust voltage range. This is
1395def4c47SEmmanuel Vadot          the used pull-up voltage before R1.
1405def4c47SEmmanuel Vadot
1415def4c47SEmmanuel Vadot      rohm,feedback-pull-up-r1-ohms:
1425def4c47SEmmanuel Vadot        description:
1435def4c47SEmmanuel Vadot          Feedback-pin has pull-up connection to adjust voltage range. This is
1445def4c47SEmmanuel Vadot          the used R1 resistor.
1455def4c47SEmmanuel Vadot
1465def4c47SEmmanuel Vadot      rohm,feedback-pull-up-r2-ohms:
1475def4c47SEmmanuel Vadot        description:
1485def4c47SEmmanuel Vadot          Feedback-pin has pull-up connection to adjust voltage range. This is
1495def4c47SEmmanuel Vadot          the used R2 resistor.
1505def4c47SEmmanuel Vadot
151c66ec88fSEmmanuel Vadot    required:
152c66ec88fSEmmanuel Vadot      - regulator-name
153c66ec88fSEmmanuel Vadot
154c66ec88fSEmmanuel Vadot    unevaluatedProperties: false
155c66ec88fSEmmanuel Vadot
156c66ec88fSEmmanuel VadotadditionalProperties: false
157