Merge tag 'for-linus-20190407' of git://git.kernel.dk/linux-block
[muen/linux.git] / arch / arm / boot / dts / ste-nomadik-nhk15.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Device Tree for the ST Microelectronics Nomadik NHK8815 board
4  */
5
6 /dts-v1/;
7 #include <dt-bindings/interrupt-controller/irq.h>
8 #include <dt-bindings/gpio/gpio.h>
9 #include "ste-nomadik-stn8815.dtsi"
10
11 / {
12         model = "Nomadik STN8815NHK";
13         compatible = "st,nomadik-nhk-15";
14
15         chosen {
16                 bootargs = "root=/dev/ram0 console=ttyAMA1,115200n8 earlyprintk";
17         };
18
19         aliases {
20                 serial0 = &uart0;
21                 serial1 = &uart1;
22                 stmpe-i2c0 = &stmpe0;
23                 stmpe-i2c1 = &stmpe1;
24         };
25
26         pinctrl {
27                 uart0 {
28                         uart0_nhk_mode: uart0_mux {
29                                 u0_default_mux {
30                                         function = "u0";
31                                         groups = "u0txrx_a_1", "u0ctsrts_a_1";
32                                 };
33                         };
34                 };
35
36                 stmpe2401_1 {
37                         stmpe2401_1_nhk_mode: stmpe2401_1_nhk {
38                                 nhk_cfg1 {
39                                         pins = "GPIO76_B20"; // IRQ line
40                                         ste,input = <0>;
41                                 };
42                                 nhk_cfg2 {
43                                         pins = "GPIO77_B8"; // reset line
44                                         ste,output = <1>;
45                                 };
46                         };
47                 };
48                 stmpe2401_2 {
49                         stmpe2401_2_nhk_mode: stmpe2401_2_nhk {
50                                 nhk_cfg1 {
51                                         pins = "GPIO78_A8"; // IRQ line
52                                         ste,input = <0>;
53                                 };
54                                 nhk_cfg2 {
55                                         pins = "GPIO79_C9"; // reset line
56                                         ste,output = <1>;
57                                 };
58                         };
59                 };
60                 lis3lv02dl {
61                         lis3lv02dl_nhk_mode: lis3lv02dl_nhk {
62                                 nhk_cfg1 {
63                                         pins = "GPIO82_C10"; // IRQ line
64                                         ste,input = <0>;
65                                 };
66                         };
67                 };
68         };
69         src@101e0000 {
70                 /* These chrystal outputs are not used on this board */
71                 disable-sxtalo;
72                 disable-mxtalo;
73         };
74
75         /* This is where the interrupt is routed on the NHK-15 debug board */
76         external-bus@34000000 {
77                 compatible = "simple-bus";
78                 reg = <0x34000000 0x1000000>;
79                 #address-cells = <1>;
80                 #size-cells = <1>;
81                 ranges = <0 0x34000000 0x1000000>;
82                 ethernet@300 {
83                         compatible = "smsc,lan91c111";
84                         reg = <0x300 0x0fd00>;
85                         reg-io-width = <2>;
86                         reset-gpios = <&stmpe_gpio44 10 GPIO_ACTIVE_HIGH>;
87                         interrupt-parent = <&stmpe_gpio44>;
88                         interrupts = <11 IRQ_TYPE_EDGE_RISING>;
89                 };
90         };
91
92         i2c0 {
93                 lis3lv02dl@1d {
94                         /* Accelerometer */
95                         compatible = "st,lis3lv02dl-accel";
96                         interrupt-parent = <&gpio2>;
97                         interrupts = <18 IRQ_TYPE_EDGE_RISING>; // GPIO 82
98                         pinctrl-0 = <&lis3lv02dl_nhk_mode>;
99                         pinctrl-names = "default";
100                         reg = <0x1d>;
101                 };
102                 stmpe0: stmpe2401@43 {
103                         compatible = "st,stmpe2401";
104                         reg = <0x43>;
105                         reset-gpios = <&gpio2 13 GPIO_ACTIVE_LOW>; // GPIO77
106                         interrupts = <12 IRQ_TYPE_EDGE_FALLING>; // GPIO76
107                         interrupt-parent = <&gpio2>;
108                         interrupt-controller;
109                         wakeup-source;
110                         pinctrl-names = "default";
111                         pinctrl-0 = <&stmpe2401_1_nhk_mode>;
112                         stmpe_gpio43: stmpe_gpio {
113                                 compatible = "st,stmpe-gpio";
114                                 gpio-controller;
115                                 #gpio-cells = <2>;
116                                 interrupt-controller;
117                                 #interrupt-cells = <2>;
118                                 /* Some pins in alternate functions */
119                                 st,norequest-mask = <0xf0f002>;
120                         };
121                         stmpe_keypad {
122                                 compatible = "st,stmpe-keypad";
123                                 debounce-interval = <64>;
124                                 st,scan-count = <8>;
125                                 st,no-autorepeat;
126                                 keypad,num-rows = <8>;
127                                 keypad,num-columns = <8>;
128                                 linux,keymap = <0x00020072 // Vol down
129                                                 0x00030073 // Vol up
130                                                 0x0100009e // Back
131                                                 0x010100e3 // TV out
132                                                 0x01020098 // Lock
133                                                 0x0103013b // Start
134                                                 0x020000a3 // Next
135                                                 0x020100a4 // Play
136                                                 0x020200a5 // Prev
137                                                 0x02030160 // OK
138                                                 0x03000069 // Left
139                                                 0x0301006a // Right
140                                                 0x03020067 // Up
141                                                 0x0303006c>; // Down
142                         };
143                         stmpe0_pwm: stmpe_pwm {
144                                 compatible = "st,stmpe-pwm";
145                                 #pwm-cells = <2>;
146                         };
147                 };
148                 stmpe1: stmpe2401@44 {
149                         compatible = "st,stmpe2401";
150                         reg = <0x44>;
151                         reset-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>; // GPIO79
152                         interrupts = <14 IRQ_TYPE_EDGE_FALLING>; // GPIO78
153                         interrupt-parent = <&gpio2>;
154                         interrupt-controller;
155                         wakeup-source;
156                         pinctrl-names = "default";
157                         pinctrl-0 = <&stmpe2401_2_nhk_mode>;
158                         stmpe_gpio44: stmpe_gpio {
159                                 compatible = "st,stmpe-gpio";
160                                 gpio-controller;
161                                 #gpio-cells = <2>;
162                                 interrupt-controller;
163                                 #interrupt-cells = <2>;
164                                 /*
165                                  * This will turn off SATA so that MMC/SD
166                                  * can thrive
167                                  */
168                                 mmcsd-gpio {
169                                         gpio-hog;
170                                         gpios = <2 0x0>;
171                                         output-low;
172                                         line-name = "SATA EN";
173                                 };
174                         };
175                 };
176         };
177
178         amba {
179                 clcd@10120000 {
180                         status = "okay";
181                         pinctrl-names = "default";
182                         pinctrl-0 = <&clcd_24bit_mux>;
183                         port {
184                                 nomadik_clcd: endpoint {
185                                         remote-endpoint = <&nomadik_clcd_panel>;
186                                         arm,pl11x,tft-r0g0b0-pads = <16 8 0>;
187                                 };
188                         };
189
190                 };
191
192                 /* Activate RX/TX and CTS/RTS on UART 0 */
193                 uart0: uart@101fd000 {
194                         pinctrl-names = "default";
195                         pinctrl-0 = <&uart0_nhk_mode>;
196                         status = "okay";
197                 };
198                 mmcsd: sdi@101f6000 {
199                         cd-gpios = <&stmpe_gpio44 7 GPIO_ACTIVE_LOW>;
200                         wp-gpios = <&stmpe_gpio44 18 GPIO_ACTIVE_HIGH>;
201                 };
202         };
203
204         spi {
205                 compatible = "spi-gpio";
206                 #address-cells = <1>;
207                 #size-cells = <0>;
208
209                 /*
210                  * As we're dealing with 3wire SPI, we only define SCK
211                  * and MOSI (in the spec MOSI is called "SDA").
212                  */
213                 gpio-sck = <&gpio0 5 GPIO_ACTIVE_HIGH>;
214                 gpio-mosi = <&gpio0 4 GPIO_ACTIVE_HIGH>;
215                 /*
216                  * This chipselect is active high. Just setting the flags
217                  * to GPIO_ACTIVE_HIGH is not enough for the SPI DT bindings,
218                  * it will be ignored, only the special "spi-cs-high" flag
219                  * really counts.
220                  */
221                 cs-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
222                 spi-cs-high;
223                 num-chipselects = <1>;
224
225                 /*
226                  * WVGA connector 21
227                  * WVGA (800x480): 4.3" TPG110 TDO43MTEA2 24-bit RGB
228                  * with TPO touch screen.
229                   */
230                 panel: display@0 {
231                         /*
232                          * The TPO display driver is connected to a
233                          * 5.7" OSD OSD057VA01CT TFT display.
234                          */
235                         compatible = "tpo,tpg110";
236                         reg = <0>;
237                         spi-3wire;
238                         /* 320 ns min period ~= 3 MHz */
239                         spi-max-frequency = <3000000>;
240                         /* Width and height from the OSD data sheet */
241                         width-mm = <116>;
242                         height-mm = <87>;
243                         grestb-gpios = <&stmpe_gpio44 5 GPIO_ACTIVE_LOW>;
244                         backlight = <&bl>;
245
246                         port {
247                                 nomadik_clcd_panel: endpoint {
248                                         remote-endpoint = <&nomadik_clcd>;
249                                 };
250                         };
251                 };
252         };
253
254         bl: backlight {
255                 compatible = "pwm-backlight";
256                 pwms = <&stmpe0_pwm 0 500000>;
257                 pwm-names = "backlight";
258                 brightness-levels = <
259                         0  1  2  3  4  5  6  7  8  9
260                         10 11 12 13 14 15 16 17 18 19
261                         20 21 22 23 24 25 26 27 28 29
262                         30 31 32 33 34 35 36 37 38 39
263                         40 41 42 43 44 45 46 47 48 49
264                         50 51 52 53 54 55 56 57 58 59
265                         60 61 62 63 64 65 66 67 68 69
266                         70 71 72 73 74 75 76 77 78 79
267                         80 81 82 83 84 85 86 87 88 89
268                         90 91 92 93 94 95 96 97 98 99
269                         100
270                 >;
271                 default-brightness-level = <100>;
272         };
273 };