# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/sprd,sc2731.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Spreadtrum SC27xx PMIC maintainers: - Orson Zhai - Baolin Wang - Chunyan Zhang description: | Spreadtrum PMICs belonging to the SC27xx series integrate all mobile handset power management, audio codec, battery management and user interface support functions in a single chip. They have 6 major functional blocks: - DCDCs to support CPU, memory - LDOs to support both internal and external requirements - Battery management system, such as charger, fuel gauge - Audio codec - User interface functions, such as indicator, flash LED and so on - IC level interface, such as power on/off control, RTC, typec and so on properties: $nodename: pattern: '^pmic@[0-9a-f]+$' compatible: enum: - sprd,sc2720 - sprd,sc2721 - sprd,sc2723 - sprd,sc2730 - sprd,sc2731 reg: maxItems: 1 interrupts: maxItems: 1 interrupt-controller: true spi-max-frequency: true '#address-cells': const: 1 '#interrupt-cells': const: 1 '#size-cells': const: 0 regulators: type: object $ref: /schemas/regulator/sprd,sc2731-regulator.yaml# patternProperties: "^adc@[0-9a-f]+$": type: object $ref: /schemas/iio/adc/sprd,sc2720-adc.yaml# "^charger@[0-9a-f]+$": type: object $ref: /schemas/power/supply/sc2731-charger.yaml# "^efuse@[0-9a-f]+$": type: object additionalProperties: true properties: compatible: enum: - sprd,sc2720-efuse - sprd,sc2721-efuse - sprd,sc2723-efuse - sprd,sc2730-efuse - sprd,sc2731-efuse "^fuel-gauge@[0-9a-f]+$": type: object $ref: /schemas/power/supply/sc27xx-fg.yaml# "^gpio@[0-9a-f]+$": type: object $ref: /schemas/gpio/sprd,gpio-eic.yaml# "^led-controller@[0-9a-f]+$": type: object $ref: /schemas/leds/sprd,sc2731-bltc.yaml# "^rtc@[0-9a-f]+$": type: object $ref: /schemas/rtc/sprd,sc2731-rtc.yaml# "^vibrator@[0-9a-f]+$": type: object $ref: /schemas/input/sprd,sc27xx-vibrator.yaml# required: - compatible - reg - interrupts - interrupt-controller - spi-max-frequency - '#address-cells' - '#interrupt-cells' - '#size-cells' additionalProperties: false examples: - | #include #include #include #include spi { #address-cells = <1>; #size-cells = <0>; sc2731_pmic: pmic@0 { compatible = "sprd,sc2731"; reg = <0>; interrupts = ; interrupt-controller; spi-max-frequency = <26000000>; #address-cells = <1>; #interrupt-cells = <1>; #size-cells = <0>; charger@0 { compatible = "sprd,sc2731-charger"; reg = <0x0>; phys = <&ssphy>; monitored-battery = <&bat>; }; led-controller@200 { compatible = "sprd,sc2731-bltc"; reg = <0x200>; #address-cells = <1>; #size-cells = <0>; led@0 { reg = <0x0>; color = ; }; led@1 { reg = <0x1>; color = ; }; led@2 { reg = <0x2>; color = ; }; }; rtc@280 { compatible = "sprd,sc2731-rtc"; reg = <0x280>; interrupt-parent = <&sc2731_pmic>; interrupts = <2>; }; pmic_eic: gpio@300 { compatible = "sprd,sc2731-eic"; reg = <0x300>; interrupt-parent = <&sc2731_pmic>; interrupts = <5>; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; }; efuse@380 { compatible = "sprd,sc2731-efuse"; reg = <0x380>; hwlocks = <&hwlock 12>; #address-cells = <1>; #size-cells = <1>; /* Data cells */ fgu_calib: calib@6 { reg = <0x6 0x2>; bits = <0 9>; }; adc_big_scale: calib@24 { reg = <0x24 0x2>; }; adc_small_scale: calib@26 { reg = <0x26 0x2>; }; }; adc@480 { compatible = "sprd,sc2731-adc"; reg = <0x480>; interrupt-parent = <&sc2731_pmic>; interrupts = <0>; #io-channel-cells = <1>; hwlocks = <&hwlock 4>; nvmem-cells = <&adc_big_scale>, <&adc_small_scale>; nvmem-cell-names = "big_scale_calib", "small_scale_calib"; }; fuel-gauge@a00 { compatible = "sprd,sc2731-fgu"; reg = <0xa00>; battery-detect-gpios = <&pmic_eic 9 GPIO_ACTIVE_HIGH>; interrupt-parent = <&sc2731_pmic>; interrupts = <4>; io-channels = <&pmic_adc 5>, <&pmic_adc 14>; io-channel-names = "bat-temp", "charge-vol"; nvmem-cells = <&fgu_calib>; nvmem-cell-names = "fgu_calib"; monitored-battery = <&bat>; sprd,calib-resistance-micro-ohms = <21500>; }; vibrator@ec8 { compatible = "sprd,sc2731-vibrator"; reg = <0xec8>; }; regulators { compatible = "sprd,sc2731-regulator"; BUCK_CPU0 { regulator-name = "vddarm0"; regulator-min-microvolt = <400000>; regulator-max-microvolt = <1996875>; regulator-ramp-delay = <25000>; regulator-always-on; }; LDO_CAMA0 { regulator-name = "vddcama0"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <3750000>; regulator-enable-ramp-delay = <100>; }; }; }; }; ...