1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright (C) 2013-2014,2016 Michael Heimpold <mhei@heimpold.de>
4 * Copyright (C) 2015-2017 I2SE GmbH <info@i2se.com>
5 */
6
7/dts-v1/;
8#include <dt-bindings/gpio/gpio.h>
9#include "imx28.dtsi"
10
11/ {
12	model = "I2SE Duckbill";
13	compatible = "i2se,duckbill", "fsl,imx28";
14
15	memory@40000000 {
16		device_type = "memory";
17		reg = <0x40000000 0x08000000>;
18	};
19
20	reg_3p3v: regulator-3p3v {
21		compatible = "regulator-fixed";
22		regulator-name = "3P3V";
23		regulator-min-microvolt = <3300000>;
24		regulator-max-microvolt = <3300000>;
25		regulator-always-on;
26	};
27
28	leds {
29		compatible = "gpio-leds";
30		pinctrl-names = "default";
31		pinctrl-0 = <&led_pins>;
32
33		status-red {
34			label = "duckbill:red:status";
35			gpios = <&gpio3 4 GPIO_ACTIVE_HIGH>;
36			linux,default-trigger = "default-on";
37		};
38
39		status-green {
40			label = "duckbill:green:status";
41			gpios = <&gpio3 5 GPIO_ACTIVE_HIGH>;
42			linux,default-trigger = "heartbeat";
43		};
44	};
45};
46
47&auart0 {
48	pinctrl-names = "default";
49	pinctrl-0 = <&auart0_2pins_a>;
50	status = "okay";
51};
52
53&duart {
54	pinctrl-names = "default";
55	pinctrl-0 = <&duart_pins_a>;
56	status = "okay";
57};
58
59&lradc {
60	status = "okay";
61};
62
63&i2c0 {
64	pinctrl-names = "default";
65	pinctrl-0 = <&i2c0_pins_a>;
66	status = "okay";
67};
68
69&mac0 {
70	phy-mode = "rmii";
71	pinctrl-names = "default";
72	pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
73	phy-supply = <&reg_3p3v>;
74	phy-reset-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
75	phy-reset-duration = <25>;
76	status = "okay";
77};
78
79&pinctrl {
80	pinctrl-names = "default";
81	pinctrl-0 = <&hog_pins_a>;
82
83	hog_pins_a: hog@0 {
84		reg = <0>;
85		fsl,pinmux-ids = <
86			MX28_PAD_LCD_D17__GPIO_1_17    /* Revision detection */
87		>;
88		fsl,drive-strength = <MXS_DRIVE_4mA>;
89		fsl,voltage = <MXS_VOLTAGE_HIGH>;
90		fsl,pull-up = <MXS_PULL_DISABLE>;
91	};
92
93	mac0_phy_reset_pin: mac0-phy-reset@0 {
94		reg = <0>;
95		fsl,pinmux-ids = <
96			MX28_PAD_SSP0_DATA7__GPIO_2_7    /* PHY Reset */
97		>;
98		fsl,drive-strength = <MXS_DRIVE_4mA>;
99		fsl,voltage = <MXS_VOLTAGE_HIGH>;
100		fsl,pull-up = <MXS_PULL_DISABLE>;
101	};
102
103	led_pins: leds@0 {
104		reg = <0>;
105		fsl,pinmux-ids = <
106			MX28_PAD_AUART1_RX__GPIO_3_4
107			MX28_PAD_AUART1_TX__GPIO_3_5
108		>;
109		fsl,drive-strength = <MXS_DRIVE_4mA>;
110		fsl,voltage = <MXS_VOLTAGE_HIGH>;
111		fsl,pull-up = <MXS_PULL_DISABLE>;
112	};
113};
114
115&ssp0 {
116	compatible = "fsl,imx28-mmc";
117	pinctrl-names = "default";
118	pinctrl-0 = <&mmc0_4bit_pins_a
119		&mmc0_cd_cfg &mmc0_sck_cfg>;
120	bus-width = <4>;
121	vmmc-supply = <&reg_3p3v>;
122	status = "okay";
123};
124
125&ssp2 {
126	compatible = "fsl,imx28-spi";
127	pinctrl-names = "default";
128	pinctrl-0 = <&spi2_pins_a>;
129	status = "okay";
130};
131
132&usb0 {
133	dr_mode = "peripheral";
134	status = "okay";
135};
136
137&usbphy0 {
138	status = "okay";
139};
140