18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/st,stpmic1.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: STMicroelectonics STPMIC1 Power Management IC bindings 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cidescription: STMicroelectronics STPMIC1 Power Management IC 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_cimaintainers: 128c2ecf20Sopenharmony_ci - pascal Paillet <p.paillet@st.com> 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciproperties: 158c2ecf20Sopenharmony_ci compatible: 168c2ecf20Sopenharmony_ci const: st,stpmic1 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci reg: 198c2ecf20Sopenharmony_ci const: 0x33 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci interrupts: 228c2ecf20Sopenharmony_ci maxItems: 1 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci "#interrupt-cells": 258c2ecf20Sopenharmony_ci const: 2 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci interrupt-controller: true 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci onkey: 308c2ecf20Sopenharmony_ci type: object 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci $ref: ../input/input.yaml 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci properties: 358c2ecf20Sopenharmony_ci compatible: 368c2ecf20Sopenharmony_ci const: st,stpmic1-onkey 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci interrupts: 398c2ecf20Sopenharmony_ci items: 408c2ecf20Sopenharmony_ci - description: onkey-falling, happens when onkey is pressed. IT_PONKEY_F of pmic 418c2ecf20Sopenharmony_ci - description: onkey-rising, happens when onkey is released. IT_PONKEY_R of pmic 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci interrupt-names: 448c2ecf20Sopenharmony_ci items: 458c2ecf20Sopenharmony_ci - const: onkey-falling 468c2ecf20Sopenharmony_ci - const: onkey-rising 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci st,onkey-clear-cc-flag: 498c2ecf20Sopenharmony_ci description: onkey is able power on after an over-current shutdown event. 508c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/flag 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci st,onkey-pu-inactive: 538c2ecf20Sopenharmony_ci description: onkey pull up is not active 548c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/flag 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci power-off-time-sec: 578c2ecf20Sopenharmony_ci minimum: 1 588c2ecf20Sopenharmony_ci maximum: 16 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci required: 618c2ecf20Sopenharmony_ci - compatible 628c2ecf20Sopenharmony_ci - interrupts 638c2ecf20Sopenharmony_ci - interrupt-names 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci additionalProperties: false 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci watchdog: 688c2ecf20Sopenharmony_ci type: object 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci $ref: ../watchdog/watchdog.yaml 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ci properties: 738c2ecf20Sopenharmony_ci compatible: 748c2ecf20Sopenharmony_ci const: st,stpmic1-wdt 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci timeout-sec: true 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci required: 798c2ecf20Sopenharmony_ci - compatible 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci additionalProperties: false 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci regulators: 848c2ecf20Sopenharmony_ci type: object 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci description: | 878c2ecf20Sopenharmony_ci Available Regulators in STPMIC1 device are: 888c2ecf20Sopenharmony_ci - buck1 for Buck BUCK1 898c2ecf20Sopenharmony_ci - buck2 for Buck BUCK2 908c2ecf20Sopenharmony_ci - buck3 for Buck BUCK3 918c2ecf20Sopenharmony_ci - buck4 for Buck BUCK4 928c2ecf20Sopenharmony_ci - ldo1 for LDO LDO1 938c2ecf20Sopenharmony_ci - ldo2 for LDO LDO2 948c2ecf20Sopenharmony_ci - ldo3 for LDO LDO3 958c2ecf20Sopenharmony_ci - ldo4 for LDO LDO4 968c2ecf20Sopenharmony_ci - ldo5 for LDO LDO5 978c2ecf20Sopenharmony_ci - ldo6 for LDO LDO6 988c2ecf20Sopenharmony_ci - vref_ddr for LDO Vref DDR 998c2ecf20Sopenharmony_ci - boost for Buck BOOST 1008c2ecf20Sopenharmony_ci - pwr_sw1 for VBUS_OTG switch 1018c2ecf20Sopenharmony_ci - pwr_sw2 for SW_OUT switch 1028c2ecf20Sopenharmony_ci Switches are fixed voltage regulators with only enable/disable capability. 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci properties: 1058c2ecf20Sopenharmony_ci compatible: 1068c2ecf20Sopenharmony_ci const: st,stpmic1-regulators 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci ldo3: 1098c2ecf20Sopenharmony_ci type: object 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ci properties: 1128c2ecf20Sopenharmony_ci interrupts: 1138c2ecf20Sopenharmony_ci maxItems: 1 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci st,mask-reset: 1168c2ecf20Sopenharmony_ci description: mask reset for this regulator, the regulator configuration 1178c2ecf20Sopenharmony_ci is maintained during pmic reset. 1188c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/flag 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci regulator-name: true 1218c2ecf20Sopenharmony_ci regulator-boot-on: true 1228c2ecf20Sopenharmony_ci regulator-always-on: true 1238c2ecf20Sopenharmony_ci regulator-min-microvolt: true 1248c2ecf20Sopenharmony_ci regulator-max-microvolt: true 1258c2ecf20Sopenharmony_ci regulator-allow-bypass: true 1268c2ecf20Sopenharmony_ci regulator-over-current-protection: true 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ci additionalProperties: false 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci ldo4: 1318c2ecf20Sopenharmony_ci type: object 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci properties: 1348c2ecf20Sopenharmony_ci interrupts: 1358c2ecf20Sopenharmony_ci maxItems: 1 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ci st,mask-reset: 1388c2ecf20Sopenharmony_ci description: mask reset for this regulator, the regulator configuration 1398c2ecf20Sopenharmony_ci is maintained during pmic reset. 1408c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/flag 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ci regulator-name: true 1438c2ecf20Sopenharmony_ci regulator-boot-on: true 1448c2ecf20Sopenharmony_ci regulator-always-on: true 1458c2ecf20Sopenharmony_ci regulator-over-current-protection: true 1468c2ecf20Sopenharmony_ci 1478c2ecf20Sopenharmony_ci additionalProperties: false 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ci vref_ddr: 1508c2ecf20Sopenharmony_ci type: object 1518c2ecf20Sopenharmony_ci 1528c2ecf20Sopenharmony_ci properties: 1538c2ecf20Sopenharmony_ci interrupts: 1548c2ecf20Sopenharmony_ci maxItems: 1 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci st,mask-reset: 1578c2ecf20Sopenharmony_ci description: mask reset for this regulator, the regulator configuration 1588c2ecf20Sopenharmony_ci is maintained during pmic reset. 1598c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/flag 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci regulator-name: true 1628c2ecf20Sopenharmony_ci regulator-boot-on: true 1638c2ecf20Sopenharmony_ci regulator-always-on: true 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ci additionalProperties: false 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci boost: 1688c2ecf20Sopenharmony_ci type: object 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ci properties: 1718c2ecf20Sopenharmony_ci interrupts: 1728c2ecf20Sopenharmony_ci maxItems: 1 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci st,mask-reset: 1758c2ecf20Sopenharmony_ci description: mask reset for this regulator, the regulator configuration 1768c2ecf20Sopenharmony_ci is maintained during pmic reset. 1778c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/flag 1788c2ecf20Sopenharmony_ci 1798c2ecf20Sopenharmony_ci regulator-name: true 1808c2ecf20Sopenharmony_ci regulator-boot-on: true 1818c2ecf20Sopenharmony_ci regulator-always-on: true 1828c2ecf20Sopenharmony_ci regulator-over-current-protection: true 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ci additionalProperties: false 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci patternProperties: 1878c2ecf20Sopenharmony_ci "^(buck[1-4]|ldo[1-6]|boost|pwr_sw[1-2])-supply$": 1888c2ecf20Sopenharmony_ci description: STPMIC1 voltage regulators supplies 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_ci "^(buck[1-4]|ldo[1-6]|boost|vref_ddr|pwr_sw[1-2])$": 1918c2ecf20Sopenharmony_ci $ref: ../regulator/regulator.yaml 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci "^ldo[1-2,5-6]$": 1948c2ecf20Sopenharmony_ci type: object 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci properties: 1978c2ecf20Sopenharmony_ci interrupts: 1988c2ecf20Sopenharmony_ci maxItems: 1 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_ci st,mask-reset: 2018c2ecf20Sopenharmony_ci description: mask reset for this regulator, the regulator configuration 2028c2ecf20Sopenharmony_ci is maintained during pmic reset. 2038c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/flag 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci regulator-name: true 2068c2ecf20Sopenharmony_ci regulator-boot-on: true 2078c2ecf20Sopenharmony_ci regulator-always-on: true 2088c2ecf20Sopenharmony_ci regulator-min-microvolt: true 2098c2ecf20Sopenharmony_ci regulator-max-microvolt: true 2108c2ecf20Sopenharmony_ci regulator-over-current-protection: true 2118c2ecf20Sopenharmony_ci regulator-enable-ramp-delay: true 2128c2ecf20Sopenharmony_ci 2138c2ecf20Sopenharmony_ci additionalProperties: false 2148c2ecf20Sopenharmony_ci 2158c2ecf20Sopenharmony_ci "^buck[1-4]$": 2168c2ecf20Sopenharmony_ci type: object 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_ci properties: 2198c2ecf20Sopenharmony_ci interrupts: 2208c2ecf20Sopenharmony_ci maxItems: 1 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ci st,mask-reset: 2238c2ecf20Sopenharmony_ci description: mask reset for this regulator, the regulator configuration 2248c2ecf20Sopenharmony_ci is maintained during pmic reset. 2258c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/flag 2268c2ecf20Sopenharmony_ci 2278c2ecf20Sopenharmony_ci regulator-name: true 2288c2ecf20Sopenharmony_ci regulator-boot-on: true 2298c2ecf20Sopenharmony_ci regulator-always-on: true 2308c2ecf20Sopenharmony_ci regulator-min-microvolt: true 2318c2ecf20Sopenharmony_ci regulator-max-microvolt: true 2328c2ecf20Sopenharmony_ci regulator-initial-mode: true 2338c2ecf20Sopenharmony_ci regulator-pull-down: true 2348c2ecf20Sopenharmony_ci regulator-over-current-protection: true 2358c2ecf20Sopenharmony_ci regulator-enable-ramp-delay: true 2368c2ecf20Sopenharmony_ci 2378c2ecf20Sopenharmony_ci additionalProperties: false 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ci "^pwr_sw[1-2]$": 2408c2ecf20Sopenharmony_ci type: object 2418c2ecf20Sopenharmony_ci 2428c2ecf20Sopenharmony_ci properties: 2438c2ecf20Sopenharmony_ci interrupts: 2448c2ecf20Sopenharmony_ci maxItems: 1 2458c2ecf20Sopenharmony_ci 2468c2ecf20Sopenharmony_ci regulator-name: true 2478c2ecf20Sopenharmony_ci regulator-boot-on: true 2488c2ecf20Sopenharmony_ci regulator-always-on: true 2498c2ecf20Sopenharmony_ci regulator-over-current-protection: true 2508c2ecf20Sopenharmony_ci regulator-active-discharge: true 2518c2ecf20Sopenharmony_ci 2528c2ecf20Sopenharmony_ci additionalProperties: false 2538c2ecf20Sopenharmony_ci 2548c2ecf20Sopenharmony_ci required: 2558c2ecf20Sopenharmony_ci - compatible 2568c2ecf20Sopenharmony_ci 2578c2ecf20Sopenharmony_ci additionalProperties: false 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ciadditionalProperties: false 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_cirequired: 2628c2ecf20Sopenharmony_ci - compatible 2638c2ecf20Sopenharmony_ci - reg 2648c2ecf20Sopenharmony_ci - interrupts 2658c2ecf20Sopenharmony_ci - "#interrupt-cells" 2668c2ecf20Sopenharmony_ci - interrupt-controller 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_ciexamples: 2698c2ecf20Sopenharmony_ci - | 2708c2ecf20Sopenharmony_ci #include <dt-bindings/mfd/st,stpmic1.h> 2718c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 2728c2ecf20Sopenharmony_ci i2c { 2738c2ecf20Sopenharmony_ci #address-cells = <1>; 2748c2ecf20Sopenharmony_ci #size-cells = <0>; 2758c2ecf20Sopenharmony_ci pmic@33 { 2768c2ecf20Sopenharmony_ci compatible = "st,stpmic1"; 2778c2ecf20Sopenharmony_ci reg = <0x33>; 2788c2ecf20Sopenharmony_ci interrupt-parent = <&gpioa>; 2798c2ecf20Sopenharmony_ci interrupts = <0 2>; 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ci interrupt-controller; 2828c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 2838c2ecf20Sopenharmony_ci 2848c2ecf20Sopenharmony_ci onkey { 2858c2ecf20Sopenharmony_ci compatible = "st,stpmic1-onkey"; 2868c2ecf20Sopenharmony_ci interrupts = <IT_PONKEY_F 0>,<IT_PONKEY_R 1>; 2878c2ecf20Sopenharmony_ci interrupt-names = "onkey-falling", "onkey-rising"; 2888c2ecf20Sopenharmony_ci power-off-time-sec = <10>; 2898c2ecf20Sopenharmony_ci }; 2908c2ecf20Sopenharmony_ci 2918c2ecf20Sopenharmony_ci watchdog { 2928c2ecf20Sopenharmony_ci compatible = "st,stpmic1-wdt"; 2938c2ecf20Sopenharmony_ci }; 2948c2ecf20Sopenharmony_ci 2958c2ecf20Sopenharmony_ci regulators { 2968c2ecf20Sopenharmony_ci compatible = "st,stpmic1-regulators"; 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_ci ldo6-supply = <&v3v3>; 2998c2ecf20Sopenharmony_ci 3008c2ecf20Sopenharmony_ci buck1 { 3018c2ecf20Sopenharmony_ci regulator-name = "vdd_core"; 3028c2ecf20Sopenharmony_ci interrupts = <IT_CURLIM_BUCK1 0>; 3038c2ecf20Sopenharmony_ci st,mask-reset; 3048c2ecf20Sopenharmony_ci regulator-boot-on; 3058c2ecf20Sopenharmony_ci regulator-min-microvolt = <700000>; 3068c2ecf20Sopenharmony_ci regulator-max-microvolt = <1200000>; 3078c2ecf20Sopenharmony_ci }; 3088c2ecf20Sopenharmony_ci 3098c2ecf20Sopenharmony_ci buck3 { 3108c2ecf20Sopenharmony_ci regulator-name = "vdd"; 3118c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 3128c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 3138c2ecf20Sopenharmony_ci regulator-boot-on; 3148c2ecf20Sopenharmony_ci regulator-pull-down; 3158c2ecf20Sopenharmony_ci }; 3168c2ecf20Sopenharmony_ci 3178c2ecf20Sopenharmony_ci buck4 { 3188c2ecf20Sopenharmony_ci regulator-name = "v3v3"; 3198c2ecf20Sopenharmony_ci interrupts = <IT_CURLIM_BUCK4 0>; 3208c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 3218c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 3228c2ecf20Sopenharmony_ci }; 3238c2ecf20Sopenharmony_ci 3248c2ecf20Sopenharmony_ci ldo6 { 3258c2ecf20Sopenharmony_ci regulator-name = "v1v8"; 3268c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 3278c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 3288c2ecf20Sopenharmony_ci regulator-over-current-protection; 3298c2ecf20Sopenharmony_ci }; 3308c2ecf20Sopenharmony_ci }; 3318c2ecf20Sopenharmony_ci }; 3328c2ecf20Sopenharmony_ci }; 3338c2ecf20Sopenharmony_ci 3348c2ecf20Sopenharmony_ci... 335