162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/maxim,max77843.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Maxim MAX77843 MicroUSB and Companion Power Management IC
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Krzysztof Kozlowski <krzk@kernel.org>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  This is a part of device tree bindings for Maxim MAX77843 MicroUSB
1462306a36Sopenharmony_ci  Integrated Circuit (MUIC).
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci  The Maxim MAX77843 is a MicroUSB and Companion Power Management IC which
1762306a36Sopenharmony_ci  includes voltage current regulators, charger, fuel-gauge, haptic motor driver
1862306a36Sopenharmony_ci  and MicroUSB management IC.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciproperties:
2162306a36Sopenharmony_ci  compatible:
2262306a36Sopenharmony_ci    const: maxim,max77843
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  interrupts:
2562306a36Sopenharmony_ci    maxItems: 1
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  reg:
2862306a36Sopenharmony_ci    maxItems: 1
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  extcon:
3162306a36Sopenharmony_ci    $ref: /schemas/extcon/maxim,max77843.yaml
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci  motor-driver:
3462306a36Sopenharmony_ci    type: object
3562306a36Sopenharmony_ci    additionalProperties: false
3662306a36Sopenharmony_ci    properties:
3762306a36Sopenharmony_ci      compatible:
3862306a36Sopenharmony_ci        const: maxim,max77843-haptic
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci      haptic-supply:
4162306a36Sopenharmony_ci        description: Power supply to the haptic motor
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci      pwms:
4462306a36Sopenharmony_ci        maxItems: 1
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci    required:
4762306a36Sopenharmony_ci      - compatible
4862306a36Sopenharmony_ci      - haptic-supply
4962306a36Sopenharmony_ci      - pwms
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci  regulators:
5262306a36Sopenharmony_ci    $ref: /schemas/regulator/maxim,max77843.yaml
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_cirequired:
5562306a36Sopenharmony_ci  - compatible
5662306a36Sopenharmony_ci  - interrupts
5762306a36Sopenharmony_ci  - reg
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciadditionalProperties: false
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ciexamples:
6262306a36Sopenharmony_ci  - |
6362306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci    i2c {
6662306a36Sopenharmony_ci        #address-cells = <1>;
6762306a36Sopenharmony_ci        #size-cells = <0>;
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci        pmic@66 {
7062306a36Sopenharmony_ci            compatible = "maxim,max77843";
7162306a36Sopenharmony_ci            interrupt-parent = <&gpa1>;
7262306a36Sopenharmony_ci            interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
7362306a36Sopenharmony_ci            reg = <0x66>;
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci            extcon {
7662306a36Sopenharmony_ci                compatible = "maxim,max77843-muic";
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci                connector {
7962306a36Sopenharmony_ci                    compatible = "samsung,usb-connector-11pin",
8062306a36Sopenharmony_ci                                 "usb-b-connector";
8162306a36Sopenharmony_ci                    label = "micro-USB";
8262306a36Sopenharmony_ci                    type = "micro";
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci                    ports {
8562306a36Sopenharmony_ci                        #address-cells = <1>;
8662306a36Sopenharmony_ci                        #size-cells = <0>;
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci                        port@0 {
8962306a36Sopenharmony_ci                            /*
9062306a36Sopenharmony_ci                             * TODO: The DTS this is based on does not have
9162306a36Sopenharmony_ci                             * port@0 which is a required property. The ports
9262306a36Sopenharmony_ci                             * look incomplete and need fixing.
9362306a36Sopenharmony_ci                             * Add a disabled port just to satisfy dtschema.
9462306a36Sopenharmony_ci                             */
9562306a36Sopenharmony_ci                            reg = <0>;
9662306a36Sopenharmony_ci                            status = "disabled";
9762306a36Sopenharmony_ci                        };
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci                        port@3 {
10062306a36Sopenharmony_ci                            reg = <3>;
10162306a36Sopenharmony_ci                            endpoint {
10262306a36Sopenharmony_ci                                remote-endpoint = <&mhl_to_musb_con>;
10362306a36Sopenharmony_ci                            };
10462306a36Sopenharmony_ci                        };
10562306a36Sopenharmony_ci                    };
10662306a36Sopenharmony_ci                };
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci                ports {
10962306a36Sopenharmony_ci                    port {
11062306a36Sopenharmony_ci                        endpoint {
11162306a36Sopenharmony_ci                            remote-endpoint = <&usb_to_muic>;
11262306a36Sopenharmony_ci                        };
11362306a36Sopenharmony_ci                    };
11462306a36Sopenharmony_ci                };
11562306a36Sopenharmony_ci            };
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci            regulators {
11862306a36Sopenharmony_ci                compatible = "maxim,max77843-regulator";
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci                SAFEOUT1 {
12162306a36Sopenharmony_ci                    regulator-name = "SAFEOUT1";
12262306a36Sopenharmony_ci                    regulator-min-microvolt = <3300000>;
12362306a36Sopenharmony_ci                    regulator-max-microvolt = <4950000>;
12462306a36Sopenharmony_ci                };
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci                SAFEOUT2 {
12762306a36Sopenharmony_ci                    regulator-name = "SAFEOUT2";
12862306a36Sopenharmony_ci                    regulator-min-microvolt = <3300000>;
12962306a36Sopenharmony_ci                    regulator-max-microvolt = <4950000>;
13062306a36Sopenharmony_ci                };
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci                CHARGER {
13362306a36Sopenharmony_ci                    regulator-name = "CHARGER";
13462306a36Sopenharmony_ci                    regulator-min-microamp = <100000>;
13562306a36Sopenharmony_ci                    regulator-max-microamp = <3150000>;
13662306a36Sopenharmony_ci                };
13762306a36Sopenharmony_ci            };
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci            motor-driver {
14062306a36Sopenharmony_ci                compatible = "maxim,max77843-haptic";
14162306a36Sopenharmony_ci                haptic-supply = <&ldo38_reg>;
14262306a36Sopenharmony_ci                pwms = <&pwm 0 33670 0>;
14362306a36Sopenharmony_ci            };
14462306a36Sopenharmony_ci        };
14562306a36Sopenharmony_ci    };
146