// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (C) 2015-2017 I2SE GmbH <info@i2se.com>
 * Copyright (C) 2016 Michael Heimpold <mhei@heimpold.de>
 */

/dts-v1/;
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/gpio/gpio.h>
#include "imx28.dtsi"

/ {
	model = "I2SE Duckbill 2";
	compatible = "i2se,duckbill-2", "fsl,imx28";

	memory@40000000 {
		device_type = "memory";
		reg = <0x40000000 0x08000000>;
	};

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

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

		status-red {
			label = "duckbill:red:status";
			gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "default-on";
		};

		status-green {
			label = "duckbill:green:status";
			gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};
	};
};

&auart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&auart0_2pins_a>;
	status = "okay";
};

&duart {
	pinctrl-names = "default";
	pinctrl-0 = <&duart_pins_a>;
	status = "okay";
};

&i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins_a>;
	status = "okay";
};

&lradc {
	status = "okay";
};

&mac0 {
	phy-mode = "rmii";
	pinctrl-names = "default";
	pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
	phy-supply = <&reg_3p3v>;
	phy-reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
	phy-reset-duration = <25>;
	phy-handle = <&ethphy>;
	status = "okay";

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

		ethphy: ethernet-phy@0 {
			compatible = "ethernet-phy-ieee802.3-c22";
			reg = <0>;
			pinctrl-names = "default";
			pinctrl-0 = <&mac0_phy_int_pin>;
			interrupt-parent = <&gpio0>;
			interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
			max-speed = <100>;
		};
	};
};

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

	hog_pins_a: hog@0 {
		reg = <0>;
		fsl,pinmux-ids = <
			MX28_PAD_LCD_D17__GPIO_1_17    /* Revision detection */
		>;
		fsl,drive-strength = <MXS_DRIVE_4mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};

	mac0_phy_reset_pin: mac0-phy-reset@0 {
		reg = <0>;
		fsl,pinmux-ids = <
			MX28_PAD_GPMI_ALE__GPIO_0_26    /* PHY Reset */
		>;
		fsl,drive-strength = <MXS_DRIVE_4mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};

	mac0_phy_int_pin: mac0-phy-int@0 {
		reg = <0>;
		fsl,pinmux-ids = <
			MX28_PAD_GPMI_D07__GPIO_0_7    /* PHY Interrupt */
		>;
		fsl,drive-strength = <MXS_DRIVE_4mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};

	led_pins: leds@0 {
		reg = <0>;
		fsl,pinmux-ids = <
			MX28_PAD_SAIF0_MCLK__GPIO_3_20
			MX28_PAD_SAIF0_LRCLK__GPIO_3_21
		>;
		fsl,drive-strength = <MXS_DRIVE_4mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};
};

&ssp0 {
	compatible = "fsl,imx28-mmc";
	pinctrl-names = "default";
	pinctrl-0 = <&mmc0_8bit_pins_a
		&mmc0_cd_cfg &mmc0_sck_cfg>;
	bus-width = <8>;
	vmmc-supply = <&reg_3p3v>;
	status = "okay";
	non-removable;
};

&ssp2 {
	compatible = "fsl,imx28-mmc";
	pinctrl-names = "default";
	pinctrl-0 = <&mmc2_4bit_pins_b
		&mmc2_cd_cfg &mmc2_sck_cfg_b>;
	bus-width = <4>;
	vmmc-supply = <&reg_3p3v>;
	status = "okay";
};

&usb0 {
	status = "okay";
	dr_mode = "peripheral";
};

&usbphy0 {
	status = "okay";
};
