Back to home page

OSCL-LXR

 
 

    


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     };