xref: /linux/Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml (revision 9e676a024fa1fa2bd8150c2d2ba85478280353bc)
16e357f57SMacpaul Lin# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
26e357f57SMacpaul Lin%YAML 1.2
36e357f57SMacpaul Lin---
46e357f57SMacpaul Lin$id: http://devicetree.org/schemas/mfd/mediatek,mt6397.yaml#
56e357f57SMacpaul Lin$schema: http://devicetree.org/meta-schemas/core.yaml#
66e357f57SMacpaul Lin
76e357f57SMacpaul Lintitle: MediaTek MT6397/MT6323 PMIC
86e357f57SMacpaul Lin
96e357f57SMacpaul Linmaintainers:
106e357f57SMacpaul Lin  - Sen Chu <sen.chu@mediatek.com>
116e357f57SMacpaul Lin  - Macpaul Lin <macpaul.lin@mediatek.com>
126e357f57SMacpaul Lin
136e357f57SMacpaul Lindescription: |
146e357f57SMacpaul Lin  MT6397/MT6323 is a power management system chip.
156e357f57SMacpaul Lin  Please see the sub-modules below for supported features.
166e357f57SMacpaul Lin
176e357f57SMacpaul Lin  MT6397/MT6323 is a multifunction device with the following sub modules:
186e357f57SMacpaul Lin  - Regulators
196e357f57SMacpaul Lin  - RTC
205bcecfcaSMacpaul Lin  - ADC
216e357f57SMacpaul Lin  - Audio codec
226e357f57SMacpaul Lin  - GPIO
236e357f57SMacpaul Lin  - Clock
246e357f57SMacpaul Lin  - LED
256e357f57SMacpaul Lin  - Keys
266e357f57SMacpaul Lin  - Power controller
276e357f57SMacpaul Lin
286e357f57SMacpaul Lin  It is interfaced to host controller using SPI interface by a proprietary hardware
296e357f57SMacpaul Lin  called PMIC wrapper or pwrap. MT6397/MT6323 PMIC is a child device of pwrap.
306e357f57SMacpaul Lin  See the following for pwrap node definitions:
316e357f57SMacpaul Lin  Documentation/devicetree/bindings/soc/mediatek/mediatek,pwrap.yaml
326e357f57SMacpaul Lin
336e357f57SMacpaul Linproperties:
346e357f57SMacpaul Lin  compatible:
356e357f57SMacpaul Lin    oneOf:
366e357f57SMacpaul Lin      - enum:
376e357f57SMacpaul Lin          - mediatek,mt6323
386e357f57SMacpaul Lin          - mediatek,mt6331 # "mediatek,mt6331" for PMIC MT6331 and MT6332.
39*5b0417b8SYassine Oudjana          - mediatek,mt6328
406e357f57SMacpaul Lin          - mediatek,mt6358
416e357f57SMacpaul Lin          - mediatek,mt6359
426e357f57SMacpaul Lin          - mediatek,mt6397
436e357f57SMacpaul Lin      - items:
446e357f57SMacpaul Lin          - enum:
456e357f57SMacpaul Lin              - mediatek,mt6366
466e357f57SMacpaul Lin          - const: mediatek,mt6358
476e357f57SMacpaul Lin
486e357f57SMacpaul Lin  interrupts:
496e357f57SMacpaul Lin    maxItems: 1
506e357f57SMacpaul Lin
516e357f57SMacpaul Lin  interrupt-controller: true
526e357f57SMacpaul Lin
536e357f57SMacpaul Lin  "#interrupt-cells":
546e357f57SMacpaul Lin    const: 2
556e357f57SMacpaul Lin
566e357f57SMacpaul Lin  rtc:
576e357f57SMacpaul Lin    type: object
586e357f57SMacpaul Lin    $ref: /schemas/rtc/rtc.yaml#
596e357f57SMacpaul Lin    unevaluatedProperties: false
606e357f57SMacpaul Lin    description:
616e357f57SMacpaul Lin      MT6397 Real Time Clock.
626e357f57SMacpaul Lin
636e357f57SMacpaul Lin    properties:
646e357f57SMacpaul Lin      compatible:
656e357f57SMacpaul Lin        oneOf:
666e357f57SMacpaul Lin          - enum:
676e357f57SMacpaul Lin              - mediatek,mt6323-rtc
686e357f57SMacpaul Lin              - mediatek,mt6331-rtc
696e357f57SMacpaul Lin              - mediatek,mt6358-rtc
706e357f57SMacpaul Lin              - mediatek,mt6397-rtc
716e357f57SMacpaul Lin          - items:
726e357f57SMacpaul Lin              - enum:
736e357f57SMacpaul Lin                  - mediatek,mt6366-rtc
746e357f57SMacpaul Lin              - const: mediatek,mt6358-rtc
756e357f57SMacpaul Lin
760a98b711SAngeloGioacchino Del Regno      start-year: true
770a98b711SAngeloGioacchino Del Regno
786e357f57SMacpaul Lin    required:
796e357f57SMacpaul Lin      - compatible
806e357f57SMacpaul Lin
816e357f57SMacpaul Lin  regulators:
826e357f57SMacpaul Lin    type: object
836e357f57SMacpaul Lin    description:
846e357f57SMacpaul Lin      List of child nodes that specify the regulators.
856e357f57SMacpaul Lin    additionalProperties: true
866e357f57SMacpaul Lin
876e357f57SMacpaul Lin    properties:
886e357f57SMacpaul Lin      compatible:
896e357f57SMacpaul Lin        oneOf:
906e357f57SMacpaul Lin          - enum:
916e357f57SMacpaul Lin              - mediatek,mt6323-regulator
92*5b0417b8SYassine Oudjana              - mediatek,mt6328-regulator
936e357f57SMacpaul Lin              - mediatek,mt6358-regulator
945bcecfcaSMacpaul Lin              - mediatek,mt6359-regulator
956e357f57SMacpaul Lin              - mediatek,mt6397-regulator
966e357f57SMacpaul Lin          - items:
976e357f57SMacpaul Lin              - enum:
986e357f57SMacpaul Lin                  - mediatek,mt6366-regulator
996e357f57SMacpaul Lin              - const: mediatek,mt6358-regulator
1006e357f57SMacpaul Lin
1016e357f57SMacpaul Lin    required:
1026e357f57SMacpaul Lin      - compatible
1036e357f57SMacpaul Lin
1045bcecfcaSMacpaul Lin  adc:
1055bcecfcaSMacpaul Lin    type: object
1065bcecfcaSMacpaul Lin    $ref: /schemas/iio/adc/mediatek,mt6359-auxadc.yaml#
1075bcecfcaSMacpaul Lin    unevaluatedProperties: false
1085bcecfcaSMacpaul Lin
1096e357f57SMacpaul Lin  audio-codec:
1106e357f57SMacpaul Lin    type: object
1116e357f57SMacpaul Lin    description:
1126e357f57SMacpaul Lin      Audio codec support with MT6358 and MT6397.
1136e357f57SMacpaul Lin    additionalProperties: true
1146e357f57SMacpaul Lin
1156e357f57SMacpaul Lin    properties:
1166e357f57SMacpaul Lin      compatible:
1176e357f57SMacpaul Lin        oneOf:
1186e357f57SMacpaul Lin          - enum:
1196e357f57SMacpaul Lin              - mediatek,mt6358-sound
1205bcecfcaSMacpaul Lin              - mediatek,mt6359-codec
1216e357f57SMacpaul Lin              - mediatek,mt6397-codec
1226e357f57SMacpaul Lin          - items:
1236e357f57SMacpaul Lin              - enum:
1246e357f57SMacpaul Lin                  - mediatek,mt6366-sound
1256e357f57SMacpaul Lin              - const: mediatek,mt6358-sound
1266e357f57SMacpaul Lin
1276e357f57SMacpaul Lin    required:
1286e357f57SMacpaul Lin      - compatible
1296e357f57SMacpaul Lin
1306e357f57SMacpaul Lin  clocks:
1316e357f57SMacpaul Lin    type: object
1326e357f57SMacpaul Lin    additionalProperties: false
1336e357f57SMacpaul Lin    description:
1346e357f57SMacpaul Lin      This is a clock buffer node for mt6397. However, there are no sub nodes
1356e357f57SMacpaul Lin      or any public document exposed in public.
1366e357f57SMacpaul Lin
1376e357f57SMacpaul Lin    properties:
1386e357f57SMacpaul Lin      compatible:
1396e357f57SMacpaul Lin        const: mediatek,mt6397-clk
1406e357f57SMacpaul Lin
1416e357f57SMacpaul Lin      '#clock-cells':
1426e357f57SMacpaul Lin        const: 1
1436e357f57SMacpaul Lin
1446e357f57SMacpaul Lin    required:
1456e357f57SMacpaul Lin      - compatible
1466e357f57SMacpaul Lin
1476e357f57SMacpaul Lin  leds:
1486e357f57SMacpaul Lin    type: object
1496e357f57SMacpaul Lin    additionalProperties: false
1506e357f57SMacpaul Lin    description: |
1516e357f57SMacpaul Lin      MT6323 LED controller is subfunction provided by MT6323 PMIC, so the LED
1526e357f57SMacpaul Lin      controllers are defined as the subnode of the function node provided by MT6323
1536e357f57SMacpaul Lin      PMIC controller that is being defined as one kind of Muti-Function Device (MFD)
1546e357f57SMacpaul Lin      using shared bus called PMIC wrapper for each subfunction to access remote
1556e357f57SMacpaul Lin      MT6323 PMIC hardware.
1566e357f57SMacpaul Lin
1576e357f57SMacpaul Lin      Each led is represented as a child node of the mediatek,mt6323-led that
1586e357f57SMacpaul Lin      describes the initial behavior for each LED physically and currently only four
1596e357f57SMacpaul Lin      LED child nodes can be supported.
1606e357f57SMacpaul Lin
1616e357f57SMacpaul Lin    properties:
1626e357f57SMacpaul Lin      compatible:
1636e357f57SMacpaul Lin        enum:
1646e357f57SMacpaul Lin          - mediatek,mt6323-led
1656e357f57SMacpaul Lin          - mediatek,mt6331-led
1666e357f57SMacpaul Lin          - mediatek,mt6332-led
1676e357f57SMacpaul Lin
1686e357f57SMacpaul Lin      reg:
1696e357f57SMacpaul Lin        maxItems: 1
1706e357f57SMacpaul Lin
1716e357f57SMacpaul Lin      "#address-cells":
1726e357f57SMacpaul Lin        const: 1
1736e357f57SMacpaul Lin
1746e357f57SMacpaul Lin      "#size-cells":
1756e357f57SMacpaul Lin        const: 0
1766e357f57SMacpaul Lin
1776e357f57SMacpaul Lin    patternProperties:
1786e357f57SMacpaul Lin      "^led@[0-3]$":
1796e357f57SMacpaul Lin        type: object
1806e357f57SMacpaul Lin        $ref: /schemas/leds/common.yaml#
1816e357f57SMacpaul Lin        unevaluatedProperties: false
1826e357f57SMacpaul Lin
1836e357f57SMacpaul Lin        properties:
1846e357f57SMacpaul Lin          reg:
1856e357f57SMacpaul Lin            description:
1866e357f57SMacpaul Lin              LED channel number (0..3)
1876e357f57SMacpaul Lin            minimum: 0
1886e357f57SMacpaul Lin            maximum: 3
1896e357f57SMacpaul Lin
1906e357f57SMacpaul Lin        required:
1916e357f57SMacpaul Lin          - reg
1926e357f57SMacpaul Lin
1936e357f57SMacpaul Lin    required:
1946e357f57SMacpaul Lin      - compatible
1956e357f57SMacpaul Lin      - "#address-cells"
1966e357f57SMacpaul Lin      - "#size-cells"
1976e357f57SMacpaul Lin
1986e357f57SMacpaul Lin  keys:
1996e357f57SMacpaul Lin    type: object
2006e357f57SMacpaul Lin    $ref: /schemas/input/mediatek,pmic-keys.yaml
2016e357f57SMacpaul Lin    unevaluatedProperties: false
2026e357f57SMacpaul Lin    description:
2036e357f57SMacpaul Lin      Power and Home keys.
2046e357f57SMacpaul Lin
2056e357f57SMacpaul Lin  power-controller:
2066e357f57SMacpaul Lin    type: object
2076e357f57SMacpaul Lin    additionalProperties: false
2086e357f57SMacpaul Lin    description:
2096e357f57SMacpaul Lin      The power controller which could be found on PMIC is responsible for
2106e357f57SMacpaul Lin      externally powering off or on the remote MediaTek SoC through the
2116e357f57SMacpaul Lin      circuit BBPU (baseband power up).
2126e357f57SMacpaul Lin
2136e357f57SMacpaul Lin    properties:
2146e357f57SMacpaul Lin      compatible:
2156e357f57SMacpaul Lin        const: mediatek,mt6323-pwrc
2166e357f57SMacpaul Lin
2176e357f57SMacpaul Lin      '#power-domain-cells':
2186e357f57SMacpaul Lin        const: 0
2196e357f57SMacpaul Lin
2206e357f57SMacpaul Lin  pinctrl:
2216e357f57SMacpaul Lin    type: object
2226e357f57SMacpaul Lin    $ref: /schemas/pinctrl/mediatek,mt65xx-pinctrl.yaml
2236e357f57SMacpaul Lin    unevaluatedProperties: false
2246e357f57SMacpaul Lin    description:
2256e357f57SMacpaul Lin      Pin controller
2266e357f57SMacpaul Lin
2276e357f57SMacpaul Linrequired:
2286e357f57SMacpaul Lin  - compatible
2296e357f57SMacpaul Lin  - regulators
2306e357f57SMacpaul Lin
2316e357f57SMacpaul LinadditionalProperties: false
2326e357f57SMacpaul Lin
2336e357f57SMacpaul Linexamples:
2346e357f57SMacpaul Lin  - |
2356e357f57SMacpaul Lin    #include <dt-bindings/interrupt-controller/arm-gic.h>
2366e357f57SMacpaul Lin    #include <dt-bindings/leds/common.h>
2376e357f57SMacpaul Lin
2386e357f57SMacpaul Lin    pmic {
2396e357f57SMacpaul Lin        compatible = "mediatek,mt6323";
2406e357f57SMacpaul Lin        interrupt-parent = <&pio>;
2416e357f57SMacpaul Lin        interrupts = <150 IRQ_TYPE_LEVEL_HIGH>;
2426e357f57SMacpaul Lin        interrupt-controller;
2436e357f57SMacpaul Lin        #interrupt-cells = <2>;
2446e357f57SMacpaul Lin
2456e357f57SMacpaul Lin        leds {
2466e357f57SMacpaul Lin            compatible = "mediatek,mt6323-led";
2476e357f57SMacpaul Lin            #address-cells = <1>;
2486e357f57SMacpaul Lin            #size-cells = <0>;
2496e357f57SMacpaul Lin        };
2506e357f57SMacpaul Lin
2516e357f57SMacpaul Lin        regulators {
2526e357f57SMacpaul Lin            compatible = "mediatek,mt6323-regulator";
2536e357f57SMacpaul Lin
2546e357f57SMacpaul Lin            buck_vproc {
2556e357f57SMacpaul Lin                regulator-name = "vproc";
2566e357f57SMacpaul Lin                regulator-min-microvolt = < 700000>;
2576e357f57SMacpaul Lin                regulator-max-microvolt = <1350000>;
2586e357f57SMacpaul Lin                regulator-ramp-delay = <12500>;
2596e357f57SMacpaul Lin                regulator-always-on;
2606e357f57SMacpaul Lin                regulator-boot-on;
2616e357f57SMacpaul Lin            };
2626e357f57SMacpaul Lin
2636e357f57SMacpaul Lin            buck_vsys {
2646e357f57SMacpaul Lin                regulator-name = "vsys";
2656e357f57SMacpaul Lin                regulator-min-microvolt = <1400000>;
2666e357f57SMacpaul Lin                regulator-max-microvolt = <2987500>;
2676e357f57SMacpaul Lin                regulator-ramp-delay = <25000>;
2686e357f57SMacpaul Lin                regulator-always-on;
2696e357f57SMacpaul Lin                regulator-boot-on;
2706e357f57SMacpaul Lin            };
2716e357f57SMacpaul Lin
2726e357f57SMacpaul Lin            buck_vpa {
2736e357f57SMacpaul Lin                regulator-name = "vpa";
2746e357f57SMacpaul Lin                regulator-min-microvolt = < 500000>;
2756e357f57SMacpaul Lin                regulator-max-microvolt = <3650000>;
2766e357f57SMacpaul Lin            };
2776e357f57SMacpaul Lin
2786e357f57SMacpaul Lin            ldo_vtcxo {
2796e357f57SMacpaul Lin                regulator-name = "vtcxo";
2806e357f57SMacpaul Lin                regulator-min-microvolt = <2800000>;
2816e357f57SMacpaul Lin                regulator-max-microvolt = <2800000>;
2826e357f57SMacpaul Lin                regulator-enable-ramp-delay = <90>;
2836e357f57SMacpaul Lin                regulator-always-on;
2846e357f57SMacpaul Lin                regulator-boot-on;
2856e357f57SMacpaul Lin            };
2866e357f57SMacpaul Lin
2876e357f57SMacpaul Lin            ldo_vcn28 {
2886e357f57SMacpaul Lin                regulator-name = "vcn28";
2896e357f57SMacpaul Lin                regulator-min-microvolt = <2800000>;
2906e357f57SMacpaul Lin                regulator-max-microvolt = <2800000>;
2916e357f57SMacpaul Lin                regulator-enable-ramp-delay = <185>;
2926e357f57SMacpaul Lin            };
2936e357f57SMacpaul Lin
2946e357f57SMacpaul Lin            ldo_vcn33_bt {
2956e357f57SMacpaul Lin                regulator-name = "vcn33_bt";
2966e357f57SMacpaul Lin                regulator-min-microvolt = <3300000>;
2976e357f57SMacpaul Lin                regulator-max-microvolt = <3600000>;
2986e357f57SMacpaul Lin                regulator-enable-ramp-delay = <185>;
2996e357f57SMacpaul Lin            };
3006e357f57SMacpaul Lin
3016e357f57SMacpaul Lin            ldo_vcn33_wifi {
3026e357f57SMacpaul Lin                regulator-name = "vcn33_wifi";
3036e357f57SMacpaul Lin                regulator-min-microvolt = <3300000>;
3046e357f57SMacpaul Lin                regulator-max-microvolt = <3600000>;
3056e357f57SMacpaul Lin                regulator-enable-ramp-delay = <185>;
3066e357f57SMacpaul Lin            };
3076e357f57SMacpaul Lin
3086e357f57SMacpaul Lin            ldo_va {
3096e357f57SMacpaul Lin                regulator-name = "va";
3106e357f57SMacpaul Lin                regulator-min-microvolt = <2800000>;
3116e357f57SMacpaul Lin                regulator-max-microvolt = <2800000>;
3126e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
3136e357f57SMacpaul Lin                regulator-always-on;
3146e357f57SMacpaul Lin                regulator-boot-on;
3156e357f57SMacpaul Lin            };
3166e357f57SMacpaul Lin
3176e357f57SMacpaul Lin            ldo_vcama {
3186e357f57SMacpaul Lin                regulator-name = "vcama";
3196e357f57SMacpaul Lin                regulator-min-microvolt = <1500000>;
3206e357f57SMacpaul Lin                regulator-max-microvolt = <2800000>;
3216e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
3226e357f57SMacpaul Lin            };
3236e357f57SMacpaul Lin
3246e357f57SMacpaul Lin            ldo_vio28 {
3256e357f57SMacpaul Lin                regulator-name = "vio28";
3266e357f57SMacpaul Lin                regulator-min-microvolt = <2800000>;
3276e357f57SMacpaul Lin                regulator-max-microvolt = <2800000>;
3286e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
3296e357f57SMacpaul Lin                regulator-always-on;
3306e357f57SMacpaul Lin                regulator-boot-on;
3316e357f57SMacpaul Lin            };
3326e357f57SMacpaul Lin
3336e357f57SMacpaul Lin            ldo_vusb {
3346e357f57SMacpaul Lin                regulator-name = "vusb";
3356e357f57SMacpaul Lin                regulator-min-microvolt = <3300000>;
3366e357f57SMacpaul Lin                regulator-max-microvolt = <3300000>;
3376e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
3386e357f57SMacpaul Lin                regulator-boot-on;
3396e357f57SMacpaul Lin            };
3406e357f57SMacpaul Lin
3416e357f57SMacpaul Lin            ldo_vmc {
3426e357f57SMacpaul Lin                regulator-name = "vmc";
3436e357f57SMacpaul Lin                regulator-min-microvolt = <1800000>;
3446e357f57SMacpaul Lin                regulator-max-microvolt = <3300000>;
3456e357f57SMacpaul Lin                regulator-enable-ramp-delay = <36>;
3466e357f57SMacpaul Lin                regulator-boot-on;
3476e357f57SMacpaul Lin            };
3486e357f57SMacpaul Lin
3496e357f57SMacpaul Lin            ldo_vmch {
3506e357f57SMacpaul Lin                regulator-name = "vmch";
3516e357f57SMacpaul Lin                regulator-min-microvolt = <3000000>;
3526e357f57SMacpaul Lin                regulator-max-microvolt = <3300000>;
3536e357f57SMacpaul Lin                regulator-enable-ramp-delay = <36>;
3546e357f57SMacpaul Lin                regulator-boot-on;
3556e357f57SMacpaul Lin            };
3566e357f57SMacpaul Lin
3576e357f57SMacpaul Lin            ldo_vemc3v3 {
3586e357f57SMacpaul Lin                regulator-name = "vemc3v3";
3596e357f57SMacpaul Lin                regulator-min-microvolt = <3000000>;
3606e357f57SMacpaul Lin                regulator-max-microvolt = <3300000>;
3616e357f57SMacpaul Lin                regulator-enable-ramp-delay = <36>;
3626e357f57SMacpaul Lin                regulator-boot-on;
3636e357f57SMacpaul Lin            };
3646e357f57SMacpaul Lin
3656e357f57SMacpaul Lin            ldo_vgp1 {
3666e357f57SMacpaul Lin                regulator-name = "vgp1";
3676e357f57SMacpaul Lin                regulator-min-microvolt = <1200000>;
3686e357f57SMacpaul Lin                regulator-max-microvolt = <3300000>;
3696e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
3706e357f57SMacpaul Lin            };
3716e357f57SMacpaul Lin
3726e357f57SMacpaul Lin            ldo_vgp2 {
3736e357f57SMacpaul Lin                regulator-name = "vgp2";
3746e357f57SMacpaul Lin                regulator-min-microvolt = <1200000>;
3756e357f57SMacpaul Lin                regulator-max-microvolt = <3000000>;
3766e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
3776e357f57SMacpaul Lin            };
3786e357f57SMacpaul Lin
3796e357f57SMacpaul Lin            ldo_vgp3 {
3806e357f57SMacpaul Lin                regulator-name = "vgp3";
3816e357f57SMacpaul Lin                regulator-min-microvolt = <1200000>;
3826e357f57SMacpaul Lin                regulator-max-microvolt = <1800000>;
3836e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
3846e357f57SMacpaul Lin            };
3856e357f57SMacpaul Lin
3866e357f57SMacpaul Lin            ldo_vcn18 {
3876e357f57SMacpaul Lin                regulator-name = "vcn18";
3886e357f57SMacpaul Lin                regulator-min-microvolt = <1800000>;
3896e357f57SMacpaul Lin                regulator-max-microvolt = <1800000>;
3906e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
3916e357f57SMacpaul Lin            };
3926e357f57SMacpaul Lin
3936e357f57SMacpaul Lin            ldo_vsim1 {
3946e357f57SMacpaul Lin                regulator-name = "vsim1";
3956e357f57SMacpaul Lin                regulator-min-microvolt = <1800000>;
3966e357f57SMacpaul Lin                regulator-max-microvolt = <3000000>;
3976e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
3986e357f57SMacpaul Lin            };
3996e357f57SMacpaul Lin
4006e357f57SMacpaul Lin            ldo_vsim2 {
4016e357f57SMacpaul Lin                regulator-name = "vsim2";
4026e357f57SMacpaul Lin                regulator-min-microvolt = <1800000>;
4036e357f57SMacpaul Lin                regulator-max-microvolt = <3000000>;
4046e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
4056e357f57SMacpaul Lin            };
4066e357f57SMacpaul Lin
4076e357f57SMacpaul Lin            ldo_vrtc {
4086e357f57SMacpaul Lin                regulator-name = "vrtc";
4096e357f57SMacpaul Lin                regulator-min-microvolt = <2800000>;
4106e357f57SMacpaul Lin                regulator-max-microvolt = <2800000>;
4116e357f57SMacpaul Lin                regulator-always-on;
4126e357f57SMacpaul Lin                regulator-boot-on;
4136e357f57SMacpaul Lin            };
4146e357f57SMacpaul Lin
4156e357f57SMacpaul Lin            ldo_vcamaf {
4166e357f57SMacpaul Lin                regulator-name = "vcamaf";
4176e357f57SMacpaul Lin                regulator-min-microvolt = <1200000>;
4186e357f57SMacpaul Lin                regulator-max-microvolt = <3300000>;
4196e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
4206e357f57SMacpaul Lin            };
4216e357f57SMacpaul Lin
4226e357f57SMacpaul Lin            ldo_vibr {
4236e357f57SMacpaul Lin                regulator-name = "vibr";
4246e357f57SMacpaul Lin                regulator-min-microvolt = <1200000>;
4256e357f57SMacpaul Lin                regulator-max-microvolt = <3300000>;
4266e357f57SMacpaul Lin                regulator-enable-ramp-delay = <36>;
4276e357f57SMacpaul Lin            };
4286e357f57SMacpaul Lin
4296e357f57SMacpaul Lin            ldo_vrf18 {
4306e357f57SMacpaul Lin                regulator-name = "vrf18";
4316e357f57SMacpaul Lin                regulator-min-microvolt = <1825000>;
4326e357f57SMacpaul Lin                regulator-max-microvolt = <1825000>;
4336e357f57SMacpaul Lin                regulator-enable-ramp-delay = <187>;
4346e357f57SMacpaul Lin            };
4356e357f57SMacpaul Lin
4366e357f57SMacpaul Lin            ldo_vm {
4376e357f57SMacpaul Lin                regulator-name = "vm";
4386e357f57SMacpaul Lin                regulator-min-microvolt = <1200000>;
4396e357f57SMacpaul Lin                regulator-max-microvolt = <1800000>;
4406e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
4416e357f57SMacpaul Lin                regulator-always-on;
4426e357f57SMacpaul Lin                regulator-boot-on;
4436e357f57SMacpaul Lin            };
4446e357f57SMacpaul Lin
4456e357f57SMacpaul Lin            ldo_vio18 {
4466e357f57SMacpaul Lin                regulator-name = "vio18";
4476e357f57SMacpaul Lin                regulator-min-microvolt = <1800000>;
4486e357f57SMacpaul Lin                regulator-max-microvolt = <1800000>;
4496e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
4506e357f57SMacpaul Lin                regulator-always-on;
4516e357f57SMacpaul Lin                regulator-boot-on;
4526e357f57SMacpaul Lin            };
4536e357f57SMacpaul Lin
4546e357f57SMacpaul Lin           ldo_vcamd {
4556e357f57SMacpaul Lin                regulator-name = "vcamd";
4566e357f57SMacpaul Lin                regulator-min-microvolt = <1200000>;
4576e357f57SMacpaul Lin                regulator-max-microvolt = <1800000>;
4586e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
4596e357f57SMacpaul Lin            };
4606e357f57SMacpaul Lin
4616e357f57SMacpaul Lin            ldo_vcamio {
4626e357f57SMacpaul Lin                regulator-name = "vcamio";
4636e357f57SMacpaul Lin                regulator-min-microvolt = <1800000>;
4646e357f57SMacpaul Lin                regulator-max-microvolt = <1800000>;
4656e357f57SMacpaul Lin                regulator-enable-ramp-delay = <216>;
4666e357f57SMacpaul Lin            };
4676e357f57SMacpaul Lin        };
4686e357f57SMacpaul Lin
4696e357f57SMacpaul Lin        keys {
4706e357f57SMacpaul Lin            compatible = "mediatek,mt6323-keys";
4716e357f57SMacpaul Lin            mediatek,long-press-mode = <1>;
4726e357f57SMacpaul Lin            power-off-time-sec = <0>;
4736e357f57SMacpaul Lin
4746e357f57SMacpaul Lin            power {
4756e357f57SMacpaul Lin                linux,keycodes = <116>;
4766e357f57SMacpaul Lin                wakeup-source;
4776e357f57SMacpaul Lin            };
4786e357f57SMacpaul Lin
4796e357f57SMacpaul Lin            home {
4806e357f57SMacpaul Lin                linux,keycodes = <114>;
4816e357f57SMacpaul Lin            };
4826e357f57SMacpaul Lin        };
4836e357f57SMacpaul Lin
4846e357f57SMacpaul Lin        power-controller {
4856e357f57SMacpaul Lin            compatible = "mediatek,mt6323-pwrc";
4866e357f57SMacpaul Lin            #power-domain-cells = <0>;
4876e357f57SMacpaul Lin        };
4886e357f57SMacpaul Lin
4896e357f57SMacpaul Lin        rtc {
4906e357f57SMacpaul Lin            compatible = "mediatek,mt6323-rtc";
4916e357f57SMacpaul Lin        };
4926e357f57SMacpaul Lin    };
4936e357f57SMacpaul Lin
4946e357f57SMacpaul Lin  - |
4956e357f57SMacpaul Lin    #include <dt-bindings/input/input.h>
4966e357f57SMacpaul Lin    #include <dt-bindings/interrupt-controller/arm-gic.h>
4976e357f57SMacpaul Lin
4986e357f57SMacpaul Lin    pmic {
4996e357f57SMacpaul Lin        compatible = "mediatek,mt6358";
5006e357f57SMacpaul Lin        interrupt-controller;
5016e357f57SMacpaul Lin        #interrupt-cells = <2>;
5026e357f57SMacpaul Lin
5036e357f57SMacpaul Lin        audio-codec {
5046e357f57SMacpaul Lin            compatible = "mediatek,mt6358-sound";
5056e357f57SMacpaul Lin            Avdd-supply = <&mt6358_vaud28_reg>;
5066e357f57SMacpaul Lin            mediatek,dmic-mode = <0>;
5076e357f57SMacpaul Lin        };
5086e357f57SMacpaul Lin
5096e357f57SMacpaul Lin        regulators {
5106e357f57SMacpaul Lin            compatible = "mediatek,mt6358-regulator";
5116e357f57SMacpaul Lin
5126e357f57SMacpaul Lin            buck_vdram1 {
5136e357f57SMacpaul Lin                regulator-name = "vdram1";
5146e357f57SMacpaul Lin                regulator-min-microvolt = <500000>;
5156e357f57SMacpaul Lin                regulator-max-microvolt = <2087500>;
5166e357f57SMacpaul Lin                regulator-ramp-delay = <12500>;
5176e357f57SMacpaul Lin                regulator-enable-ramp-delay = <0>;
5186e357f57SMacpaul Lin                regulator-always-on;
5196e357f57SMacpaul Lin                regulator-allowed-modes = <0 1>;
5206e357f57SMacpaul Lin            };
5216e357f57SMacpaul Lin
5226e357f57SMacpaul Lin            // ...
5236e357f57SMacpaul Lin
5246e357f57SMacpaul Lin            ldo_vsim2 {
5256e357f57SMacpaul Lin                regulator-name = "vsim2";
5266e357f57SMacpaul Lin                regulator-min-microvolt = <1700000>;
5276e357f57SMacpaul Lin                regulator-max-microvolt = <3100000>;
5286e357f57SMacpaul Lin                regulator-enable-ramp-delay = <540>;
5296e357f57SMacpaul Lin            };
5306e357f57SMacpaul Lin        };
5316e357f57SMacpaul Lin
5326e357f57SMacpaul Lin        rtc {
5336e357f57SMacpaul Lin            compatible = "mediatek,mt6358-rtc";
5346e357f57SMacpaul Lin        };
5356e357f57SMacpaul Lin
5366e357f57SMacpaul Lin        keys {
5376e357f57SMacpaul Lin            compatible = "mediatek,mt6358-keys";
5386e357f57SMacpaul Lin
5396e357f57SMacpaul Lin            power {
5406e357f57SMacpaul Lin                linux,keycodes = <KEY_POWER>;
5416e357f57SMacpaul Lin                wakeup-source;
5426e357f57SMacpaul Lin            };
5436e357f57SMacpaul Lin
5446e357f57SMacpaul Lin            home {
5456e357f57SMacpaul Lin                linux,keycodes = <KEY_HOME>;
5466e357f57SMacpaul Lin            };
5476e357f57SMacpaul Lin        };
5486e357f57SMacpaul Lin    };
5496e357f57SMacpaul Lin
5506e357f57SMacpaul Lin  - |
5516e357f57SMacpaul Lin    #include <dt-bindings/interrupt-controller/arm-gic.h>
5526e357f57SMacpaul Lin
5536e357f57SMacpaul Lin    pmic {
5546e357f57SMacpaul Lin        compatible = "mediatek,mt6397";
5556e357f57SMacpaul Lin
5566e357f57SMacpaul Lin        interrupt-parent = <&pio>;
5576e357f57SMacpaul Lin        interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
5586e357f57SMacpaul Lin        interrupt-controller;
5596e357f57SMacpaul Lin        #interrupt-cells = <2>;
5606e357f57SMacpaul Lin
5616e357f57SMacpaul Lin        audio-codec {
5626e357f57SMacpaul Lin            compatible = "mediatek,mt6397-codec";
5636e357f57SMacpaul Lin        };
5646e357f57SMacpaul Lin
5656e357f57SMacpaul Lin        clocks {
5666e357f57SMacpaul Lin            compatible = "mediatek,mt6397-clk";
5676e357f57SMacpaul Lin            #clock-cells = <1>;
5686e357f57SMacpaul Lin        };
5696e357f57SMacpaul Lin
5706e357f57SMacpaul Lin        pinctrl {
5716e357f57SMacpaul Lin            compatible = "mediatek,mt6397-pinctrl";
5726e357f57SMacpaul Lin            gpio-controller;
5736e357f57SMacpaul Lin            #gpio-cells = <2>;
5746e357f57SMacpaul Lin        };
5756e357f57SMacpaul Lin
5766e357f57SMacpaul Lin        regulators {
5776e357f57SMacpaul Lin            compatible = "mediatek,mt6397-regulator";
5786e357f57SMacpaul Lin
5796e357f57SMacpaul Lin            buck_vpca15 {
5806e357f57SMacpaul Lin                regulator-name = "vpca15";
5816e357f57SMacpaul Lin                regulator-min-microvolt = < 850000>;
5826e357f57SMacpaul Lin                regulator-max-microvolt = <1350000>;
5836e357f57SMacpaul Lin                regulator-ramp-delay = <12500>;
5846e357f57SMacpaul Lin                regulator-enable-ramp-delay = <200>;
5856e357f57SMacpaul Lin            };
5866e357f57SMacpaul Lin
5876e357f57SMacpaul Lin            // ...
5886e357f57SMacpaul Lin
5896e357f57SMacpaul Lin            ldo_vibr {
5906e357f57SMacpaul Lin                regulator-name = "vibr";
5916e357f57SMacpaul Lin                regulator-min-microvolt = <1200000>;
5926e357f57SMacpaul Lin                regulator-max-microvolt = <3300000>;
5936e357f57SMacpaul Lin                regulator-enable-ramp-delay = <218>;
5946e357f57SMacpaul Lin            };
5956e357f57SMacpaul Lin        };
5966e357f57SMacpaul Lin
5976e357f57SMacpaul Lin        rtc {
5986e357f57SMacpaul Lin            compatible = "mediatek,mt6397-rtc";
5996e357f57SMacpaul Lin        };
6006e357f57SMacpaul Lin    };
601