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

		pmic_adc: adc {
			compatible = "mediatek,mt6357-auxadc";
			#io-channel-cells = <1>;
		};

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

		};
	};
};
