/*
 * Copyright (C) 2014 Nest Labs, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include "flintstone-common.dtsi"

/ {
	model = "NestLabs Flintstone Proto Board";
	compatible = "nestlabs,flintstone-proto", "fsl,imx6sx";

	aliases {
		serial-ble0 = &uart3;
		i2c0 = &i2c1;
		i2c1 = &i2c2;
		i2c2 = &i2c3;
		i2c3 = &i2c4;
	};

	memory {
		reg = <0x80000000 0x20000000>; /* 512 MB */
	};

	gpio-keys {
		compatible = "gpio-keys";

		eight-key {
			label = "Eight Key";
			gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
			linux,code = <9>; /* KEY_8 */
			gpio-key,wakeup;
		};

		panic-button {
			label = "Panic";
			gpios = <&gpio7 3 GPIO_ACTIVE_LOW>;
			linux,code = <63>; /* KEY_F5 */
			gpio-key,wakeup;
		};

	};

	brcm_wifi {
		reg = <0x0 0>;
		compatible = "nestlabs,gpio-exporter";
		output-names = "reset";
		output-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
	};

	brcm-wlan {
		compatible = "brcm,bcmdhd_wlan";
		interrupts-extended = <&gpio5 15 IRQ_TYPE_LEVEL_HIGH>;
	};

	air-gpios {
		reg = <0x0 0>;
		compatible = "nestlabs,gpio-exporter";
		input-names = "airdatagpio";
		input-gpios = <&gpio6 21 GPIO_ACTIVE_HIGH>;
		output-names = "airresetgpio", "airbootgpio";
		output-gpios = <&gpio6 16 GPIO_ACTIVE_HIGH &gpio6 20 GPIO_ACTIVE_HIGH>;
	};

	em35x-gpios {
		reg = <0x0 0>;
		compatible = "nestlabs,gpio-exporter";
		output-names = "reset", "wake";
		output-gpios = <&gpio2 0 GPIO_ACTIVE_HIGH
			 &gpio2 5 GPIO_ACTIVE_HIGH>;
		input-names = "irq";
		input-gpios = <&gpio2 4 GPIO_ACTIVE_HIGH>;
	};

	ble0-da14580-gpios {
		reg = <0x0 0>;
		compatible = "nestlabs,gpio-exporter";
		output-names = "reset";
		output-gpios = <&gpio5 16 GPIO_ACTIVE_HIGH>;
	};

	buzzer-gpios {
		reg = <0x0 0>;
		compatible = "nestlabs,gpio-exporter";
		output-names = "power-enable", "enable";
		output-gpios = <&gpio5 0 GPIO_ACTIVE_HIGH
				&gpio5 1 GPIO_ACTIVE_LOW>;
	};

	sound-gpios {
		reg = <0x0 0>;
		compatible = "nestlabs,gpio-exporter";
		output-names = "audio-mux-data";
		output-gpios = <&gpio7 5 GPIO_ACTIVE_HIGH>;
	};

	sound {
		compatible = "fsl,imx-audio";
		model = "imx-audio";
		cpu-dai = <&sai1>;
		spkr-codec = <&codec_tfa9890>;
		mic-codec = <&codec_wm8940>;
		dsp = <&dsp_cs48l10>;
	};

	tamper-gpios {
		reg = <0x0 0>;
		compatible = "nestlabs,gpio-exporter";
		input-names = "usb-id-pin";
		input-gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>;
	};

	regulators {
		compatible = "simple-bus";

		/* PP_V3V (via TPS630252YFF Buck Regulator) */
		buck_3v3_reg: buck_3v3 {
			compatible = "regulator-fixed";
			regulator-name = "3v3_buck";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			regulator-always-on;
		};
	};

	led-trigger-gpios {
		reg = <0x0 0>;
		compatible = "nestlabs,gpio-exporter";
		output-names = "ring", "keypad", "info";
		output-gpios = <&gpio4 18 GPIO_ACTIVE_LOW
				&gpio7 1 GPIO_ACTIVE_LOW
				&gpio7 4 GPIO_ACTIVE_LOW>;
	};

	cell-gpios {
		reg = <0x0 0>;
		compatible = "nestlabs,gpio-exporter";
		input-names = "cell-presence", "cell-on";
		input-gpios = <&gpio3 12 GPIO_ACTIVE_LOW
				&gpio2 1 GPIO_ACTIVE_HIGH>;
		output-names = "power-enable", "power-reset";
		output-gpios = <&gpio5 12 GPIO_ACTIVE_HIGH
				&gpio5 13 GPIO_ACTIVE_HIGH>;
	};

	pad_clk_24m: pad-clk-24m {
		compatible = "padctl-gate-clock";
		clocks = <&osc>;
		#clock-cells = <0>;
		pinctrl-names = "default", "active";
		pinctrl-0 = <&pinctrl_24m_disabled>;
		pinctrl-1 = <&pinctrl_24m_enabled>;
		status = "okay";
	};
};

/* Battery Divider Circuit ADC */
&adc1 {
	#io-channel-cells = <1>;
	vref-supply = <&buck_3v3_reg>;
	status = "okay";
};

/* AIR Micro SPI */
&ecspi2 {
	fsl,spi-num-chipselects = <1>;
	cs-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi2_1>;
	dmas;
	status = "okay";

	spidev_air@0 {
		compatible = "spidev";
		spi-max-frequency = <20000000>;
		reg = <0>;
	};
};

/* Zigbee SPI */
&ecspi3 {
	fsl,spi-num-chipselects = <1>;
	cs-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi3_1>;
	dmas;
	status = "okay";

	spidev_em35x@0 {
		compatible = "spidev";
		spi-max-frequency = <20000000>;
		reg = <0>;
	};
};

/* Power Controller */
&gpc {
	fsl,cpu_pupscr_sw2iso = <0xf>;
	fsl,cpu_pupscr_sw = <0xf>;
	fsl,cpu_pdnscr_iso2sw = <0x1>;
	fsl,cpu_pdnscr_iso = <0x1>;
	fsl,wdog-reset = <1>; /* watchdog select of reset source */
};

/* Sensors I2C */
&i2c1 {
	clock-frequency = <400000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c1_3>;
	status = "okay";

	/* LIS2DH12 (Accel) @ 0x18 */
	lis2dh12@18 {
		compatible = "st,lis2dh12";
		reg = <0x18>;
		interrupt-parent = <&gpio1>;
		interrupts = <13 GPIO_ACTIVE_HIGH>;
	};

	/* OPT3001 (ALS) @ 0x44 */
	light@44 {
		compatible = "ti,opt3001";
		reg = <0x44>;
		interrupt-parent = <&gpio1>;
		interrupts = <9 GPIO_ACTIVE_HIGH>;
		status = "okay";
	};

	/* SHTC1 (Humidity) @ 0x70 */
	shtc1@70 {
		compatible = "sensirion,shtc1";
		reg = <0x70>;
	};

	/* TMP103B (Temp) @ 0x71 */
	tmp103b@71 {
		compatible = "ti,tmp103b";
		reg = <0x71>;
	};

	/* TMP103C (Temp) @ 0x72 */
	tmp103b@72 {
		compatible = "ti,tmp103c";
		reg = <0x72>;
	};

	/* TMP103D (Temp) @ 0x73 */
	tmp103b@73 {
		compatible = "ti,tmp103d";
		reg = <0x73>;
	};

};

/* Audio (and LED) I2C */
&i2c2 {
	clock-frequency = <400000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c2_2>;
	status = "okay";

	/* Ring LEDS 1,2,3 */
	lp55231@32 {
		compatible = "national,lp55231", "national,lp5523";
		label = "ctrl0";
		reg = <0x32>;
		clock-mode = /bits/ 8 <1>;
		enable-gpio = <&gpio4 19 GPIO_ACTIVE_HIGH>;

		chan0 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan1 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan2 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan3 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan4 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan5 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan6 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan7 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan8 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};
	};

	/* Ring LEDS 7,8,9 */
	lp55231@33 {
		compatible = "national,lp55231", "national,lp5523";
		label = "ctrl1";
		reg = <0x33>;
		clock-mode = /bits/ 8 <1>;

		chan0 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan1 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan2 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan3 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan4 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan5 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan6 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan7 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan8 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};
	};

	/* Keypad LEDS 1,2,3 */
	lp55231@34 {
		compatible = "national,lp55231", "national,lp5523";
		label = "ctrl2";
		reg = <0x34>;
		clock-mode = /bits/ 8 <1>;
		enable-gpio = <&gpio7 2 GPIO_ACTIVE_HIGH>;

		chan0 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan1 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan2 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan3 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan4 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan5 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan6 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan7 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan8 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};
	};

	/* Keypad LEDS 4,5,6 */
	lp55231@35 {
		compatible = "national,lp55231", "national,lp5523";
		label = "ctrl3";
		reg = <0x35>;
		clock-mode = /bits/ 8 <1>;

		chan0 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan1 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan2 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan3 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan4 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan5 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan6 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan7 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan8 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};
	};
};


/* LED I2C */
&i2c3 {
	clock-frequency = <400000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c3_3>;
	status = "okay";

	/* Ring LEDS 4,5,6 */
	lp55231@32 {
		compatible = "national,lp55231", "national,lp5523";
		label = "ctrl4";
		reg = <0x32>;
		clock-mode = /bits/ 8 <1>;

		chan0 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan1 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan2 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan3 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan4 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan5 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan6 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan7 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan8 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};
	};

	/* Keypad LEDS 7,8,9 */
	lp55231@33 {
		compatible = "national,lp55231", "national,lp5523";
		label = "ctrl5";
		reg = <0x33>;
		clock-mode = /bits/ 8 <1>;

		chan0 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan1 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan2 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan3 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan4 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan5 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan6 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan7 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan8 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};
	};

	/* Keypad LEDS 0,back,enter */
	lp55231@34 {
		compatible = "national,lp55231", "national,lp5523";
		label = "ctrl6";
		reg = <0x34>;
		clock-mode = /bits/ 8 <1>;

		chan0 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan1 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan2 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan3 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan4 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan5 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan6 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan7 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan8 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};
	};

	/* Keypad LEDS home,stay,away */
	lp55231@35 {
		compatible = "national,lp55231", "national,lp5523";
		label = "ctrl7";
		reg = <0x35>;
		clock-mode = /bits/ 8 <1>;

		chan0 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan1 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan2 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan3 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan4 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan5 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan6 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan7 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan8 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};
	};

	codec_tfa9890: tfa9890@37 {
		compatible = "nxp,tfa9890";
		reg = <0x37>;
		gpios = <&gpio5 2 0>; /* RESET */
		tfa_vdd-supply = <&sw3a_reg>;
		tfa9890_bin_path = "./nxp";
		nxp,tfa_max-vol-steps = <1>;
	};

	codec_wm8940: wm8940@1a {
		compatible = "wlf,wm8940";
		reg = <0x1a>;
	};
};

/* PMIC (and LED) I2C */
&i2c4 {
	clock-frequency = <400000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c4_3>;
	status = "okay";

	/* MMPF0200 (PMIC) @ 0x08 */
	pmic: pfuze200@08 {
		compatible = "fsl,pfuze200";
		reg = <0x08>;

		regulators {
			/* PP_VDDCORE */
			sw1a_reg: sw1ab {
				regulator-min-microvolt = <1350000>;
				regulator-max-microvolt = <1350000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <6250>;
			};

			/* STANDBY PP_VDDCORE */
			sw1astby_reg: sw1abstby {
				regulator-min-microvolt = <975000>;
				regulator-max-microvolt = <975000>;
				regulator-boot-on;
				regulator-always-on;
			};

			/* PP_VDDSOC */
			sw2_reg: sw2 {
				regulator-min-microvolt = <1350000>;
				regulator-max-microvolt = <1350000>;
				regulator-boot-on;
				regulator-always-on;
			};

			/* STANDBY PP_VDDSOC */
			sw2stby_reg: sw2stby {
				regulator-min-microvolt = <1125000>;
				regulator-max-microvolt = <1125000>;
				regulator-boot-on;
				regulator-always-on;
			};

			/* PP_1V8 */
			sw3a_reg: sw3a {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-boot-on;
				regulator-always-on;
			};

			/* STANDBY PP1V8 */
			sw3astby_reg: sw3astby {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-boot-on;
				regulator-always-on;
			};

			/* PP_1V2_DDR */
			sw3b_reg: sw3b {
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-boot-on;
				regulator-always-on;
			};

			/* STANDBY PP_1V2_DDR */
			sw3bstby_reg: sw3bstby {
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-boot-on;
				regulator-always-on;
			};

			/* PP_5V_PMIC */
			swbst_reg: swbst {
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5000000>;
			};

			/* PP_VSNVS_3V0 */
			snvs_reg: vsnvs {
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-boot-on;
				regulator-always-on;
			};

			/* PP_DDR_VREF */
			vref_reg: vrefddr {
				regulator-boot-on;
				regulator-always-on;
			};

			/* SWBST_EN_H: */
			vgen3_reg: vgen3 {
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;
			};

			/* PP_3V0_LDO: */
			vgen4_reg: vgen4 {
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;
			};

			/* PP1V8_LDO: */
			vgen5_reg: vgen5 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};
		};
	};

	/* Keypad LEDS info */
	lp55231@32 {
		compatible = "national,lp55231", "national,lp5523";
		label = "ctrl8";
		reg = <0x32>;
		clock-mode = /bits/ 8 <1>;

		chan0 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan1 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan2 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan3 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan4 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan5 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <200>;
		};

		chan6 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan7 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};

		chan8 {
			led-cur = /bits/ 8 <1>;
			max-cur = /bits/ 8 <250>;
		};
	};

	/* BQ24251RGE (Charger Chip) @ 0x6A */
	bq24251rge@6a {
		compatible = "ti,bq24251-charger";
		reg = <0x6a>;
		stat-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;

		battery-regulation-voltage = <4200000>;
		charge-current = <500000>;
		term-current-sense-threshold = <50000>;
		vindpm-threshold = <4200000>;
		ovp-voltage = <6500000>;

		io-channels = <&adc1 0>;
		divider-r1-ohm = <100000>;
		divider-r2-ohm = <301000>;
		power-supplies = <&usbotg1>;
	};
};

/* Pinmux Controller */
&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_hog>;

	ecspi2 {
		pinctrl_ecspi2_1: ecspi2grp-1 {
			fsl,pins = <
				MX6SX_PAD_SD4_CMD__ECSPI2_MOSI		0x100b1
				MX6SX_PAD_SD4_CLK__ECSPI2_MISO		0x100b1
				MX6SX_PAD_SD4_DATA1__ECSPI2_SCLK	0x100b1
			>;
		};
	};

	i2c1 {
		pinctrl_i2c1_3: i2c1grp-3 {
			fsl,pins = <
				MX6SX_PAD_GPIO1_IO01__I2C1_SDA          0x4001b899
				MX6SX_PAD_GPIO1_IO00__I2C1_SCL          0x4001b899
			>;
		};
	};

	i2c2 {
		pinctrl_i2c2_2: i2c2grp-2 {
			fsl,pins = <
				MX6SX_PAD_QSPI1B_DATA2__I2C2_SDA	0x4001f899
				MX6SX_PAD_QSPI1B_DATA3__I2C2_SCL	0x4001f899
			>;
		};
	};

	i2c3 {
		pinctrl_i2c3_3: i2c3grp-3 {


			fsl,pins = <
				MX6SX_PAD_KEY_ROW4__I2C3_SDA            0x4001f899
				MX6SX_PAD_KEY_COL4__I2C3_SCL            0x4001f899
			>;
		};
	};

	i2c4 {
		pinctrl_i2c4_3: i2c4grp-3 {
			fsl,pins = <
				MX6SX_PAD_USB_H_DATA__I2C4_SDA		0x4001b899
				MX6SX_PAD_USB_H_STROBE__I2C4_SCL	0x4001b899
			>;
		};
	};

	sai1 {
		pinctrl_sai1_3: sai1grp_3 {
			fsl,pins = <
				MX6SX_PAD_RGMII2_TD3__SAI1_TX_BCLK	0x1b030
				MX6SX_PAD_RGMII2_TD2__SAI1_TX_SYNC	0x1b030
				MX6SX_PAD_RGMII2_TXC__SAI1_TX_DATA_0	0x1b030
				MX6SX_PAD_RGMII2_TX_CTL__SAI1_RX_DATA_0	0x1b030
			>;
		};
	};

	uart1 {
		pinctrl_uart1_2: uart1grp-2 {
			fsl,pins = <
				MX6SX_PAD_ENET2_COL__UART1_RX 0x1b0b1
				MX6SX_PAD_ENET2_CRS__UART1_TX 0x1b0b1
			>;
		};
	};

	uart2 {
		pinctrl_uart2_1: uart2grp-1 {
			fsl,pins = <
				MX6SX_PAD_GPIO1_IO07__UART2_RX 0x1b0b1
				MX6SX_PAD_GPIO1_IO06__UART2_TX 0x1b0b1
			>;
		};
	};

	uart3 {
		pinctrl_uart3_2: uart3grp-2 {
			fsl,pins = <

				MX6SX_PAD_SD3_DATA4__UART3_RX		0x0041b0b1
				MX6SX_PAD_SD3_DATA5__UART3_TX		0x0041b0b1
				MX6SX_PAD_SD3_DATA7__UART3_CTS_B	0x0041b0b1
				MX6SX_PAD_SD3_DATA6__UART3_RTS_B	0x0041b0b1
			>;
		};
	};

	uart5 {
		pinctrl_uart5_2: uart5grp-2 {
			fsl,pins = <
				MX6SX_PAD_SD4_DATA4__UART5_RX		0x1b0b1
				MX6SX_PAD_SD4_DATA5__UART5_TX		0x1b0b1
			>;
		};
	};

	hog {
		pinctrl_hog: hoggrp {
			fsl,pins = <
				/* PROTO PINS */
				MX6SX_PAD_SD3_CLK__GPIO7_IO_0		0x004100b0	/* 8 Key Button */
				MX6SX_PAD_SD3_DATA1__GPIO7_IO_3		0x0041b0b0	/* Panic Button */

				MX6SX_PAD_RGMII2_RD3__GPIO5_IO_15	0xc0000000	/* wifi OOB: interrupt to cpu */
				MX6SX_PAD_GPIO1_IO04__GPIO1_IO_4	0xc0000000	/* wifi OOB: reset from cpu */

				MX6SX_PAD_ENET1_RX_CLK__GPIO2_IO_4	0xc0000000	/* zb OOB: IRQ from zb */
				MX6SX_PAD_ENET1_COL__GPIO2_IO_0		0xc0000000	/* zb OOB: Reset from cpu */
				MX6SX_PAD_ENET1_TX_CLK__GPIO2_IO_5	0xc0000000	/* zb OOB: Wake from cpu */

				MX6SX_PAD_RGMII2_RX_CTL__GPIO5_IO_16	0xc0000000	/* BLE_RST */

				MX6SX_PAD_RGMII1_RD0__GPIO5_IO_0	0xc0000000	/* HORN_PWR_EN */
				MX6SX_PAD_RGMII1_RD1__GPIO5_IO_1	0xc0000000	/* HORN_EN_L */

				MX6SX_PAD_RGMII1_TD0__GPIO5_IO_6	0xc0000000	/* Audio DSP Reset */
				MX6SX_PAD_RGMII1_TD1__GPIO5_IO_7	0xc000b000	/* Audio DSP Interrupt */
				MX6SX_PAD_ENET2_TX_CLK__GPIO2_IO_9	0xc000b000	/* Audio DSP Busy */
				MX6SX_PAD_QSPI1B_DQS__GPIO4_IO_28	0xc0000000	/* ecspi5 SS0 cs GPIO */

				MX6SX_PAD_RGMII1_RD2__GPIO5_IO_2	0xc0000000	/* TFA9890 Reset */
				MX6SX_PAD_SD3_DATA3__GPIO7_IO_5		0x004000b0	/* Audio mux data */

				MX6SX_PAD_QSPI1B_SS0_B__GPIO4_IO_30	0xc0000000	/* ecspi3 SS0 cs GPIO */

				MX6SX_PAD_GPIO1_IO13__GPIO1_IO_13	0xc0000000	/* lis2dh12 interrupt */

				MX6SX_PAD_GPIO1_IO09__GPIO1_IO_9	0xc0000000	/* opt3001 interrupt */

				MX6SX_PAD_QSPI1A_DATA3__GPIO4_IO_19	0x000000b0	/* led enable - ring */
				MX6SX_PAD_SD3_DATA0__GPIO7_IO_2		0x004000b0	/* led enable - keypad and info */

				MX6SX_PAD_QSPI1A_DATA2__GPIO4_IO_18	0x000000b0	/* led trigger - ring */
				MX6SX_PAD_SD3_CMD__GPIO7_IO_1		0x004000b0	/* led trigger - keypad */
				MX6SX_PAD_SD3_DATA2__GPIO7_IO_4		0x004000b0	/* led trigger - info */

				MX6SX_PAD_RGMII1_RD2__GPIO5_IO_2	0xc0000000	/* tfa9890 reset */

				MX6SX_PAD_QSPI1A_SCLK__GPIO4_IO_21	0x000000b0	/* bq24251 stat */

				MX6SX_PAD_ENET1_MDIO__OSC32K_32K_OUT	0x10B0		/* CPU_32K_CLK_OUT */

				MX6SX_PAD_RGMII2_RD0__GPIO5_IO_12	0xc0000000	/* CELL_POWER_EN */
				MX6SX_PAD_RGMII2_RD1__GPIO5_IO_13	0xc0000000	/* CELL_POWER_RESET */
				MX6SX_PAD_LCD1_DATA11__GPIO3_IO_12	0xc0000000	/* CELL_PRESENCE */
				MX6SX_PAD_ENET1_CRS__GPIO2_IO_1		0xc0000000	/* CELL_ON */

				MX6SX_PAD_QSPI1A_DATA1__GPIO4_IO_17	0x1b8b1		/* USB ID Pin used as tamper */

				MX6SX_PAD_GPIO1_IO08__WDOG1_WDOG_B	0x000010b0	/* Watchdog */
				MX6SX_PAD_RGMII2_TD0__GPIO5_IO_18	0x000010b0	/* Warm Reset */
				MX6SX_PAD_SD4_DATA2__GPIO6_IO_16	0xc0000000	/* AIR mcu reset */
				MX6SX_PAD_SD4_DATA6__GPIO6_IO_20	0xc0000000	/* AIR mcu boot0 */
				MX6SX_PAD_SD4_DATA0__GPIO6_IO_14	0xc0000000	/* for ecspi2 */
			>;
		};
	};

	ecspi3 {
		pinctrl_ecspi3_1: ecspi3grp-1 {
			fsl,pins = <
				MX6SX_PAD_QSPI1B_DATA1__ECSPI3_MISO	0x100b1
				MX6SX_PAD_QSPI1B_DATA0__ECSPI3_MOSI	0x100b1
				MX6SX_PAD_QSPI1B_SCLK__ECSPI3_SCLK	0x100b1
			>;
		};
	};

	ecspi5 {
		pinctrl_ecspi5_1: ecspi5grp-1 {
			fsl,pins = <
				MX6SX_PAD_QSPI1A_SS1_B__ECSPI5_MISO	0x100b1
				MX6SX_PAD_QSPI1A_DQS__ECSPI5_MOSI	0x100b1
				MX6SX_PAD_QSPI1B_SS1_B__ECSPI5_SCLK	0x100b1
			>;
		};
	};

	kpp {
		pinctrl_kpp_0: kppgrp-0 {
			fsl,pins = <
				MX6SX_PAD_KEY_COL0__KPP_COL_0		0x110b0
				MX6SX_PAD_KEY_COL1__KPP_COL_1		0x110b0
				MX6SX_PAD_KEY_COL2__KPP_COL_2		0x110b0
				MX6SX_PAD_KEY_COL3__KPP_COL_3		0x110b0
				MX6SX_PAD_KEY_ROW0__KPP_ROW_0		0x1f010
				MX6SX_PAD_KEY_ROW1__KPP_ROW_1		0x1f010
				MX6SX_PAD_KEY_ROW2__KPP_ROW_2		0x1f010
				MX6SX_PAD_KEY_ROW3__KPP_ROW_3		0x1f010
			>;
		};

		pinctrl_kpp_0_sleep: kppgrp-0-sleep {
			fsl,pins = <
				MX6SX_PAD_KEY_COL0__GPIO2_IO_10		0x3080
				MX6SX_PAD_KEY_COL1__GPIO2_IO_11		0x3080
				MX6SX_PAD_KEY_COL2__GPIO2_IO_12		0x3080
				MX6SX_PAD_KEY_COL3__GPIO2_IO_13		0x3080
				MX6SX_PAD_KEY_ROW0__GPIO2_IO_15		0x3080
				MX6SX_PAD_KEY_ROW1__GPIO2_IO_16		0x3080
				MX6SX_PAD_KEY_ROW2__GPIO2_IO_17		0x3080
				MX6SX_PAD_KEY_ROW3__GPIO2_IO_18		0x3080
			>;
		};
	};

	24m-clk {
		pinctrl_24m_enabled: 24m-enabled {
			fsl,pins = <
				MX6SX_PAD_ENET1_MDC__ANATOP_24M_OUT	0x000010b0	/* CPU_24M_CLK_OUT */
			>;
		};

		pinctrl_24m_disabled: 24m-disabled {
			fsl,pins = <
				MX6SX_PAD_ENET1_MDC__ANATOP_24M_OUT	0x00001000	/* CPU_24M_CLK_OUT */
			>;
		};
	};

	usdhc2 {
		pinctrl_usdhc2_1: usdhc2grp-1 {
			fsl,pins = <
				MX6SX_PAD_SD2_CMD__USDHC2_CMD     0x17059
				MX6SX_PAD_SD2_CLK__USDHC2_CLK     0x10059
				MX6SX_PAD_SD2_DATA0__USDHC2_DATA0 0x17059
				MX6SX_PAD_SD2_DATA1__USDHC2_DATA1 0x17059
				MX6SX_PAD_SD2_DATA2__USDHC2_DATA2 0x17059
				MX6SX_PAD_SD2_DATA3__USDHC2_DATA3 0x17059
			>;
		};
	};
};

/* A9 Debug UART */
&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1_2>;
	status = "okay";
};

/* M4 Debug UART */
&uart2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart2_1>;
	status = "okay";
};

/* Bluetooth UART */
&uart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart3_2>;
	fsl,uart-has-rtscts;
	fsl,uart-can-wake;
	fsl,uart-cpu-mode;
	status = "okay";
};

/* AIR Micro UART */
&uart5 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart5_2>;
	fsl,uart-cpu-mode;
	status = "okay";
};

/* Debug USB (Device) */
&usbotg1 {
	dr_mode = "peripheral";
	status = "okay";
	imx-usb-charger-detection;
};

/* Cellular USB (Host) */
&usbotg2 {
	vbus-supply = <&swbst_reg>;
	dr_mode = "host";
	disable-over-current;
	status = "okay";
};

/* WIFI SDIO */
&usdhc2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc2_1>;
	non-removable;
	keep-power-in-suspend;
	enable-sdio-wakeup;
	status = "okay";
	brcm-fmac {
		reg = <1>;
		compatible = "brcm,bcm4329-fmac";
		interrupt-names = "host-wake";
		interrupt-parent = <&gpio5>;
		interrupts = <15 IRQ_TYPE_LEVEL_HIGH>;
	};
};

/* GPMI NAND */
&gpmi {
	status = "okay";
	nand-on-flash-bbt; /* Need to reserve NAND_BBT_SCAN_MAXBLOCKS at end of NAND */
	fsl,legacy-bch-geometry;

	partition@0-a {
		label = "nand0";
		reg = <0x0 0x20000000>;
	};

	partition@0-b {
		label = "u-boot";
		reg = <0x0 0x00400000>;
	};
	partition@00400000 {
		label = "ubipart";
		reg = <0x00400000 0x1F400000>;
	};

	partition@1F800000 {
		label = "oopsdata";
		reg = <0x1F800000 0x780000>;
	};
};

/* Smart DMA */
&sdma {
	gpr = <&gpr>;
	/* SDMA event remap for SAI1 */
	fsl,sdma-event-remap = <0 15 1>, <0 16 1>;
};

/* Synchronous Audio Interface */
&sai1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sai1_3>;
	status = "okay";
};

/* Audio DSP */
&ecspi5 {
	fsl,spi-num-chipselects = <1>;
	cs-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi5_1>;
	dmas;
	status = "okay";

	dsp_cs48l10: dsp-crus@0 {
		compatible = "crus,cs48l10";
		reg = <0>;
		interrupt-parent = <&intc>;
		spi-max-frequency = <19200000>;
		boot-speed = <19200000>;
		boot-type-msg = <0x80000011>;
		nreset-gpios = <134>;
		int-gpios = <135>;
		gpio_busy = <41>;
		clocks = <&pad_clk_24m>;
	};
};

/* Keypad */
&kpp {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&pinctrl_kpp_0>;
	pinctrl-1 = <&pinctrl_kpp_0_sleep>;
	linux,keymap = <0x00000160	/* KEY_OK */
			0x0001000b	/* KEY_0 */
			0x0002009e	/* KEY_BACK */
			0x0003003e	/* KEY_F4 (INFO) */
			0x0100000a	/* KEY_9 */
			0x0101003c	/* KEY_F2 (STAY) */
			0x01020008	/* KEY_7 */
			0x0103003d	/* KEY_F3 (AWAY) */
			0x02000007	/* KEY_6 */
			0x02010006	/* KEY_5 */
			0x02020005	/* KEY_4 */
			0x0203003b	/* KEY_F1 (HOME) */
			0x03000004	/* KEY_3 */
			0x03010003	/* KEY_2 */
			0x03020002>;	/* KEY_1 */
	linux,input-no-autorepeat;
	status = "okay";
};
