# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/mediatek,mt6370.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: MediaTek MT6370 SubPMIC maintainers: - ChiYuan Huang <cy_huang@richtek.com> description: | MT6370 is a highly-integrated smart power management IC, which includes a single cell Li-Ion/Li-Polymer switching battery charger, a USB Type-C & Power Delivery (PD) controller, dual flash LED current sources, a RGB LED driver, a backlight WLED driver, a display bias driver and a general LDO for portable devices. properties: compatible: const: mediatek,mt6370 reg: maxItems: 1 wakeup-source: true interrupts: maxItems: 1 interrupt-controller: true "#interrupt-cells": const: 1 adc: type: object additionalProperties: false description: | Provides 9 channels for system monitoring, including VBUSDIV5 (lower accuracy, higher measure range), VBUSDIV2 (higher accuracy, lower measure range), VBAT, VSYS, CHG_VDDP, TS_BAT, IBUS, IBAT, and TEMP_JC. properties: compatible: const: mediatek,mt6370-adc "#io-channel-cells": const: 1 required: - compatible - "#io-channel-cells" backlight: type: object $ref: /schemas/leds/backlight/mediatek,mt6370-backlight.yaml# charger: type: object $ref: /schemas/power/supply/mediatek,mt6370-charger.yaml# tcpc: type: object $ref: /schemas/usb/mediatek,mt6370-tcpc.yaml# indicator: type: object $ref: /schemas/leds/mediatek,mt6370-indicator.yaml# flashlight: type: object $ref: /schemas/leds/mediatek,mt6370-flashlight.yaml# regulators: type: object additionalProperties: false description: | List all supported regulators, which support the control for DisplayBias voltages and one general purpose LDO which commonly used to drive the vibrator. patternProperties: "^(dsvbst|vibldo)$": $ref: /schemas/regulator/regulator.yaml# type: object unevaluatedProperties: false "^(dsvpos|dsvneg)$": $ref: /schemas/regulator/regulator.yaml# type: object unevaluatedProperties: false properties: enable-gpios: maxItems: 1 required: - compatible - reg - interrupts - interrupt-controller - "#interrupt-cells" - regulators - adc - backlight - indicator - tcpc - charger - flashlight additionalProperties: false examples: - | #include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/leds/common.h> #include <dt-bindings/iio/adc/mediatek,mt6370_adc.h> #include <dt-bindings/usb/pd.h> i2c { #address-cells = <1>; #size-cells = <0>; pmic@34 { compatible = "mediatek,mt6370"; reg = <0x34>; wakeup-source; interrupts-extended = <&gpio26 3 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; #interrupt-cells = <1>; mt6370_adc: adc { compatible = "mediatek,mt6370-adc"; #io-channel-cells = <1>; }; backlight { compatible = "mediatek,mt6370-backlight"; mediatek,bled-channel-use = /bits/ 8 <15>; }; charger { compatible = "mediatek,mt6370-charger"; interrupts = <68>, <48>, <6>; interrupt-names = "uvp_d_evt", "attach_i", "mivr"; io-channels = <&mt6370_adc MT6370_CHAN_IBUS>; mt6370_otg_vbus: usb-otg-vbus-regulator { regulator-name = "mt6370-usb-otg-vbus"; regulator-min-microvolt = <4350000>; regulator-max-microvolt = <5800000>; regulator-min-microamp = <500000>; regulator-max-microamp = <3000000>; }; }; indicator { compatible = "mediatek,mt6370-indicator"; #address-cells = <1>; #size-cells = <0>; multi-led@0 { reg = <0>; function = LED_FUNCTION_INDICATOR; color = <LED_COLOR_ID_RGB>; led-max-microamp = <24000>; #address-cells = <1>; #size-cells = <0>; led@0 { reg = <0>; color = <LED_COLOR_ID_RED>; }; led@1 { reg = <1>; color = <LED_COLOR_ID_GREEN>; }; led@2 { reg = <2>; color = <LED_COLOR_ID_BLUE>; }; }; led@3 { reg = <3>; function = LED_FUNCTION_INDICATOR; color = <LED_COLOR_ID_WHITE>; led-max-microamp = <6000>; }; }; flashlight { compatible = "mediatek,mt6370-flashlight"; #address-cells = <1>; #size-cells = <0>; led@0 { reg = <0>; led-sources = <0>; function = LED_FUNCTION_FLASH; color = <LED_COLOR_ID_WHITE>; function-enumerator = <1>; led-max-microamp = <200000>; flash-max-microamp = <500000>; flash-max-timeout-us = <1248000>; }; led@1 { reg = <1>; led-sources = <1>; function = LED_FUNCTION_FLASH; color = <LED_COLOR_ID_WHITE>; function-enumerator = <2>; led-max-microamp = <200000>; flash-max-microamp = <500000>; flash-max-timeout-us = <1248000>; }; }; tcpc { compatible = "mediatek,mt6370-tcpc"; interrupts-extended = <&gpio26 4 IRQ_TYPE_LEVEL_LOW>; connector { compatible = "usb-c-connector"; label = "USB-C"; vbus-supply = <&mt6370_otg_vbus>; data-role = "dual"; power-role = "dual"; try-power-role = "sink"; source-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>; sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>; op-sink-microwatt = <10000000>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; endpoint { remote-endpoint = <&usb_hs>; }; }; port@1 { reg = <1>; endpoint { remote-endpoint = <&usb_ss>; }; }; port@2 { reg = <2>; endpoint { remote-endpoint = <&dp_aux>; }; }; }; }; }; regulators { dsvbst { regulator-name = "mt6370-dsv-vbst"; regulator-min-microvolt = <4000000>; regulator-max-microvolt = <6200000>; }; dsvpos { regulator-name = "mt6370-dsv-vpos"; regulator-min-microvolt = <4000000>; regulator-max-microvolt = <6000000>; regulator-boot-on; }; dsvneg { regulator-name = "mt6370-dsv-vneg"; regulator-min-microvolt = <4000000>; regulator-max-microvolt = <6000000>; regulator-boot-on; }; vibldo { regulator-name = "mt6370-vib-ldo"; regulator-min-microvolt = <1600000>; regulator-max-microvolt = <4000000>; }; }; }; };