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