xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/rohm,bd71815-pmic.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
12eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
22eb4d8dcSEmmanuel Vadot%YAML 1.2
32eb4d8dcSEmmanuel Vadot---
42eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/rohm,bd71815-pmic.yaml#
52eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
62eb4d8dcSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: ROHM BD71815 Power Management Integrated Circuit
82eb4d8dcSEmmanuel Vadot
92eb4d8dcSEmmanuel Vadotmaintainers:
108bab661aSEmmanuel Vadot  - Matti Vaittinen <mazziesaccount@gmail.com>
112eb4d8dcSEmmanuel Vadot
122eb4d8dcSEmmanuel Vadotdescription: |
132eb4d8dcSEmmanuel Vadot  BD71815AGW is a single-chip power management ICs for battery-powered
142eb4d8dcSEmmanuel Vadot  portable devices. It integrates 5 buck converters, 8 LDOs, a boost driver
152eb4d8dcSEmmanuel Vadot  for LED and a 500 mA single-cell linear charger. Also included is a Coulomb
162eb4d8dcSEmmanuel Vadot  counter, a real-time clock (RTC), and a 32.768 kHz clock gate and two GPOs.
172eb4d8dcSEmmanuel Vadot
182eb4d8dcSEmmanuel Vadotproperties:
192eb4d8dcSEmmanuel Vadot  compatible:
202eb4d8dcSEmmanuel Vadot    const: rohm,bd71815
212eb4d8dcSEmmanuel Vadot
222eb4d8dcSEmmanuel Vadot  reg:
232eb4d8dcSEmmanuel Vadot    description:
242eb4d8dcSEmmanuel Vadot      I2C slave address.
252eb4d8dcSEmmanuel Vadot    maxItems: 1
262eb4d8dcSEmmanuel Vadot
272eb4d8dcSEmmanuel Vadot  interrupts:
282eb4d8dcSEmmanuel Vadot    maxItems: 1
292eb4d8dcSEmmanuel Vadot
302eb4d8dcSEmmanuel Vadot  gpio-controller: true
312eb4d8dcSEmmanuel Vadot
322eb4d8dcSEmmanuel Vadot  "#gpio-cells":
332eb4d8dcSEmmanuel Vadot    const: 2
342eb4d8dcSEmmanuel Vadot    description: |
352eb4d8dcSEmmanuel Vadot      The first cell is the pin number and the second cell is used to specify
362eb4d8dcSEmmanuel Vadot      flags. See ../gpio/gpio.txt for more information.
372eb4d8dcSEmmanuel Vadot
382eb4d8dcSEmmanuel Vadot  clocks:
392eb4d8dcSEmmanuel Vadot    maxItems: 1
402eb4d8dcSEmmanuel Vadot
412eb4d8dcSEmmanuel Vadot  "#clock-cells":
422eb4d8dcSEmmanuel Vadot    const: 0
432eb4d8dcSEmmanuel Vadot
442eb4d8dcSEmmanuel Vadot  clock-output-names:
452eb4d8dcSEmmanuel Vadot    const: bd71815-32k-out
462eb4d8dcSEmmanuel Vadot
472eb4d8dcSEmmanuel Vadot  rohm,clkout-open-drain:
482eb4d8dcSEmmanuel Vadot    description: clk32kout mode. Set to 1 for "open-drain" or 0 for "cmos".
49*fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
502eb4d8dcSEmmanuel Vadot    minimum: 0
512eb4d8dcSEmmanuel Vadot    maximum: 1
522eb4d8dcSEmmanuel Vadot
532eb4d8dcSEmmanuel Vadot  rohm,charger-sense-resistor-ohms:
542eb4d8dcSEmmanuel Vadot    minimum: 10000000
552eb4d8dcSEmmanuel Vadot    maximum: 50000000
562eb4d8dcSEmmanuel Vadot    description: |
572eb4d8dcSEmmanuel Vadot      BD71827 and BD71828 have SAR ADC for measuring charging currents.
582eb4d8dcSEmmanuel Vadot      External sense resistor (RSENSE in data sheet) should be used. If
592eb4d8dcSEmmanuel Vadot      something other but 30MOhm resistor is used the resistance value
602eb4d8dcSEmmanuel Vadot      should be given here in Ohms.
612eb4d8dcSEmmanuel Vadot    default: 30000000
622eb4d8dcSEmmanuel Vadot
632eb4d8dcSEmmanuel Vadot  regulators:
642eb4d8dcSEmmanuel Vadot    $ref: ../regulator/rohm,bd71815-regulator.yaml
652eb4d8dcSEmmanuel Vadot    description:
662eb4d8dcSEmmanuel Vadot      List of child nodes that specify the regulators.
672eb4d8dcSEmmanuel Vadot
682eb4d8dcSEmmanuel Vadot  gpio-reserved-ranges:
692eb4d8dcSEmmanuel Vadot    description: |
702eb4d8dcSEmmanuel Vadot      Usage of BD71828 GPIO pins can be changed via OTP. This property can be
712eb4d8dcSEmmanuel Vadot      used to mark the pins which should not be configured for GPIO. Please see
722eb4d8dcSEmmanuel Vadot      the ../gpio/gpio.txt for more information.
732eb4d8dcSEmmanuel Vadot
742eb4d8dcSEmmanuel Vadot  rohm,enable-hidden-gpo:
752eb4d8dcSEmmanuel Vadot    description: |
762eb4d8dcSEmmanuel Vadot      The BD71815 has undocumented GPO at pin E5. Pin is marked as GND at the
77b97ee269SEmmanuel Vadot      data-sheet as its location in the middle of GND pins makes it hard to
782eb4d8dcSEmmanuel Vadot      use on PCB. If your board has managed to use this pin you can enable the
792eb4d8dcSEmmanuel Vadot      second GPO by defining this property. Dont enable this if you are unsure
802eb4d8dcSEmmanuel Vadot      about how the E5 pin is connected on your board.
812eb4d8dcSEmmanuel Vadot    type: boolean
822eb4d8dcSEmmanuel Vadot
832eb4d8dcSEmmanuel Vadotrequired:
842eb4d8dcSEmmanuel Vadot  - compatible
852eb4d8dcSEmmanuel Vadot  - reg
862eb4d8dcSEmmanuel Vadot  - interrupts
872eb4d8dcSEmmanuel Vadot  - clocks
882eb4d8dcSEmmanuel Vadot  - "#clock-cells"
892eb4d8dcSEmmanuel Vadot  - regulators
902eb4d8dcSEmmanuel Vadot  - gpio-controller
912eb4d8dcSEmmanuel Vadot  - "#gpio-cells"
922eb4d8dcSEmmanuel Vadot
932eb4d8dcSEmmanuel VadotadditionalProperties: false
942eb4d8dcSEmmanuel Vadot
952eb4d8dcSEmmanuel Vadotexamples:
962eb4d8dcSEmmanuel Vadot  - |
972eb4d8dcSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
982eb4d8dcSEmmanuel Vadot    #include <dt-bindings/leds/common.h>
992eb4d8dcSEmmanuel Vadot    i2c {
1002eb4d8dcSEmmanuel Vadot        #address-cells = <1>;
1012eb4d8dcSEmmanuel Vadot        #size-cells = <0>;
1022eb4d8dcSEmmanuel Vadot        pmic: pmic@4b {
1032eb4d8dcSEmmanuel Vadot            compatible = "rohm,bd71815";
1042eb4d8dcSEmmanuel Vadot            reg = <0x4b>;
1052eb4d8dcSEmmanuel Vadot
1062eb4d8dcSEmmanuel Vadot            interrupt-parent = <&gpio1>;
1072eb4d8dcSEmmanuel Vadot            interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
1082eb4d8dcSEmmanuel Vadot
1092eb4d8dcSEmmanuel Vadot            clocks = <&osc 0>;
1102eb4d8dcSEmmanuel Vadot            #clock-cells = <0>;
1112eb4d8dcSEmmanuel Vadot            clock-output-names = "bd71815-32k-out";
1122eb4d8dcSEmmanuel Vadot
1132eb4d8dcSEmmanuel Vadot            gpio-controller;
1142eb4d8dcSEmmanuel Vadot            #gpio-cells = <2>;
1152eb4d8dcSEmmanuel Vadot
1162eb4d8dcSEmmanuel Vadot            rohm,charger-sense-resistor-ohms = <10000000>;
1172eb4d8dcSEmmanuel Vadot
1182eb4d8dcSEmmanuel Vadot            regulators {
1192eb4d8dcSEmmanuel Vadot                buck1: buck1 {
1202eb4d8dcSEmmanuel Vadot                    regulator-name = "buck1";
1212eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <800000>;
1222eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <2000000>;
1232eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1242eb4d8dcSEmmanuel Vadot                    regulator-ramp-delay = <1250>;
1252eb4d8dcSEmmanuel Vadot                    rohm,dvs-run-voltage = <1150000>;
1262eb4d8dcSEmmanuel Vadot                    rohm,dvs-suspend-voltage = <950000>;
1272eb4d8dcSEmmanuel Vadot                };
1282eb4d8dcSEmmanuel Vadot                buck2: buck2 {
1292eb4d8dcSEmmanuel Vadot                    regulator-name = "buck2";
1302eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <800000>;
1312eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <2000000>;
1322eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1332eb4d8dcSEmmanuel Vadot                    regulator-ramp-delay = <1250>;
1342eb4d8dcSEmmanuel Vadot                    rohm,dvs-run-voltage = <1150000>;
1352eb4d8dcSEmmanuel Vadot                    rohm,dvs-suspend-voltage = <950000>;
1362eb4d8dcSEmmanuel Vadot                };
1372eb4d8dcSEmmanuel Vadot                buck3: buck3 {
1382eb4d8dcSEmmanuel Vadot                    regulator-name = "buck3";
1392eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <1200000>;
1402eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <2700000>;
1412eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1422eb4d8dcSEmmanuel Vadot                };
1432eb4d8dcSEmmanuel Vadot                buck4: buck4 {
1442eb4d8dcSEmmanuel Vadot                    regulator-name = "buck4";
1452eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <1100000>;
1462eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <1850000>;
1472eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1482eb4d8dcSEmmanuel Vadot                };
1492eb4d8dcSEmmanuel Vadot                buck5: buck5 {
1502eb4d8dcSEmmanuel Vadot                    regulator-name = "buck5";
1512eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
1522eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
1532eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1542eb4d8dcSEmmanuel Vadot                };
1552eb4d8dcSEmmanuel Vadot                ldo1: ldo1 {
1562eb4d8dcSEmmanuel Vadot                    regulator-name = "ldo1";
1572eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <800000>;
1582eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
1592eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1602eb4d8dcSEmmanuel Vadot                };
1612eb4d8dcSEmmanuel Vadot                ldo2: ldo2 {
1622eb4d8dcSEmmanuel Vadot                    regulator-name = "ldo2";
1632eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <800000>;
1642eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
1652eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1662eb4d8dcSEmmanuel Vadot                };
1672eb4d8dcSEmmanuel Vadot                ldo3: ldo3 {
1682eb4d8dcSEmmanuel Vadot                    regulator-name = "ldo3";
1692eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <800000>;
1702eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
1712eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1722eb4d8dcSEmmanuel Vadot                };
1732eb4d8dcSEmmanuel Vadot                ldo4: ldo4 {
1742eb4d8dcSEmmanuel Vadot                    regulator-name = "ldo4";
1752eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <800000>;
1762eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
1772eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1782eb4d8dcSEmmanuel Vadot                };
1792eb4d8dcSEmmanuel Vadot                ldo5: ldo5 {
1802eb4d8dcSEmmanuel Vadot                    regulator-name = "ldo5";
1812eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <800000>;
1822eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
1832eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1842eb4d8dcSEmmanuel Vadot                };
1852eb4d8dcSEmmanuel Vadot                ldo6: ldodvref {
1862eb4d8dcSEmmanuel Vadot                    regulator-name = "ldodvref";
1872eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1882eb4d8dcSEmmanuel Vadot                };
1892eb4d8dcSEmmanuel Vadot                ldo7: ldolpsr {
1902eb4d8dcSEmmanuel Vadot                    regulator-name = "ldolpsr";
1912eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1922eb4d8dcSEmmanuel Vadot                };
1932eb4d8dcSEmmanuel Vadot
1942eb4d8dcSEmmanuel Vadot                boost: wled {
1952eb4d8dcSEmmanuel Vadot                    regulator-name = "wled";
1962eb4d8dcSEmmanuel Vadot                    regulator-min-microamp = <10>;
1972eb4d8dcSEmmanuel Vadot                    regulator-max-microamp = <25000>;
1982eb4d8dcSEmmanuel Vadot                };
1992eb4d8dcSEmmanuel Vadot            };
2002eb4d8dcSEmmanuel Vadot        };
2012eb4d8dcSEmmanuel Vadot    };
202