]> rtime.felk.cvut.cz Git - linux-imx.git/blob - arch/arm/boot/dts/imx53-voipac.dts
mx53 voipac: Spidev -- generic userspace SPI device
[linux-imx.git] / arch / arm / boot / dts / imx53-voipac.dts
1 /*
2  * Copyright 2013 PiKRON s.r.o.
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 /dts-v1/;
13 #include "imx53.dtsi"
14
15 / {
16         model = "Freescale i.MX53 VOIPAC";
17         compatible = "fsl,imx53-voipac", "fsl,imx53";
18
19         chosen {
20                 bootargs = "noinitrd console=ttymxc0,115200 root=/dev/nfs ip=192.168.3.100:192.168.3.125:192.168.3.1:255.255.255.0:lolumad:eth0:off rw nfsroot=192.168.3.125:/tftpboot/buildroot,nolock,tcp";
21         };
22
23         memory@0 {
24                 device_type = "memory";
25                 reg = <0x70000000 0x20000000>;
26         };
27
28         memory@1 {
29                 device_type = "memory";
30                 reg = <0xb0000000 0x20000000>;
31         };
32
33         regulators {
34                 compatible = "simple-bus";
35
36                 reg_3p3v: 3p3v {
37                         compatible = "regulator-fixed";
38                         regulator-name = "3P3V";
39                         regulator-min-microvolt = <3300000>;
40                         regulator-max-microvolt = <3300000>;
41                         regulator-always-on;
42                 };
43         };
44
45         display@di0 {
46                 compatible = "fsl,imx-parallel-display";
47                 pinctrl-names = "default";
48                 pinctrl-0 = <&pinctrl_ipu_disp0_1>;
49                 crtcs = <&ipu 0>;
50                 interface-pix-fmt = "rgb24";
51                 status = "okay";
52
53                 display-timings {
54                         dt043btft {
55                                 /* native-mode; */
56                                 clock-frequency = <10000000>;
57                                 hactive = <480>;
58                                 vactive = <272>;
59                                 hback-porch = <2>;
60                                 hfront-porch = <2>;
61                                 hsync-len = <40>;
62                                 vback-porch = <2>;
63                                 vfront-porch = <2>;
64                                 vsync-len = <10>;
65                                 hsync-active = <0>;
66                                 vsync-active = <0>;
67                         };
68                 };
69         };
70
71         sound {
72                 compatible = "fsl,imx53-voipac-wm8711",
73                              "fsl,imx-audio-wm8711";
74                 model = "imx53-voipac-wm8711";
75                 ssi-controller = <&ssi2>;
76                 audio-codec = <&codec>;
77                 audio-routing =
78                         "DAC", "Output Mixer";
79                 mux-int-port = <2>;
80                 mux-ext-port = <5>; /* SSI2 */
81         };
82
83         /* Fixed 12 MHz oscillator */
84         wm8711clk: oscillator {
85                 compatible = "fixed-clock";
86                 #clock-cells = <1>;
87                 clock-frequency = <12000000>;
88                 clock-output-names = "wm8711clk";
89         };
90 };
91
92 &iomuxc {
93         pinctrl-names = "default";
94         pinctrl-0 = <&pinctrl_hog>;
95
96         hog {
97                 pinctrl_hog: hoggrp {
98                         fsl,pins = <
99                                 /* Make DA9053 regulator functional */
100                                 MX53_PAD_GPIO_16__GPIO7_11      0x80000000
101
102                                 /* FEC Power enable */
103                                 MX53_PAD_GPIO_11__GPIO4_1       0x80000000
104
105                                 /* FEC RST */
106                                 MX53_PAD_GPIO_12__GPIO4_2       0x80000000
107
108                                 /* SPI */
109                                 MX53_PAD_EIM_EB2__GPIO2_30      0x80000000
110                                 MX53_PAD_EIM_D19__GPIO3_19      0x80000000
111                                 MX53_PAD_EIM_A22__GPIO2_16      0x80000000
112                                 MX53_PAD_EIM_A21__GPIO2_17      0x80000000
113                                 MX53_PAD_EIM_A18__GPIO2_20      0x80000000
114                         >;
115                 };
116         };
117
118         i2c3 {
119                 pinctrl_i2c3_2: i2c3grp2 {
120                         fsl,pins = <
121                                 MX53_PAD_GPIO_3__I2C3_SCL       0xc0000000
122                                 MX53_PAD_GPIO_6__I2C3_SDA       0xc0000000
123                         >;
124                 };
125         };
126
127         /* Keyboard controller */
128         kpp {
129                 pinctrl_kpp_1: kppgrp-1 {
130                         fsl,pins = <
131                                 MX53_PAD_GPIO_9__KPP_COL_6       0xe8
132                                 MX53_PAD_GPIO_4__KPP_COL_7       0xe8
133                                 MX53_PAD_KEY_COL2__KPP_COL_2     0xe8
134                                 MX53_PAD_KEY_COL3__KPP_COL_3     0xe8
135                                 MX53_PAD_KEY_COL4__KPP_COL_4     0xe8
136
137                                 MX53_PAD_GPIO_2__KPP_ROW_6       0xe0
138                                 MX53_PAD_GPIO_5__KPP_ROW_7       0xe0
139                                 MX53_PAD_KEY_ROW2__KPP_ROW_2     0xe0
140                                 MX53_PAD_KEY_ROW3__KPP_ROW_3     0xe0
141                                 MX53_PAD_KEY_ROW4__KPP_ROW_4     0xe0
142                         >;
143                 };
144         };
145 };
146
147 &uart1 {
148         pinctrl-names = "default";
149         pinctrl-0 = <&pinctrl_uart1_2>;
150         status = "okay";
151 };
152
153 &i2c1 {
154         pinctrl-names = "default";
155         pinctrl-0 = <&pinctrl_i2c1_2>;
156         status = "okay";
157
158         pmic: dialog@48 {
159                 compatible = "dlg,da9053-aa", "dlg,da9052";
160                 reg = <0x48>;
161                 interrupt-parent = <&gpio7>;
162                 interrupts = <11 0x8>; /* low-level active IRQ at GPIO7_11 */
163
164                 regulators {
165                         buck1_reg: buck1 {
166                                 regulator-name = "BUCKCORE";
167                                 regulator-min-microvolt = <1200000>;
168                                 regulator-max-microvolt = <1400000>;
169                                 regulator-always-on;
170                         };
171
172                         buck2_reg: buck2 {
173                                 regulator-name = "BUCKPRO";
174                                 regulator-min-microvolt = <900000>;
175                                 regulator-max-microvolt = <1350000>;
176                                 regulator-always-on;
177                         };
178
179                         buck3_reg: buck3 {
180                                 regulator-name = "BUCKMEM";
181                                 regulator-min-microvolt = <1420000>;
182                                 regulator-max-microvolt = <1580000>;
183                                 regulator-always-on;
184                         };
185
186                         buck4_reg: buck4 {
187                                 regulator-name = "BUCKPERI";
188                                 regulator-min-microvolt = <2370000>;
189                                 regulator-max-microvolt = <2630000>;
190                                 regulator-always-on;
191                         };
192
193                         ldo1_reg: ldo1 {
194                                 regulator-name = "ldo1_1v3";
195                                 regulator-min-microvolt = <1250000>;
196                                 regulator-max-microvolt = <1350000>;
197                                 regulator-boot-on;
198                                 regulator-always-on;
199                         };
200
201                         ldo2_reg: ldo2 {
202                                 regulator-name = "ldo2_1v3";
203                                 regulator-min-microvolt = <1250000>;
204                                 regulator-max-microvolt = <1350000>;
205                                 regulator-always-on;
206                         };
207
208                         ldo3_reg: ldo3 {
209                                 regulator-name = "ldo3_3v3";
210                                 regulator-min-microvolt = <3250000>;
211                                 regulator-max-microvolt = <3350000>;
212                                 regulator-always-on;
213                         };
214
215                         ldo4_reg: ldo4 {
216                                 regulator-name = "ldo4_2v775";
217                                 regulator-min-microvolt = <2770000>;
218                                 regulator-max-microvolt = <2780000>;
219                                 regulator-always-on;
220                         };
221
222                         ldo5_reg: ldo5 {
223                                 regulator-name = "ldo5_3v3";
224                                 regulator-min-microvolt = <3250000>;
225                                 regulator-max-microvolt = <3350000>;
226                                 regulator-always-on;
227                         };
228
229                         ldo6_reg: ldo6 {
230                                 regulator-name = "ldo6_1v3";
231                                 regulator-min-microvolt = <1250000>;
232                                 regulator-max-microvolt = <1350000>;
233                                 regulator-always-on;
234                         };
235
236                         ldo7_reg: ldo7 {
237                                 regulator-name = "ldo7_2v75";
238                                 regulator-min-microvolt = <2700000>;
239                                 regulator-max-microvolt = <2800000>;
240                                 regulator-always-on;
241                         };
242
243                         ldo8_reg: ldo8 {
244                                 regulator-name = "ldo8_1v8";
245                                 regulator-min-microvolt = <1750000>;
246                                 regulator-max-microvolt = <1850000>;
247                                 regulator-always-on;
248                         };
249
250                         ldo9_reg: ldo9 {
251                                 regulator-name = "ldo9_1v5";
252                                 regulator-min-microvolt = <1450000>;
253                                 regulator-max-microvolt = <1550000>;
254                                 regulator-always-on;
255                         };
256
257                         ldo10_reg: ldo10 {
258                                 regulator-name = "ldo10_1v3";
259                                 regulator-min-microvolt = <1250000>;
260                                 regulator-max-microvolt = <1350000>;
261                                 regulator-always-on;
262                         };
263                 };
264         };
265 };
266
267 &i2c3 {
268         pinctrl-names = "default";
269         pinctrl-0 = <&pinctrl_i2c3_2>;
270         status = "okay";
271
272         codec: wm8711@1a {
273                 compatible = "wlf,wm8711";
274                 reg = <0x1a>;
275                 clocks = <&wm8711clk 0>;
276                 VDDA-supply = <&reg_3p3v>;
277                 VDDIO-supply = <&reg_3p3v>;
278         };
279 };
280
281 &fec {
282         pinctrl-names = "default";
283         pinctrl-0 = <&pinctrl_fec_1>;
284         phy-mode = "rmii";
285         phy-reset-gpios = <&gpio4 2 0>;
286         status = "okay";
287 };
288
289 &ecspi1 {
290         pinctrl-names = "default";
291         pinctrl-0 = <&pinctrl_ecspi1_1>;
292         fsl,spi-num-chipselects = <4>;
293         cs-gpios = <&gpio2 30 0>, <&gpio3 19 0>, <&gpio2 16 0>, <&gpio2 17 0>;
294         status = "okay";
295
296         /* Touchscreen */
297         ads7846@0 {
298                 reg = <2>;      /* CS2 */
299                 compatible = "ti,ads7846";
300                 interrupt-parent = <&gpio2>;
301                 interrupts = <20 0>;
302                 spi-max-frequency = <1000000>;
303                 pendown-gpio = <&gpio2 20 0>;
304                 vcc-supply = <&reg_3p3v>;
305
306                 ti,x-min = /bits/ 16 <0>;
307                 ti,x-max = /bits/ 16 <8000>;
308                 ti,y-min = /bits/ 16 <0>;
309                 ti,y-max = /bits/ 16 <4800>;
310                 ti,x-plate-ohms = /bits/ 16 <300>;
311                 ti,y-plate-ohms = /bits/ 16 <600>;
312                 ti,pressure-max = /bits/ 16 <255>;
313
314                 linux,wakeup;
315         };
316
317         /* Userspace accessible generic SPI device */
318         spidev@0 {
319                  reg = <1>;     /* CS 1 */
320                  compatible = "linux,spidev";
321                  spi-max-frequency = <500000>;
322         };
323 };
324
325 &kpp {
326         pinctrl-names = "default";
327         pinctrl-0 = <&pinctrl_kpp_1>;
328         linux,keymap = <
329                         0x0200003b      /* KEY_F1 */
330                         0x0300003c      /* KEY_F2 */
331                         0x0400003d      /* KEY_F3 */
332                         0x0600003e      /* KEY_F4 */
333                         0x0700003f      /* KEY_F5 */
334                         >;
335         keypad,num-rows = <8>;
336         keypad,num-columns = <1>;
337         status = "okay";
338 };
339
340 &ssi2 {
341         fsl,mode = "i2s-slave";
342         status = "okay";
343 };
344
345 &audmux {
346         pinctrl-names = "default";
347         pinctrl-0 = <&pinctrl_audmux_1>; /* SSI1 */
348         status = "okay";
349 };