ARM: dts: add STMPE PWM to the NHK15 device tree
[cascardo/linux.git] / arch / arm / boot / dts / ste-nomadik-nhk15.dts
1 /*
2  * Device Tree for the ST-Ericsson Nomadik S8815 board
3  * Produced by Calao Systems
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                 /* Activate RX/TX and CTS/RTS on UART 0 */
180                 uart0: uart@101fd000 {
181                         pinctrl-names = "default";
182                         pinctrl-0 = <&uart0_nhk_mode>;
183                         status = "okay";
184                 };
185                 mmcsd: sdi@101f6000 {
186                         cd-gpios = <&stmpe_gpio44 7 GPIO_ACTIVE_LOW>;
187                         wp-gpios = <&stmpe_gpio44 18 GPIO_ACTIVE_HIGH>;
188                 };
189         };
190
191         bl: backlight {
192                 compatible = "pwm-backlight";
193                 pwms = <&stmpe0_pwm 0 500000>;
194                 pwm-names = "backlight";
195                 brightness-levels = <
196                         0  1  2  3  4  5  6  7  8  9
197                         10 11 12 13 14 15 16 17 18 19
198                         20 21 22 23 24 25 26 27 28 29
199                         30 31 32 33 34 35 36 37 38 39
200                         40 41 42 43 44 45 46 47 48 49
201                         50 51 52 53 54 55 56 57 58 59
202                         60 61 62 63 64 65 66 67 68 69
203                         70 71 72 73 74 75 76 77 78 79
204                         80 81 82 83 84 85 86 87 88 89
205                         90 91 92 93 94 95 96 97 98 99
206                         100
207                 >;
208                 default-brightness-level = <100>;
209         };
210 };