| /* | 
 |  * omap3-n950.dts - Device Tree file for Nokia N950 | 
 |  * | 
 |  * Written by: Aaro Koskinen <aaro.koskinen@iki.fi> | 
 |  * | 
 |  * This program is free software; you can redistribute it and/or modify | 
 |  * it under the terms of the GNU General Public License version 2 as | 
 |  * published by the Free Software Foundation. | 
 |  */ | 
 |  | 
 | /dts-v1/; | 
 |  | 
 | #include "omap3-n950-n9.dtsi" | 
 | #include <dt-bindings/input/input.h> | 
 |  | 
 | / { | 
 | 	model = "Nokia N950"; | 
 | 	compatible = "nokia,omap3-n950", "ti,omap36xx", "ti,omap3"; | 
 |  | 
 | 	keys { | 
 | 		compatible = "gpio-keys"; | 
 |  | 
 | 		keypad_slide { | 
 | 			label = "Keypad Slide"; | 
 | 			gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; /* 109 */ | 
 | 			linux,input-type = <EV_SW>; | 
 | 			linux,code = <SW_KEYPAD_SLIDE>; | 
 | 			wakeup-source; | 
 | 			pinctrl-names = "default"; | 
 | 			pinctrl-0 = <&keypad_slide_pins>; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &omap3_pmx_core { | 
 | 	keypad_slide_pins: pinmux_debug_led_pins { | 
 | 		pinctrl-single,pins = < | 
 | 			OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT | MUX_MODE4)       /* cam_d10.gpio_109 */ | 
 | 		>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &omap3_pmx_core { | 
 | 	spi4_pins: pinmux_spi4_pins { | 
 | 		pinctrl-single,pins = < | 
 | 			OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */ | 
 | 			OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */ | 
 | 			OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */ | 
 | 			OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */ | 
 | 		>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &i2c2 { | 
 | 	smia_1: camera@10 { | 
 | 		compatible = "nokia,smia"; | 
 | 		reg = <0x10>; | 
 | 		/* No reset gpio */ | 
 | 		vana-supply = <&vaux3>; | 
 | 		clocks = <&isp 0>; | 
 | 		clock-frequency = <9600000>; | 
 | 		nokia,nvm-size = <(16 * 64)>; | 
 | 		port { | 
 | 			smia_1_1: endpoint { | 
 | 				link-frequencies = /bits/ 64 <210000000 333600000 398400000>; | 
 | 				clock-lanes = <0>; | 
 | 				data-lanes = <1 2>; | 
 | 				remote-endpoint = <&csi2a_ep>; | 
 | 			}; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &isp { | 
 | 	vdd-csiphy1-supply = <&vaux2>; | 
 | 	vdd-csiphy2-supply = <&vaux2>; | 
 | 	ports { | 
 | 		port@2 { | 
 | 			reg = <2>; | 
 | 			csi2a_ep: endpoint { | 
 | 				remote-endpoint = <&smia_1_1>; | 
 | 				clock-lanes = <2>; | 
 | 				data-lanes = <3 1>; | 
 | 				crc = <1>; | 
 | 				lane-polarities = <1 1 1>; | 
 | 			}; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &mcspi4 { | 
 | 	status = "okay"; | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&spi4_pins>; | 
 |  | 
 | 	wlcore: wlcore@0 { | 
 | 		compatible = "ti,wl1271"; | 
 | 		pinctrl-names = "default"; | 
 | 		pinctrl-0 = <&wlan_pins>; | 
 | 		reg = <0>; | 
 | 		spi-max-frequency = <48000000>; | 
 | 		clock-xtal; | 
 | 		ref-clock-frequency = <38400000>; | 
 | 		interrupts-extended = <&gpio2 10 IRQ_TYPE_LEVEL_HIGH>; /* gpio 42 */ | 
 | 		vwlan-supply = <&vwlan_fixed>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &modem { | 
 | 	compatible = "nokia,n950-modem"; | 
 | }; | 
 |  | 
 | &twl { | 
 | 	twl_audio: audio { | 
 | 		compatible = "ti,twl4030-audio"; | 
 | 		ti,enable-vibra = <1>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &twl_keypad { | 
 | 	linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_BACKSLASH) | 
 | 			 MATRIX_KEY(0x01, 0x00, KEY_LEFTSHIFT) | 
 | 			 MATRIX_KEY(0x02, 0x00, KEY_COMPOSE) | 
 | 			 MATRIX_KEY(0x03, 0x00, KEY_LEFTMETA) | 
 | 			 MATRIX_KEY(0x04, 0x00, KEY_RIGHTCTRL) | 
 | 			 MATRIX_KEY(0x05, 0x00, KEY_BACKSPACE) | 
 | 			 MATRIX_KEY(0x06, 0x00, KEY_VOLUMEDOWN) | 
 | 			 MATRIX_KEY(0x07, 0x00, KEY_VOLUMEUP) | 
 |  | 
 | 			 MATRIX_KEY(0x03, 0x01, KEY_Z) | 
 | 			 MATRIX_KEY(0x04, 0x01, KEY_A) | 
 | 			 MATRIX_KEY(0x05, 0x01, KEY_Q) | 
 | 			 MATRIX_KEY(0x06, 0x01, KEY_W) | 
 | 			 MATRIX_KEY(0x07, 0x01, KEY_E) | 
 |  | 
 | 			 MATRIX_KEY(0x03, 0x02, KEY_X) | 
 | 			 MATRIX_KEY(0x04, 0x02, KEY_S) | 
 | 			 MATRIX_KEY(0x05, 0x02, KEY_D) | 
 | 			 MATRIX_KEY(0x06, 0x02, KEY_C) | 
 | 			 MATRIX_KEY(0x07, 0x02, KEY_V) | 
 |  | 
 | 			 MATRIX_KEY(0x03, 0x03, KEY_O) | 
 | 			 MATRIX_KEY(0x04, 0x03, KEY_I) | 
 | 			 MATRIX_KEY(0x05, 0x03, KEY_U) | 
 | 			 MATRIX_KEY(0x06, 0x03, KEY_L) | 
 | 			 MATRIX_KEY(0x07, 0x03, KEY_APOSTROPHE) | 
 |  | 
 | 			 MATRIX_KEY(0x03, 0x04, KEY_Y) | 
 | 			 MATRIX_KEY(0x04, 0x04, KEY_K) | 
 | 			 MATRIX_KEY(0x05, 0x04, KEY_J) | 
 | 			 MATRIX_KEY(0x06, 0x04, KEY_H) | 
 | 			 MATRIX_KEY(0x07, 0x04, KEY_G) | 
 |  | 
 | 			 MATRIX_KEY(0x03, 0x05, KEY_B) | 
 | 			 MATRIX_KEY(0x04, 0x05, KEY_COMMA) | 
 | 			 MATRIX_KEY(0x05, 0x05, KEY_M) | 
 | 			 MATRIX_KEY(0x06, 0x05, KEY_N) | 
 | 			 MATRIX_KEY(0x07, 0x05, KEY_DOT) | 
 |  | 
 | 			 MATRIX_KEY(0x00, 0x06, KEY_SPACE) | 
 | 			 MATRIX_KEY(0x03, 0x06, KEY_T) | 
 | 			 MATRIX_KEY(0x04, 0x06, KEY_UP) | 
 | 			 MATRIX_KEY(0x05, 0x06, KEY_LEFT) | 
 | 			 MATRIX_KEY(0x06, 0x06, KEY_RIGHT) | 
 | 			 MATRIX_KEY(0x07, 0x06, KEY_DOWN) | 
 |  | 
 | 			 MATRIX_KEY(0x03, 0x07, KEY_P) | 
 | 			 MATRIX_KEY(0x04, 0x07, KEY_ENTER) | 
 | 			 MATRIX_KEY(0x05, 0x07, KEY_SLASH) | 
 | 			 MATRIX_KEY(0x06, 0x07, KEY_F) | 
 | 			 MATRIX_KEY(0x07, 0x07, KEY_R) | 
 | 			 >; | 
 | }; | 
 |  | 
 | &lis302 { | 
 | 	st,axis-x = <(-2)>; /* LIS3_INV_DEV_Y */ | 
 | 	st,axis-y = <(-1)>; /* LIS3_INV_DEV_X */ | 
 | 	st,axis-z = <(-3)>; /* LIS3_INV_DEV_Z */ | 
 |  | 
 | 	st,min-limit-x = <(-32)>; | 
 | 	st,min-limit-y = <3>; | 
 | 	st,min-limit-z = <3>; | 
 |  | 
 | 	st,max-limit-x = <(-3)>; | 
 | 	st,max-limit-y = <32>; | 
 | 	st,max-limit-z = <32>; | 
 | }; |