diff --git a/Documentation/devicetree/bindings/mfd/mt6397.txt b/Documentation/devicetree/bindings/mfd/mt6397.txt
index 522a3bb..42a6f21 100644
--- a/Documentation/devicetree/bindings/mfd/mt6397.txt
+++ b/Documentation/devicetree/bindings/mfd/mt6397.txt
@@ -1,6 +1,6 @@
-MediaTek MT6397/MT6323 Multifunction Device Driver
+MediaTek MT6397/MT6351/MT6323 Multifunction Device Driver
 
-MT6397/MT6323 is a multifunction device with the following sub modules:
+MT6397/MT6351/MT6323 is a multifunction device with the following sub modules:
 - Regulator
 - RTC
 - Audio codec
@@ -9,14 +9,14 @@ MT6397/MT6323 is a multifunction device with the following sub modules:
 - LED
 
 It is interfaced to host controller using SPI interface by a proprietary hardware
-called PMIC wrapper or pwrap. MT6397/MT6323 MFD is a child device of pwrap.
+called PMIC wrapper or pwrap. MT6397/MT6351/MT6323 MFD is a child device of pwrap.
 See the following for pwarp node definitions:
 Documentation/devicetree/bindings/soc/pwrap.txt
 
 This document describes the binding for MFD device and its sub module.
 
 Required properties:
-compatible: "mediatek,mt6397" or "mediatek,mt6323"
+compatible: "mediatek,mt6397" or "mediatek,mt6323" or "mediatek,mt6351"
 
 Optional subnodes:
 
@@ -27,6 +27,8 @@ Optional subnodes:
 	Required properties:
 		- compatible: "mediatek,mt6397-regulator"
 	see Documentation/devicetree/bindings/regulator/mt6397-regulator.txt
+		- compatible: "mediatek,mt6351-regulator"
+	see Documentation/devicetree/bindings/regulator/mt6351-regulator.txt
 		- compatible: "mediatek,mt6323-regulator"
 	see Documentation/devicetree/bindings/regulator/mt6323-regulator.txt
 - codec
diff --git a/Documentation/devicetree/bindings/regulator/mt6351-regulator.txt b/Documentation/devicetree/bindings/regulator/mt6351-regulator.txt
new file mode 100644
index 0000000..2f3f9a4
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/mt6351-regulator.txt
@@ -0,0 +1,347 @@
+Mediatek MT6351 Regulator Driver
+
+Required properties:
+- compatible: "mediatek,mt6351-regulator"
+- mt6351regulator: List of regulators provided by this controller. It is named
+  according to its regulator type, buck_<name> and ldo_<name>.
+  The definition for each of these nodes is defined using the standard binding
+  for regulators at Documentation/devicetree/bindings/regulator/regulator.txt.
+
+The valid names for regulators are::
+BUCK:
+  buck_vcore, buck_vgpu, buck_vmodem, buck_vmd1, buck_vsram_md,
+  buck_vs1, buck_vs2, buck_vpa, buck_vsram_proc
+LDO:
+  ldo_va18, ldo_vtcxo24, ldo_vtcxo28, ldo_vcn28, ldo_vcama,
+  ldo_vusb33, ldo_vsim1, ldo_vsim2, ldo_vemc_3v3, ldo_vmch,
+  ldo_vio28, ldo_vibr, ldo_vcamd, ldo_vrf18, ldo_vio18,
+  ldo_vcn18, ldo_vcamio, ldo_vxo22, ldo_vrf12, ldo_va10,
+  ldo_vdram, ldo_vmipi, ldo_vgp3, ldo_vbif28, ldo_vefuse,
+  ldo_vcn33_bt, ldo_vcn33_wifi, ldo_vldo28, ldo_vmc,
+  ldo_vldo28_0, ldo_vldo28_1
+
+Example:
+	pmic {
+		compatible = "mediatek,mt6351";
+
+		mt6351regulator: mt6351regulator {
+			compatible = "mediatek,mt6351-regulator";
+
+			mt6351_vcore_reg: buck_vcore {
+				regulator-name = "buck_vcore";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <1393750>;
+				regulator-ramp-delay = <6250>;
+				regulator-enable-ramp-delay = <180>;
+			};
+
+			mt6351_vgpu_reg: buck_vgpu {
+				regulator-name = "buck_vgpu";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <1393750>;
+				regulator-ramp-delay = <6250>;
+				regulator-enable-ramp-delay = <180>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6351_vmodem_reg: buck_vmodem {
+				regulator-name = "buck_vmodem";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <1393750>;
+				regulator-ramp-delay = <6250>;
+				regulator-enable-ramp-delay = <180>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6351_vmd1_reg: buck_vmd1 {
+				regulator-name = "buck_vmd1";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <1393750>;
+				regulator-ramp-delay = <6250>;
+				regulator-enable-ramp-delay = <180>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6351_vsram_md_reg: buck_vsram_md {
+				regulator-name = "buck_vsram_md";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <1393750>;
+				regulator-ramp-delay = <6250>;
+				regulator-enable-ramp-delay = <180>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6351_vs1_reg: buck_vs1 {
+				regulator-name = "buck_vs1";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <1393750>;
+				regulator-ramp-delay = <6250>;
+				regulator-enable-ramp-delay = <180>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6351_vs2_reg: buck_vs2 {
+				regulator-name = "buck_vs2";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <1393750>;
+				regulator-ramp-delay = <6250>;
+				regulator-enable-ramp-delay = <180>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6351_vpa_reg: buck_vpa {
+				regulator-name = "buck_vpa";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <1393750>;
+				regulator-ramp-delay = <6250>;
+				regulator-enable-ramp-delay = <180>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6351_vsram_proc_reg: buck_vsram_proc {
+				regulator-name = "buck_vsram_proc";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <1393750>;
+				regulator-ramp-delay = <6250>;
+				regulator-enable-ramp-delay = <180>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			mt6351_va18_reg: ldo_va18 {
+				regulator-name = "ldo_va18";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <264>;
+				regulator-boot-on;
+			};
+
+			mt6351_vtcxo24_reg: ldo_vtcxo24 {
+				regulator-name = "ldo_vtcxo24";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <110>;
+				regulator-boot-on;
+			};
+
+			mt6351_vtcxo28_reg: ldo_vtcxo28 {
+				regulator-name = "ldo_vtcxo28";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <110>;
+			};
+
+			mt6351_vcn28_reg: ldo_vcn28 {
+				regulator-name = "ldo_vcn28";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+			mt6351_vcama_reg: ldo_vcama {
+				regulator-name = "ldo_vcama";
+				regulator-min-microvolt = <1500000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+			mt6351_vusb33_reg: ldo_vusb33 {
+				regulator-name = "ldo_vusb33";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <264>;
+				regulator-boot-on;
+			};
+
+			mt6351_vsim1_reg: ldo_vsim1 {
+				regulator-name = "ldo_vsim1";
+				regulator-min-microvolt = <1700000>;
+				regulator-max-microvolt = <3100000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+			mt6351_vsim2_reg: ldo_vsim2 {
+				regulator-name = "ldo_vsim2";
+				regulator-min-microvolt = <1700000>;
+				regulator-max-microvolt = <3100000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+			mt6351_vemc_reg: ldo_vemc_3v3 {
+				regulator-name = "ldo_vemc_3v3";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <44>;
+				regulator-boot-on;
+			};
+
+			mt6351_vmch_reg: ldo_vmch {
+				regulator-name = "ldo_vmch";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <44>;
+				regulator-boot-on;
+			};
+
+			mt6351_vio28_reg: ldo_vio28 {
+				regulator-name = "ldo_vio28";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <264>;
+				regulator-boot-on;
+			};
+
+			mt6351_vibr_reg: ldo_vibr {
+				regulator-name = "ldo_vibr";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <44>;
+			};
+
+			mt6351_vcamd_reg: ldo_vcamd {
+				regulator-name = "ldo_vcamd";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1210000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+			mt6351_vrf18_reg: ldo_vrf18 {
+				regulator-name = "ldo_vrf18";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1810000>;
+				regulator-enable-ramp-delay = <220>;
+			};
+
+			mt6351_vio18_reg: ldo_vio18 {
+				regulator-name = "ldo_vio18";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <264>;
+				regulator-boot-on;
+			};
+
+			mt6351_vcn18_reg: ldo_vcn18 {
+				regulator-name = "ldo_vcn18";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <44>;
+			};
+
+			mt6351_vcamio_reg: ldo_vcamio {
+				regulator-name = "ldo_vcamio";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <220>;
+			};
+
+			mt6351_vxo22_reg: ldo_vxo22 {
+				regulator-name = "ldo_vxo22";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <110>;
+				regulator-boot-on;
+			};
+
+			mt6351_vrf12_reg: ldo_vrf12 {
+				regulator-name = "ldo_vrf12";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-enable-ramp-delay = <220>;
+			};
+
+			mt6351_va10_reg: ldo_va10 {
+				regulator-name = "ldo_va10";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <264>;
+				regulator-boot-on;
+			};
+
+			mt6351_vdram_reg: ldo_vdram {
+				regulator-name = "ldo_vdram";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1210000>;
+				regulator-enable-ramp-delay = <264>;
+				regulator-boot-on;
+			};
+
+			mt6351_vmipi_reg: ldo_vmipi {
+				regulator-name = "ldo_vmipi";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+			mt6351_vgp3_reg: ldo_vgp3 {
+				regulator-name = "ldo_vgp3";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1810000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+			mt6351_vbif28_reg: ldo_vbif28 {
+				regulator-name = "ldo_vbif28";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+			mt6351_vefuse_reg: ldo_vefuse {
+				regulator-name = "ldo_vefuse";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <2200000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+			mt6351_vcn33_bt_reg: ldo_vcn33_bt {
+				regulator-name = "ldo_vcn33_bt";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3600000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+			mt6351_vcn33_wifi_reg: ldo_vcn33_wifi {
+				regulator-name = "ldo_vcn33_wifi";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3600000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+			mt6351_vldo28_reg: ldo_vldo28 {
+				regulator-name = "ldo_vldo28";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+			mt6351_vmc_reg: ldo_vmc {
+				regulator-name = "ldo_vmc";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-enable-ramp-delay = <44>;
+				regulator-boot-on;
+			};
+
+			mt6351_vldo28_0_reg: ldo_vldo28_0 {
+				regulator-name = "ldo_vldo28_0";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+			mt6351_vldo28_1_reg: ldo_vldo28_1 {
+				regulator-name = "ldo_vldo28_1";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-enable-ramp-delay = <264>;
+			};
+
+		};
+	};
