1131a975aSStanislav Jakubek# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2131a975aSStanislav Jakubek%YAML 1.2 3131a975aSStanislav Jakubek--- 4131a975aSStanislav Jakubek$id: http://devicetree.org/schemas/mfd/sprd,sc2731.yaml# 5131a975aSStanislav Jakubek$schema: http://devicetree.org/meta-schemas/core.yaml# 6131a975aSStanislav Jakubek 7131a975aSStanislav Jakubektitle: Spreadtrum SC27xx PMIC 8131a975aSStanislav Jakubek 9131a975aSStanislav Jakubekmaintainers: 10131a975aSStanislav Jakubek - Orson Zhai <orsonzhai@gmail.com> 11131a975aSStanislav Jakubek - Baolin Wang <baolin.wang7@gmail.com> 12131a975aSStanislav Jakubek - Chunyan Zhang <zhang.lyra@gmail.com> 13131a975aSStanislav Jakubek 14131a975aSStanislav Jakubekdescription: | 15131a975aSStanislav Jakubek Spreadtrum PMICs belonging to the SC27xx series integrate all mobile handset 16131a975aSStanislav Jakubek power management, audio codec, battery management and user interface support 17131a975aSStanislav Jakubek functions in a single chip. They have 6 major functional blocks: 18131a975aSStanislav Jakubek - DCDCs to support CPU, memory 19131a975aSStanislav Jakubek - LDOs to support both internal and external requirements 20131a975aSStanislav Jakubek - Battery management system, such as charger, fuel gauge 21131a975aSStanislav Jakubek - Audio codec 22131a975aSStanislav Jakubek - User interface functions, such as indicator, flash LED and so on 23131a975aSStanislav Jakubek - IC level interface, such as power on/off control, RTC, typec and so on 24131a975aSStanislav Jakubek 25131a975aSStanislav Jakubekproperties: 26131a975aSStanislav Jakubek $nodename: 27131a975aSStanislav Jakubek pattern: '^pmic@[0-9a-f]+$' 28131a975aSStanislav Jakubek 29131a975aSStanislav Jakubek compatible: 30131a975aSStanislav Jakubek enum: 31131a975aSStanislav Jakubek - sprd,sc2720 32131a975aSStanislav Jakubek - sprd,sc2721 33131a975aSStanislav Jakubek - sprd,sc2723 34131a975aSStanislav Jakubek - sprd,sc2730 35131a975aSStanislav Jakubek - sprd,sc2731 36131a975aSStanislav Jakubek 37131a975aSStanislav Jakubek reg: 38131a975aSStanislav Jakubek maxItems: 1 39131a975aSStanislav Jakubek 40131a975aSStanislav Jakubek interrupts: 41131a975aSStanislav Jakubek maxItems: 1 42131a975aSStanislav Jakubek 43131a975aSStanislav Jakubek interrupt-controller: true 44131a975aSStanislav Jakubek spi-max-frequency: true 45131a975aSStanislav Jakubek 46131a975aSStanislav Jakubek '#address-cells': 47131a975aSStanislav Jakubek const: 1 48131a975aSStanislav Jakubek 49131a975aSStanislav Jakubek '#interrupt-cells': 50131a975aSStanislav Jakubek const: 1 51131a975aSStanislav Jakubek 52131a975aSStanislav Jakubek '#size-cells': 53131a975aSStanislav Jakubek const: 0 54131a975aSStanislav Jakubek 55131a975aSStanislav Jakubek regulators: 56131a975aSStanislav Jakubek type: object 57131a975aSStanislav Jakubek $ref: /schemas/regulator/sprd,sc2731-regulator.yaml# 58131a975aSStanislav Jakubek 59131a975aSStanislav JakubekpatternProperties: 60131a975aSStanislav Jakubek "^adc@[0-9a-f]+$": 61131a975aSStanislav Jakubek type: object 62131a975aSStanislav Jakubek $ref: /schemas/iio/adc/sprd,sc2720-adc.yaml# 63131a975aSStanislav Jakubek 64131a975aSStanislav Jakubek "^charger@[0-9a-f]+$": 65131a975aSStanislav Jakubek type: object 66131a975aSStanislav Jakubek $ref: /schemas/power/supply/sc2731-charger.yaml# 67131a975aSStanislav Jakubek 68131a975aSStanislav Jakubek "^efuse@[0-9a-f]+$": 69131a975aSStanislav Jakubek type: object 70*81b82147SStanislav Jakubek $ref: /schemas/nvmem/sprd,sc2731-efuse.yaml# 71131a975aSStanislav Jakubek 72131a975aSStanislav Jakubek "^fuel-gauge@[0-9a-f]+$": 73131a975aSStanislav Jakubek type: object 74131a975aSStanislav Jakubek $ref: /schemas/power/supply/sc27xx-fg.yaml# 75131a975aSStanislav Jakubek 76131a975aSStanislav Jakubek "^gpio@[0-9a-f]+$": 77131a975aSStanislav Jakubek type: object 78131a975aSStanislav Jakubek $ref: /schemas/gpio/sprd,gpio-eic.yaml# 79131a975aSStanislav Jakubek 80131a975aSStanislav Jakubek "^led-controller@[0-9a-f]+$": 81131a975aSStanislav Jakubek type: object 82131a975aSStanislav Jakubek $ref: /schemas/leds/sprd,sc2731-bltc.yaml# 83131a975aSStanislav Jakubek 84131a975aSStanislav Jakubek "^rtc@[0-9a-f]+$": 85131a975aSStanislav Jakubek type: object 86131a975aSStanislav Jakubek $ref: /schemas/rtc/sprd,sc2731-rtc.yaml# 87131a975aSStanislav Jakubek 88131a975aSStanislav Jakubek "^vibrator@[0-9a-f]+$": 89131a975aSStanislav Jakubek type: object 90131a975aSStanislav Jakubek $ref: /schemas/input/sprd,sc27xx-vibrator.yaml# 91131a975aSStanislav Jakubek 92131a975aSStanislav Jakubekrequired: 93131a975aSStanislav Jakubek - compatible 94131a975aSStanislav Jakubek - reg 95131a975aSStanislav Jakubek - interrupts 96131a975aSStanislav Jakubek - interrupt-controller 97131a975aSStanislav Jakubek - spi-max-frequency 98131a975aSStanislav Jakubek - '#address-cells' 99131a975aSStanislav Jakubek - '#interrupt-cells' 100131a975aSStanislav Jakubek - '#size-cells' 101131a975aSStanislav Jakubek 102131a975aSStanislav JakubekadditionalProperties: false 103131a975aSStanislav Jakubek 104131a975aSStanislav Jakubekexamples: 105131a975aSStanislav Jakubek - | 106131a975aSStanislav Jakubek #include <dt-bindings/gpio/gpio.h> 107131a975aSStanislav Jakubek #include <dt-bindings/interrupt-controller/arm-gic.h> 108131a975aSStanislav Jakubek #include <dt-bindings/interrupt-controller/irq.h> 109131a975aSStanislav Jakubek #include <dt-bindings/leds/common.h> 110131a975aSStanislav Jakubek 111131a975aSStanislav Jakubek spi { 112131a975aSStanislav Jakubek #address-cells = <1>; 113131a975aSStanislav Jakubek #size-cells = <0>; 114131a975aSStanislav Jakubek 115131a975aSStanislav Jakubek sc2731_pmic: pmic@0 { 116131a975aSStanislav Jakubek compatible = "sprd,sc2731"; 117131a975aSStanislav Jakubek reg = <0>; 118131a975aSStanislav Jakubek interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 119131a975aSStanislav Jakubek interrupt-controller; 120131a975aSStanislav Jakubek spi-max-frequency = <26000000>; 121131a975aSStanislav Jakubek #address-cells = <1>; 122131a975aSStanislav Jakubek #interrupt-cells = <1>; 123131a975aSStanislav Jakubek #size-cells = <0>; 124131a975aSStanislav Jakubek 125131a975aSStanislav Jakubek charger@0 { 126131a975aSStanislav Jakubek compatible = "sprd,sc2731-charger"; 127131a975aSStanislav Jakubek reg = <0x0>; 128131a975aSStanislav Jakubek phys = <&ssphy>; 129131a975aSStanislav Jakubek monitored-battery = <&bat>; 130131a975aSStanislav Jakubek }; 131131a975aSStanislav Jakubek 132131a975aSStanislav Jakubek led-controller@200 { 133131a975aSStanislav Jakubek compatible = "sprd,sc2731-bltc"; 134131a975aSStanislav Jakubek reg = <0x200>; 135131a975aSStanislav Jakubek #address-cells = <1>; 136131a975aSStanislav Jakubek #size-cells = <0>; 137131a975aSStanislav Jakubek 138131a975aSStanislav Jakubek led@0 { 139131a975aSStanislav Jakubek reg = <0x0>; 140131a975aSStanislav Jakubek color = <LED_COLOR_ID_RED>; 141131a975aSStanislav Jakubek }; 142131a975aSStanislav Jakubek 143131a975aSStanislav Jakubek led@1 { 144131a975aSStanislav Jakubek reg = <0x1>; 145131a975aSStanislav Jakubek color = <LED_COLOR_ID_GREEN>; 146131a975aSStanislav Jakubek }; 147131a975aSStanislav Jakubek 148131a975aSStanislav Jakubek led@2 { 149131a975aSStanislav Jakubek reg = <0x2>; 150131a975aSStanislav Jakubek color = <LED_COLOR_ID_BLUE>; 151131a975aSStanislav Jakubek }; 152131a975aSStanislav Jakubek }; 153131a975aSStanislav Jakubek 154131a975aSStanislav Jakubek rtc@280 { 155131a975aSStanislav Jakubek compatible = "sprd,sc2731-rtc"; 156131a975aSStanislav Jakubek reg = <0x280>; 157131a975aSStanislav Jakubek interrupt-parent = <&sc2731_pmic>; 158131a975aSStanislav Jakubek interrupts = <2>; 159131a975aSStanislav Jakubek }; 160131a975aSStanislav Jakubek 161131a975aSStanislav Jakubek pmic_eic: gpio@300 { 162131a975aSStanislav Jakubek compatible = "sprd,sc2731-eic"; 163131a975aSStanislav Jakubek reg = <0x300>; 164131a975aSStanislav Jakubek interrupt-parent = <&sc2731_pmic>; 165131a975aSStanislav Jakubek interrupts = <5>; 166131a975aSStanislav Jakubek gpio-controller; 167131a975aSStanislav Jakubek #gpio-cells = <2>; 168131a975aSStanislav Jakubek interrupt-controller; 169131a975aSStanislav Jakubek #interrupt-cells = <2>; 170131a975aSStanislav Jakubek }; 171131a975aSStanislav Jakubek 172131a975aSStanislav Jakubek efuse@380 { 173131a975aSStanislav Jakubek compatible = "sprd,sc2731-efuse"; 174131a975aSStanislav Jakubek reg = <0x380>; 175131a975aSStanislav Jakubek hwlocks = <&hwlock 12>; 176131a975aSStanislav Jakubek #address-cells = <1>; 177131a975aSStanislav Jakubek #size-cells = <1>; 178131a975aSStanislav Jakubek 179131a975aSStanislav Jakubek /* Data cells */ 180131a975aSStanislav Jakubek fgu_calib: calib@6 { 181131a975aSStanislav Jakubek reg = <0x6 0x2>; 182131a975aSStanislav Jakubek bits = <0 9>; 183131a975aSStanislav Jakubek }; 184131a975aSStanislav Jakubek 185131a975aSStanislav Jakubek adc_big_scale: calib@24 { 186131a975aSStanislav Jakubek reg = <0x24 0x2>; 187131a975aSStanislav Jakubek }; 188131a975aSStanislav Jakubek 189131a975aSStanislav Jakubek adc_small_scale: calib@26 { 190131a975aSStanislav Jakubek reg = <0x26 0x2>; 191131a975aSStanislav Jakubek }; 192131a975aSStanislav Jakubek }; 193131a975aSStanislav Jakubek 194*81b82147SStanislav Jakubek pmic_adc: adc@480 { 195131a975aSStanislav Jakubek compatible = "sprd,sc2731-adc"; 196131a975aSStanislav Jakubek reg = <0x480>; 197131a975aSStanislav Jakubek interrupt-parent = <&sc2731_pmic>; 198131a975aSStanislav Jakubek interrupts = <0>; 199131a975aSStanislav Jakubek #io-channel-cells = <1>; 200131a975aSStanislav Jakubek hwlocks = <&hwlock 4>; 201131a975aSStanislav Jakubek nvmem-cells = <&adc_big_scale>, <&adc_small_scale>; 202131a975aSStanislav Jakubek nvmem-cell-names = "big_scale_calib", "small_scale_calib"; 203131a975aSStanislav Jakubek }; 204131a975aSStanislav Jakubek 205131a975aSStanislav Jakubek fuel-gauge@a00 { 206131a975aSStanislav Jakubek compatible = "sprd,sc2731-fgu"; 207131a975aSStanislav Jakubek reg = <0xa00>; 208131a975aSStanislav Jakubek battery-detect-gpios = <&pmic_eic 9 GPIO_ACTIVE_HIGH>; 209131a975aSStanislav Jakubek interrupt-parent = <&sc2731_pmic>; 210131a975aSStanislav Jakubek interrupts = <4>; 211131a975aSStanislav Jakubek io-channels = <&pmic_adc 5>, <&pmic_adc 14>; 212131a975aSStanislav Jakubek io-channel-names = "bat-temp", "charge-vol"; 213131a975aSStanislav Jakubek nvmem-cells = <&fgu_calib>; 214131a975aSStanislav Jakubek nvmem-cell-names = "fgu_calib"; 215131a975aSStanislav Jakubek monitored-battery = <&bat>; 216131a975aSStanislav Jakubek sprd,calib-resistance-micro-ohms = <21500>; 217131a975aSStanislav Jakubek }; 218131a975aSStanislav Jakubek 219131a975aSStanislav Jakubek vibrator@ec8 { 220131a975aSStanislav Jakubek compatible = "sprd,sc2731-vibrator"; 221131a975aSStanislav Jakubek reg = <0xec8>; 222131a975aSStanislav Jakubek }; 223131a975aSStanislav Jakubek 224131a975aSStanislav Jakubek regulators { 225131a975aSStanislav Jakubek compatible = "sprd,sc2731-regulator"; 226131a975aSStanislav Jakubek 227131a975aSStanislav Jakubek BUCK_CPU0 { 228131a975aSStanislav Jakubek regulator-name = "vddarm0"; 229131a975aSStanislav Jakubek regulator-min-microvolt = <400000>; 230131a975aSStanislav Jakubek regulator-max-microvolt = <1996875>; 231131a975aSStanislav Jakubek regulator-ramp-delay = <25000>; 232131a975aSStanislav Jakubek regulator-always-on; 233131a975aSStanislav Jakubek }; 234131a975aSStanislav Jakubek 235131a975aSStanislav Jakubek LDO_CAMA0 { 236131a975aSStanislav Jakubek regulator-name = "vddcama0"; 237131a975aSStanislav Jakubek regulator-min-microvolt = <1200000>; 238131a975aSStanislav Jakubek regulator-max-microvolt = <3750000>; 239131a975aSStanislav Jakubek regulator-enable-ramp-delay = <100>; 240131a975aSStanislav Jakubek }; 241131a975aSStanislav Jakubek }; 242131a975aSStanislav Jakubek }; 243131a975aSStanislav Jakubek }; 244131a975aSStanislav Jakubek... 245