// SPDX-License-Identifier: GPL-2.0
/*
 * at91-dvk_su60_somc.dtsi - Device Tree file for the DVK SOM60 base board
 *
 *  Copyright (C) 2018 Laird,
 *		  2018 Ben Whitten <ben.whitten@lairdtech.com>
 *
 */

/ {
	sound {
		compatible = "atmel,asoc-wm8904";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_pck2_as_audio_mck>;

		atmel,model = "wm8904 @ DVK-SOM60";
		atmel,audio-routing =
			"Headphone Jack", "HPOUTL",
			"Headphone Jack", "HPOUTR",
			"IN2L", "Line In Jack",
			"IN2R", "Line In Jack",
			"Mic", "MICBIAS",
			"IN1L", "Mic";

		atmel,ssc-controller = <&ssc0>;
		atmel,audio-codec = <&wm8904>;

		status = "okay";
	};
};

&mmc0 {
	status = "okay";

	pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
	slot@0 {
		bus-width = <4>;
		cd-gpios = <&pioE 31 GPIO_ACTIVE_HIGH>;
		cd-inverted;
	};
};

&spi0 {
	status = "okay";

	/* spi0.0: 4M Flash Macronix MX25R4035FM1IL0 */
	flash@0 {
		compatible = "mxicy,mx25u4035", "jedec,spi-nor";
		spi-max-frequency = <33000000>;
		reg = <0>;
	};
};

&ssc0 {
	atmel,clk-from-rk-pin;
	status = "okay";
};

&i2c0 {
	status = "okay";

	wm8904: wm8904@1a {
		compatible = "wlf,wm8904";
		reg = <0x1a>;
		clocks = <&pmc PMC_TYPE_SYSTEM 10>;
		clock-names = "mclk";
	};
};

&i2c1 {
	status = "okay";

	eeprom@57 {
		compatible = "giantec,gt24c32a", "atmel,24c32";
		reg = <0x57>;
		pagesize = <32>;
	};
};

&usart1 {
	status = "okay";
};

&usart2 {
	status = "okay";
};

&usart3 {
	status = "okay";
};

&uart0 {
	status = "okay";
};

&dbgu {
	status = "okay";
};

&pit {
	status = "okay";
};

&adc0 {
	status = "okay";
};

&can1 {
	status = "okay";
};

&macb0 {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	ethernet-phy@7 {
		reg = <7>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_geth_int>;
		interrupt-parent = <&pioB>;
		interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
		txen-skew-ps = <800>;
		txc-skew-ps = <3000>;
		rxdv-skew-ps = <400>;
		rxc-skew-ps = <3000>;
		rxd0-skew-ps = <400>;
		rxd1-skew-ps = <400>;
		rxd2-skew-ps = <400>;
		rxd3-skew-ps = <400>;
	};
};

&macb1 {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	ethernet-phy@1 {
		reg = <1>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_eth_int>;
		interrupt-parent = <&pioC>;
		interrupts = <10 IRQ_TYPE_EDGE_FALLING>;
	};
};

&usb0 {
	status = "okay";
};

&usb1 {
	status = "okay";
};

&usb2 {
	status = "okay";
};