@@ -16,14 +16,18 @@ description:
properties:
compatible:
- const: mediatek,mt6358-regulator
+ oneOf:
+ - const: mediatek,mt6358-regulator
+ - items:
+ - const: mediatek,mt6366-regulator
+ - const: mediatek,mt6358-regulator
vsys-ldo1-supply:
description: Supply for LDOs vfe28, vxo22, vcn28, vaux18, vaud28, vsim1, vusb, vbif28
vsys-ldo2-supply:
- description: Supply for LDOs vldo28, vio28, vmc, vmch, vsim2
+ description: Supply for LDOs vldo28 (MT6358 only), vio28, vmc, vmch, vsim2
vsys-ldo3-supply:
- description: Supply for LDOs vcn33, vcama1, vcama2, vemc, vibr
+ description: Supply for LDOs vcn33, vcama[12] (MT6358 only), vemc, vibr
vsys-vcore-supply:
description: Supply for buck regulator vcore
vsys-vdram1-supply:
@@ -43,18 +47,20 @@ properties:
vsys-vs2-supply:
description: Supply for buck regulator vs2
vs1-ldo1-supply:
- description: Supply for LDOs vrf18, vefuse, vcn18, vcamio, vio18
+ description:
+ Supply for LDOs vrf18, vefuse, vcn18, vcamio (MT6358 only), vio18, vm18 (MT6366 only)
vs2-ldo1-supply:
- description: Supply for LDOs vdram2
+ description: Supply for LDOs vdram2, vmddr (MT6366 only)
vs2-ldo2-supply:
description: Supply for LDOs vrf12, va12
vs2-ldo3-supply:
- description: Supply for LDOs vsram-gpu, vsram-others, vsram-proc11, vsram-proc12
+ description:
+ Supply for LDOs vsram-core (MT6366 only), vsram-gpu, vsram-others, vsram-proc11, vsram-proc12
vs2-ldo4-supply:
description: Supply for LDO vcamd
patternProperties:
- "^buck_v(core|dram1|gpu|modem|pa|proc1[12]|s[12])$":
+ "^(buck_)?v(core|dram1|gpu|modem|pa|proc1[12]|s[12])$":
description: Buck regulators
type: object
$ref: regulator.yaml#
@@ -69,7 +75,7 @@ patternProperties:
enum: [0, 1]
unevaluatedProperties: false
- "^ldo_v(a|rf)12$":
+ "^(ldo_)?v(a|rf)12$":
description: LDOs with fixed 1.2V output and 0~100/10mV tuning
type: object
$ref: regulator.yaml#
@@ -77,15 +83,16 @@ patternProperties:
regulator-allowed-modes: false
unevaluatedProperties: false
- "^ldo_v((aux|cn|io|rf)18|camio)$":
- description: LDOs with fixed 1.8V output and 0~100/10mV tuning
+ "^(ldo_)?v((aux|cn|io|rf)18|camio)$":
+ description:
+ LDOs with fixed 1.8V output and 0~100/10mV tuning (vcn18 on MT6366 has variable output)
type: object
$ref: regulator.yaml#
properties:
regulator-allowed-modes: false
unevaluatedProperties: false
- "^ldo_vxo22$":
+ "^(ldo_)?vxo22$":
description: LDOs with fixed 2.2V output and 0~100/10mV tuning
type: object
$ref: regulator.yaml#
@@ -93,7 +100,7 @@ patternProperties:
regulator-allowed-modes: false
unevaluatedProperties: false
- "^ldo_v(aud|bif|cn|fe|io)28$":
+ "^(ldo_)?v(aud|bif|cn|fe|io)28$":
description: LDOs with fixed 2.8V output and 0~100/10mV tuning
type: object
$ref: regulator.yaml#
@@ -101,7 +108,7 @@ patternProperties:
regulator-allowed-modes: false
unevaluatedProperties: false
- "^ldo_vusb$":
+ "^(ldo_)?vusb$":
description: LDOs with fixed 3.0V output and 0~100/10mV tuning
type: object
$ref: regulator.yaml#
@@ -109,7 +116,7 @@ patternProperties:
regulator-allowed-modes: false
unevaluatedProperties: false
- "^ldo_vsram_(gpu|others|proc1[12])$":
+ "^(ldo_)?vsram[_-](core|gpu|others|proc1[12])$":
description: LDOs with variable output
type: object
$ref: regulator.yaml#
@@ -117,7 +124,7 @@ patternProperties:
regulator-allowed-modes: false
unevaluatedProperties: false
- "^ldo_v(cama[12]|camd|cn33|dram2|efuse|emc|ibr|ldo28|mc|mch|sim[12])$":
+ "^(ldo_)?v(cama[12]|camd|cn33|dram2|efuse|emc|ibr|ldo28|m18|mc|mch|mddr|sim[12])$":
description: LDOs with variable output and 0~100/10mV tuning
type: object
$ref: regulator.yaml#
@@ -130,11 +137,50 @@ required:
additionalProperties: false
+allOf:
+ - if:
+ properties:
+ compatible:
+ const: mediatek,mt6358-regulator
+ then:
+ patternProperties:
+ # Old regulator node name scheme (with prefix and underscores) only
+ # ([^y-] is used to avoid matching -supply
+ "^(?<!buck_)(?<!ldo_)v.*[^y-](?!-supply)$": false
+ "^ldo_vsram-": false
+ # vsram_core regulator doesn't exist on MT6358
+ "^ldo_vsram[-_]core$": false
+
+ properties:
+ # vm18 and vmddr regulators don't exist on MT6358
+ ldo_vm18: false
+ ldo_vmddr: false
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: mediatek,mt6366-regulator
+ then:
+ patternProperties:
+ # Prefer cleaned up regulator node names
+ "^(buck|ldo)_": false
+ # Don't allow underscores
+ "^vsram_": false
+ # vcam* regulators don't exist on MT6366
+ "^vcam": false
+
+ properties:
+ # vldo28 regulator doesn't exist on MT6366
+ vldo28: false
+ # vs2_ldo4 supply pin doesn't exist on MT6366
+ vs2-ldo4-supply: false
+
examples:
- |
#include <dt-bindings/regulator/mediatek,mt6397-regulator.h>
- regulator {
+ mt6358-regulator {
compatible = "mediatek,mt6358-regulator";
buck_vgpu {
@@ -156,4 +202,46 @@ examples:
};
};
+ mt6366-regulator {
+ compatible = "mediatek,mt6366-regulator", "mediatek,mt6358-regulator";
+
+ vdram1 {
+ regulator-name = "pp1125_emi_vdd2";
+ regulator-min-microvolt = <1125000>;
+ regulator-max-microvolt = <1125000>;
+ regulator-ramp-delay = <12500>;
+ regulator-enable-ramp-delay = <0>;
+ regulator-allowed-modes = <MT6397_BUCK_MODE_AUTO
+ MT6397_BUCK_MODE_FORCE_PWM>;
+ regulator-always-on;
+ };
+
+ vproc11 {
+ regulator-name = "ppvar_dvdd_proc_bc_mt6366";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-ramp-delay = <6250>;
+ regulator-enable-ramp-delay = <200>;
+ regulator-allowed-modes = <MT6397_BUCK_MODE_AUTO
+ MT6397_BUCK_MODE_FORCE_PWM>;
+ regulator-always-on;
+ };
+
+ vmddr {
+ regulator-name = "pm0750_emi_vmddr";
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <750000>;
+ regulator-enable-ramp-delay = <325>;
+ regulator-always-on;
+ };
+
+ vsram-proc11 {
+ regulator-name = "pp0900_dvdd_sram_bc";
+ regulator-min-microvolt = <850000>;
+ regulator-max-microvolt = <1120000>;
+ regulator-ramp-delay = <6250>;
+ regulator-enable-ramp-delay = <240>;
+ regulator-always-on;
+ };
+ };
...