// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright (c) 2020 MediaTek Inc.
 * Copyright (c) 2023 BayLibre Inc.
 */

#include <dt-bindings/input/input.h>

&pwrap {
	mt6357_pmic: pmic {
		compatible = "mediatek,mt6357";

		regulators {
			mt6357_vproc_reg: buck-vproc {
				regulator-name = "vproc";
				regulator-min-microvolt = <518750>;
				regulator-max-microvolt = <1312500>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <220>;
				regulator-always-on;
			};

			mt6357_vcore_reg: buck-vcore {
				regulator-name = "vcore";
				regulator-min-microvolt = <518750>;
				regulator-max-microvolt = <1312500>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <220>;
				regulator-always-on;
			};

			mt6357_vmodem_reg: buck-vmodem {
				regulator-name = "vmodem";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1193750>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <220>;
			};

			mt6357_vs1_reg: buck-vs1 {
				regulator-name = "vs1";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <2200000>;
				regulator-ramp-delay = <12500>;
				regulator-enable-ramp-delay = <220>;
				regulator-always-on;
			};

			mt6357_vpa_reg: buck-vpa {
				regulator-name = "vpa";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <3650000>;
				regulator-ramp-delay = <50000>;
				regulator-enable-ramp-delay = <220>;
			};

			mt6357_vfe28_reg: ldo-vfe28 {
				compatible = "regulator-fixed";
				regulator-name = "vfe28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vxo22_reg: ldo-vxo22 {
				regulator-name = "vxo22";
				regulator-min-microvolt = <2200000>;
				regulator-max-microvolt = <2400000>;
				regulator-enable-ramp-delay = <110>;
			};

			mt6357_vrf18_reg: ldo-vrf18 {
				compatible = "regulator-fixed";
				regulator-name = "vrf18";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <110>;
			};

			mt6357_vrf12_reg: ldo-vrf12 {
				compatible = "regulator-fixed";
				regulator-name = "vrf12";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-enable-ramp-delay = <110>;
			};

			mt6357_vefuse_reg: ldo-vefuse {
				regulator-name = "vefuse";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vcn33_bt_reg: ldo-vcn33-bt {
				regulator-name = "vcn33-bt";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3500000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vcn33_wifi_reg: ldo-vcn33-wifi {
				regulator-name = "vcn33-wifi";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3500000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vcn28_reg: ldo-vcn28 {
				compatible = "regulator-fixed";
				regulator-name = "vcn28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vcn18_reg: ldo-vcn18 {
				compatible = "regulator-fixed";
				regulator-name = "vcn18";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vcama_reg: ldo-vcama {
				regulator-name = "vcama";
				regulator-min-microvolt = <2500000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vcamd_reg: ldo-vcamd {
				regulator-name = "vcamd";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vcamio_reg: ldo-vcamio18 {
				compatible = "regulator-fixed";
				regulator-name = "vcamio";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vldo28_reg: ldo-vldo28 {
				regulator-name = "vldo28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <3000000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vsram_others_reg: ldo-vsram-others {
				regulator-name = "vsram-others";
				regulator-min-microvolt = <518750>;
				regulator-max-microvolt = <1312500>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <110>;
				regulator-always-on;
			};

			mt6357_vsram_proc_reg: ldo-vsram-proc {
				regulator-name = "vsram-proc";
				regulator-min-microvolt = <518750>;
				regulator-max-microvolt = <1312500>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <110>;
				regulator-always-on;
			};

			mt6357_vaux18_reg: ldo-vaux18 {
				compatible = "regulator-fixed";
				regulator-name = "vaux18";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vaud28_reg: ldo-vaud28 {
				compatible = "regulator-fixed";
				regulator-name = "vaud28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vio28_reg: ldo-vio28 {
				compatible = "regulator-fixed";
				regulator-name = "vio28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vio18_reg: ldo-vio18 {
				compatible = "regulator-fixed";
				regulator-name = "vio18";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <264>;
				regulator-always-on;
			};

			mt6357_vdram_reg: ldo-vdram {
				regulator-name = "vdram";
				regulator-min-microvolt = <1100000>;
				regulator-max-microvolt = <1200000>;
				regulator-enable-ramp-delay = <3300>;
			};

			mt6357_vmc_reg: ldo-vmc {
				regulator-name = "vmc";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <44>;
			};

			mt6357_vmch_reg: ldo-vmch {
				regulator-name = "vmch";
				regulator-min-microvolt = <2900000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <44>;
			};

			mt6357_vemc_reg: ldo-vemc {
				regulator-name = "vemc";
				regulator-min-microvolt = <2900000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <44>;
				regulator-always-on;
			};

			mt6357_vsim1_reg: ldo-vsim1 {
				regulator-name = "vsim1";
				regulator-min-microvolt = <1700000>;
				regulator-max-microvolt = <3100000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vsim2_reg: ldo-vsim2 {
				regulator-name = "vsim2";
				regulator-min-microvolt = <1700000>;
				regulator-max-microvolt = <3100000>;
				regulator-enable-ramp-delay = <264>;
			};

			mt6357_vibr_reg: ldo-vibr {
				regulator-name = "vibr";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <44>;
			};

			mt6357_vusb33_reg: ldo-vusb33 {
				regulator-name = "vusb33";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3100000>;
				regulator-enable-ramp-delay = <264>;
			};
		};

		rtc {
			compatible = "mediatek,mt6357-rtc";
		};

		keys {
			compatible = "mediatek,mt6357-keys";

			key-power {
				linux,keycodes = <KEY_POWER>;
				wakeup-source;
			};

			key-home {
				linux,keycodes = <KEY_HOME>;
				wakeup-source;
			};

		};
	};
};
