162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/mediatek,mt6360.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: MT6360 PMIC from MediaTek Integrated
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Gene Chen <gene_chen@richtek.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  MT6360 is a PMIC device with the following sub modules.
1462306a36Sopenharmony_ci  It is interfaced to host controller using I2C interface.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci  This document describes the binding for PMIC device and its sub module.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciproperties:
1962306a36Sopenharmony_ci  compatible:
2062306a36Sopenharmony_ci    const: mediatek,mt6360
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci  reg:
2362306a36Sopenharmony_ci    maxItems: 1
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci  wakeup-source: true
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  interrupts:
2862306a36Sopenharmony_ci    maxItems: 1
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  interrupt-names:
3162306a36Sopenharmony_ci    const: IRQB
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci  interrupt-controller: true
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  "#interrupt-cells":
3662306a36Sopenharmony_ci    const: 1
3762306a36Sopenharmony_ci    description:
3862306a36Sopenharmony_ci      The first cell is the IRQ number.
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  regulators:
4162306a36Sopenharmony_ci    $ref: /schemas/regulator/mt6360-regulator.yaml#
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  charger:
4462306a36Sopenharmony_ci    $ref: /schemas/power/supply/mt6360_charger.yaml#
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci  tcpc:
4762306a36Sopenharmony_ci    $ref: /schemas/usb/mediatek,mt6360-tcpc.yaml#
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  led-controller:
5062306a36Sopenharmony_ci    $ref: /schemas/leds/leds-mt6360.yaml#
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_cirequired:
5362306a36Sopenharmony_ci  - compatible
5462306a36Sopenharmony_ci  - reg
5562306a36Sopenharmony_ci  - interrupts
5662306a36Sopenharmony_ci  - interrupt-controller
5762306a36Sopenharmony_ci  - "#interrupt-cells"
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciadditionalProperties:
6062306a36Sopenharmony_ci  type: object
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciexamples:
6362306a36Sopenharmony_ci  - |
6462306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
6562306a36Sopenharmony_ci    #include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
6662306a36Sopenharmony_ci    #include <dt-bindings/leds/common.h>
6762306a36Sopenharmony_ci    #include <dt-bindings/usb/pd.h>
6862306a36Sopenharmony_ci    i2c {
6962306a36Sopenharmony_ci        #address-cells = <1>;
7062306a36Sopenharmony_ci        #size-cells = <0>;
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci        pmic@34 {
7362306a36Sopenharmony_ci            compatible = "mediatek,mt6360";
7462306a36Sopenharmony_ci            reg = <0x34>;
7562306a36Sopenharmony_ci            wakeup-source;
7662306a36Sopenharmony_ci            interrupts-extended = <&gpio26 0 IRQ_TYPE_LEVEL_LOW>;
7762306a36Sopenharmony_ci            interrupt-names = "IRQB";
7862306a36Sopenharmony_ci            interrupt-controller;
7962306a36Sopenharmony_ci            #interrupt-cells = <1>;
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci            mt6360_charger: charger {
8262306a36Sopenharmony_ci                compatible = "mediatek,mt6360-chg";
8362306a36Sopenharmony_ci                richtek,vinovp-microvolt = <14500000>;
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci                otg_vbus_regulator: usb-otg-vbus-regulator {
8662306a36Sopenharmony_ci                    regulator-name = "usb-otg-vbus";
8762306a36Sopenharmony_ci                    regulator-min-microvolt = <4425000>;
8862306a36Sopenharmony_ci                    regulator-max-microvolt = <5825000>;
8962306a36Sopenharmony_ci                };
9062306a36Sopenharmony_ci            };
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci            led-controller {
9362306a36Sopenharmony_ci                compatible = "mediatek,mt6360-led";
9462306a36Sopenharmony_ci                #address-cells = <1>;
9562306a36Sopenharmony_ci                #size-cells = <0>;
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci                multi-led@0 {
9862306a36Sopenharmony_ci                    reg = <0>;
9962306a36Sopenharmony_ci                    function = LED_FUNCTION_INDICATOR;
10062306a36Sopenharmony_ci                    color = <LED_COLOR_ID_RGB>;
10162306a36Sopenharmony_ci                    led-max-microamp = <24000>;
10262306a36Sopenharmony_ci                    #address-cells = <1>;
10362306a36Sopenharmony_ci                    #size-cells = <0>;
10462306a36Sopenharmony_ci                    led@0 {
10562306a36Sopenharmony_ci                        reg = <0>;
10662306a36Sopenharmony_ci                        color = <LED_COLOR_ID_RED>;
10762306a36Sopenharmony_ci                    };
10862306a36Sopenharmony_ci                    led@1 {
10962306a36Sopenharmony_ci                        reg = <1>;
11062306a36Sopenharmony_ci                        color = <LED_COLOR_ID_GREEN>;
11162306a36Sopenharmony_ci                    };
11262306a36Sopenharmony_ci                    led@2 {
11362306a36Sopenharmony_ci                        reg = <2>;
11462306a36Sopenharmony_ci                        color = <LED_COLOR_ID_BLUE>;
11562306a36Sopenharmony_ci                    };
11662306a36Sopenharmony_ci                };
11762306a36Sopenharmony_ci                led@3 {
11862306a36Sopenharmony_ci                    reg = <3>;
11962306a36Sopenharmony_ci                    function = LED_FUNCTION_INDICATOR;
12062306a36Sopenharmony_ci                    color = <LED_COLOR_ID_WHITE>;
12162306a36Sopenharmony_ci                    led-max-microamp = <150000>;
12262306a36Sopenharmony_ci                };
12362306a36Sopenharmony_ci                led@4 {
12462306a36Sopenharmony_ci                    reg = <4>;
12562306a36Sopenharmony_ci                    function = LED_FUNCTION_FLASH;
12662306a36Sopenharmony_ci                    color = <LED_COLOR_ID_WHITE>;
12762306a36Sopenharmony_ci                    function-enumerator = <1>;
12862306a36Sopenharmony_ci                    led-max-microamp = <200000>;
12962306a36Sopenharmony_ci                    flash-max-microamp = <500000>;
13062306a36Sopenharmony_ci                    flash-max-timeout-us = <1024000>;
13162306a36Sopenharmony_ci                };
13262306a36Sopenharmony_ci                led@5 {
13362306a36Sopenharmony_ci                    reg = <5>;
13462306a36Sopenharmony_ci                    function = LED_FUNCTION_FLASH;
13562306a36Sopenharmony_ci                    color = <LED_COLOR_ID_WHITE>;
13662306a36Sopenharmony_ci                    function-enumerator = <2>;
13762306a36Sopenharmony_ci                    led-max-microamp = <200000>;
13862306a36Sopenharmony_ci                    flash-max-microamp = <500000>;
13962306a36Sopenharmony_ci                    flash-max-timeout-us = <1024000>;
14062306a36Sopenharmony_ci                };
14162306a36Sopenharmony_ci            };
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci            regulators {
14462306a36Sopenharmony_ci                compatible = "mediatek,mt6360-regulator";
14562306a36Sopenharmony_ci                LDO_VIN3-supply = <&BUCK2>;
14662306a36Sopenharmony_ci                buck1 {
14762306a36Sopenharmony_ci                    regulator-name = "mt6360,buck1";
14862306a36Sopenharmony_ci                    regulator-min-microvolt = <300000>;
14962306a36Sopenharmony_ci                    regulator-max-microvolt = <1300000>;
15062306a36Sopenharmony_ci                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
15162306a36Sopenharmony_ci                         MT6360_OPMODE_LP
15262306a36Sopenharmony_ci                         MT6360_OPMODE_ULP>;
15362306a36Sopenharmony_ci                };
15462306a36Sopenharmony_ci                BUCK2: buck2 {
15562306a36Sopenharmony_ci                    regulator-name = "mt6360,buck2";
15662306a36Sopenharmony_ci                    regulator-min-microvolt = <300000>;
15762306a36Sopenharmony_ci                    regulator-max-microvolt = <1300000>;
15862306a36Sopenharmony_ci                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
15962306a36Sopenharmony_ci                         MT6360_OPMODE_LP
16062306a36Sopenharmony_ci                         MT6360_OPMODE_ULP>;
16162306a36Sopenharmony_ci                };
16262306a36Sopenharmony_ci                ldo6 {
16362306a36Sopenharmony_ci                    regulator-name = "mt6360,ldo6";
16462306a36Sopenharmony_ci                    regulator-min-microvolt = <500000>;
16562306a36Sopenharmony_ci                    regulator-max-microvolt = <2100000>;
16662306a36Sopenharmony_ci                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
16762306a36Sopenharmony_ci                         MT6360_OPMODE_LP>;
16862306a36Sopenharmony_ci                };
16962306a36Sopenharmony_ci                ldo7 {
17062306a36Sopenharmony_ci                    regulator-name = "mt6360,ldo7";
17162306a36Sopenharmony_ci                    regulator-min-microvolt = <500000>;
17262306a36Sopenharmony_ci                    regulator-max-microvolt = <2100000>;
17362306a36Sopenharmony_ci                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
17462306a36Sopenharmony_ci                         MT6360_OPMODE_LP>;
17562306a36Sopenharmony_ci                };
17662306a36Sopenharmony_ci                ldo1 {
17762306a36Sopenharmony_ci                    regulator-name = "mt6360,ldo1";
17862306a36Sopenharmony_ci                    regulator-min-microvolt = <1200000>;
17962306a36Sopenharmony_ci                    regulator-max-microvolt = <3600000>;
18062306a36Sopenharmony_ci                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
18162306a36Sopenharmony_ci                         MT6360_OPMODE_LP>;
18262306a36Sopenharmony_ci                };
18362306a36Sopenharmony_ci                ldo2 {
18462306a36Sopenharmony_ci                    regulator-name = "mt6360,ldo2";
18562306a36Sopenharmony_ci                    regulator-min-microvolt = <1200000>;
18662306a36Sopenharmony_ci                    regulator-max-microvolt = <3600000>;
18762306a36Sopenharmony_ci                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
18862306a36Sopenharmony_ci                         MT6360_OPMODE_LP>;
18962306a36Sopenharmony_ci                };
19062306a36Sopenharmony_ci                ldo3 {
19162306a36Sopenharmony_ci                    regulator-name = "mt6360,ldo3";
19262306a36Sopenharmony_ci                    regulator-min-microvolt = <1200000>;
19362306a36Sopenharmony_ci                    regulator-max-microvolt = <3600000>;
19462306a36Sopenharmony_ci                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
19562306a36Sopenharmony_ci                         MT6360_OPMODE_LP>;
19662306a36Sopenharmony_ci                };
19762306a36Sopenharmony_ci                ldo5 {
19862306a36Sopenharmony_ci                    regulator-name = "mt6360,ldo5";
19962306a36Sopenharmony_ci                    regulator-min-microvolt = <2700000>;
20062306a36Sopenharmony_ci                    regulator-max-microvolt = <3600000>;
20162306a36Sopenharmony_ci                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
20262306a36Sopenharmony_ci                         MT6360_OPMODE_LP>;
20362306a36Sopenharmony_ci                };
20462306a36Sopenharmony_ci            };
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ci            tcpc {
20762306a36Sopenharmony_ci                compatible = "mediatek,mt6360-tcpc";
20862306a36Sopenharmony_ci                interrupts-extended = <&gpio26 3 IRQ_TYPE_LEVEL_LOW>;
20962306a36Sopenharmony_ci                interrupt-names = "PD_IRQB";
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ci                connector {
21262306a36Sopenharmony_ci                    compatible = "usb-c-connector";
21362306a36Sopenharmony_ci                    label = "USB-C";
21462306a36Sopenharmony_ci                    data-role = "dual";
21562306a36Sopenharmony_ci                    power-role = "dual";
21662306a36Sopenharmony_ci                    try-power-role = "sink";
21762306a36Sopenharmony_ci                    source-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
21862306a36Sopenharmony_ci                    sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
21962306a36Sopenharmony_ci                    op-sink-microwatt = <10000000>;
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ci                    ports {
22262306a36Sopenharmony_ci                        #address-cells = <1>;
22362306a36Sopenharmony_ci                        #size-cells = <0>;
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ci                        port@0 {
22662306a36Sopenharmony_ci                            reg = <0>;
22762306a36Sopenharmony_ci                            endpoint {
22862306a36Sopenharmony_ci                                remote-endpoint = <&usb_hs>;
22962306a36Sopenharmony_ci                            };
23062306a36Sopenharmony_ci                        };
23162306a36Sopenharmony_ci                        port@1 {
23262306a36Sopenharmony_ci                            reg = <1>;
23362306a36Sopenharmony_ci                            endpoint {
23462306a36Sopenharmony_ci                                remote-endpoint = <&usb_ss>;
23562306a36Sopenharmony_ci                          };
23662306a36Sopenharmony_ci                        };
23762306a36Sopenharmony_ci                        port@2 {
23862306a36Sopenharmony_ci                            reg = <2>;
23962306a36Sopenharmony_ci                            endpoint {
24062306a36Sopenharmony_ci                                remote-endpoint = <&dp_aux>;
24162306a36Sopenharmony_ci                            };
24262306a36Sopenharmony_ci                        };
24362306a36Sopenharmony_ci                    };
24462306a36Sopenharmony_ci                };
24562306a36Sopenharmony_ci            };
24662306a36Sopenharmony_ci        };
24762306a36Sopenharmony_ci    };
248