Linux Audio

Check our new training course

Loading...
v6.2
  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,omap36xx", "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: pinmux_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: pinmux_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: pinmux_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: pinmux_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};
v4.10.11
 
  1/*
  2 * omap3-n950.dts - Device Tree file for Nokia N950
  3 *
  4 * Written by: Aaro Koskinen <aaro.koskinen@iki.fi>
  5 *
  6 * This program is free software; you can redistribute it and/or modify
  7 * it under the terms of the GNU General Public License version 2 as
  8 * published by the Free Software Foundation.
  9 */
 10
 11/dts-v1/;
 12
 13#include "omap3-n950-n9.dtsi"
 14#include <dt-bindings/input/input.h>
 15
 16/ {
 17	model = "Nokia N950";
 18	compatible = "nokia,omap3-n950", "ti,omap36xx", "ti,omap3";
 19
 20	keys {
 21		compatible = "gpio-keys";
 22
 23		keypad_slide {
 24			label = "Keypad Slide";
 25			gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; /* 109 */
 26			linux,input-type = <EV_SW>;
 27			linux,code = <SW_KEYPAD_SLIDE>;
 28			wakeup-source;
 29			pinctrl-names = "default";
 30			pinctrl-0 = <&keypad_slide_pins>;
 31		};
 32	};
 33};
 34
 35&omap3_pmx_core {
 36	keypad_slide_pins: pinmux_debug_led_pins {
 37		pinctrl-single,pins = <
 38			OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT | MUX_MODE4)       /* cam_d10.gpio_109 */
 39		>;
 40	};
 41};
 42
 43&omap3_pmx_core {
 44	spi4_pins: pinmux_spi4_pins {
 45		pinctrl-single,pins = <
 46			OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */
 47			OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */
 48			OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */
 49			OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */
 50		>;
 51	};
 52};
 53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 54&i2c2 {
 55	smia_1: camera@10 {
 56		compatible = "nokia,smia";
 57		reg = <0x10>;
 58		/* No reset gpio */
 59		vana-supply = <&vaux3>;
 60		clocks = <&isp 0>;
 61		clock-frequency = <9600000>;
 62		nokia,nvm-size = <(16 * 64)>;
 63		port {
 64			smia_1_1: endpoint {
 65				link-frequencies = /bits/ 64 <210000000 333600000 398400000>;
 66				clock-lanes = <0>;
 67				data-lanes = <1 2>;
 68				remote-endpoint = <&csi2a_ep>;
 69			};
 70		};
 71	};
 72};
 73
 74&isp {
 75	vdd-csiphy1-supply = <&vaux2>;
 76	vdd-csiphy2-supply = <&vaux2>;
 77	ports {
 78		port@2 {
 79			reg = <2>;
 80			csi2a_ep: endpoint {
 81				remote-endpoint = <&smia_1_1>;
 82				clock-lanes = <2>;
 83				data-lanes = <3 1>;
 84				crc = <1>;
 85				lane-polarities = <1 1 1>;
 86			};
 87		};
 88	};
 89};
 90
 91&mcspi4 {
 92	status = "okay";
 93	pinctrl-names = "default";
 94	pinctrl-0 = <&spi4_pins>;
 95
 96	wlcore: wlcore@0 {
 97		compatible = "ti,wl1271";
 98		pinctrl-names = "default";
 99		pinctrl-0 = <&wlan_pins>;
100		reg = <0>;
101		spi-max-frequency = <48000000>;
102		clock-xtal;
103		ref-clock-frequency = <38400000>;
104		interrupts-extended = <&gpio2 10 IRQ_TYPE_LEVEL_HIGH>; /* gpio 42 */
105		vwlan-supply = <&vwlan_fixed>;
106	};
107};
108
109&modem {
110	compatible = "nokia,n950-modem";
111};
112
113&twl {
114	twl_audio: audio {
115		compatible = "ti,twl4030-audio";
116		ti,enable-vibra = <1>;
117	};
118};
119
120&twl_keypad {
121	linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_BACKSLASH)
122			 MATRIX_KEY(0x01, 0x00, KEY_LEFTSHIFT)
123			 MATRIX_KEY(0x02, 0x00, KEY_COMPOSE)
124			 MATRIX_KEY(0x03, 0x00, KEY_LEFTMETA)
125			 MATRIX_KEY(0x04, 0x00, KEY_RIGHTCTRL)
126			 MATRIX_KEY(0x05, 0x00, KEY_BACKSPACE)
127			 MATRIX_KEY(0x06, 0x00, KEY_VOLUMEDOWN)
128			 MATRIX_KEY(0x07, 0x00, KEY_VOLUMEUP)
129
130			 MATRIX_KEY(0x03, 0x01, KEY_Z)
131			 MATRIX_KEY(0x04, 0x01, KEY_A)
132			 MATRIX_KEY(0x05, 0x01, KEY_Q)
133			 MATRIX_KEY(0x06, 0x01, KEY_W)
134			 MATRIX_KEY(0x07, 0x01, KEY_E)
135
136			 MATRIX_KEY(0x03, 0x02, KEY_X)
137			 MATRIX_KEY(0x04, 0x02, KEY_S)
138			 MATRIX_KEY(0x05, 0x02, KEY_D)
139			 MATRIX_KEY(0x06, 0x02, KEY_C)
140			 MATRIX_KEY(0x07, 0x02, KEY_V)
141
142			 MATRIX_KEY(0x03, 0x03, KEY_O)
143			 MATRIX_KEY(0x04, 0x03, KEY_I)
144			 MATRIX_KEY(0x05, 0x03, KEY_U)
145			 MATRIX_KEY(0x06, 0x03, KEY_L)
146			 MATRIX_KEY(0x07, 0x03, KEY_APOSTROPHE)
147
148			 MATRIX_KEY(0x03, 0x04, KEY_Y)
149			 MATRIX_KEY(0x04, 0x04, KEY_K)
150			 MATRIX_KEY(0x05, 0x04, KEY_J)
151			 MATRIX_KEY(0x06, 0x04, KEY_H)
152			 MATRIX_KEY(0x07, 0x04, KEY_G)
153
154			 MATRIX_KEY(0x03, 0x05, KEY_B)
155			 MATRIX_KEY(0x04, 0x05, KEY_COMMA)
156			 MATRIX_KEY(0x05, 0x05, KEY_M)
157			 MATRIX_KEY(0x06, 0x05, KEY_N)
158			 MATRIX_KEY(0x07, 0x05, KEY_DOT)
159
160			 MATRIX_KEY(0x00, 0x06, KEY_SPACE)
161			 MATRIX_KEY(0x03, 0x06, KEY_T)
162			 MATRIX_KEY(0x04, 0x06, KEY_UP)
163			 MATRIX_KEY(0x05, 0x06, KEY_LEFT)
164			 MATRIX_KEY(0x06, 0x06, KEY_RIGHT)
165			 MATRIX_KEY(0x07, 0x06, KEY_DOWN)
166
167			 MATRIX_KEY(0x03, 0x07, KEY_P)
168			 MATRIX_KEY(0x04, 0x07, KEY_ENTER)
169			 MATRIX_KEY(0x05, 0x07, KEY_SLASH)
170			 MATRIX_KEY(0x06, 0x07, KEY_F)
171			 MATRIX_KEY(0x07, 0x07, KEY_R)
172			 >;
173};
174
175&lis302 {
176	st,axis-x = <(-2)>; /* LIS3_INV_DEV_Y */
177	st,axis-y = <(-1)>; /* LIS3_INV_DEV_X */
178	st,axis-z = <(-3)>; /* LIS3_INV_DEV_Z */
179
180	st,min-limit-x = <(-32)>;
181	st,min-limit-y = <3>;
182	st,min-limit-z = <3>;
183
184	st,max-limit-x = <(-3)>;
185	st,max-limit-y = <32>;
186	st,max-limit-z = <32>;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187};