#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "cape-pmic-overlay.dtsi"
#include "waipio-thermal-overlay.dtsi"

&soc {
	gpio_keys {
		compatible = "gpio-keys";
		label = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&key_vol_up_default>;

		vol_up {
			label = "volume_up";
			gpios = <&pm8350_gpios 6 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			linux,code = <KEY_VOLUMEUP>;
			gpio-key,wakeup;
			debounce-interval = <15>;
			linux,can-disable;
		};
	};

	mtdoops_pmsg@0xa7000000 {
		compatible = "mtdoops_pmsg";
		reg = <0xa7000000 0x400000>;
		console-size = <0x200000>;
		pmsg-size = <0x200000>;
	};

	hardwareinfo {
		compatible = "xiaomi,hardware-info";
		status = "ok";
	};

};

&qupv3_se13_spi {
	status = "ok";
	ir-spi@0 {
		compatible = "ir-spi";
		reg = <0>;
		spi-max-frequency = <19200000>;
		status = "ok";
	};
};

&sdhc_2 {
	status = "ok";
	vdd-supply = <&L9C>;
	qcom,vdd-voltage-level = <2960000 2960000>;
	qcom,vdd-current-level = <0 800000>;

	vdd-io-supply = <&L6C>;
	qcom,vdd-io-voltage-level = <1800000 2960000>;
	qcom,vdd-io-current-level = <0 125000>;

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc2_on>;
	pinctrl-1 = <&sdc2_off>;

	cd-gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
};

&ufsphy_mem {
	compatible = "qcom,ufs-phy-qmp-v4-cape";

	vdda-phy-supply = <&L5B>;
	vdda-pll-supply = <&L10C>;
	vdda-phy-max-microamp = <197000>;
	vdda-pll-max-microamp = <23700>;

	status = "ok";
};

&ufshc_mem {
	vdd-hba-supply = <&gcc_ufs_phy_gdsc>;

	vcc-supply = <&L7B>;
	vcc-max-microamp = <1100000>;

	vccq-supply = <&L9B>;
	vccq-max-microamp = <1200000>;

	qcom,vddp-ref-clk-supply = <&L9B>;
	qcom,vddp-ref-clk-max-microamp = <100>;

	status = "ok";
};

&pm8350c_switch0 {
	qcom,led-mask = <9>; /* Channels 1 & 4 */
	qcom,symmetry-en;
};

&pm8350c_switch1 {
	qcom,led-mask = <6>; /* Channels 2 & 3 */
	qcom,symmetry-en;
};

&pm8350c_switch2 {
	qcom,led-mask = <15>; /* All Channels */
	qcom,symmetry-en;
};

&pm8350c_flash {
	status = "ok";
};

&battery_charger {
	qcom,thermal-mitigation = <3000000 1500000 1000000 500000>;
	qcom,wireless-fw-name = "idt9415.bin";
};

&qupv3_se9_i2c {
	status = "ok";
	qcom,clk-freq-out = <1000000>;
	#address-cells = <1>;
	#size-cells = <0>;
	nq@28 {
		compatible = "qcom,sn-nci";
		reg = <0x28>;
		qcom,sn-irq = <&tlmm 46 0x00>;
		qcom,sn-ven = <&tlmm 34 0x00>;
		qcom,sn-firm = <&tlmm 45 0x00>;
		qcom,sn-clkreq = <&tlmm 35 0x00>;
		qcom,sn-vdd-1p8-supply = <&S10B>;
		qcom,sn-vdd-1p8-voltage = <1800000 1800000>;
		qcom,sn-vdd-1p8-current = <157000>;
		interrupt-parent = <&tlmm>;
		interrupts = <46 0>;
		interrupt-names = "nfc_irq";
		pinctrl-names = "nfc_active", "nfc_suspend";
		pinctrl-0 = <&nfc_int_active &nfc_enable_active>;
		pinctrl-1 = <&nfc_int_suspend &nfc_enable_suspend>;
	};
};

&qupv3_se5_i2c {
	status = "ok";

	#address-cells = <1>;
	#size-cells = <0>;
	nxp_eusb2_repeater: eusb2_repeater@4f {
		compatible = "nxp,eusb2-repeater";
		reg = <0x4f>;
		vdd18-supply = <&S10B>;
		vdd3-supply = <&L2B>;
		reset-gpio = <&pm8350c_gpios 7 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&eusb2_reset_ctrl_default>;
		qcom,param-override-seq =
				/* Rx squelch detection threshold to 110mV; default is 125mV */
				<0x40 0x06
				/*
				 * Tx Deemphasis to 2dB, Tx Deemphasis bit duration to 0.8UI;
				 * default is 0 for both
				 */
				0x22 0x07
				/* Output Voltage Swing to 500mV; default is 450mV */
				0x63 0x08>;
	};
};

&eusb2_phy0 {
	dummy-supply = <&nxp_eusb2_repeater>;
	usb-repeater = <&nxp_eusb2_repeater>;
};

&usb0 {
	usb-role-switch;

	dwc3@a600000 {
		usb-role-switch;
	};

	port {
		usb_port0: endpoint {
			remote-endpoint = <&usb_port0_connector>;
		};
	};
};

&ucsi {
	connector {
		port {
			usb_port0_connector: endpoint {
				remote-endpoint = <&usb_port0>;
			};
		};
	};
};

&reserved_memory {
	#address-cells = <2>;
	#size-cells = <2>;
	ranges;

	ramoops@0xa7000000 {
	    compatible = "ramoops";
		reg = <0x0 0xa7000000 0x0 0x400000>;
		console-size = <0x200000>;
		pmsg-size = <0x200000>;
	};
};

&thermal_zones {
	pm8350b-bcl-lvl2 {
		cooling-maps {
			vbat_gpu2 {
				cooling-device = <&msm_gpu 9 9>;
			};
		};
	};

	pm8350c-bcl-lvl2 {
		cooling-maps {
			vph_gpu2 {
				cooling-device = <&msm_gpu 9 9>;
			};
		};
	};
};
