#include "qcom-apq8064-v2.0.dtsi"
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Qualcomm APQ8064/IFC6410";
	compatible = "qcom,apq8064-ifc6410", "qcom,apq8064";

	aliases {
		serial0 = &gsbi7_serial;
		serial1 = &gsbi6_serial;
	};

	soc {
		pinctrl@800000 {
			card_detect: card_detect {
				mux {
					pins = "gpio26";
					function = "gpio";
					bias-disable;
				};
			};
		};

		rpm@108000 {
			regulators {
				vin_lvs1_3_6-supply = <&pm8921_s4>;
				vin_lvs2-supply = <&pm8921_s1>;
				vin_lvs4_5_7-supply = <&pm8921_s4>;

				vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
				vdd_l24-supply = <&pm8921_s1>;
				vdd_l25-supply = <&pm8921_s1>;
				vdd_l26-supply = <&pm8921_s7>;
				vdd_l27-supply = <&pm8921_s7>;
				vdd_l28-supply = <&pm8921_s7>;


				/* Buck SMPS */
				pm8921_s1: s1 {
					regulator-always-on;
					regulator-min-microvolt = <1225000>;
					regulator-max-microvolt = <1225000>;
					qcom,switch-mode-frequency = <3200000>;
					bias-pull-down;
				};

				pm8921_s3: s3 {
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1400000>;
					qcom,switch-mode-frequency = <4800000>;
				};

				pm8921_s4: s4 {
					regulator-min-microvolt	= <1800000>;
					regulator-max-microvolt	= <1800000>;
					qcom,switch-mode-frequency = <3200000>;
				};

				pm8921_s7: s7 {
					regulator-min-microvolt = <1300000>;
					regulator-max-microvolt = <1300000>;
					qcom,switch-mode-frequency = <3200000>;
				};

				pm8921_l3: l3 {
					regulator-min-microvolt = <3050000>;
					regulator-max-microvolt = <3300000>;
					bias-pull-down;
				};

				pm8921_l4: l4 {
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1800000>;
					bias-pull-down;
				};

				pm8921_l5: l5 {
					regulator-min-microvolt = <2750000>;
					regulator-max-microvolt = <3000000>;
					bias-pull-down;
				};

				pm8921_l6: l6 {
					regulator-min-microvolt = <2950000>;
					regulator-max-microvolt = <2950000>;
					bias-pull-down;
				};

				pm8921_l23: l23 {
					regulator-min-microvolt = <1700000>;
					regulator-max-microvolt = <1900000>;
					bias-pull-down;
				};

				pm8921_lvs1: lvs1 {
					bias-pull-down;
				};
			};
		};

		ext_3p3v: regulator-fixed@1 {
			compatible = "regulator-fixed";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			regulator-name = "ext_3p3v";
			regulator-type = "voltage";
			startup-delay-us = <0>;
			gpio = <&tlmm_pinmux 77 GPIO_ACTIVE_HIGH>;
			enable-active-high;
			regulator-boot-on;
		};

		gsbi3: gsbi@16200000 {
			status = "okay";
			qcom,mode = <GSBI_PROT_I2C>;
			i2c3: i2c@16280000 {
				status = "okay";
				pinctrl-0 = <&i2c3_pins>;
				pinctrl-names = "default";
			};
		};

		gsbi@12440000 {
			status = "okay";
			qcom,mode = <GSBI_PROT_I2C>;

			i2c@12460000 {
				status = "okay";
				clock-frequency = <200000>;
				pinctrl-0 = <&i2c1_pins>;
				pinctrl-names = "default";

				eeprom: eeprom@52 {
					compatible = "atmel,24c128";
					reg = <0x52>;
					pagesize = <32>;
				};
			};
		};

		gsbi@16500000 {
			status = "ok";
			qcom,mode = <GSBI_PROT_I2C_UART>;

			serial@16540000 {
				status = "ok";

				pinctrl-names = "default";
				pinctrl-0 = <&uart_pins>;
			};
		};

		gsbi@16600000 {
			status = "ok";
			qcom,mode = <GSBI_PROT_I2C_UART>;
			serial@16640000 {
				status = "ok";
			};
		};

		sata_phy0: phy@1b400000 {
			status = "okay";
		};

		sata0: sata@29000000 {
			status		= "okay";
			target-supply	= <&pm8921_s4>;
		};

		/* OTG */
		usb1_phy: phy@12500000 {
			status		= "okay";
			vddcx-supply	= <&pm8921_s3>;
			v3p3-supply	= <&pm8921_l3>;
			v1p8-supply	= <&pm8921_l4>;
		};

		usb3_phy: phy@12520000 {
			status		= "okay";
			vddcx-supply	= <&pm8921_s3>;
			v3p3-supply	= <&pm8921_l3>;
			v1p8-supply	= <&pm8921_l23>;
		};

		usb4_phy: phy@12530000 {
			status		= "okay";
			vddcx-supply	= <&pm8921_s3>;
			v3p3-supply	= <&pm8921_l3>;
			v1p8-supply	= <&pm8921_l23>;
		};

		gadget1: gadget@12500000 {
			status = "okay";
		};

		/* OTG */
		usb1: usb@12500000 {
			status = "okay";
		};

		usb3: usb@12520000 {
			status = "okay";
		};

		usb4: usb@12530000 {
			status = "okay";
		};

		amba {
			/* eMMC */
			sdcc1: sdcc@12400000 {
				status = "okay";
				vmmc-supply = <&pm8921_l5>;
				vqmmc-supply = <&pm8921_s4>;
			};

			/* External micro SD card */
			sdcc3: sdcc@12180000 {
				status = "okay";
				vmmc-supply = <&pm8921_l6>;
				pinctrl-names	= "default";
				pinctrl-0	= <&card_detect>;
				cd-gpios	= <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
			};
			/* WLAN */
			sdcc4: sdcc@121c0000 {
				status = "okay";
				vmmc-supply = <&ext_3p3v>;
				vqmmc-supply = <&pm8921_lvs1>;
			};
		};
	};
};
