Merge tag 'ntb-3.13' of git://github.com/jonmason/ntb
[linux-drm-fsl-dcu.git] / arch / arm / boot / dts / imx28-cfa10049.dts
1 /*
2  * Copyright 2012 Free Electrons
3  *
4  * The code contained herein is licensed under the GNU General Public
5  * License. You may obtain a copy of the GNU General Public License
6  * Version 2 or later at the following locations:
7  *
8  * http://www.opensource.org/licenses/gpl-license.html
9  * http://www.gnu.org/copyleft/gpl.html
10  */
11
12 /*
13  * The CFA-10049 is an expansion board for the CFA-10036 module, thus we
14  * need to include the CFA-10036 DTS.
15  */
16 #include "imx28-cfa10036.dts"
17
18 / {
19         model = "Crystalfontz CFA-10049 Board";
20         compatible = "crystalfontz,cfa10049", "crystalfontz,cfa10036", "fsl,imx28";
21
22         apb@80000000 {
23                 apbh@80000000 {
24                         pinctrl@80018000 {
25                                 usb_pins_cfa10049: usb-10049@0 {
26                                         reg = <0>;
27                                         fsl,pinmux-ids = <
28                                                 MX28_PAD_GPMI_D07__GPIO_0_7
29                                         >;
30                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
31                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
32                                         fsl,pull-up = <MXS_PULL_DISABLE>;
33                                 };
34
35                                 i2cmux_pins_cfa10049: i2cmux-10049@0 {
36                                         reg = <0>;
37                                         fsl,pinmux-ids = <
38                                                 MX28_PAD_LCD_D22__GPIO_1_22
39                                                 MX28_PAD_LCD_D23__GPIO_1_23
40                                         >;
41                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
42                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
43                                         fsl,pull-up = <MXS_PULL_DISABLE>;
44                                 };
45
46                                 mac0_pins_cfa10049: mac0-10049@0 {
47                                         reg = <0>;
48                                         fsl,pinmux-ids = <
49                                                 MX28_PAD_SSP2_SS2__GPIO_2_21
50                                         >;
51                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
52                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
53                                         fsl,pull-up = <MXS_PULL_DISABLE>;
54                                 };
55
56                                 pca_pins_cfa10049: pca-10049@0 {
57                                         reg = <0>;
58                                         fsl,pinmux-ids = <
59                                                 MX28_PAD_SSP2_SS0__GPIO_2_19
60                                         >;
61                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
62                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
63                                         fsl,pull-up = <MXS_PULL_ENABLE>;
64                                 };
65
66                                 rotary_pins_cfa10049: rotary-10049@0 {
67                                         reg = <0>;
68                                         fsl,pinmux-ids = <
69                                                 MX28_PAD_I2C0_SCL__GPIO_3_24
70                                                 MX28_PAD_I2C0_SDA__GPIO_3_25
71                                         >;
72                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
73                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
74                                         fsl,pull-up = <MXS_PULL_ENABLE>;
75                                 };
76
77                                 rotary_btn_pins_cfa10049: rotary-btn-10049@0 {
78                                         reg = <0>;
79                                         fsl,pinmux-ids = <
80                                                 MX28_PAD_SAIF1_SDATA0__GPIO_3_26
81                                         >;
82                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
83                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
84                                         fsl,pull-up = <MXS_PULL_ENABLE>;
85                                 };
86
87                                 spi2_pins_cfa10049: spi2-cfa10049@0 {
88                                         reg = <0>;
89                                         fsl,pinmux-ids = <
90                                                 MX28_PAD_SSP2_SCK__GPIO_2_16
91                                                 MX28_PAD_SSP2_MOSI__GPIO_2_17
92                                                 MX28_PAD_SSP2_MISO__GPIO_2_18
93                                                 MX28_PAD_AUART1_TX__GPIO_3_5
94                                         >;
95                                         fsl,drive-strength = <MXS_DRIVE_8mA>;
96                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
97                                         fsl,pull-up = <MXS_PULL_ENABLE>;
98                                 };
99
100                                 spi3_pins_cfa10049: spi3-cfa10049@0 {
101                                         reg = <0>;
102                                         fsl,pinmux-ids = <
103                                                 MX28_PAD_GPMI_RDN__GPIO_0_24
104                                                 MX28_PAD_GPMI_RESETN__GPIO_0_28
105                                                 MX28_PAD_GPMI_CE1N__GPIO_0_17
106                                                 MX28_PAD_GPMI_ALE__GPIO_0_26
107                                                 MX28_PAD_GPMI_CLE__GPIO_0_27
108                                         >;
109                                         fsl,drive-strength = <MXS_DRIVE_8mA>;
110                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
111                                         fsl,pull-up = <MXS_PULL_ENABLE>;
112                                 };
113
114                                 lcdif_18bit_pins_cfa10049: lcdif-18bit@0 {
115                                         reg = <0>;
116                                         fsl,pinmux-ids = <
117                                                 MX28_PAD_LCD_D00__LCD_D0
118                                                 MX28_PAD_LCD_D01__LCD_D1
119                                                 MX28_PAD_LCD_D02__LCD_D2
120                                                 MX28_PAD_LCD_D03__LCD_D3
121                                                 MX28_PAD_LCD_D04__LCD_D4
122                                                 MX28_PAD_LCD_D05__LCD_D5
123                                                 MX28_PAD_LCD_D06__LCD_D6
124                                                 MX28_PAD_LCD_D07__LCD_D7
125                                                 MX28_PAD_LCD_D08__LCD_D8
126                                                 MX28_PAD_LCD_D09__LCD_D9
127                                                 MX28_PAD_LCD_D10__LCD_D10
128                                                 MX28_PAD_LCD_D11__LCD_D11
129                                                 MX28_PAD_LCD_D12__LCD_D12
130                                                 MX28_PAD_LCD_D13__LCD_D13
131                                                 MX28_PAD_LCD_D14__LCD_D14
132                                                 MX28_PAD_LCD_D15__LCD_D15
133                                                 MX28_PAD_LCD_D16__LCD_D16
134                                                 MX28_PAD_LCD_D17__LCD_D17
135                                         >;
136                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
137                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
138                                         fsl,pull-up = <MXS_PULL_DISABLE>;
139                                 };
140
141                                 lcdif_pins_cfa10049: lcdif-evk@0 {
142                                         reg = <0>;
143                                         fsl,pinmux-ids = <
144                                                 MX28_PAD_LCD_RD_E__LCD_VSYNC
145                                                 MX28_PAD_LCD_WR_RWN__LCD_HSYNC
146                                                 MX28_PAD_LCD_RS__LCD_DOTCLK
147                                                 MX28_PAD_LCD_CS__LCD_ENABLE
148                                         >;
149                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
150                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
151                                         fsl,pull-up = <MXS_PULL_DISABLE>;
152                                 };
153
154                                 lcdif_pins_cfa10049_pullup: lcdif-10049-pullup@0 {
155                                         reg = <0>;
156                                         fsl,pinmux-ids = <
157                                                 MX28_PAD_LCD_RESET__GPIO_3_30
158                                         >;
159                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
160                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
161                                         fsl,pull-up = <MXS_PULL_ENABLE>;
162                                 };
163
164                                 w1_gpio_pins: w1-gpio@0 {
165                                         reg = <0>;
166                                         fsl,pinmux-ids = <
167                                                 MX28_PAD_LCD_D21__GPIO_1_21
168                                         >;
169                                         fsl,drive-strength = <MXS_DRIVE_8mA>;
170                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
171                                         fsl,pull-up = <MXS_PULL_DISABLE>; /* 0 will enable the keeper */
172                                 };
173                         };
174
175                         lcdif@80030000 {
176                                 pinctrl-names = "default";
177                                 pinctrl-0 = <&lcdif_18bit_pins_cfa10049
178                                              &lcdif_pins_cfa10049
179                                              &lcdif_pins_cfa10049_pullup>;
180                                 display = <&display>;
181                                 status = "okay";
182
183                                 display: display {
184                                         bits-per-pixel = <32>;
185                                         bus-width = <18>;
186
187                                         display-timings {
188                                                 native-mode = <&timing0>;
189                                                 timing0: timing0 {
190                                                         clock-frequency = <9216000>;
191                                                         hactive = <320>;
192                                                         vactive = <480>;
193                                                         hback-porch = <2>;
194                                                         hfront-porch = <2>;
195                                                         vback-porch = <2>;
196                                                         vfront-porch = <2>;
197                                                         hsync-len = <15>;
198                                                         vsync-len = <15>;
199                                                         hsync-active = <0>;
200                                                         vsync-active = <0>;
201                                                         de-active = <1>;
202                                                         pixelclk-active = <1>;
203                                                 };
204                                         };
205                                 };
206                         };
207                 };
208
209                 apbx@80040000 {
210                         pwm: pwm@80064000 {
211                                 pinctrl-names = "default";
212                                 pinctrl-0 = <&pwm3_pins_b>;
213                                 status = "okay";
214                         };
215
216                         i2c1: i2c@8005a000 {
217                                 pinctrl-names = "default";
218                                 pinctrl-0 = <&i2c1_pins_a>;
219                                 status = "okay";
220                         };
221
222                         i2cmux {
223                                 compatible = "i2c-mux-gpio";
224                                 #address-cells = <1>;
225                                 #size-cells = <0>;
226                                 pinctrl-names = "default";
227                                 pinctrl-0 = <&i2cmux_pins_cfa10049>;
228                                 mux-gpios = <&gpio1 22 0 &gpio1 23 0>;
229                                 i2c-parent = <&i2c1>;
230
231                                 i2c@0 {
232                                         reg = <0>;
233                                 };
234
235                                 i2c@1 {
236                                         reg = <1>;
237                                 };
238
239                                 i2c@2 {
240                                         reg = <2>;
241                                 };
242
243                                 i2c@3 {
244                                         reg = <3>;
245                                         #address-cells = <1>;
246                                         #size-cells = <0>;
247
248                                         pca9555: pca9555@20 {
249                                                 compatible = "nxp,pca9555";
250                                                 pinctrl-names = "default";
251                                                 pinctrl-0 = <&pca_pins_cfa10049>;
252                                                 interrupt-parent = <&gpio2>;
253                                                 interrupts = <19 0x2>;
254                                                 gpio-controller;
255                                                 #gpio-cells = <2>;
256                                                 interrupt-controller;
257                                                 #interrupt-cells = <2>;
258                                                 reg = <0x20>;
259                                         };
260                                 };
261                         };
262
263                         usbphy1: usbphy@8007e000 {
264                                 status = "okay";
265                         };
266
267                         lradc@80050000 {
268                                 status = "okay";
269                                 fsl,lradc-touchscreen-wires = <4>;
270                         };
271                 };
272         };
273
274         ahb@80080000 {
275                 usb1: usb@80090000 {
276                         vbus-supply = <&reg_usb1_vbus>;
277                         pinctrl-0 = <&usbphy1_pins_a>;
278                         pinctrl-names = "default";
279                         status = "okay";
280                 };
281         };
282
283         regulators {
284                 compatible = "simple-bus";
285
286                 reg_usb1_vbus: usb1_vbus {
287                         compatible = "regulator-fixed";
288                         pinctrl-names = "default";
289                         pinctrl-0 = <&usb_pins_cfa10049>;
290                         regulator-name = "usb1_vbus";
291                         regulator-min-microvolt = <5000000>;
292                         regulator-max-microvolt = <5000000>;
293                         gpio = <&gpio0 7 1>;
294                 };
295         };
296
297         ahb@80080000 {
298                 mac0: ethernet@800f0000 {
299                         phy-mode = "rmii";
300                         pinctrl-names = "default";
301                         pinctrl-0 = <&mac0_pins_a
302                                 &mac0_pins_cfa10049>;
303                         phy-reset-gpios = <&gpio2 21 0>;
304                         phy-reset-duration = <100>;
305                         status = "okay";
306                 };
307         };
308
309         spi2 {
310                 compatible = "spi-gpio";
311                 pinctrl-names = "default";
312                 pinctrl-0 = <&spi2_pins_cfa10049>;
313                 status = "okay";
314                 gpio-sck = <&gpio2 16 0>;
315                 gpio-mosi = <&gpio2 17 0>;
316                 gpio-miso = <&gpio2 18 0>;
317                 cs-gpios = <&gpio3 5 0>;
318                 num-chipselects = <1>;
319                 #address-cells = <1>;
320                 #size-cells = <0>;
321
322                 hx8357: hx8357@0 {
323                         compatible = "himax,hx8357b", "himax,hx8357";
324                         reg = <0>;
325                         spi-max-frequency = <100000>;
326                         spi-cpol;
327                         spi-cpha;
328                         gpios-reset = <&gpio3 30 0>;
329                         im-gpios = <&gpio5 4 0 &gpio5 5 0 &gpio5 6 0>;
330                 };
331         };
332
333         spi3 {
334                 compatible = "spi-gpio";
335                 pinctrl-names = "default";
336                 pinctrl-0 = <&spi3_pins_cfa10049>;
337                 status = "okay";
338                 gpio-sck = <&gpio0 24 0>;
339                 gpio-mosi = <&gpio0 28 0>;
340                 cs-gpios = <&gpio0 17 0 &gpio0 26 0 &gpio0 27 0>;
341                 num-chipselects = <3>;
342                 #address-cells = <1>;
343                 #size-cells = <0>;
344
345                 gpio5: gpio5@0 {
346                         compatible = "fairchild,74hc595";
347                         gpio-controller;
348                         #gpio-cells = <2>;
349                         reg = <0>;
350                         registers-number = <2>;
351                         spi-max-frequency = <100000>;
352                 };
353
354                 gpio6: gpio6@1 {
355                         compatible = "fairchild,74hc595";
356                         gpio-controller;
357                         #gpio-cells = <2>;
358                         reg = <1>;
359                         registers-number = <4>;
360                         spi-max-frequency = <100000>;
361                 };
362
363                 dac0: dh2228@2 {
364                         compatible = "rohm,dh2228fv";
365                         reg = <2>;
366                         spi-max-frequency = <100000>;
367                 };
368         };
369
370         gpio_keys {
371                 compatible = "gpio-keys";
372                 pinctrl-names = "default";
373                 pinctrl-0 = <&rotary_btn_pins_cfa10049>;
374                 #address-cells = <1>;
375                 #size-cells = <0>;
376
377                 rotary_button {
378                         label = "rotary_button";
379                         gpios = <&gpio3 26 1>;
380                         debounce-interval = <10>;
381                         linux,code = <28>;
382                 };
383         };
384
385         rotary {
386                 compatible = "rotary-encoder";
387                 pinctrl-names = "default";
388                 pinctrl-0 = <&rotary_pins_cfa10049>;
389                 gpios = <&gpio3 24 1>, <&gpio3 25 1>;
390                 linux,axis = <1>; /* REL_Y */
391                 rotary-encoder,relative-axis;
392         };
393
394         backlight {
395                 compatible = "pwm-backlight";
396                 pwms = <&pwm 3 5000000>;
397                 brightness-levels = <0 4 8 16 32 64 128 255>;
398                 default-brightness-level = <6>;
399
400         };
401
402         onewire@0 {
403                 compatible = "w1-gpio";
404                 pinctrl-names = "default";
405                 pinctrl-0 = <&w1_gpio_pins>;
406                 status = "okay";
407                 gpios = <&gpio1 21 0>;
408         };
409 };