1/*
2 * Copyright (C) 2013-2014,2016 Michael Heimpold <mhei@heimpold.de>
3 * Copyright (C) 2015-2017 I2SE GmbH <info@i2se.com>
4 *
5 * The code contained herein is licensed under the GNU General Public
6 * License. You may obtain a copy of the GNU General Public License
7 * Version 2 or later at the following locations:
8 *
9 * http://www.opensource.org/licenses/gpl-license.html
10 * http://www.gnu.org/copyleft/gpl.html
11 */
12
13/dts-v1/;
14#include <dt-bindings/gpio/gpio.h>
15#include "imx28.dtsi"
16
17/ {
18	model = "I2SE Duckbill";
19	compatible = "i2se,duckbill", "fsl,imx28";
20
21	memory@40000000 {
22		reg = <0x40000000 0x08000000>;
23	};
24
25	apb@80000000 {
26		apbh@80000000 {
27			ssp0: ssp@80010000 {
28				compatible = "fsl,imx28-mmc";
29				pinctrl-names = "default";
30				pinctrl-0 = <&mmc0_4bit_pins_a
31					&mmc0_cd_cfg &mmc0_sck_cfg>;
32				bus-width = <4>;
33				vmmc-supply = <&reg_3p3v>;
34				status = "okay";
35			};
36
37			ssp2: ssp@80014000 {
38				compatible = "fsl,imx28-spi";
39				pinctrl-names = "default";
40				pinctrl-0 = <&spi2_pins_a>;
41				status = "okay";
42			};
43
44			pinctrl@80018000 {
45				pinctrl-names = "default";
46				pinctrl-0 = <&hog_pins_a>;
47
48				hog_pins_a: hog@0 {
49					reg = <0>;
50					fsl,pinmux-ids = <
51						MX28_PAD_LCD_D17__GPIO_1_17    /* Revision detection */
52					>;
53					fsl,drive-strength = <MXS_DRIVE_4mA>;
54					fsl,voltage = <MXS_VOLTAGE_HIGH>;
55					fsl,pull-up = <MXS_PULL_DISABLE>;
56				};
57
58				mac0_phy_reset_pin: mac0-phy-reset@0 {
59					reg = <0>;
60					fsl,pinmux-ids = <
61						MX28_PAD_SSP0_DATA7__GPIO_2_7    /* PHY Reset */
62					>;
63					fsl,drive-strength = <MXS_DRIVE_4mA>;
64					fsl,voltage = <MXS_VOLTAGE_HIGH>;
65					fsl,pull-up = <MXS_PULL_DISABLE>;
66				};
67
68				led_pins: leds@0 {
69					reg = <0>;
70					fsl,pinmux-ids = <
71						MX28_PAD_AUART1_RX__GPIO_3_4
72						MX28_PAD_AUART1_TX__GPIO_3_5
73					>;
74					fsl,drive-strength = <MXS_DRIVE_4mA>;
75					fsl,voltage = <MXS_VOLTAGE_HIGH>;
76					fsl,pull-up = <MXS_PULL_DISABLE>;
77				};
78			};
79		};
80
81		apbx@80040000 {
82			lradc@80050000 {
83				status = "okay";
84			};
85
86			i2c0: i2c@80058000 {
87				pinctrl-names = "default";
88				pinctrl-0 = <&i2c0_pins_a>;
89				status = "okay";
90			};
91
92			auart0: serial@8006a000 {
93				pinctrl-names = "default";
94				pinctrl-0 = <&auart0_2pins_a>;
95				status = "okay";
96			};
97
98			duart: serial@80074000 {
99				pinctrl-names = "default";
100				pinctrl-0 = <&duart_pins_a>;
101				status = "okay";
102			};
103
104			usbphy0: usbphy@8007c000 {
105				status = "okay";
106			};
107		};
108	};
109
110	ahb@80080000 {
111		usb0: usb@80080000 {
112			status = "okay";
113			dr_mode = "peripheral";
114		};
115
116		mac0: ethernet@800f0000 {
117			phy-mode = "rmii";
118			pinctrl-names = "default";
119			pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
120			phy-supply = <&reg_3p3v>;
121			phy-reset-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
122			phy-reset-duration = <25>;
123			status = "okay";
124		};
125	};
126
127	reg_3p3v: regulator-3p3v {
128		compatible = "regulator-fixed";
129		regulator-name = "3P3V";
130		regulator-min-microvolt = <3300000>;
131		regulator-max-microvolt = <3300000>;
132		regulator-always-on;
133	};
134
135	leds {
136		compatible = "gpio-leds";
137		pinctrl-names = "default";
138		pinctrl-0 = <&led_pins>;
139
140		status-red {
141			label = "duckbill:red:status";
142			gpios = <&gpio3 4 GPIO_ACTIVE_HIGH>;
143			linux,default-trigger = "default-on";
144		};
145
146		status-green {
147			label = "duckbill:green:status";
148			gpios = <&gpio3 5 GPIO_ACTIVE_HIGH>;
149			linux,default-trigger = "heartbeat";
150		};
151	};
152};
153