14238dc1eSMatti Vaittinen# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
24238dc1eSMatti Vaittinen%YAML 1.2
34238dc1eSMatti Vaittinen---
44238dc1eSMatti Vaittinen$id: http://devicetree.org/schemas/mfd/rohm,bd71815-pmic.yaml#
54238dc1eSMatti Vaittinen$schema: http://devicetree.org/meta-schemas/core.yaml#
64238dc1eSMatti Vaittinen
784e85359SKrzysztof Kozlowskititle: ROHM BD71815 Power Management Integrated Circuit
84238dc1eSMatti Vaittinen
94238dc1eSMatti Vaittinenmaintainers:
101ca8a011SMatti Vaittinen  - Matti Vaittinen <mazziesaccount@gmail.com>
114238dc1eSMatti Vaittinen
124238dc1eSMatti Vaittinendescription: |
134238dc1eSMatti Vaittinen  BD71815AGW is a single-chip power management ICs for battery-powered
144238dc1eSMatti Vaittinen  portable devices. It integrates 5 buck converters, 8 LDOs, a boost driver
154238dc1eSMatti Vaittinen  for LED and a 500 mA single-cell linear charger. Also included is a Coulomb
164238dc1eSMatti Vaittinen  counter, a real-time clock (RTC), and a 32.768 kHz clock gate and two GPOs.
174238dc1eSMatti Vaittinen
184238dc1eSMatti Vaittinenproperties:
194238dc1eSMatti Vaittinen  compatible:
204238dc1eSMatti Vaittinen    const: rohm,bd71815
214238dc1eSMatti Vaittinen
224238dc1eSMatti Vaittinen  reg:
234238dc1eSMatti Vaittinen    description:
244238dc1eSMatti Vaittinen      I2C slave address.
254238dc1eSMatti Vaittinen    maxItems: 1
264238dc1eSMatti Vaittinen
274238dc1eSMatti Vaittinen  interrupts:
284238dc1eSMatti Vaittinen    maxItems: 1
294238dc1eSMatti Vaittinen
304238dc1eSMatti Vaittinen  gpio-controller: true
314238dc1eSMatti Vaittinen
324238dc1eSMatti Vaittinen  "#gpio-cells":
334238dc1eSMatti Vaittinen    const: 2
344238dc1eSMatti Vaittinen    description: |
354238dc1eSMatti Vaittinen      The first cell is the pin number and the second cell is used to specify
364238dc1eSMatti Vaittinen      flags. See ../gpio/gpio.txt for more information.
374238dc1eSMatti Vaittinen
384238dc1eSMatti Vaittinen  clocks:
394238dc1eSMatti Vaittinen    maxItems: 1
404238dc1eSMatti Vaittinen
414238dc1eSMatti Vaittinen  "#clock-cells":
424238dc1eSMatti Vaittinen    const: 0
434238dc1eSMatti Vaittinen
444238dc1eSMatti Vaittinen  clock-output-names:
454238dc1eSMatti Vaittinen    const: bd71815-32k-out
464238dc1eSMatti Vaittinen
474238dc1eSMatti Vaittinen  rohm,clkout-open-drain:
484238dc1eSMatti Vaittinen    description: clk32kout mode. Set to 1 for "open-drain" or 0 for "cmos".
49*9896a19cSRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
504238dc1eSMatti Vaittinen    minimum: 0
514238dc1eSMatti Vaittinen    maximum: 1
524238dc1eSMatti Vaittinen
534238dc1eSMatti Vaittinen  rohm,charger-sense-resistor-ohms:
544238dc1eSMatti Vaittinen    minimum: 10000000
554238dc1eSMatti Vaittinen    maximum: 50000000
564238dc1eSMatti Vaittinen    description: |
574238dc1eSMatti Vaittinen      BD71827 and BD71828 have SAR ADC for measuring charging currents.
584238dc1eSMatti Vaittinen      External sense resistor (RSENSE in data sheet) should be used. If
594238dc1eSMatti Vaittinen      something other but 30MOhm resistor is used the resistance value
604238dc1eSMatti Vaittinen      should be given here in Ohms.
614238dc1eSMatti Vaittinen    default: 30000000
624238dc1eSMatti Vaittinen
634238dc1eSMatti Vaittinen  regulators:
644238dc1eSMatti Vaittinen    $ref: ../regulator/rohm,bd71815-regulator.yaml
654238dc1eSMatti Vaittinen    description:
664238dc1eSMatti Vaittinen      List of child nodes that specify the regulators.
674238dc1eSMatti Vaittinen
684238dc1eSMatti Vaittinen  gpio-reserved-ranges:
694238dc1eSMatti Vaittinen    description: |
704238dc1eSMatti Vaittinen      Usage of BD71828 GPIO pins can be changed via OTP. This property can be
714238dc1eSMatti Vaittinen      used to mark the pins which should not be configured for GPIO. Please see
724238dc1eSMatti Vaittinen      the ../gpio/gpio.txt for more information.
734238dc1eSMatti Vaittinen
744238dc1eSMatti Vaittinen  rohm,enable-hidden-gpo:
754238dc1eSMatti Vaittinen    description: |
764238dc1eSMatti Vaittinen      The BD71815 has undocumented GPO at pin E5. Pin is marked as GND at the
77be55492eSRandy Dunlap      data-sheet as its location in the middle of GND pins makes it hard to
784238dc1eSMatti Vaittinen      use on PCB. If your board has managed to use this pin you can enable the
794238dc1eSMatti Vaittinen      second GPO by defining this property. Dont enable this if you are unsure
804238dc1eSMatti Vaittinen      about how the E5 pin is connected on your board.
814238dc1eSMatti Vaittinen    type: boolean
824238dc1eSMatti Vaittinen
834238dc1eSMatti Vaittinenrequired:
844238dc1eSMatti Vaittinen  - compatible
854238dc1eSMatti Vaittinen  - reg
864238dc1eSMatti Vaittinen  - interrupts
874238dc1eSMatti Vaittinen  - clocks
884238dc1eSMatti Vaittinen  - "#clock-cells"
894238dc1eSMatti Vaittinen  - regulators
904238dc1eSMatti Vaittinen  - gpio-controller
914238dc1eSMatti Vaittinen  - "#gpio-cells"
924238dc1eSMatti Vaittinen
934238dc1eSMatti VaittinenadditionalProperties: false
944238dc1eSMatti Vaittinen
954238dc1eSMatti Vaittinenexamples:
964238dc1eSMatti Vaittinen  - |
974238dc1eSMatti Vaittinen    #include <dt-bindings/interrupt-controller/irq.h>
984238dc1eSMatti Vaittinen    #include <dt-bindings/leds/common.h>
994238dc1eSMatti Vaittinen    i2c {
1004238dc1eSMatti Vaittinen        #address-cells = <1>;
1014238dc1eSMatti Vaittinen        #size-cells = <0>;
1024238dc1eSMatti Vaittinen        pmic: pmic@4b {
1034238dc1eSMatti Vaittinen            compatible = "rohm,bd71815";
1044238dc1eSMatti Vaittinen            reg = <0x4b>;
1054238dc1eSMatti Vaittinen
1064238dc1eSMatti Vaittinen            interrupt-parent = <&gpio1>;
1074238dc1eSMatti Vaittinen            interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
1084238dc1eSMatti Vaittinen
1094238dc1eSMatti Vaittinen            clocks = <&osc 0>;
1104238dc1eSMatti Vaittinen            #clock-cells = <0>;
1114238dc1eSMatti Vaittinen            clock-output-names = "bd71815-32k-out";
1124238dc1eSMatti Vaittinen
1134238dc1eSMatti Vaittinen            gpio-controller;
1144238dc1eSMatti Vaittinen            #gpio-cells = <2>;
1154238dc1eSMatti Vaittinen
1164238dc1eSMatti Vaittinen            rohm,charger-sense-resistor-ohms = <10000000>;
1174238dc1eSMatti Vaittinen
1184238dc1eSMatti Vaittinen            regulators {
1194238dc1eSMatti Vaittinen                buck1: buck1 {
1204238dc1eSMatti Vaittinen                    regulator-name = "buck1";
1214238dc1eSMatti Vaittinen                    regulator-min-microvolt = <800000>;
1224238dc1eSMatti Vaittinen                    regulator-max-microvolt = <2000000>;
1234238dc1eSMatti Vaittinen                    regulator-always-on;
1244238dc1eSMatti Vaittinen                    regulator-ramp-delay = <1250>;
1254238dc1eSMatti Vaittinen                    rohm,dvs-run-voltage = <1150000>;
1264238dc1eSMatti Vaittinen                    rohm,dvs-suspend-voltage = <950000>;
1274238dc1eSMatti Vaittinen                };
1284238dc1eSMatti Vaittinen                buck2: buck2 {
1294238dc1eSMatti Vaittinen                    regulator-name = "buck2";
1304238dc1eSMatti Vaittinen                    regulator-min-microvolt = <800000>;
1314238dc1eSMatti Vaittinen                    regulator-max-microvolt = <2000000>;
1324238dc1eSMatti Vaittinen                    regulator-always-on;
1334238dc1eSMatti Vaittinen                    regulator-ramp-delay = <1250>;
1344238dc1eSMatti Vaittinen                    rohm,dvs-run-voltage = <1150000>;
1354238dc1eSMatti Vaittinen                    rohm,dvs-suspend-voltage = <950000>;
1364238dc1eSMatti Vaittinen                };
1374238dc1eSMatti Vaittinen                buck3: buck3 {
1384238dc1eSMatti Vaittinen                    regulator-name = "buck3";
1394238dc1eSMatti Vaittinen                    regulator-min-microvolt = <1200000>;
1404238dc1eSMatti Vaittinen                    regulator-max-microvolt = <2700000>;
1414238dc1eSMatti Vaittinen                    regulator-always-on;
1424238dc1eSMatti Vaittinen                };
1434238dc1eSMatti Vaittinen                buck4: buck4 {
1444238dc1eSMatti Vaittinen                    regulator-name = "buck4";
1454238dc1eSMatti Vaittinen                    regulator-min-microvolt = <1100000>;
1464238dc1eSMatti Vaittinen                    regulator-max-microvolt = <1850000>;
1474238dc1eSMatti Vaittinen                    regulator-always-on;
1484238dc1eSMatti Vaittinen                };
1494238dc1eSMatti Vaittinen                buck5: buck5 {
1504238dc1eSMatti Vaittinen                    regulator-name = "buck5";
1514238dc1eSMatti Vaittinen                    regulator-min-microvolt = <1800000>;
1524238dc1eSMatti Vaittinen                    regulator-max-microvolt = <3300000>;
1534238dc1eSMatti Vaittinen                    regulator-always-on;
1544238dc1eSMatti Vaittinen                };
1554238dc1eSMatti Vaittinen                ldo1: ldo1 {
1564238dc1eSMatti Vaittinen                    regulator-name = "ldo1";
1574238dc1eSMatti Vaittinen                    regulator-min-microvolt = <800000>;
1584238dc1eSMatti Vaittinen                    regulator-max-microvolt = <3300000>;
1594238dc1eSMatti Vaittinen                    regulator-always-on;
1604238dc1eSMatti Vaittinen                };
1614238dc1eSMatti Vaittinen                ldo2: ldo2 {
1624238dc1eSMatti Vaittinen                    regulator-name = "ldo2";
1634238dc1eSMatti Vaittinen                    regulator-min-microvolt = <800000>;
1644238dc1eSMatti Vaittinen                    regulator-max-microvolt = <3300000>;
1654238dc1eSMatti Vaittinen                    regulator-always-on;
1664238dc1eSMatti Vaittinen                };
1674238dc1eSMatti Vaittinen                ldo3: ldo3 {
1684238dc1eSMatti Vaittinen                    regulator-name = "ldo3";
1694238dc1eSMatti Vaittinen                    regulator-min-microvolt = <800000>;
1704238dc1eSMatti Vaittinen                    regulator-max-microvolt = <3300000>;
1714238dc1eSMatti Vaittinen                    regulator-always-on;
1724238dc1eSMatti Vaittinen                };
1734238dc1eSMatti Vaittinen                ldo4: ldo4 {
1744238dc1eSMatti Vaittinen                    regulator-name = "ldo4";
1754238dc1eSMatti Vaittinen                    regulator-min-microvolt = <800000>;
1764238dc1eSMatti Vaittinen                    regulator-max-microvolt = <3300000>;
1774238dc1eSMatti Vaittinen                    regulator-always-on;
1784238dc1eSMatti Vaittinen                };
1794238dc1eSMatti Vaittinen                ldo5: ldo5 {
1804238dc1eSMatti Vaittinen                    regulator-name = "ldo5";
1814238dc1eSMatti Vaittinen                    regulator-min-microvolt = <800000>;
1824238dc1eSMatti Vaittinen                    regulator-max-microvolt = <3300000>;
1834238dc1eSMatti Vaittinen                    regulator-always-on;
1844238dc1eSMatti Vaittinen                };
1854238dc1eSMatti Vaittinen                ldo6: ldodvref {
1864238dc1eSMatti Vaittinen                    regulator-name = "ldodvref";
1874238dc1eSMatti Vaittinen                    regulator-always-on;
1884238dc1eSMatti Vaittinen                };
1894238dc1eSMatti Vaittinen                ldo7: ldolpsr {
1904238dc1eSMatti Vaittinen                    regulator-name = "ldolpsr";
1914238dc1eSMatti Vaittinen                    regulator-always-on;
1924238dc1eSMatti Vaittinen                };
1934238dc1eSMatti Vaittinen
1944238dc1eSMatti Vaittinen                boost: wled {
1954238dc1eSMatti Vaittinen                    regulator-name = "wled";
1964238dc1eSMatti Vaittinen                    regulator-min-microamp = <10>;
1974238dc1eSMatti Vaittinen                    regulator-max-microamp = <25000>;
1984238dc1eSMatti Vaittinen                };
1994238dc1eSMatti Vaittinen            };
2004238dc1eSMatti Vaittinen        };
2014238dc1eSMatti Vaittinen    };
202