// SPDX-License-Identifier: (GPL-2.0+)
/*
 * Copyright (C) 2015-2019 DH electronics GmbH
 * Copyright (C) 2018 Marek Vasut <marex@denx.de>
 */

#include "imx6qdl-dhcom.dtsi"

/ {
	chosen {
		stdout-path = &uart1;
	};

	clk_ext_audio_codec: clock-codec {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <24000000>;
	};

	sound {
		compatible = "fsl,imx-audio-sgtl5000";
		model = "imx-sgtl5000";
		ssi-controller = <&ssi1>;
		audio-codec = <&sgtl5000>;
		audio-routing =
			"MIC_IN", "Mic Jack",
			"Mic Jack", "Mic Bias",
			"LINE_IN", "Line In Jack",
			"Headphone Jack", "HP_OUT";
		mux-int-port = <1>;
		mux-ext-port = <3>;
	};
};

&audmux {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_audmux_ext>;
	status = "okay";
};

/* 1G ethernet */
/delete-node/ &ethphy0;
&fec {
	phy-mode = "rgmii";
	phy-handle = <&ethphy7>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet_1G>;
	status = "okay";

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

		ethphy7: ethernet-phy@7 { /* KSZ 9021 */
			compatible = "ethernet-phy-ieee802.3-c22";
			interrupt-parent = <&gpio1>;
			interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
			pinctrl-0 = <&pinctrl_ethphy7>;
			pinctrl-names = "default";
			reg = <7>;
			reset-gpios = <&gpio3 29 GPIO_ACTIVE_LOW>;
			reset-assert-us = <1000>;
			reset-deassert-us = <1000>;
			rxc-skew-ps = <3000>;
			rxd0-skew-ps = <0>;
			rxd1-skew-ps = <0>;
			rxd2-skew-ps = <0>;
			rxd3-skew-ps = <0>;
			txc-skew-ps = <3000>;
			txd0-skew-ps = <0>;
			txd1-skew-ps = <0>;
			txd2-skew-ps = <0>;
			txd3-skew-ps = <0>;
			rxdv-skew-ps = <0>;
			txen-skew-ps = <0>;
		};
	};
};

&hdmi {
	ddc-i2c-bus = <&i2c2>;
	status = "okay";
};

&i2c2 {
	sgtl5000: codec@a {
		compatible = "fsl,sgtl5000";
		reg = <0x0a>;
		#sound-dai-cells = <0>;
		clocks = <&clk_ext_audio_codec>;
		VDDA-supply = <&reg_3p3v>;
		VDDIO-supply = <&reg_3p3v>;
	};
};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_hog_base &pinctrl_hog>;

	pinctrl_hog: hog-grp {
		fsl,pins = <
			MX6QDL_PAD_GPIO_2__GPIO1_IO02		0x400120b0
			MX6QDL_PAD_GPIO_4__GPIO1_IO04		0x400120b0
			MX6QDL_PAD_GPIO_5__GPIO1_IO05		0x400120b0
			MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03	0x400120b0
			MX6QDL_PAD_GPIO_19__GPIO4_IO05		0x120b0
			MX6QDL_PAD_DI0_PIN4__GPIO4_IO20		0x400120b0
			MX6QDL_PAD_EIM_D27__GPIO3_IO27		0x120b0
			MX6QDL_PAD_KEY_ROW0__GPIO4_IO07		0x120b0
			MX6QDL_PAD_KEY_COL1__GPIO4_IO08		0x400120b0
			MX6QDL_PAD_NANDF_CS1__GPIO6_IO14	0x400120b0
			MX6QDL_PAD_NANDF_CS2__GPIO6_IO15	0x400120b0
			MX6QDL_PAD_KEY_ROW1__GPIO4_IO09		0x400120b0
			MX6QDL_PAD_SD3_DAT5__GPIO7_IO00		0x400120b0
			MX6QDL_PAD_SD3_DAT4__GPIO7_IO01		0x400120b0
			MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21	0x400120b0
			MX6QDL_PAD_GPIO_18__GPIO7_IO13		0x400120b0
			MX6QDL_PAD_SD1_CMD__GPIO1_IO18		0x400120b0
			MX6QDL_PAD_SD1_DAT0__GPIO1_IO16		0x400120b0
			MX6QDL_PAD_SD1_DAT1__GPIO1_IO17		0x400120b0
			MX6QDL_PAD_SD1_DAT2__GPIO1_IO19		0x400120b0
			MX6QDL_PAD_SD1_CLK__GPIO1_IO20		0x400120b0
			MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18	0x400120b0
			MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19	0x400120b0
			MX6QDL_PAD_KEY_COL0__GPIO4_IO06		0x400120b0
		>;
	};

	pinctrl_audmux_ext: audmux-ext-grp {
		fsl,pins = <
			MX6QDL_PAD_CSI0_DAT7__AUD3_RXD		0x130b0
			MX6QDL_PAD_CSI0_DAT4__AUD3_TXC		0x130b0
			MX6QDL_PAD_CSI0_DAT5__AUD3_TXD		0x110b0
			MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS		0x130b0
		>;
	};

	pinctrl_enet_1G: enet-1G-grp {
		fsl,pins = <
			MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x100b0
			MX6QDL_PAD_ENET_MDC__ENET_MDC		0x100b0
			MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x100b0
			MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x100b0
			MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x100b0
			MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x100b0
			MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x100b0
			MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x100b0
			MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x100b0
			MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b0b0
			MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b0b0
			MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b0b0
			MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b0b0
			MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b0b0
			MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b0b0
		>;
	};

	pinctrl_ethphy7: ethphy7-grp {
		fsl,pins = <
			MX6QDL_PAD_EIM_D29__GPIO3_IO29		0xb0 /* Reset */
			MX6QDL_PAD_GPIO_0__GPIO1_IO00		0xb1 /* Int */
			MX6QDL_PAD_EIM_D26__GPIO3_IO26		0xb1 /* WOL */
		>;
	};

	pinctrl_pcie: pcie-grp {
		fsl,pins = <
			MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20	0x1b0b1
		>;
	};
};

&pcie {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pcie>;
	reset-gpio = <&gpio6 14 GPIO_ACTIVE_LOW>;
	status = "okay";
};

&ssi1 {
	status = "okay";
};

&usdhc3 {
	status = "okay";
};
