#include "qcom-apq8064-v2.0.dtsi"
#include "qcom-apq8064-arrow-sd-600eval-pins.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/mfd/qcom-rpm.h>

/ {
	model = "Arrow Electronics, APQ8064 SD_600eval";
	compatible = "arrow,sd_600eval", "qcom,apq8064";

	aliases {
		serial0 = &gsbi7_serial;
		serial1 = &gsbi1_serial;
		i2c0 = &gsbi2_i2c;
		i2c1 = &gsbi3_i2c;
		i2c2 = &gsbi4_i2c;
		i2c3 = &gsbi7_i2c;
		spi0 = &gsbi5_spi;
	};

	regulators {
		compatible = "simple-bus";
		vph: regulator-fixed@1 {
			compatible = "regulator-fixed";
			regulator-min-microvolt = <4500000>;
			regulator-max-microvolt = <4500000>;
			regulator-name = "VPH";
			regulator-type = "voltage";
			regulator-boot-on;
		};

		/* on board fixed 3.3v supply */
		vcc3v3: vcc3v3 {
			compatible = "regulator-fixed";
			regulator-name = "VCC3V3";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			regulator-always-on;
		};

	};

	soc {
		rpm@108000 {
			regulators {
				vdd_s1-supply = <&vph>;
				vdd_s2-supply = <&vph>;
				vdd_s3-supply = <&vph>;
				vdd_s4-supply = <&vph>;
				vdd_s5-supply = <&vph>;
				vdd_s6-supply = <&vph>;
				vdd_s7-supply = <&vph>;
				vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
				vdd_l3_l15_l17-supply = <&vph>;
				vdd_l4_l14-supply = <&vph>;
				vdd_l5_l8_l16-supply = <&vph>;
				vdd_l6_l7-supply = <&vph>;
				vdd_l9_l11-supply = <&vph>;
				vdd_l10_l22-supply = <&vph>;
				vdd_l21_l23_l29-supply = <&vph>;
				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>;
				vin_lvs1_3_6-supply = <&pm8921_s4>;
				vin_lvs2-supply = <&pm8921_s1>;
				vin_lvs4_5_7-supply = <&pm8921_s4>;

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

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

				s4 {
					regulator-min-microvolt	= <1800000>;
					regulator-max-microvolt	= <1800000>;
					qcom,switch-mode-frequency = <1600000>;
					qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
					bias-pull-down;
					regulator-always-on;
				};

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

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

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

				l5 {
					regulator-min-microvolt = <2750000>;
					regulator-max-microvolt = <3000000>;
					bias-pull-down;
					regulator-boot-on;
					regulator-always-on;
				};

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

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

				lvs6 {
					bias-pull-down;
				};

				lvs7 {
					bias-pull-down;
				};
			};
		};

		gsbi@12440000 {
			status = "okay";
			qcom,mode = <GSBI_PROT_UART_W_FC>;
			serial@12450000 {
				label = "LS-UART1";
				status = "okay";
				pinctrl-names = "default";
				pinctrl-0 = <&gsbi1_uart_4pins>;
			};
		};

		gsbi@12480000 {
			status = "okay";
			qcom,mode = <GSBI_PROT_I2C>;
			i2c@124a0000 {
				/* On Low speed expansion and Sensors */
				label = "LS-I2C0";
				status = "okay";
				lis3mdl_mag@1e {
					compatible = "st,lis3mdl-magn";
					reg = <0x1e>;
					vdd-supply = <&vcc3v3>;
					vddio-supply = <&pm8921_s4>;
					pinctrl-names = "default";
					pinctrl-0 = <&magneto_pins>;
					interrupt-parent = <&tlmm_pinmux>;

					st,drdy-int-pin = <2>;
					interrupts = <48 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
						     <31 IRQ_TYPE_EDGE_RISING>; /* INT */
				};
			};
		};

		gsbi@16200000 {
			status = "okay";
			qcom,mode = <GSBI_PROT_I2C>;
			i2c@16280000 {
			/* On Low speed expansion */
				status = "okay";
				label = "LS-I2C1";
				clock-frequency = <200000>;
				eeprom@52 {
					compatible = "atmel,24c128";
					reg = <0x52>;
					pagesize = <64>;
				};
			};
		};

		gsbi@16300000 {
			status = "okay";
			qcom,mode = <GSBI_PROT_I2C>;
			i2c@16380000 {
				/* On High speed expansion */
				label = "HS-CAM-I2C3";
				status = "okay";
			};
		};

		gsbi@1a200000 {
			status = "okay";
			spi@1a280000 {
				/* On Low speed expansion */
				label = "LS-SPI0";
				status = "okay";
			};
		};

		/* DEBUG UART  */
		gsbi@16600000 {
			status = "okay";
			qcom,mode = <GSBI_PROT_I2C_UART>;
			serial@16640000 {
				label = "LS-UART0";
				status = "okay";
				pinctrl-names = "default";
				pinctrl-0 = <&gsbi7_uart_2pins>;
			};

			i2c@16680000 {
				/* On High speed expansion */
				status = "okay";
				label = "HS-CAM-I2C2";
			};
		};

		leds {
			pinctrl-names = "default";
			pinctrl-0 = <&user_leds>, <&mpp_leds>;

			compatible = "gpio-leds";

			user-led0 {
				label = "user0-led";
				gpios = <&tlmm_pinmux 3 GPIO_ACTIVE_HIGH>;
				linux,default-trigger = "heartbeat";
				default-state = "off";
			};

			user-led1 {
				label = "user1-led";
				gpios = <&tlmm_pinmux 7 GPIO_ACTIVE_HIGH>;
				linux,default-trigger = "mmc0";
				default-state = "off";
			};

			user-led2 {
				label = "user2-led";
				gpios = <&tlmm_pinmux 10 GPIO_ACTIVE_HIGH>;
				linux,default-trigger = "mmc1";
				default-state = "off";
			};

			user-led3 {
				label = "user3-led";
				gpios = <&tlmm_pinmux 11 GPIO_ACTIVE_HIGH>;
				linux,default-trigger = "none";
				default-state = "off";
			};

			wifi-led {
				label = "WiFi-led";
				gpios = <&pm8921_mpps 7 GPIO_ACTIVE_HIGH>;
				default-state = "off";
			};

			bt-led {
				label = "BT-led";
				gpios = <&pm8921_mpps 8 GPIO_ACTIVE_HIGH>;
				default-state = "off";
			};
		};

		pci@1b500000 {
			status = "okay";
			vdda-supply = <&pm8921_s3>;
			vdda_phy-supply = <&pm8921_lvs6>;
			vdda_refclk-supply = <&vcc3v3>;
			pinctrl-0 = <&pcie_pins>;
			pinctrl-names = "default";
			perst-gpio = <&tlmm_pinmux 27 GPIO_ACTIVE_LOW>;
		};

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

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

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

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

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

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

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

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

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

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

			/* External micro SD card */
			sdcc@12180000 {
				status = "okay";
				vmmc-supply = <&pm8921_l6>;
				pinctrl-names	= "default";
				pinctrl-0	= <&card_detect>;
				cd-gpios	= <&tlmm_pinmux 26 GPIO_ACTIVE_HIGH>;
			};
		};
	};
};
