// SPDX-License-Identifier: GPL-2.0
//
// Copyright (C) 2014 Freescale Semiconductor, Inc.

/dts-v1/;

#include "imx6sx.dtsi"

/ {
	model = "Freescale i.MX6 SoloX Sabre Auto Board";
	compatible = "fsl,imx6sx-sabreauto", "fsl,imx6sx";

	memory@80000000 {
		device_type = "memory";
		reg = <0x80000000 0x80000000>;
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_led>;

		user {
			label = "debug";
			gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};
	};

	vcc_sd3: regulator-vcc-sd3 {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_vcc_sd3>;
		regulator-name = "VCC_SD3";
		regulator-min-microvolt = <3000000>;
		regulator-max-microvolt = <3000000>;
		gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	reg_can_wake: regulator-can-wake {
		compatible = "regulator-fixed";
		regulator-name = "can-wake";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&max7310_b 7 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	reg_can_en: regulator-can-en {
		compatible = "regulator-fixed";
		regulator-name = "can-en";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&max7310_b 5 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		vin-supply = <&reg_can_wake>;
	};

	reg_can_stby: regulator-can-stby {
		compatible = "regulator-fixed";
		regulator-name = "can-stby";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&max7310_b 4 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		vin-supply = <&reg_can_en>;
	};

	reg_cs42888: cs42888_supply {
		compatible = "regulator-fixed";
		regulator-name = "cs42888_supply";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	sound-cs42888 {
		compatible = "fsl,imx6-sabreauto-cs42888",
			     "fsl,imx-audio-cs42888";
		model = "imx-cs42888";
		audio-cpu = <&esai>;
		audio-asrc = <&asrc>;
		audio-codec = <&cs42888>;
		audio-routing =
			"Line Out Jack", "AOUT1L",
			"Line Out Jack", "AOUT1R",
			"Line Out Jack", "AOUT2L",
			"Line Out Jack", "AOUT2R",
			"Line Out Jack", "AOUT3L",
			"Line Out Jack", "AOUT3R",
			"Line Out Jack", "AOUT4L",
			"Line Out Jack", "AOUT4R",
			"AIN1L", "Line In Jack",
			"AIN1R", "Line In Jack",
			"AIN2L", "Line In Jack",
			"AIN2R", "Line In Jack";
	};

	sound-spdif {
		compatible = "fsl,imx-audio-spdif";
		model = "imx-spdif";
		spdif-controller = <&spdif>;
		spdif-in;
	};
};

&anaclk2 {
	clock-frequency = <24576000>;
};

&clks {
	assigned-clocks = <&clks IMX6SX_PLL4_BYPASS_SRC>,
			  <&clks IMX6SX_PLL4_BYPASS>,
			  <&clks IMX6SX_CLK_PLL4_POST_DIV>;
	assigned-clock-parents = <&clks IMX6SX_CLK_LVDS2_IN>,
				 <&clks IMX6SX_PLL4_BYPASS_SRC>;
	assigned-clock-rates = <0>, <0>, <24576000>;
};

&esai {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_esai>;
	assigned-clocks = <&clks IMX6SX_CLK_ESAI_SEL>,
			<&clks IMX6SX_CLK_ESAI_EXTAL>;
	assigned-clock-parents = <&clks IMX6SX_CLK_PLL4_AUDIO_DIV>;
	assigned-clock-rates = <0>, <24576000>;
	status = "okay";
};

&fec1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet1>;
	phy-mode = "rgmii-id";
	phy-handle = <&ethphy1>;
	fsl,magic-packet;
	status = "okay";

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;

		ethphy0: ethernet-phy@0 {
			compatible = "ethernet-phy-ieee802.3-c22";
			reg = <0>;
		};

		ethphy1: ethernet-phy@1 {
			compatible = "ethernet-phy-ieee802.3-c22";
			reg = <1>;
		};
	};
};

&fec2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet2>;
	phy-mode = "rgmii-id";
	phy-handle = <&ethphy0>;
	fsl,magic-packet;
	status = "okay";
};

&flexcan1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_flexcan1>;
	xceiver-supply = <&reg_can_stby>;
	status = "okay";
};

&flexcan2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_flexcan2>;
	xceiver-supply = <&reg_can_stby>;
	status = "okay";
};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
	status = "okay";
};

&usdhc3 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc3>;
	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
	bus-width = <8>;
	cd-gpios = <&gpio7 10 GPIO_ACTIVE_LOW>;
	wp-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
	keep-power-in-suspend;
	wakeup-source;
	vmmc-supply = <&vcc_sd3>;
	status = "okay";
};

&usdhc4 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc4>;
	bus-width = <8>;
	cd-gpios = <&gpio7 11 GPIO_ACTIVE_LOW>;
	no-1-8-v;
	keep-power-in-suspend;
	wakeup-source;
	status = "okay";
};

&iomuxc {
	pinctrl_egalax_int: egalax-intgrp {
		fsl,pins = <
			MX6SX_PAD_SD4_RESET_B__GPIO6_IO_22      0x10b0
		>;
	};

	pinctrl_enet1: enet1grp {
		fsl,pins = <
			MX6SX_PAD_ENET1_MDIO__ENET1_MDIO        0xa0b1
			MX6SX_PAD_ENET1_MDC__ENET1_MDC          0xa0b1
			MX6SX_PAD_RGMII1_TXC__ENET1_RGMII_TXC   0xa0b9
			MX6SX_PAD_RGMII1_TD0__ENET1_TX_DATA_0   0xa0b1
			MX6SX_PAD_RGMII1_TD1__ENET1_TX_DATA_1   0xa0b1
			MX6SX_PAD_RGMII1_TD2__ENET1_TX_DATA_2   0xa0b1
			MX6SX_PAD_RGMII1_TD3__ENET1_TX_DATA_3   0xa0b1
			MX6SX_PAD_RGMII1_TX_CTL__ENET1_TX_EN    0xa0b1
			MX6SX_PAD_RGMII1_RXC__ENET1_RX_CLK      0x3081
			MX6SX_PAD_RGMII1_RD0__ENET1_RX_DATA_0   0x3081
			MX6SX_PAD_RGMII1_RD1__ENET1_RX_DATA_1   0x3081
			MX6SX_PAD_RGMII1_RD2__ENET1_RX_DATA_2   0x3081
			MX6SX_PAD_RGMII1_RD3__ENET1_RX_DATA_3   0x3081
			MX6SX_PAD_RGMII1_RX_CTL__ENET1_RX_EN    0x3081
		>;
	};

	pinctrl_enet2: enet2grp {
		fsl,pins = <
			MX6SX_PAD_RGMII2_TXC__ENET2_RGMII_TXC   0xa0b9
			MX6SX_PAD_RGMII2_TD0__ENET2_TX_DATA_0   0xa0b1
			MX6SX_PAD_RGMII2_TD1__ENET2_TX_DATA_1   0xa0b1
			MX6SX_PAD_RGMII2_TD2__ENET2_TX_DATA_2   0xa0b1
			MX6SX_PAD_RGMII2_TD3__ENET2_TX_DATA_3   0xa0b1
			MX6SX_PAD_RGMII2_TX_CTL__ENET2_TX_EN    0xa0b1
			MX6SX_PAD_RGMII2_RXC__ENET2_RX_CLK      0x3081
			MX6SX_PAD_RGMII2_RD0__ENET2_RX_DATA_0   0x3081
			MX6SX_PAD_RGMII2_RD1__ENET2_RX_DATA_1   0x3081
			MX6SX_PAD_RGMII2_RD2__ENET2_RX_DATA_2   0x3081
			MX6SX_PAD_RGMII2_RD3__ENET2_RX_DATA_3   0x3081
			MX6SX_PAD_RGMII2_RX_CTL__ENET2_RX_EN    0x3081
		>;
	};

	pinctrl_esai: esaigrp {
		fsl,pins = <
			MX6SX_PAD_CSI_DATA00__ESAI_TX_CLK   0x1b030
			MX6SX_PAD_CSI_DATA01__ESAI_TX_FS    0x1b030
			MX6SX_PAD_CSI_HSYNC__ESAI_TX0       0x1b030
			MX6SX_PAD_CSI_DATA04__ESAI_TX1      0x1b030
			MX6SX_PAD_CSI_DATA06__ESAI_TX2_RX3  0x1b030
			MX6SX_PAD_CSI_DATA07__ESAI_TX3_RX2  0x1b030
			MX6SX_PAD_CSI_DATA02__ESAI_RX_CLK   0x1b030
			MX6SX_PAD_CSI_DATA03__ESAI_RX_FS    0x1b030
			MX6SX_PAD_CSI_VSYNC__ESAI_TX5_RX0   0x1b030
			MX6SX_PAD_CSI_DATA05__ESAI_TX4_RX1  0x1b030
		>;
	};

	pinctrl_flexcan1: flexcan1grp {
		fsl,pins = <
			MX6SX_PAD_QSPI1B_DQS__CAN1_TX   0x1b020
			MX6SX_PAD_QSPI1A_SS1_B__CAN1_RX	0x1b020
		>;
	};

	pinctrl_flexcan2: flexcan2grp {
		fsl,pins = <
			MX6SX_PAD_QSPI1B_SS1_B__CAN2_RX 0x1b020
			MX6SX_PAD_QSPI1A_DQS__CAN2_TX	0x1b020
		>;
	};

	pinctrl_i2c2: i2c2grp {
		fsl,pins = <
			MX6SX_PAD_GPIO1_IO03__I2C2_SDA          0x4001b8b1
			MX6SX_PAD_GPIO1_IO02__I2C2_SCL          0x4001b8b1
		>;
	};

	pinctrl_i2c3: i2c3grp {
		fsl,pins = <
			MX6SX_PAD_KEY_ROW4__I2C3_SDA            0x4001b8b1
			MX6SX_PAD_KEY_COL4__I2C3_SCL            0x4001b8b1
		>;
	};

	pinctrl_led: ledgrp {
		fsl,pins = <
			MX6SX_PAD_CSI_PIXCLK__GPIO1_IO_24 0x17059
		>;
	};

	pinctrl_spdif: spdifgrp {
		fsl,pins = <
			MX6SX_PAD_ENET2_COL__SPDIF_IN           0x1b0b0
		>;
	};

	pinctrl_uart1: uart1grp {
		fsl,pins = <
			MX6SX_PAD_GPIO1_IO04__UART1_DCE_TX		0x1b0b1
			MX6SX_PAD_GPIO1_IO05__UART1_DCE_RX		0x1b0b1
		>;
	};

	pinctrl_usdhc3: usdhc3grp {
		fsl,pins = <
			MX6SX_PAD_SD3_CMD__USDHC3_CMD		0x17059
			MX6SX_PAD_SD3_CLK__USDHC3_CLK		0x10059
			MX6SX_PAD_SD3_DATA0__USDHC3_DATA0	0x17059
			MX6SX_PAD_SD3_DATA1__USDHC3_DATA1	0x17059
			MX6SX_PAD_SD3_DATA2__USDHC3_DATA2	0x17059
			MX6SX_PAD_SD3_DATA3__USDHC3_DATA3	0x17059
			MX6SX_PAD_SD3_DATA4__USDHC3_DATA4	0x17059
			MX6SX_PAD_SD3_DATA5__USDHC3_DATA5	0x17059
			MX6SX_PAD_SD3_DATA6__USDHC3_DATA6	0x17059
			MX6SX_PAD_SD3_DATA7__USDHC3_DATA7	0x17059
			MX6SX_PAD_KEY_COL0__GPIO2_IO_10		0x17059 /* CD */
			MX6SX_PAD_KEY_ROW0__GPIO2_IO_15		0x17059 /* WP */
		>;
	};

	pinctrl_usdhc3_100mhz: usdhc3grp-100mhz {
		fsl,pins = <
			MX6SX_PAD_SD3_CMD__USDHC3_CMD		0x170b9
			MX6SX_PAD_SD3_CLK__USDHC3_CLK		0x100b9
			MX6SX_PAD_SD3_DATA0__USDHC3_DATA0	0x170b9
			MX6SX_PAD_SD3_DATA1__USDHC3_DATA1	0x170b9
			MX6SX_PAD_SD3_DATA2__USDHC3_DATA2	0x170b9
			MX6SX_PAD_SD3_DATA3__USDHC3_DATA3	0x170b9
			MX6SX_PAD_SD3_DATA4__USDHC3_DATA4	0x170b9
			MX6SX_PAD_SD3_DATA5__USDHC3_DATA5	0x170b9
			MX6SX_PAD_SD3_DATA6__USDHC3_DATA6	0x170b9
			MX6SX_PAD_SD3_DATA7__USDHC3_DATA7	0x170b9
		>;
	};

	pinctrl_usdhc3_200mhz: usdhc3grp-200mhz {
		fsl,pins = <
			MX6SX_PAD_SD3_CMD__USDHC3_CMD		0x170f9
			MX6SX_PAD_SD3_CLK__USDHC3_CLK		0x100f9
			MX6SX_PAD_SD3_DATA0__USDHC3_DATA0	0x170f9
			MX6SX_PAD_SD3_DATA1__USDHC3_DATA1	0x170f9
			MX6SX_PAD_SD3_DATA2__USDHC3_DATA2	0x170f9
			MX6SX_PAD_SD3_DATA3__USDHC3_DATA3	0x170f9
			MX6SX_PAD_SD3_DATA4__USDHC3_DATA4	0x170f9
			MX6SX_PAD_SD3_DATA5__USDHC3_DATA5	0x170f9
			MX6SX_PAD_SD3_DATA6__USDHC3_DATA6	0x170f9
			MX6SX_PAD_SD3_DATA7__USDHC3_DATA7	0x170f9
		>;
	};

	pinctrl_usdhc4: usdhc4grp {
		fsl,pins = <
			MX6SX_PAD_SD4_CMD__USDHC4_CMD		0x17059
			MX6SX_PAD_SD4_CLK__USDHC4_CLK		0x10059
			MX6SX_PAD_SD4_DATA0__USDHC4_DATA0	0x17059
			MX6SX_PAD_SD4_DATA1__USDHC4_DATA1	0x17059
			MX6SX_PAD_SD4_DATA2__USDHC4_DATA2	0x17059
			MX6SX_PAD_SD4_DATA3__USDHC4_DATA3	0x17059
			MX6SX_PAD_SD4_DATA7__GPIO6_IO_21	0x17059 /* CD */
			MX6SX_PAD_SD4_DATA6__GPIO6_IO_20	0x17059 /* WP */
		>;
	};

	pinctrl_vcc_sd3: vccsd3grp {
		fsl,pins = <
			MX6SX_PAD_KEY_COL1__GPIO2_IO_11		0x17059
		>;
	};

	pinctrl_wdog: wdoggrp {
		fsl,pins = <
			MX6SX_PAD_GPIO1_IO13__WDOG1_WDOG_ANY	0x30b0
		>;
	};
};

&i2c2 {
	clock-frequency = <100000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c2>;
	status = "okay";

	cs42888: cs42888@48 {
		compatible = "cirrus,cs42888";
		reg = <0x48>;
		clocks = <&anaclk2 0>;
		clock-names = "mclk";
		VA-supply = <&reg_cs42888>;
		VD-supply = <&reg_cs42888>;
		VLS-supply = <&reg_cs42888>;
		VLC-supply = <&reg_cs42888>;
	};

	touchscreen@4 {
		compatible = "eeti,egalax_ts";
		reg = <0x04>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_egalax_int>;
		interrupt-parent = <&gpio6>;
		interrupts = <22 IRQ_TYPE_EDGE_FALLING>;
		wakeup-gpios = <&gpio6 22 GPIO_ACTIVE_HIGH>;
	};

	pfuze100: pmic@8 {
		compatible = "fsl,pfuze100";
		reg = <0x08>;

		regulators {
			sw1a_reg: sw1ab {
				regulator-min-microvolt = <300000>;
				regulator-max-microvolt = <1875000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <6250>;
			};

			sw1c_reg: sw1c {
				regulator-min-microvolt = <300000>;
				regulator-max-microvolt = <1875000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <6250>;
			};

			sw2_reg: sw2 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw3a_reg: sw3a {
				regulator-min-microvolt = <400000>;
				regulator-max-microvolt = <1975000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw3b_reg: sw3b {
				regulator-min-microvolt = <400000>;
				regulator-max-microvolt = <1975000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw4_reg: sw4 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			swbst_reg: swbst {
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5150000>;
			};

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

			vref_reg: vrefddr {
				regulator-boot-on;
				regulator-always-on;
			};

			vgen1_reg: vgen1 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1550000>;
				regulator-always-on;
			};

			vgen2_reg: vgen2 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1550000>;
			};

			vgen3_reg: vgen3 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vgen4_reg: vgen4 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

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

			vgen6_reg: vgen6 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};
		};
	};

	max7322: gpio@68 {
		compatible = "maxim,max7322";
		reg = <0x68>;
		gpio-controller;
		#gpio-cells = <2>;
	};
};

&i2c3 {
	clock-frequency = <100000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c3>;
	status = "okay";

	max7310_a: gpio@30 {
		compatible = "maxim,max7310";
		reg = <0x30>;
		gpio-controller;
		#gpio-cells = <2>;
	};

	max7310_b: gpio@32 {
		compatible = "maxim,max7310";
		reg = <0x32>;
		gpio-controller;
		#gpio-cells = <2>;
	};
};

&spdif {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_spdif>;
	assigned-clocks = <&clks IMX6SX_CLK_SPDIF_PODF>;
	assigned-clock-rates = <24576000>;
	status = "okay";
};

&wdog1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_wdog>;
	fsl,ext-reset-output;
};
