blob: 4e28212e9626067ef2bec2d00f3e9afbb9745c61 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright (C) 2015-2017 I2SE GmbH <info@i2se.com>
4 * Copyright (C) 2016 Michael Heimpold <mhei@heimpold.de>
5 */
6
7/dts-v1/;
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/gpio/gpio.h>
10#include "imx28.dtsi"
11
12/ {
13 model = "I2SE Duckbill 2";
14 compatible = "i2se,duckbill-2", "fsl,imx28";
15
16 memory@40000000 {
17 device_type = "memory";
18 reg = <0x40000000 0x08000000>;
19 };
20
21 reg_3p3v: regulator-3p3v {
22 compatible = "regulator-fixed";
23 regulator-name = "3P3V";
24 regulator-min-microvolt = <3300000>;
25 regulator-max-microvolt = <3300000>;
26 regulator-always-on;
27 };
28
29 leds {
30 compatible = "gpio-leds";
31 pinctrl-names = "default";
32 pinctrl-0 = <&led_pins>;
33
34 status-red {
35 label = "duckbill:red:status";
36 gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
37 linux,default-trigger = "default-on";
38 };
39
40 status-green {
41 label = "duckbill:green:status";
42 gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
43 linux,default-trigger = "heartbeat";
44 };
45 };
46};
47
48&auart0 {
49 pinctrl-names = "default";
50 pinctrl-0 = <&auart0_2pins_a>;
51 status = "okay";
52};
53
54&duart {
55 pinctrl-names = "default";
56 pinctrl-0 = <&duart_pins_a>;
57 status = "okay";
58};
59
60&i2c0 {
61 pinctrl-names = "default";
62 pinctrl-0 = <&i2c0_pins_a>;
63 status = "okay";
64};
65
66&lradc {
67 status = "okay";
68};
69
70&mac0 {
71 phy-mode = "rmii";
72 pinctrl-names = "default";
73 pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
74 phy-supply = <&reg_3p3v>;
75 phy-reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
76 phy-reset-duration = <25>;
77 phy-handle = <&ethphy>;
78 status = "okay";
79
80 mdio {
81 #address-cells = <1>;
82 #size-cells = <0>;
83
84 ethphy: ethernet-phy@0 {
85 compatible = "ethernet-phy-ieee802.3-c22";
86 reg = <0>;
87 pinctrl-names = "default";
88 pinctrl-0 = <&mac0_phy_int_pin>;
89 interrupt-parent = <&gpio0>;
90 interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
91 max-speed = <100>;
92 };
93 };
94};
95
96&pinctrl {
97 pinctrl-names = "default";
98 pinctrl-0 = <&hog_pins_a>;
99
100 hog_pins_a: hog@0 {
101 reg = <0>;
102 fsl,pinmux-ids = <
103 MX28_PAD_LCD_D17__GPIO_1_17 /* Revision detection */
104 >;
105 fsl,drive-strength = <MXS_DRIVE_4mA>;
106 fsl,voltage = <MXS_VOLTAGE_HIGH>;
107 fsl,pull-up = <MXS_PULL_DISABLE>;
108 };
109
110 mac0_phy_reset_pin: mac0-phy-reset@0 {
111 reg = <0>;
112 fsl,pinmux-ids = <
113 MX28_PAD_GPMI_ALE__GPIO_0_26 /* PHY Reset */
114 >;
115 fsl,drive-strength = <MXS_DRIVE_4mA>;
116 fsl,voltage = <MXS_VOLTAGE_HIGH>;
117 fsl,pull-up = <MXS_PULL_DISABLE>;
118 };
119
120 mac0_phy_int_pin: mac0-phy-int@0 {
121 reg = <0>;
122 fsl,pinmux-ids = <
123 MX28_PAD_GPMI_D07__GPIO_0_7 /* PHY Interrupt */
124 >;
125 fsl,drive-strength = <MXS_DRIVE_4mA>;
126 fsl,voltage = <MXS_VOLTAGE_HIGH>;
127 fsl,pull-up = <MXS_PULL_DISABLE>;
128 };
129
130 led_pins: leds@0 {
131 reg = <0>;
132 fsl,pinmux-ids = <
133 MX28_PAD_SAIF0_MCLK__GPIO_3_20
134 MX28_PAD_SAIF0_LRCLK__GPIO_3_21
135 >;
136 fsl,drive-strength = <MXS_DRIVE_4mA>;
137 fsl,voltage = <MXS_VOLTAGE_HIGH>;
138 fsl,pull-up = <MXS_PULL_DISABLE>;
139 };
140};
141
142&ssp0 {
143 compatible = "fsl,imx28-mmc";
144 pinctrl-names = "default";
145 pinctrl-0 = <&mmc0_8bit_pins_a
146 &mmc0_cd_cfg &mmc0_sck_cfg>;
147 bus-width = <8>;
148 vmmc-supply = <&reg_3p3v>;
149 status = "okay";
150 non-removable;
151};
152
153&ssp2 {
154 compatible = "fsl,imx28-mmc";
155 pinctrl-names = "default";
156 pinctrl-0 = <&mmc2_4bit_pins_b
157 &mmc2_cd_cfg &mmc2_sck_cfg_b>;
158 bus-width = <4>;
159 vmmc-supply = <&reg_3p3v>;
160 status = "okay";
161};
162
163&usb0 {
164 status = "okay";
165 dr_mode = "peripheral";
166};
167
168&usbphy0 {
169 status = "okay";
170};