#include "qcom-apq8064-v2.0.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
/ {
	model = "Asus Nexus7(flo)";
	compatible = "asus,nexus7-flo", "qcom,apq8064";

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

	chosen {
		stdout-path = "serial0:115200n8";
	};

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

	gpio-keys {
		compatible = "gpio-keys";
		volume_up {
			label = "Volume Up";
			gpios = <&pm8921_gpio 4 GPIO_ACTIVE_HIGH>;
			linux,code = <KEY_VOLUMEUP>;
		};
		volume_down {
			label = "Volume Down";
			gpios = <&pm8921_gpio 38 GPIO_ACTIVE_HIGH>;
			linux,code = <KEY_VOLUMEDOWN>;
		};
	};

	soc {
		rpm@108000 {
			regulators {
				vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
				vin_lvs1_3_6-supply = <&pm8921_s4>;
				vin_lvs4_5_7-supply = <&pm8921_s4>;


				vdd_l24-supply = <&pm8921_s1>;
				vdd_l25-supply = <&pm8921_s1>;
				vin_lvs2-supply = <&pm8921_s1>;

				vdd_l26-supply = <&pm8921_s7>;
				vdd_l27-supply = <&pm8921_s7>;
				vdd_l28-supply = <&pm8921_s7>;

				vdd_ncp-supply = <&pm8921_l6>;

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

				/* msm otg HSUSB_VDDCX */
				s3 {
					regulator-min-microvolt = <500000>;
					regulator-max-microvolt = <1150000>;
					qcom,switch-mode-frequency = <4800000>;
				};

				/*
				 * msm_sdcc.1-sdc-vdd_io
				 * tabla2x-slim-CDC_VDDA_RX
				 * tabla2x-slim-CDC_VDDA_TX
				 * tabla2x-slim-CDC_VDD_CP
				 * tabla2x-slim-VDDIO_CDC
				 */
				s4 {
					regulator-min-microvolt	= <1800000>;
					regulator-max-microvolt	= <1800000>;
					qcom,switch-mode-frequency = <3200000>;
					regulator-always-on;
				};

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

				/* mipi_dsi.1-dsi1_pll_vdda */
				l2 {
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
				};

				/* msm_otg-HSUSB_3p3 */
				l3 {
					regulator-min-microvolt = <3075000>;
					regulator-max-microvolt = <3075000>;
					bias-pull-down;
				};

				/* msm_otg-HSUSB_1p8 */
				l4 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					bias-pull-down;
				};

				/* msm_sdcc.1-sdc_vdd */
				l5 {
					regulator-min-microvolt = <2950000>;
					regulator-max-microvolt = <2950000>;
					regulator-always-on;
					bias-pull-down;
				};

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

				/* mipi_dsi.1-dsi1_avdd */
				l11 {
					regulator-min-microvolt = <3000000>;
					regulator-max-microvolt = <3000000>;
					bias-pull-down;
				};

				/* pwm_power for backlight */
				l17 {
					regulator-min-microvolt = <3000000>;
					regulator-max-microvolt = <3600000>;
					bias-pull-down;
				};

				/* camera, qdsp6 */
				l23 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					bias-pull-down;
				};

				/*
				 * tabla2x-slim-CDC_VDDA_A_1P2V
				 * tabla2x-slim-VDDD_CDC_D
				 */
				l25 {
					regulator-min-microvolt = <1250000>;
					regulator-max-microvolt = <1250000>;
					bias-pull-down;
				};

				lvs1 {
					bias-pull-down;
				};

				lvs4 {
					bias-pull-down;
				};

				lvs5 {
					bias-pull-down;
				};

				lvs6 {
					bias-pull-down;
				};
				/*
				 * mipi_dsi.1-dsi1_vddio
				 * pil_riva-pll_vdd
				 */
				lvs7 {
					bias-pull-down;
				};
			};
		};

		gsbi@16200000 {
			status = "okay";
			qcom,mode = <GSBI_PROT_I2C>;
			i2c@16280000 {
				status = "okay";
				clock-frequency = <200000>;
				pinctrl-0 = <&i2c3_pins>;
				pinctrl-names = "default";

				trackpad@10 {
					compatible = "elan,ekth3500";
					reg = <0x10>;
					interrupt-parent = <&tlmm_pinmux>;
					interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
				};
			};
		};


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

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

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

				bq27541@55 {
					compatible = "ti,bq27541";
					reg = <0x55>;
				};

			};
		};

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

			serial@16540000 {
				status = "ok";

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

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

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

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

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

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

		imem@2a03f000 {
			compatible = "syscon", "simple-mfd";
			reg = <0x2a03f000 0x1000>;

			reboot-mode {
				compatible = "syscon-reboot-mode";
				offset = <0x65c>;

				mode-normal	= <0x77665501>;
				mode-bootloader	= <0x77665500>;
				mode-recovery	= <0x77665502>;
			};
		};
	};
};
