0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/mfd/actions,atc260x.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Actions Semi ATC260x Power Management IC bindings
0008
0009 maintainers:
0010 - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
0011 - Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
0012
0013 description: |
0014 ATC260x series PMICs integrates Audio Codec, Power Management, RTC, IR
0015 and GPIO controller blocks. Currently only the PM related functionalities
0016 (i.e. regulators and system power-off/reboot) for the ATC2603C and ATC2609A
0017 chip variants are supported.
0018 ATC2603C includes 3 programmable DC-DC converters, 9 programmable LDO
0019 regulators and 1 fixed LDO regulator.
0020 ATC2609A includes 5 programmable DC-DC converters and 10 programmable LDO
0021 regulators.
0022
0023 allOf:
0024 - $ref: ../input/input.yaml
0025
0026 properties:
0027 compatible:
0028 enum:
0029 - actions,atc2603c
0030 - actions,atc2609a
0031
0032 reg:
0033 maxItems: 1
0034
0035 interrupts:
0036 maxItems: 1
0037
0038 reset-time-sec:
0039 description: |
0040 Duration in seconds which the key should be kept pressed for device
0041 to reset automatically. The hardware default is 8. Use 0 to disable
0042 this functionality.
0043 enum: [0, 6, 8, 10, 12]
0044
0045 regulators:
0046 type: object
0047 description: |
0048 List of child nodes specifying the regulators, depending on chip variant:
0049 * ATC2603C: dcdc[1-3], ldo[1-3,5-8,11,12], switchldo1
0050 * ATC2609A: dcdc[0-4], ldo[0-9]
0051
0052 properties:
0053 compatible:
0054 enum:
0055 - actions,atc2603c-regulator
0056 - actions,atc2609a-regulator
0057
0058 switchldo1:
0059 type: object
0060 $ref: ../regulator/regulator.yaml
0061
0062 properties:
0063 regulator-name: true
0064 regulator-boot-on: true
0065 regulator-always-on: true
0066 regulator-min-microvolt: true
0067 regulator-max-microvolt: true
0068 regulator-allow-bypass: true
0069 regulator-active-discharge: true
0070
0071 additionalProperties: false
0072
0073 patternProperties:
0074 "^(dcdc[0-4]|ldo[0-9]|ldo1[1-2]|switchldo1)-supply$":
0075 description: ATC260x voltage regulators supplies
0076
0077 "^(dcdc[0-4]|ldo[0-9]|ldo1[1-2])$":
0078 type: object
0079 $ref: ../regulator/regulator.yaml
0080
0081 properties:
0082 regulator-name: true
0083 regulator-boot-on: true
0084 regulator-always-on: true
0085 regulator-min-microvolt: true
0086 regulator-max-microvolt: true
0087 regulator-allow-bypass: true
0088
0089 additionalProperties: false
0090
0091 allOf:
0092 - if:
0093 properties:
0094 compatible:
0095 contains:
0096 const: actions,atc2603c-regulator
0097 then:
0098 patternProperties:
0099 "^(dcdc[0,4]|ldo[0,4,9])(-supply)?$": false
0100
0101 "^(ldo|dcdc)":
0102 properties:
0103 regulator-allow-bypass: false
0104 - if:
0105 properties:
0106 compatible:
0107 contains:
0108 const: actions,atc2609a-regulator
0109 then:
0110 patternProperties:
0111 "^(ldo1[1-2]|switchldo1)(-supply)?$": false
0112
0113 "^(dcdc|ldo[3-9])":
0114 properties:
0115 regulator-allow-bypass: false
0116
0117 required:
0118 - compatible
0119
0120 additionalProperties: false
0121
0122 additionalProperties: false
0123
0124 required:
0125 - compatible
0126 - reg
0127 - interrupts
0128
0129 examples:
0130 - |
0131 #include <dt-bindings/interrupt-controller/arm-gic.h>
0132 i2c0 {
0133 #address-cells = <1>;
0134 #size-cells = <0>;
0135
0136 pmic@65 {
0137 compatible = "actions,atc2603c";
0138 reg = <0x65>;
0139 interrupt-parent = <&sirq>;
0140 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
0141
0142 reset-time-sec = <6>;
0143
0144 regulators {
0145 compatible = "actions,atc2603c-regulator";
0146
0147 dcdc1-supply = <®_5v0>;
0148 dcdc3-supply = <®_5v0>;
0149 ldo5-supply = <®_5v0>;
0150 switchldo1-supply = <&vcc>;
0151
0152 vdd_cpu: dcdc1 {
0153 regulator-name = "VDD_CPU";
0154 regulator-min-microvolt = <700000>;
0155 regulator-max-microvolt = <1400000>;
0156 regulator-always-on;
0157 };
0158
0159 vcc: dcdc3 {
0160 regulator-name = "VCC";
0161 regulator-min-microvolt = <2600000>;
0162 regulator-max-microvolt = <3300000>;
0163 regulator-always-on;
0164 };
0165
0166 vcc_3v1: ldo5 {
0167 regulator-name = "VCC_3V1";
0168 regulator-min-microvolt = <2600000>;
0169 regulator-max-microvolt = <3300000>;
0170 };
0171
0172 sd_vcc: switchldo1 {
0173 regulator-name = "SD_VCC";
0174 regulator-min-microvolt = <3000000>;
0175 regulator-max-microvolt = <3300000>;
0176 regulator-always-on;
0177 regulator-boot-on;
0178 };
0179 };
0180 };
0181 };
0182
0183 ...