]> git.ipfire.org Git - thirdparty/u-boot.git/blob - src/arm/ti/omap/omap3-n950.dts
Squashed 'dts/upstream/' content from commit aaba2d45dc2a
[thirdparty/u-boot.git] / src / arm / ti / omap / omap3-n950.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3 * omap3-n950.dts - Device Tree file for Nokia N950
4 *
5 * Written by: Aaro Koskinen <aaro.koskinen@iki.fi>
6 */
7
8 /dts-v1/;
9
10 #include "omap3-n950-n9.dtsi"
11 #include <dt-bindings/input/input.h>
12
13 / {
14 model = "Nokia N950";
15 compatible = "nokia,omap3-n950", "ti,omap3630", "ti,omap3";
16
17 keys {
18 compatible = "gpio-keys";
19
20 keypad_slide {
21 label = "Keypad Slide";
22 gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; /* 109 */
23 linux,input-type = <EV_SW>;
24 linux,code = <SW_KEYPAD_SLIDE>;
25 wakeup-source;
26 pinctrl-names = "default";
27 pinctrl-0 = <&keypad_slide_pins>;
28 };
29 };
30 };
31
32 &omap3_pmx_core {
33 keypad_slide_pins: debug-led-pins {
34 pinctrl-single,pins = <
35 OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT | MUX_MODE4) /* cam_d10.gpio_109 */
36 >;
37 };
38 };
39
40 &omap3_pmx_core {
41 spi4_pins: spi4-pins {
42 pinctrl-single,pins = <
43 OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */
44 OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */
45 OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */
46 OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */
47 >;
48 };
49 };
50
51 &omap3_pmx_core {
52 dsi_pins: dsi-pins {
53 pinctrl-single,pins = <
54 OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE1) /* dsi_dx0 - data0+ */
55 OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE1) /* dsi_dy0 - data0- */
56 OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE1) /* dsi_dx1 - clk+ */
57 OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE1) /* dsi_dy1 - clk- */
58 OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE1) /* dsi_dx2 - data1+ */
59 OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE1) /* dsi_dy2 - data1- */
60 >;
61 };
62
63 display_pins: display-pins {
64 pinctrl-single,pins = <
65 OMAP3_CORE1_IOPAD(0x20ca, PIN_INPUT | MUX_MODE4) /* gpio 62 - display te */
66 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE4) /* gpio 87 - display reset */
67 >;
68 };
69 };
70
71 &i2c2 {
72 smia_1: camera@10 {
73 compatible = "nokia,smia";
74 reg = <0x10>;
75 /* No reset gpio */
76 vana-supply = <&vaux3>;
77 clocks = <&isp 0>;
78 clock-frequency = <9600000>;
79 flash-leds = <&as3645a_flash &as3645a_indicator>;
80 port {
81 smia_1_1: endpoint {
82 link-frequencies = /bits/ 64 <210000000 333600000 398400000>;
83 clock-lanes = <0>;
84 data-lanes = <1 2>;
85 remote-endpoint = <&csi2a_ep>;
86 };
87 };
88 };
89 };
90
91 &isp {
92 vdd-csiphy1-supply = <&vaux2>;
93 vdd-csiphy2-supply = <&vaux2>;
94 ports {
95 port@2 {
96 reg = <2>;
97 csi2a_ep: endpoint {
98 remote-endpoint = <&smia_1_1>;
99 clock-lanes = <2>;
100 data-lanes = <3 1>;
101 crc = <1>;
102 lane-polarities = <1 1 1>;
103 };
104 };
105 };
106 };
107
108 &mcspi4 {
109 status = "okay";
110 pinctrl-names = "default";
111 pinctrl-0 = <&spi4_pins>;
112
113 wlcore: wlcore@0 {
114 compatible = "ti,wl1271";
115 pinctrl-names = "default";
116 pinctrl-0 = <&wlan_pins>;
117 reg = <0>;
118 spi-max-frequency = <48000000>;
119 clock-xtal;
120 ref-clock-frequency = <38400000>;
121 interrupts-extended = <&gpio2 10 IRQ_TYPE_LEVEL_HIGH>; /* gpio 42 */
122 vwlan-supply = <&vwlan_fixed>;
123 };
124 };
125
126 &modem {
127 compatible = "nokia,n950-modem";
128 };
129
130 &twl {
131 twl_audio: audio {
132 compatible = "ti,twl4030-audio";
133 ti,enable-vibra = <1>;
134 };
135 };
136
137 &twl_keypad {
138 linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_BACKSLASH)
139 MATRIX_KEY(0x01, 0x00, KEY_LEFTSHIFT)
140 MATRIX_KEY(0x02, 0x00, KEY_COMPOSE)
141 MATRIX_KEY(0x03, 0x00, KEY_LEFTMETA)
142 MATRIX_KEY(0x04, 0x00, KEY_RIGHTCTRL)
143 MATRIX_KEY(0x05, 0x00, KEY_BACKSPACE)
144 MATRIX_KEY(0x06, 0x00, KEY_VOLUMEDOWN)
145 MATRIX_KEY(0x07, 0x00, KEY_VOLUMEUP)
146
147 MATRIX_KEY(0x03, 0x01, KEY_Z)
148 MATRIX_KEY(0x04, 0x01, KEY_A)
149 MATRIX_KEY(0x05, 0x01, KEY_Q)
150 MATRIX_KEY(0x06, 0x01, KEY_W)
151 MATRIX_KEY(0x07, 0x01, KEY_E)
152
153 MATRIX_KEY(0x03, 0x02, KEY_X)
154 MATRIX_KEY(0x04, 0x02, KEY_S)
155 MATRIX_KEY(0x05, 0x02, KEY_D)
156 MATRIX_KEY(0x06, 0x02, KEY_C)
157 MATRIX_KEY(0x07, 0x02, KEY_V)
158
159 MATRIX_KEY(0x03, 0x03, KEY_O)
160 MATRIX_KEY(0x04, 0x03, KEY_I)
161 MATRIX_KEY(0x05, 0x03, KEY_U)
162 MATRIX_KEY(0x06, 0x03, KEY_L)
163 MATRIX_KEY(0x07, 0x03, KEY_APOSTROPHE)
164
165 MATRIX_KEY(0x03, 0x04, KEY_Y)
166 MATRIX_KEY(0x04, 0x04, KEY_K)
167 MATRIX_KEY(0x05, 0x04, KEY_J)
168 MATRIX_KEY(0x06, 0x04, KEY_H)
169 MATRIX_KEY(0x07, 0x04, KEY_G)
170
171 MATRIX_KEY(0x03, 0x05, KEY_B)
172 MATRIX_KEY(0x04, 0x05, KEY_COMMA)
173 MATRIX_KEY(0x05, 0x05, KEY_M)
174 MATRIX_KEY(0x06, 0x05, KEY_N)
175 MATRIX_KEY(0x07, 0x05, KEY_DOT)
176
177 MATRIX_KEY(0x00, 0x06, KEY_SPACE)
178 MATRIX_KEY(0x03, 0x06, KEY_T)
179 MATRIX_KEY(0x04, 0x06, KEY_UP)
180 MATRIX_KEY(0x05, 0x06, KEY_LEFT)
181 MATRIX_KEY(0x06, 0x06, KEY_RIGHT)
182 MATRIX_KEY(0x07, 0x06, KEY_DOWN)
183
184 MATRIX_KEY(0x03, 0x07, KEY_P)
185 MATRIX_KEY(0x04, 0x07, KEY_ENTER)
186 MATRIX_KEY(0x05, 0x07, KEY_SLASH)
187 MATRIX_KEY(0x06, 0x07, KEY_F)
188 MATRIX_KEY(0x07, 0x07, KEY_R)
189 >;
190 };
191
192 &lis302 {
193 st,axis-x = <(-2)>; /* LIS3_INV_DEV_Y */
194 st,axis-y = <(-1)>; /* LIS3_INV_DEV_X */
195 st,axis-z = <(-3)>; /* LIS3_INV_DEV_Z */
196
197 st,min-limit-x = <(-32)>;
198 st,min-limit-y = <3>;
199 st,min-limit-z = <3>;
200
201 st,max-limit-x = <(-3)>;
202 st,max-limit-y = <32>;
203 st,max-limit-z = <32>;
204 };
205
206 &dss {
207 status = "okay";
208
209 vdda_video-supply = <&vdac>;
210 };
211
212 &dsi {
213 status = "okay";
214
215 pinctrl-names = "default";
216 pinctrl-0 = <&dsi_pins>;
217
218 vdd-supply = <&vpll2>;
219
220 port {
221 dsi_out_ep: endpoint {
222 remote-endpoint = <&lcd0_in>;
223 lanes = <2 3 0 1 4 5>;
224 };
225 };
226
227 lcd0: panel@0 {
228 compatible = "nokia,himalaya", "panel-dsi-cm";
229 reg = <0>;
230 label = "lcd0";
231
232 pinctrl-names = "default";
233 pinctrl-0 = <&display_pins>;
234
235 vpnl-supply = <&vmmc2>;
236 vddi-supply = <&vio>;
237
238 reset-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>; /* 87 */
239 te-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>; /* 62 */
240
241 width-mm = <49>; /* 48.960 mm */
242 height-mm = <88>; /* 88.128 mm */
243
244 /* TODO:
245 * - panel is upside-down
246 * - top + bottom 5px are not visible
247 */
248 panel-timing {
249 clock-frequency = <0>; /* Calculated by dsi */
250
251 hback-porch = <2>;
252 hactive = <480>;
253 hfront-porch = <0>;
254 hsync-len = <2>;
255
256 vback-porch = <1>;
257 vactive = <864>;
258 vfront-porch = <0>;
259 vsync-len = <1>;
260
261 hsync-active = <0>;
262 vsync-active = <0>;
263 de-active = <1>;
264 pixelclk-active = <1>;
265 };
266
267 port {
268 lcd0_in: endpoint {
269 remote-endpoint = <&dsi_out_ep>;
270 };
271 };
272 };
273 };