Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / at91-nattis-2-natte-2.dts
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * at91-nattis-2-natte-2.dts - Device Tree file for the Linea/Nattis board
4  *
5  * Copyright (C) 2017 Axentia Technologies AB
6  *
7  * Author: Peter Rosin <peda@axentia.se>
8  */
9 /dts-v1/;
10 #include "at91-linea.dtsi"
11 #include "sama5d3_lcd.dtsi"
12 #include "at91-natte.dtsi"
13
14 / {
15         model = "Axentia Linea-Nattis v2 Natte v2";
16         compatible = "axentia,nattis-2", "axentia,natte-2", "axentia,linea",
17                      "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
18
19         gpio-keys {
20                 compatible = "gpio-keys";
21
22                 wakeup {
23                         label = "Wakeup";
24                         linux,code = <10>;
25                         wakeup-source;
26                         gpios = <&pioB 27 GPIO_ACTIVE_LOW>;
27                 };
28         };
29
30         panel_reg: panel-regulator {
31                 compatible = "regulator-fixed";
32                 regulator-name = "panel-VCC";
33                 regulator-min-microvolt = <3300000>;
34                 regulator-max-microvolt = <3300000>;
35         };
36
37         bl_reg: backlight-regulator {
38                 compatible = "regulator-fixed";
39                 regulator-name = "panel-VDD";
40                 regulator-min-microvolt = <12000000>;
41                 regulator-max-microvolt = <12000000>;
42         };
43
44         panel_bl: backlight {
45                 compatible = "pwm-backlight";
46                 pwms = <&hlcdc_pwm 0 100000 0>;
47
48                 brightness-levels = < 0  1  2  3  4  5  6  7  8  9
49                                      10 11 12 13 14 15 16 17 18 19
50                                      20 21 22 23 24 25 26 27 28 29
51                                      30 31 32 33 34 35 36 37 38 39
52                                      40 41 42 43 44 45 46 47 48 49
53                                      50 51 52 53 54 55 56 57 58 59
54                                      60 61 62 63 64 65 66 67 68 69
55                                      70 71 72 73 74 75 76 77 78 79
56                                      80 81 82 83 84 85 86 87 88 89
57                                      90 91 92 93 94 95 96 97 98 99
58                                     100>;
59                 default-brightness-level = <40>;
60
61                 power-supply = <&bl_reg>;
62                 enable-gpios = <&pioA 20 GPIO_ACTIVE_HIGH>;
63                 pinctrl-names = "default";
64                 pinctrl-0 = <&pinctrl_blon>;
65         };
66
67         panel: panel {
68                 compatible = "sharp,lq150x1lg11", "panel-lvds";
69
70                 backlight = <&panel_bl>;
71                 power-supply = <&panel_reg>;
72
73                 width-mm = <304>;
74                 height-mm = <228>;
75
76                 data-mapping = "jeida-18";
77
78                 panel-timing {
79                         // 1024x768 @ 60Hz (typical)
80                         clock-frequency = <50000000 65000000 80000000>;
81                         hactive = <1024>;
82                         vactive = <768>;
83                         hfront-porch = <48 88 88>;
84                         hback-porch = <96 168 168>;
85                         hsync-len = <32 64 64>;
86                         vsync-len = <3 13 74>;
87                         vfront-porch = <3 13 74>;
88                         vback-porch = <3 12 74>;
89                 };
90
91                 port {
92                         panel_input: endpoint {
93                                 remote-endpoint = <&lvds_encoder_output>;
94                         };
95                 };
96         };
97
98         lvds-encoder {
99                 compatible = "ti,ds90c185", "lvds-encoder";
100
101                 pinctrl-names = "default";
102                 pinctrl-0 = <&pinctrl_lvds_prlud0 &pinctrl_lvds_hipow0>;
103
104                 ports {
105                         #address-cells = <1>;
106                         #size-cells = <0>;
107
108                         port@0 {
109                                 reg = <0>;
110
111                                 lvds_encoder_input: endpoint {
112                                         remote-endpoint = <&hlcdc_output>;
113                                 };
114                         };
115
116                         port@1 {
117                                 reg = <1>;
118
119                                 lvds_encoder_output: endpoint {
120                                         remote-endpoint = <&panel_input>;
121                                 };
122                         };
123                 };
124         };
125
126         sound {
127                 compatible = "simple-audio-card";
128
129                 simple-audio-card,name = "nattis-tfa9879";
130                 simple-audio-card,format = "i2s";
131                 simple-audio-card,bitclock-master = <&cpu_dai>;
132                 simple-audio-card,frame-master = <&cpu_dai>;
133                 simple-audio-card,widgets = "Line", "Line Out Jack";
134                 simple-audio-card,routing = "Line Out Jack", "LINEOUT";
135
136                 cpu_dai: simple-audio-card,cpu {
137                         sound-dai = <&ssc0>;
138                 };
139
140                 simple-audio-card,codec {
141                         sound-dai = <&amp>;
142                 };
143         };
144 };
145
146 &pinctrl {
147         nattis {
148                 pinctrl_usba_vbus: usba_vbus {
149                         atmel,pins = <AT91_PIOD 28 AT91_PERIPH_GPIO
150                                       AT91_PINCTRL_DEGLITCH>;
151                 };
152
153                 pinctrl_mmc0_cd: mmc0_cd {
154                         atmel,pins = <AT91_PIOD  5 AT91_PERIPH_GPIO
155                                       AT91_PINCTRL_PULL_UP_DEGLITCH>;
156                 };
157
158                 pinctrl_lvds_prlud0: lvds_prlud0 {
159                         atmel,pins = <AT91_PIOA 21 AT91_PERIPH_GPIO
160                                       (AT91_PINCTRL_OUTPUT |
161                                        AT91_PINCTRL_OUTPUT_VAL(0))>;
162                 };
163
164                 pinctrl_lvds_hipow0: lvds_hipow0 {
165                         atmel,pins = <AT91_PIOA 23 AT91_PERIPH_GPIO
166                                       (AT91_PINCTRL_OUTPUT |
167                                        AT91_PINCTRL_OUTPUT_VAL(0))>;
168                 };
169
170                 pinctrl_blon: blon {
171                         atmel,pins = <AT91_PIOA 20 AT91_PERIPH_GPIO
172                                       (AT91_PINCTRL_OUTPUT |
173                                        AT91_PINCTRL_OUTPUT_VAL(0))>;
174                 };
175         };
176 };
177
178 &watchdog {
179         status = "okay";
180 };
181
182 &i2c0 {
183         status = "okay";
184
185         clock-frequency = <100000>;
186
187         temp@18 {
188                 compatible = "nxp,se97b", "jedec,jc-42.4-temp";
189                 reg = <0x18>;
190                 smbus-timeout-disable;
191         };
192
193         eeprom@50 {
194                 compatible = "nxp,se97b", "atmel,24c02";
195                 reg = <0x50>;
196                 pagesize = <16>;
197         };
198
199         amp: amplifier@6c {
200                  compatible = "nxp,tfa9879";
201                  reg = <0x6c>;
202                  #sound-dai-cells = <0>;
203         };
204 };
205
206 &ssc0 {
207         status = "okay";
208
209         atmel,clk-from-rk-pin;
210         #sound-dai-cells = <0>;
211 };
212
213 &hlcdc {
214         status = "okay";
215
216         hlcdc-display-controller {
217                 pinctrl-names = "default";
218                 pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb565>;
219
220                 port@0 {
221                         hlcdc_output: endpoint {
222                                 remote-endpoint = <&lvds_encoder_input>;
223                                 bus-width = <16>;
224                         };
225                 };
226         };
227 };
228
229 &mmc0 {
230         status = "okay";
231
232         pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0
233                      &pinctrl_mmc0_dat1_3
234                      &pinctrl_mmc0_cd>;
235
236         slot@0 {
237                 reg = <0>;
238                 bus-width = <4>;
239                 cd-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
240                 cd-inverted;
241         };
242 };
243
244 &usart0 {
245         status = "okay";
246
247         pinctrl-names = "default";
248         pinctrl-0 = <&pinctrl_usart0>;
249         atmel,use-dma-rx;
250 };
251
252 &nand {
253         partitions {
254                 compatible = "fixed-partitions";
255                 #address-cells = <1>;
256                 #size-cells = <1>;
257
258                 at91bootstrap@0 {
259                         label = "at91bootstrap";
260                         reg = <0x0 0x40000>;
261                 };
262
263                 barebox@40000 {
264                         label = "barebox";
265                         reg = <0x40000 0x60000>;
266                 };
267
268                 bareboxenv@c0000 {
269                         label = "bareboxenv";
270                         reg = <0xc0000 0x40000>;
271                 };
272
273                 bareboxenv2@100000 {
274                         label = "bareboxenv2";
275                         reg = <0x100000 0x40000>;
276                 };
277
278                 oftree@180000 {
279                         label = "oftree";
280                         reg = <0x180000 0x20000>;
281                 };
282
283                 kernel@200000 {
284                         label = "kernel";
285                         reg = <0x200000 0x500000>;
286                 };
287
288                 rootfs@800000 {
289                         label = "rootfs";
290                         reg = <0x800000 0x1f800000>;
291                 };
292         };
293 };
294
295 &dbgu {
296         status = "okay";
297
298         atmel,use-dma-rx;
299 };
300
301 &usb0 {
302         status = "okay";
303
304         atmel,vbus-gpio = <&pioD 28 GPIO_ACTIVE_HIGH>;
305         pinctrl-names = "default";
306         pinctrl-0 = <&pinctrl_usba_vbus>;
307 };