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