// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2017-2018 MediaTek Inc.
 * Author: John Crispin <john@phrozen.org>
 *	   Sean Wang <sean.wang@mediatek.com>
 *
 */

&pwrap {
	pmic: mt6323 {
		compatible = "mediatek,mt6323";
		interrupt-parent = <&pio>;
		interrupts = <150 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-controller;
		#interrupt-cells = <2>;

		mt6323_leds: leds {
			compatible = "mediatek,mt6323-led";
			#address-cells = <1>;
			#size-cells = <0>;
			status = "disabled";
		};

		mt6323regulator: mt6323regulator {
			compatible = "mediatek,mt6323-regulator";

			mt6323_vproc_reg: buck_vproc {
				regulator-name = "vproc";
				regulator-min-microvolt = < 700000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <12500>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vsys_reg: buck_vsys {
				regulator-name = "vsys";
				regulator-min-microvolt = <1400000>;
				regulator-max-microvolt = <2987500>;
				regulator-ramp-delay = <25000>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vpa_reg: buck_vpa {
				regulator-name = "vpa";
				regulator-min-microvolt = < 500000>;
				regulator-max-microvolt = <3650000>;
			};

			mt6323_vtcxo_reg: ldo_vtcxo {
				regulator-name = "vtcxo";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <90>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vcn28_reg: ldo_vcn28 {
				regulator-name = "vcn28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <185>;
			};

			mt6323_vcn33_bt_reg: ldo_vcn33_bt {
				regulator-name = "vcn33_bt";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3600000>;
				regulator-enable-ramp-delay = <185>;
			};

			mt6323_vcn33_wifi_reg: ldo_vcn33_wifi {
				regulator-name = "vcn33_wifi";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3600000>;
				regulator-enable-ramp-delay = <185>;
			};

			mt6323_va_reg: ldo_va {
				regulator-name = "va";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <216>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vcama_reg: ldo_vcama {
				regulator-name = "vcama";
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vio28_reg: ldo_vio28 {
				regulator-name = "vio28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <216>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vusb_reg: ldo_vusb {
				regulator-name = "vusb";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <216>;
				regulator-boot-on;
			};

			mt6323_vmc_reg: ldo_vmc {
				regulator-name = "vmc";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <36>;
				regulator-boot-on;
			};

			mt6323_vmch_reg: ldo_vmch {
				regulator-name = "vmch";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <36>;
				regulator-boot-on;
			};

			mt6323_vemc3v3_reg: ldo_vemc3v3 {
				regulator-name = "vemc3v3";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <36>;
				regulator-boot-on;
			};

			mt6323_vgp1_reg: ldo_vgp1 {
				regulator-name = "vgp1";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vgp2_reg: ldo_vgp2 {
				regulator-name = "vgp2";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3000000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vgp3_reg: ldo_vgp3 {
				regulator-name = "vgp3";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vcn18_reg: ldo_vcn18 {
				regulator-name = "vcn18";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vsim1_reg: ldo_vsim1 {
				regulator-name = "vsim1";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3000000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vsim2_reg: ldo_vsim2 {
				regulator-name = "vsim2";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3000000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vrtc_reg: ldo_vrtc {
				regulator-name = "vrtc";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vcamaf_reg: ldo_vcamaf {
				regulator-name = "vcamaf";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vibr_reg: ldo_vibr {
				regulator-name = "vibr";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <36>;
			};

			mt6323_vrf18_reg: ldo_vrf18 {
				regulator-name = "vrf18";
				regulator-min-microvolt = <1825000>;
				regulator-max-microvolt = <1825000>;
				regulator-enable-ramp-delay = <187>;
			};

			mt6323_vm_reg: ldo_vm {
				regulator-name = "vm";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <216>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vio18_reg: ldo_vio18 {
				regulator-name = "vio18";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <216>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vcamd_reg: ldo_vcamd {
				regulator-name = "vcamd";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vcamio_reg: ldo_vcamio {
				regulator-name = "vcamio";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <216>;
			};
		};

		mt6323keys: mt6323keys {
			compatible = "mediatek,mt6323-keys";
			mediatek,long-press-mode = <1>;
			power-off-time-sec = <0>;

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

			home {
				linux,keycodes = <114>;
			};
		};

		codec: mt6397codec {
			compatible = "mediatek,mt6397-codec";
		};

		power-controller {
			compatible = "mediatek,mt6323-pwrc";
		};

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