0001 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/mfd/rockchip,rk817.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: RK817 Power Management Integrated Circuit
0008
0009 maintainers:
0010 - Chris Zhong <zyw@rock-chips.com>
0011 - Zhang Qing <zhangqing@rock-chips.com>
0012
0013 description: |
0014 Rockchip RK817 series PMIC. This device consists of an i2c controlled MFD
0015 that includes regulators, an RTC, a power button, an audio codec, and a
0016 battery charger manager.
0017
0018 properties:
0019 compatible:
0020 enum:
0021 - rockchip,rk817
0022
0023 reg:
0024 maxItems: 1
0025
0026 interrupts:
0027 maxItems: 1
0028
0029 '#clock-cells':
0030 description:
0031 See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
0032 minimum: 0
0033 maximum: 1
0034
0035 clock-output-names:
0036 description:
0037 From common clock binding to override the default output clock name.
0038
0039 rockchip,system-power-controller:
0040 type: boolean
0041 description:
0042 Telling whether or not this PMIC is controlling the system power.
0043
0044 wakeup-source:
0045 type: boolean
0046 description:
0047 Device can be used as a wakeup source.
0048
0049 vcc1-supply:
0050 description:
0051 The input supply for DCDC_REG1.
0052
0053 vcc2-supply:
0054 description:
0055 The input supply for DCDC_REG2.
0056
0057 vcc3-supply:
0058 description:
0059 The input supply for DCDC_REG3.
0060
0061 vcc4-supply:
0062 description:
0063 The input supply for DCDC_REG4.
0064
0065 vcc5-supply:
0066 description:
0067 The input supply for LDO_REG1, LDO_REG2, and LDO_REG3.
0068
0069 vcc6-supply:
0070 description:
0071 The input supply for LDO_REG4, LDO_REG5, and LDO_REG6.
0072
0073 vcc7-supply:
0074 description:
0075 The input supply for LDO_REG7, LDO_REG8, and LDO_REG9.
0076
0077 vcc8-supply:
0078 description:
0079 The input supply for BOOST.
0080
0081 vcc9-supply:
0082 description:
0083 The input supply for OTG_SWITCH.
0084
0085 regulators:
0086 type: object
0087 patternProperties:
0088 "^(LDO_REG[1-9]|DCDC_REG[1-4]|BOOST|OTG_SWITCH)$":
0089 type: object
0090 $ref: ../regulator/regulator.yaml#
0091 unevaluatedProperties: false
0092
0093 clocks:
0094 description:
0095 The input clock for the audio codec.
0096
0097 clock-names:
0098 description:
0099 The clock name for the codec clock.
0100 items:
0101 - const: mclk
0102
0103 '#sound-dai-cells':
0104 description:
0105 Needed for the interpretation of sound dais.
0106 const: 0
0107
0108 codec:
0109 description: |
0110 The child node for the codec to hold additional properties. If no
0111 additional properties are required for the codec, this node can be
0112 omitted.
0113 type: object
0114 properties:
0115 rockchip,mic-in-differential:
0116 type: boolean
0117 description:
0118 Describes if the microphone uses differential mode.
0119
0120 allOf:
0121 - if:
0122 properties:
0123 '#clock-cells':
0124 const: 0
0125
0126 then:
0127 properties:
0128 clock-output-names:
0129 maxItems: 1
0130
0131 else:
0132 properties:
0133 clock-output-names:
0134 maxItems: 2
0135
0136 required:
0137 - compatible
0138 - reg
0139 - interrupts
0140 - "#clock-cells"
0141
0142 additionalProperties: false
0143
0144 examples:
0145 - |
0146 #include <dt-bindings/clock/px30-cru.h>
0147 #include <dt-bindings/pinctrl/rockchip.h>
0148 #include <dt-bindings/interrupt-controller/irq.h>
0149 #include <dt-bindings/gpio/gpio.h>
0150 i2c {
0151 #address-cells = <1>;
0152 #size-cells = <0>;
0153
0154 rk817: pmic@20 {
0155 compatible = "rockchip,rk817";
0156 reg = <0x20>;
0157 interrupt-parent = <&gpio0>;
0158 interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
0159 clock-output-names = "rk808-clkout1", "xin32k";
0160 clock-names = "mclk";
0161 clocks = <&cru SCLK_I2S1_OUT>;
0162 pinctrl-names = "default";
0163 pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>;
0164 wakeup-source;
0165 #clock-cells = <1>;
0166 #sound-dai-cells = <0>;
0167
0168 vcc1-supply = <&vccsys>;
0169 vcc2-supply = <&vccsys>;
0170 vcc3-supply = <&vccsys>;
0171 vcc4-supply = <&vccsys>;
0172 vcc5-supply = <&vccsys>;
0173 vcc6-supply = <&vccsys>;
0174 vcc7-supply = <&vccsys>;
0175
0176 regulators {
0177 vdd_logic: DCDC_REG1 {
0178 regulator-name = "vdd_logic";
0179 regulator-min-microvolt = <950000>;
0180 regulator-max-microvolt = <1150000>;
0181 regulator-ramp-delay = <6001>;
0182 regulator-always-on;
0183 regulator-boot-on;
0184
0185 regulator-state-mem {
0186 regulator-on-in-suspend;
0187 regulator-suspend-microvolt = <950000>;
0188 };
0189 };
0190
0191 vdd_arm: DCDC_REG2 {
0192 regulator-name = "vdd_arm";
0193 regulator-min-microvolt = <950000>;
0194 regulator-max-microvolt = <1350000>;
0195 regulator-ramp-delay = <6001>;
0196 regulator-always-on;
0197 regulator-boot-on;
0198
0199 regulator-state-mem {
0200 regulator-off-in-suspend;
0201 regulator-suspend-microvolt = <950000>;
0202 };
0203 };
0204
0205 vcc_ddr: DCDC_REG3 {
0206 regulator-name = "vcc_ddr";
0207 regulator-always-on;
0208 regulator-boot-on;
0209
0210 regulator-state-mem {
0211 regulator-on-in-suspend;
0212 };
0213 };
0214
0215 vcc_3v3: DCDC_REG4 {
0216 regulator-name = "vcc_3v3";
0217 regulator-min-microvolt = <3300000>;
0218 regulator-max-microvolt = <3300000>;
0219 regulator-always-on;
0220 regulator-boot-on;
0221
0222 regulator-state-mem {
0223 regulator-off-in-suspend;
0224 regulator-suspend-microvolt = <3300000>;
0225 };
0226 };
0227
0228 vcc_1v8: LDO_REG2 {
0229 regulator-name = "vcc_1v8";
0230 regulator-min-microvolt = <1800000>;
0231 regulator-max-microvolt = <1800000>;
0232 regulator-always-on;
0233 regulator-boot-on;
0234
0235 regulator-state-mem {
0236 regulator-on-in-suspend;
0237 regulator-suspend-microvolt = <1800000>;
0238 };
0239 };
0240
0241 vdd_1v0: LDO_REG3 {
0242 regulator-name = "vdd_1v0";
0243 regulator-min-microvolt = <1000000>;
0244 regulator-max-microvolt = <1000000>;
0245 regulator-always-on;
0246 regulator-boot-on;
0247
0248 regulator-state-mem {
0249 regulator-on-in-suspend;
0250 regulator-suspend-microvolt = <1000000>;
0251 };
0252 };
0253
0254 vcc3v3_pmu: LDO_REG4 {
0255 regulator-name = "vcc3v3_pmu";
0256 regulator-min-microvolt = <3300000>;
0257 regulator-max-microvolt = <3300000>;
0258 regulator-always-on;
0259 regulator-boot-on;
0260
0261 regulator-state-mem {
0262 regulator-on-in-suspend;
0263 regulator-suspend-microvolt = <3300000>;
0264 };
0265 };
0266
0267 vccio_sd: LDO_REG5 {
0268 regulator-name = "vccio_sd";
0269 regulator-min-microvolt = <1800000>;
0270 regulator-max-microvolt = <3300000>;
0271 regulator-always-on;
0272 regulator-boot-on;
0273
0274 regulator-state-mem {
0275 regulator-on-in-suspend;
0276 regulator-suspend-microvolt = <3300000>;
0277 };
0278 };
0279
0280 vcc_sd: LDO_REG6 {
0281 regulator-name = "vcc_sd";
0282 regulator-min-microvolt = <3300000>;
0283 regulator-max-microvolt = <3300000>;
0284 regulator-boot-on;
0285
0286 regulator-state-mem {
0287 regulator-on-in-suspend;
0288 regulator-suspend-microvolt = <3300000>;
0289 };
0290 };
0291
0292 vcc_bl: LDO_REG7 {
0293 regulator-name = "vcc_bl";
0294 regulator-min-microvolt = <3300000>;
0295 regulator-max-microvolt = <3300000>;
0296
0297 regulator-state-mem {
0298 regulator-off-in-suspend;
0299 regulator-suspend-microvolt = <3300000>;
0300 };
0301 };
0302
0303 vcc_lcd: LDO_REG8 {
0304 regulator-name = "vcc_lcd";
0305 regulator-min-microvolt = <2800000>;
0306 regulator-max-microvolt = <2800000>;
0307
0308 regulator-state-mem {
0309 regulator-off-in-suspend;
0310 regulator-suspend-microvolt = <2800000>;
0311 };
0312 };
0313
0314 vcc_cam: LDO_REG9 {
0315 regulator-name = "vcc_cam";
0316 regulator-min-microvolt = <3000000>;
0317 regulator-max-microvolt = <3000000>;
0318
0319 regulator-state-mem {
0320 regulator-off-in-suspend;
0321 regulator-suspend-microvolt = <3000000>;
0322 };
0323 };
0324 };
0325
0326 rk817_codec: codec {
0327 rockchip,mic-in-differential;
0328 };
0329 };
0330 };