/*
 * Copyright (C) 2016 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"

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

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

	sound {
		compatible = "fsl,imx-marley";
		model = "imx-audio";
		cpu-dai = <&sai1>;
		spkr-codec = <&codec_tfa9890>;
		dsp = <&dsp_cs47l35>;
		clocks = <&pad_clk_24m>;
	};

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

		/* Fake fixed regulator used by audio drivers */
		audio_dummy_regulator: fixedregulator@0 {
			compatible = "regulator-fixed";
			regulator-name = "fixed-supply";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
	};

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

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

		five-key {
			label = "Five Key";
			gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
			linux,code = <6>; /* KEY_5 */
			gpio-key,wakeup;
		};
	};

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

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

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

	wdog-gpios {
		reg = <0x0 0>;
		compatible = "nestlabs,gpio-exporter";
		output-names = "wdog1-b";
		output-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
	};

	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", "vusb", "cell-wake-dtr";
		output-gpios = <&gpio5 12 GPIO_ACTIVE_HIGH
				&gpio5 13 GPIO_ACTIVE_HIGH
				&gpio4 22 GPIO_ACTIVE_LOW
				&gpio5 17 GPIO_ACTIVE_LOW>;
	};

	mcu-gpios {
		reg = <0x0 0>;
		compatible = "nestlabs,gpio-exporter";
		input-names = "mcudatagpio";
		input-gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>;
		output-names = "mcuresetgpio", "mcubootgpio";
		output-gpios = <&gpio6 16 GPIO_ACTIVE_HIGH &gpio6 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";
};

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

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

    /* TMP108A (Temp) @ 0x48 */
    tmp108a@48 {
        compatible = "ti,tmp108a";
        reg = <0x48>;
    };
    /* TMP108B (Temp) @ 0x49 */
    tmp108b@49 {
        compatible = "ti,tmp108b";
        reg = <0x49>;
    };
    /* TMP108C (Temp) @ 0x4A */
    tmp108c@4A {
        compatible = "ti,tmp108c";
        reg = <0x4A>;
    };
    /* TMP108D (Temp) @ 0x4B */
    tmp108d@4B {
        compatible = "ti,tmp108d";
        reg = <0x4B>;
    };

};

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

	codec_tfa9890: tfa9890@37 {
		compatible = "nxp,tfa98xx";
		reg = <0x37>;
		gpios = <&gpio5 2 0>; /* RESET */
	};

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

/* PMIC and Charger 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 = <5150000>;
				regulator-max-microvolt = <5150000>;
			};

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

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

		battery-regulation-voltage = <4000000>;
		max-battery-regulation-voltage = <4200000>;
		charge-current = <500000>;
		term-current-sense-threshold = <75000>;
		vindpm-threshold = <4200000>;
		ovp-voltage = <6500000>;
		safety-timer-time-limit = <2>;

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

/* Pinmux Controller */
&iomuxc {
	i2c1 {
		pinctrl_i2c1_3: i2c1grp-3 {
			fsl,pins = <
				MX6SX_PAD_GPIO1_IO01__I2C1_SDA          0x4001b899
				MX6SX_PAD_GPIO1_IO00__I2C1_SCL          0x4001b899
			>;
		};
	};

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

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

	hog {
		mlb_hogs: mlb-hogs {
			fsl,pins = <
				MX6SX_PAD_SD3_DATA1__GPIO7_IO_3		0x0041b0b0	/* Panic Button */
				MX6SX_PAD_SD3_CLK__GPIO7_IO_0		0x004100b0	/* 5 Key Button */

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

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

				MX6SX_PAD_RGMII2_RX_CTL__GPIO5_IO_16	0x400010b0	/* BLE_RST */

				MX6SX_PAD_RGMII1_RD0__GPIO5_IO_0	0x400000b0	/* HORN_PWR_EN */
				MX6SX_PAD_RGMII1_RD1__GPIO5_IO_1	0x400000b0	/* HORN_EN_L */

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

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

				MX6SX_PAD_QSPI1B_SS0_B__GPIO4_IO_30	0x400010b0	/* ecspi3 SS0 cs GPIO */

				MX6SX_PAD_GPIO1_IO13__GPIO1_IO_13	0x400000b0	/* lis2dh12 interrupt */

				MX6SX_PAD_RGMII1_RD2__GPIO5_IO_2	0x400010b0	/* tfa9890 reset */

				MX6SX_PAD_QSPI1A_SCLK__GPIO4_IO_21	0x000000b0	/* bq24251 stat */

				MX6SX_PAD_ENET1_MDIO__OSC32K_32K_OUT	0x000000b0	/* CPU_32K_CLK_OUT */

				MX6SX_PAD_RGMII2_RD0__GPIO5_IO_12	0x400000b0	/* CELL_POWER_EN */
				MX6SX_PAD_RGMII2_RD1__GPIO5_IO_13	0x400000b0	/* CELL_POWER_RESET */
				MX6SX_PAD_QSPI1A_SS0_B__GPIO4_IO_22	0x400000b0	/* CELL_VUSB */
				MX6SX_PAD_RGMII2_RXC__GPIO5_IO_17	0x400000b0	/* CELL_WAKE_DTR */
				MX6SX_PAD_LCD1_DATA11__GPIO3_IO_12	0x400010b0	/* CELL_PRESENCE */
				MX6SX_PAD_ENET1_CRS__GPIO2_IO_1		0x400010b0	/* CELL_ON */

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

				MX6SX_PAD_RGMII2_TD0__GPIO5_IO_18	0x000000b0	/* Warm Reset */

				MX6SX_PAD_QSPI1A_DATA3__GPIO4_IO_19	0x000010b0	/* HK reset */

				MX6SX_PAD_SD4_DATA2__GPIO6_IO_16	0x400018b0	/* MCU reset */
				MX6SX_PAD_SD4_CLK__GPIO6_IO_12		0x400010b0	/* MCU to SoC interrupt */
				MX6SX_PAD_SD4_CMD__GPIO6_IO_13		0x400010b0	/* MCU boot */
                MX6SX_PAD_SD4_DATA0__GPIO6_IO_14    0x0001b0b1  /* SKU ID GPIO 1. Same GPIO config as FCT pin.*/
                MX6SX_PAD_SD4_DATA1__GPIO6_IO_15    0x0001b0b1  /* SKU ID GPIO 2. Same GPIO config as FCT pin.*/ 
			>;
		};
	};

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

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

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

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

/* 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";
};

/* MCU UART */
&uart5 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart5_2>;
	fsl,uart-has-rtscts;
	fsl,uart-can-wake;
	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";
};

/* 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_cs47l35: cs47l35@0 {
		spi-max-frequency = <19200000>;

		compatible = "cirrus,cs47l35";
		reg = <0x0>;
		interrupt-parent = <&gpio5>;
		interrupts = <7 GPIO_ACTIVE_LOW>;

		AVDD-supply = <&audio_dummy_regulator>;
		DBVDD1-supply = <&audio_dummy_regulator>;
		DBVDD2-supply = <&audio_dummy_regulator>;
		CPVDD1-supply = <&audio_dummy_regulator>;
		CPVDD2-supply = <&audio_dummy_regulator>;
		DCVDD-supply = <&audio_dummy_regulator>;
		SPKVDD-supply = <&audio_dummy_regulator>;
		MICVDD-supply = <&audio_dummy_regulator>;

		cirrus,reset = <&gpio5 6 0>;
		cirrus,clk32k-src = <3>;
		cirrus,micbias1 = <2800 1 1 1 1 1 1 0>;
		cirrus,inmode = < 0 0 0 0
				0 0 0 0
				0 0 0 0
				0 0 0 0
				0 0 0 0
				0 0 0 0 >;

		cirrus,gpio-defaults = <
			0x00002000 0x0000f000 /* AIF3TXDAT    / GPIO1  */
			0x00002000 0x0000f000 /* AIF3BCLK     / GPIO2  */
			0x00002000 0x0000f000 /* AIF3RXDAT    / GPIO3  */
			0x00002000 0x0000f000 /* AIF3LRCLK    / GPIO4  */
			0x00002010 0x0000f000 /* FLL1 Output  / GPIO5  */
			0x00002018 0x0000f000 /* FLL1 Locked? / GPIO6  */
			0x00002000 0x0000f000 /* MIF1SDA      / GPIO7  */
			0x00002000 0x0000f000 /* AIF1RXDAT    / GPIO8  */
			0x00002000 0x0000f000 /* AIF1BCLK     / GPIO9  */
			0x00002000 0x0000f000 /* AIF1TXDAT    / GPIO10 */
			0x00002000 0x0000f000 /* AIF1LRCLK    / GPIO11 */
			0x00002000 0x0000f000 /* AIF2TXDAT    / GPIO12 */
			0x00002000 0x0000f000 /* AIF2BCLK     / GPIO13 */
			0x00002000 0x0000f000 /* AIF2RXDAT    / GPIO14 */
			0x00002000 0x0000f000 /* AIF2LRCLK    / GPIO15 */
			0x00002000 0x0000f000 /* MIF1SCLK     / GPIO16 */
		>;
	};
};

/* Battery Voltage ADC (vf610) */
&adc1 {
       min-sample-time = <0xFFFFFFFF>; /* Force slowest sampling time */
};
