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

		};
	};
};