1279377Simp/*
2279377Simp * Copyright 2012 Armadeus Systems - <support@armadeus.com>
3279377Simp *
4279377Simp * The code contained herein is licensed under the GNU General Public
5279377Simp * License. You may obtain a copy of the GNU General Public License
6279377Simp * Version 2 or later at the following locations:
7279377Simp *
8279377Simp * http://www.opensource.org/licenses/gpl-license.html
9279377Simp * http://www.gnu.org/copyleft/gpl.html
10279377Simp */
11279377Simp
12279377Simp/* APF28Dev is a docking board for the APF28 SOM */
13279377Simp#include "imx28-apf28.dts"
14279377Simp
15279377Simp/ {
16279377Simp	model = "Armadeus Systems APF28Dev docking/development board";
17279377Simp	compatible = "armadeus,imx28-apf28dev", "armadeus,imx28-apf28", "fsl,imx28";
18279377Simp
19279377Simp	apb@80000000 {
20279377Simp		apbh@80000000 {
21279377Simp			ssp0: ssp@80010000 {
22279377Simp				compatible = "fsl,imx28-mmc";
23279377Simp				pinctrl-names = "default";
24279377Simp				pinctrl-0 = <&mmc0_4bit_pins_a
25279377Simp					&mmc0_cd_cfg &mmc0_sck_cfg>;
26279377Simp				bus-width = <4>;
27279377Simp				status = "okay";
28279377Simp			};
29279377Simp
30279377Simp			ssp2: ssp@80014000 {
31279377Simp				compatible = "fsl,imx28-spi";
32279377Simp				pinctrl-names = "default";
33279377Simp				pinctrl-0 = <&spi2_pins_a>;
34279377Simp				status = "okay";
35279377Simp			};
36279377Simp
37279377Simp			pinctrl@80018000 {
38279377Simp				pinctrl-names = "default";
39279377Simp				pinctrl-0 = <&hog_pins_apf28dev>;
40279377Simp
41279377Simp				hog_pins_apf28dev: hog@0 {
42279377Simp					reg = <0>;
43279377Simp					fsl,pinmux-ids = <
44279377Simp						MX28_PAD_LCD_D16__GPIO_1_16
45279377Simp						MX28_PAD_LCD_D17__GPIO_1_17
46279377Simp						MX28_PAD_LCD_D18__GPIO_1_18
47279377Simp						MX28_PAD_LCD_D19__GPIO_1_19
48279377Simp						MX28_PAD_LCD_D20__GPIO_1_20
49279377Simp						MX28_PAD_LCD_D21__GPIO_1_21
50279377Simp						MX28_PAD_LCD_D22__GPIO_1_22
51279377Simp						MX28_PAD_GPMI_CE1N__GPIO_0_17
52279377Simp					>;
53279377Simp					fsl,drive-strength = <MXS_DRIVE_4mA>;
54279377Simp					fsl,voltage = <MXS_VOLTAGE_HIGH>;
55279377Simp					fsl,pull-up = <MXS_PULL_DISABLE>;
56279377Simp				};
57279377Simp
58279377Simp				lcdif_pins_apf28dev: lcdif-apf28dev@0 {
59279377Simp					reg = <0>;
60279377Simp					fsl,pinmux-ids = <
61279377Simp						MX28_PAD_LCD_RD_E__LCD_VSYNC
62279377Simp						MX28_PAD_LCD_WR_RWN__LCD_HSYNC
63279377Simp						MX28_PAD_LCD_RS__LCD_DOTCLK
64279377Simp						MX28_PAD_LCD_CS__LCD_ENABLE
65279377Simp					>;
66279377Simp					fsl,drive-strength = <MXS_DRIVE_4mA>;
67279377Simp					fsl,voltage = <MXS_VOLTAGE_HIGH>;
68279377Simp					fsl,pull-up = <MXS_PULL_DISABLE>;
69279377Simp				};
70279377Simp
71279377Simp				usb0_otg_apf28dev: otg-apf28dev@0 {
72279377Simp					reg = <0>;
73279377Simp					fsl,pinmux-ids = <
74279377Simp						MX28_PAD_LCD_D23__GPIO_1_23
75279377Simp					>;
76279377Simp					fsl,drive-strength = <MXS_DRIVE_4mA>;
77279377Simp					fsl,voltage = <MXS_VOLTAGE_HIGH>;
78279377Simp					fsl,pull-up = <MXS_PULL_DISABLE>;
79279377Simp				};
80279377Simp			};
81279377Simp
82279377Simp			lcdif@80030000 {
83279377Simp				pinctrl-names = "default";
84279377Simp				pinctrl-0 = <&lcdif_16bit_pins_a
85279377Simp						&lcdif_pins_apf28dev>;
86279377Simp				display = <&display0>;
87279377Simp				status = "okay";
88279377Simp
89279377Simp				display0: display0 {
90279377Simp					bits-per-pixel = <16>;
91279377Simp					bus-width = <16>;
92279377Simp
93279377Simp					display-timings {
94279377Simp						native-mode = <&timing0>;
95279377Simp						timing0: timing0 {
96279377Simp							clock-frequency = <33000033>;
97279377Simp							hactive = <800>;
98279377Simp							vactive = <480>;
99279377Simp							hback-porch = <96>;
100279377Simp							hfront-porch = <96>;
101279377Simp							vback-porch = <20>;
102279377Simp							vfront-porch = <21>;
103279377Simp							hsync-len = <64>;
104279377Simp							vsync-len = <4>;
105279377Simp							hsync-active = <1>;
106279377Simp							vsync-active = <1>;
107279377Simp							de-active = <1>;
108279377Simp							pixelclk-active = <0>;
109279377Simp						};
110279377Simp					};
111279377Simp				};
112279377Simp			};
113295436Sandrew
114295436Sandrew			can0: can@80032000 {
115295436Sandrew				pinctrl-names = "default";
116295436Sandrew				pinctrl-0 = <&can0_pins_a>;
117295436Sandrew				xceiver-supply = <&reg_can0_vcc>;
118295436Sandrew				status = "okay";
119295436Sandrew			};
120279377Simp		};
121279377Simp
122279377Simp		apbx@80040000 {
123279377Simp			lradc@80050000 {
124279377Simp				fsl,lradc-touchscreen-wires = <4>;
125279377Simp				status = "okay";
126279377Simp			};
127279377Simp
128279377Simp			i2c0: i2c@80058000 {
129279377Simp				pinctrl-names = "default";
130279377Simp				pinctrl-0 = <&i2c0_pins_a>;
131279377Simp				status = "okay";
132279377Simp			};
133279377Simp
134279377Simp			pwm: pwm@80064000 {
135279377Simp				pinctrl-names = "default";
136279377Simp				pinctrl-0 = <&pwm3_pins_a &pwm4_pins_a>;
137279377Simp				status = "okay";
138279377Simp			};
139279377Simp
140295436Sandrew			auart0: serial@8006a000 {
141295436Sandrew				pinctrl-names = "default";
142295436Sandrew				pinctrl-0 = <&auart0_pins_a>;
143295436Sandrew				fsl,uart-has-rtscts;
144295436Sandrew				status = "okay";
145295436Sandrew			};
146295436Sandrew
147279377Simp			usbphy0: usbphy@8007c000 {
148279377Simp				status = "okay";
149279377Simp			};
150279377Simp
151279377Simp			usbphy1: usbphy@8007e000 {
152279377Simp				status = "okay";
153279377Simp			};
154279377Simp		};
155279377Simp	};
156279377Simp
157279377Simp	ahb@80080000 {
158279377Simp		usb0: usb@80080000 {
159279377Simp			pinctrl-names = "default";
160295436Sandrew			pinctrl-0 = <&usb0_otg_apf28dev
161295436Sandrew					&usb0_id_pins_b>;
162279377Simp			vbus-supply = <&reg_usb0_vbus>;
163279377Simp			status = "okay";
164279377Simp		};
165279377Simp
166279377Simp		usb1: usb@80090000 {
167279377Simp			status = "okay";
168279377Simp		};
169279377Simp
170279377Simp		mac1: ethernet@800f4000 {
171279377Simp			phy-mode = "rmii";
172279377Simp			pinctrl-names = "default";
173279377Simp			pinctrl-0 = <&mac1_pins_a>;
174295436Sandrew			phy-reset-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
175279377Simp			status = "okay";
176279377Simp		};
177279377Simp	};
178279377Simp
179279377Simp	regulators {
180279377Simp		compatible = "simple-bus";
181279377Simp		#address-cells = <1>;
182279377Simp		#size-cells = <0>;
183279377Simp
184279377Simp		reg_usb0_vbus: regulator@0 {
185279377Simp			compatible = "regulator-fixed";
186279377Simp			reg = <0>;
187279377Simp			regulator-name = "usb0_vbus";
188279377Simp			regulator-min-microvolt = <5000000>;
189279377Simp			regulator-max-microvolt = <5000000>;
190279377Simp			gpio = <&gpio1 23 1>;
191279377Simp			enable-active-high;
192279377Simp		};
193295436Sandrew
194295436Sandrew		reg_can0_vcc: regulator@1 {
195295436Sandrew			compatible = "regulator-fixed";
196295436Sandrew			reg = <1>;
197295436Sandrew			regulator-name = "can0_vcc";
198295436Sandrew			regulator-min-microvolt = <5000000>;
199295436Sandrew			regulator-max-microvolt = <5000000>;
200295436Sandrew		};
201279377Simp	};
202279377Simp
203279377Simp	leds {
204279377Simp		compatible = "gpio-leds";
205279377Simp
206279377Simp		user {
207279377Simp			label = "Heartbeat";
208279377Simp			gpios = <&gpio0 21 0>;
209279377Simp			linux,default-trigger = "heartbeat";
210279377Simp		};
211279377Simp	};
212279377Simp
213279377Simp	backlight {
214279377Simp		compatible = "pwm-backlight";
215279377Simp
216279377Simp		pwms = <&pwm 3 191000>;
217279377Simp		brightness-levels = <0 4 8 16 32 64 128 255>;
218279377Simp		default-brightness-level = <6>;
219279377Simp	};
220279377Simp
221279377Simp	gpio-keys {
222279377Simp		compatible = "gpio-keys";
223279377Simp
224279377Simp		user-button {
225279377Simp			label = "User button";
226295436Sandrew			gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
227279377Simp			linux,code = <0x100>;
228295436Sandrew			gpio-key,wakeup;
229279377Simp		};
230279377Simp	};
231279377Simp};
232