122282276SAlexandre Mergnat# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
222282276SAlexandre Mergnat%YAML 1.2
322282276SAlexandre Mergnat---
422282276SAlexandre Mergnat$id: http://devicetree.org/schemas/mfd/mediatek,mt6357.yaml#
522282276SAlexandre Mergnat$schema: http://devicetree.org/meta-schemas/core.yaml#
622282276SAlexandre Mergnat
722282276SAlexandre Mergnattitle: MediaTek MT6357 PMIC
822282276SAlexandre Mergnat
922282276SAlexandre Mergnatmaintainers:
1022282276SAlexandre Mergnat  - Flora Fu <flora.fu@mediatek.com>
1122282276SAlexandre Mergnat  - Alexandre Mergnat <amergnat@baylibre.com>
1222282276SAlexandre Mergnat
1322282276SAlexandre Mergnatdescription: |
1422282276SAlexandre Mergnat  MT6357 is a power management system chip containing 5 buck
1522282276SAlexandre Mergnat  converters and 29 LDOs. Supported features are audio codec,
1622282276SAlexandre Mergnat  USB battery charging, fuel gauge, RTC
1722282276SAlexandre Mergnat
1822282276SAlexandre Mergnat  This is a multifunction device with the following sub modules:
1922282276SAlexandre Mergnat  - Regulator
2022282276SAlexandre Mergnat  - RTC
2122282276SAlexandre Mergnat  - Keys
2222282276SAlexandre Mergnat
2322282276SAlexandre Mergnat  It is interfaced to host controller using SPI interface by a proprietary hardware
2422282276SAlexandre Mergnat  called PMIC wrapper or pwrap. This MFD is a child device of pwrap.
2522282276SAlexandre Mergnat  See the following for pwrap node definitions:
2622282276SAlexandre Mergnat  Documentation/devicetree/bindings/soc/mediatek/mediatek,pwrap.yaml
2722282276SAlexandre Mergnat
2822282276SAlexandre Mergnatproperties:
2922282276SAlexandre Mergnat  compatible:
3022282276SAlexandre Mergnat    const: mediatek,mt6357
3122282276SAlexandre Mergnat
3222282276SAlexandre Mergnat  interrupts:
3322282276SAlexandre Mergnat    maxItems: 1
3422282276SAlexandre Mergnat
3522282276SAlexandre Mergnat  interrupt-controller: true
3622282276SAlexandre Mergnat
3722282276SAlexandre Mergnat  "#interrupt-cells":
3822282276SAlexandre Mergnat    const: 2
3922282276SAlexandre Mergnat
4022282276SAlexandre Mergnat  regulators:
4122282276SAlexandre Mergnat    type: object
4222282276SAlexandre Mergnat    $ref: /schemas/regulator/mediatek,mt6357-regulator.yaml
4322282276SAlexandre Mergnat    description:
4422282276SAlexandre Mergnat      List of MT6357 BUCKs and LDOs regulators.
4522282276SAlexandre Mergnat
4622282276SAlexandre Mergnat  rtc:
4722282276SAlexandre Mergnat    type: object
4822282276SAlexandre Mergnat    $ref: /schemas/rtc/rtc.yaml#
49*e62fc182SRob Herring    unevaluatedProperties: false
5022282276SAlexandre Mergnat    description:
5122282276SAlexandre Mergnat      MT6357 Real Time Clock.
5222282276SAlexandre Mergnat    properties:
5322282276SAlexandre Mergnat      compatible:
5422282276SAlexandre Mergnat        const: mediatek,mt6357-rtc
5522282276SAlexandre Mergnat      start-year: true
5622282276SAlexandre Mergnat    required:
5722282276SAlexandre Mergnat      - compatible
5822282276SAlexandre Mergnat
5922282276SAlexandre Mergnat  keys:
6022282276SAlexandre Mergnat    type: object
6122282276SAlexandre Mergnat    $ref: /schemas/input/mediatek,pmic-keys.yaml
6222282276SAlexandre Mergnat    description:
6322282276SAlexandre Mergnat      MT6357 power and home keys.
6422282276SAlexandre Mergnat
6522282276SAlexandre Mergnatrequired:
6622282276SAlexandre Mergnat  - compatible
6722282276SAlexandre Mergnat  - regulators
6822282276SAlexandre Mergnat
6922282276SAlexandre MergnatadditionalProperties: false
7022282276SAlexandre Mergnat
7122282276SAlexandre Mergnatexamples:
7222282276SAlexandre Mergnat  - |
7322282276SAlexandre Mergnat    #include <dt-bindings/interrupt-controller/arm-gic.h>
7422282276SAlexandre Mergnat
7522282276SAlexandre Mergnat    pwrap {
7622282276SAlexandre Mergnat        pmic {
7722282276SAlexandre Mergnat            compatible = "mediatek,mt6357";
7822282276SAlexandre Mergnat
7922282276SAlexandre Mergnat            interrupt-parent = <&pio>;
8022282276SAlexandre Mergnat            interrupts = <145 IRQ_TYPE_LEVEL_HIGH>;
8122282276SAlexandre Mergnat            interrupt-controller;
8222282276SAlexandre Mergnat            #interrupt-cells = <2>;
8322282276SAlexandre Mergnat
8422282276SAlexandre Mergnat            regulators {
8522282276SAlexandre Mergnat                mt6357_vproc_reg: buck-vproc {
8622282276SAlexandre Mergnat                    regulator-name = "vproc";
8722282276SAlexandre Mergnat                    regulator-min-microvolt = <518750>;
8822282276SAlexandre Mergnat                    regulator-max-microvolt = <1312500>;
8922282276SAlexandre Mergnat                    regulator-ramp-delay = <6250>;
9022282276SAlexandre Mergnat                    regulator-enable-ramp-delay = <220>;
9122282276SAlexandre Mergnat                    regulator-always-on;
9222282276SAlexandre Mergnat                };
9322282276SAlexandre Mergnat
9422282276SAlexandre Mergnat                // ...
9522282276SAlexandre Mergnat
9622282276SAlexandre Mergnat                mt6357_vusb33_reg: ldo-vusb33 {
9722282276SAlexandre Mergnat                    regulator-name = "vusb33";
9822282276SAlexandre Mergnat                    regulator-min-microvolt = <3000000>;
9922282276SAlexandre Mergnat                    regulator-max-microvolt = <3100000>;
10022282276SAlexandre Mergnat                    regulator-enable-ramp-delay = <264>;
10122282276SAlexandre Mergnat                };
10222282276SAlexandre Mergnat            };
10322282276SAlexandre Mergnat
10422282276SAlexandre Mergnat            rtc {
10522282276SAlexandre Mergnat                compatible = "mediatek,mt6357-rtc";
10622282276SAlexandre Mergnat            };
10722282276SAlexandre Mergnat
10822282276SAlexandre Mergnat            keys {
10922282276SAlexandre Mergnat                compatible = "mediatek,mt6357-keys";
11022282276SAlexandre Mergnat            };
11122282276SAlexandre Mergnat        };
11222282276SAlexandre Mergnat    };
113