/*
 * Copyright (C) 2014 Russell King
 */
#include "imx6qdl-microsom.dtsi"
#include "imx6qdl-microsom-ar8035.dtsi"

/ {
	ir_recv: ir-receiver {
		compatible = "gpio-ir-receiver";
		gpios = <&gpio3 9 1>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_cubox_i_ir>;
	};

	regulators {
		compatible = "simple-bus";

		reg_3p3v: 3p3v {
			compatible = "regulator-fixed";
			regulator-name = "3P3V";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			regulator-always-on;
		};

		reg_usbh1_vbus: usb-h1-vbus {
			compatible = "regulator-fixed";
			enable-active-high;
			gpio = <&gpio1 0 0>;
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_cubox_i_usbh1_vbus>;
			regulator-name = "usb_h1_vbus";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
		};

		reg_usbotg_vbus: usb-otg-vbus {
			compatible = "regulator-fixed";
			enable-active-high;
			gpio = <&gpio3 22 0>;
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_cubox_i_usbotg_vbus>;
			regulator-name = "usb_otg_vbus";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
		};
	};

	codec: spdif-transmitter {
		compatible = "linux,spdif-dit";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_cubox_i_spdif>;
	};

	sound-spdif {
		compatible = "fsl,imx-audio-spdif";
		model = "imx-spdif";
		/* IMX6 doesn't implement this yet */
		spdif-controller = <&spdif>;
		spdif-out;
	};
};

&i2c3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_cubox_i_i2c3>;

	status = "okay";

	rtc: pcf8523@68 {
		compatible = "nxp,pcf8523";
		reg = <0x68>;
	};
};

&iomuxc {
	cubox_i {
		pinctrl_cubox_i_i2c3: cubox-i-i2c3 {
			fsl,pins = <
				MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
				MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
			>;
		};

		pinctrl_cubox_i_ir: cubox-i-ir {
			fsl,pins = <
				MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x80000000
			>;
		};

		pinctrl_cubox_i_spdif: cubox-i-spdif {
			fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0>;
		};

		pinctrl_cubox_i_usbh1_vbus: cubox-i-usbh1-vbus {
			fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x4001b0b0>;
		};

		pinctrl_cubox_i_usbotg_vbus: cubox-i-usbotg-vbus {
			fsl,pins = <MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x4001b0b0>;
		};

		pinctrl_cubox_i_usdhc2_aux: cubox-i-usdhc2-aux {
			fsl,pins = <
				MX6QDL_PAD_GPIO_4__GPIO1_IO04    0x1f071
				MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x1b071
			>;
		};

		pinctrl_cubox_i_usdhc2: cubox-i-usdhc2 {
			fsl,pins = <
				MX6QDL_PAD_SD2_CMD__SD2_CMD    0x17059
				MX6QDL_PAD_SD2_CLK__SD2_CLK    0x10059
				MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
				MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
				MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
				MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x13059
			>;
		};
	};
};

&spdif {
	status = "okay";
};

&usbh1 {
	vbus-supply = <&reg_usbh1_vbus>;
	status = "okay";
};

&usbotg {
	vbus-supply = <&reg_usbotg_vbus>;
	status = "okay";
};

&usdhc2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_cubox_i_usdhc2_aux &pinctrl_cubox_i_usdhc2>;
	vmmc-supply = <&reg_3p3v>;
	cd-gpios = <&gpio1 4 0>;
	status = "okay";
};
