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,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 nokia,nvm-size = <(16 * 64)>; 80 flash-leds = <&as3645a_flash &as3645a_indicator>; 81 port { 82 smia_1_1: endpoint { 83 link-frequencies = /bits/ 64 <210000000 333600000 398400000>; 84 clock-lanes = <0>; 85 data-lanes = <1 2>; 86 remote-endpoint = <&csi2a_ep>; 87 }; 88 }; 89 }; 90}; 91 92&isp { 93 vdd-csiphy1-supply = <&vaux2>; 94 vdd-csiphy2-supply = <&vaux2>; 95 ports { 96 port@2 { 97 reg = <2>; 98 csi2a_ep: endpoint { 99 remote-endpoint = <&smia_1_1>; 100 clock-lanes = <2>; 101 data-lanes = <3 1>; 102 crc = <1>; 103 lane-polarities = <1 1 1>; 104 }; 105 }; 106 }; 107}; 108 109&mcspi4 { 110 status = "okay"; 111 pinctrl-names = "default"; 112 pinctrl-0 = <&spi4_pins>; 113 114 wlcore: wlcore@0 { 115 compatible = "ti,wl1271"; 116 pinctrl-names = "default"; 117 pinctrl-0 = <&wlan_pins>; 118 reg = <0>; 119 spi-max-frequency = <48000000>; 120 clock-xtal; 121 ref-clock-frequency = <38400000>; 122 interrupts-extended = <&gpio2 10 IRQ_TYPE_LEVEL_HIGH>; /* gpio 42 */ 123 vwlan-supply = <&vwlan_fixed>; 124 }; 125}; 126 127&modem { 128 compatible = "nokia,n950-modem"; 129}; 130 131&twl { 132 twl_audio: audio { 133 compatible = "ti,twl4030-audio"; 134 ti,enable-vibra = <1>; 135 }; 136}; 137 138&twl_keypad { 139 linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_BACKSLASH) 140 MATRIX_KEY(0x01, 0x00, KEY_LEFTSHIFT) 141 MATRIX_KEY(0x02, 0x00, KEY_COMPOSE) 142 MATRIX_KEY(0x03, 0x00, KEY_LEFTMETA) 143 MATRIX_KEY(0x04, 0x00, KEY_RIGHTCTRL) 144 MATRIX_KEY(0x05, 0x00, KEY_BACKSPACE) 145 MATRIX_KEY(0x06, 0x00, KEY_VOLUMEDOWN) 146 MATRIX_KEY(0x07, 0x00, KEY_VOLUMEUP) 147 148 MATRIX_KEY(0x03, 0x01, KEY_Z) 149 MATRIX_KEY(0x04, 0x01, KEY_A) 150 MATRIX_KEY(0x05, 0x01, KEY_Q) 151 MATRIX_KEY(0x06, 0x01, KEY_W) 152 MATRIX_KEY(0x07, 0x01, KEY_E) 153 154 MATRIX_KEY(0x03, 0x02, KEY_X) 155 MATRIX_KEY(0x04, 0x02, KEY_S) 156 MATRIX_KEY(0x05, 0x02, KEY_D) 157 MATRIX_KEY(0x06, 0x02, KEY_C) 158 MATRIX_KEY(0x07, 0x02, KEY_V) 159 160 MATRIX_KEY(0x03, 0x03, KEY_O) 161 MATRIX_KEY(0x04, 0x03, KEY_I) 162 MATRIX_KEY(0x05, 0x03, KEY_U) 163 MATRIX_KEY(0x06, 0x03, KEY_L) 164 MATRIX_KEY(0x07, 0x03, KEY_APOSTROPHE) 165 166 MATRIX_KEY(0x03, 0x04, KEY_Y) 167 MATRIX_KEY(0x04, 0x04, KEY_K) 168 MATRIX_KEY(0x05, 0x04, KEY_J) 169 MATRIX_KEY(0x06, 0x04, KEY_H) 170 MATRIX_KEY(0x07, 0x04, KEY_G) 171 172 MATRIX_KEY(0x03, 0x05, KEY_B) 173 MATRIX_KEY(0x04, 0x05, KEY_COMMA) 174 MATRIX_KEY(0x05, 0x05, KEY_M) 175 MATRIX_KEY(0x06, 0x05, KEY_N) 176 MATRIX_KEY(0x07, 0x05, KEY_DOT) 177 178 MATRIX_KEY(0x00, 0x06, KEY_SPACE) 179 MATRIX_KEY(0x03, 0x06, KEY_T) 180 MATRIX_KEY(0x04, 0x06, KEY_UP) 181 MATRIX_KEY(0x05, 0x06, KEY_LEFT) 182 MATRIX_KEY(0x06, 0x06, KEY_RIGHT) 183 MATRIX_KEY(0x07, 0x06, KEY_DOWN) 184 185 MATRIX_KEY(0x03, 0x07, KEY_P) 186 MATRIX_KEY(0x04, 0x07, KEY_ENTER) 187 MATRIX_KEY(0x05, 0x07, KEY_SLASH) 188 MATRIX_KEY(0x06, 0x07, KEY_F) 189 MATRIX_KEY(0x07, 0x07, KEY_R) 190 >; 191}; 192 193&lis302 { 194 st,axis-x = <(-2)>; /* LIS3_INV_DEV_Y */ 195 st,axis-y = <(-1)>; /* LIS3_INV_DEV_X */ 196 st,axis-z = <(-3)>; /* LIS3_INV_DEV_Z */ 197 198 st,min-limit-x = <(-32)>; 199 st,min-limit-y = <3>; 200 st,min-limit-z = <3>; 201 202 st,max-limit-x = <(-3)>; 203 st,max-limit-y = <32>; 204 st,max-limit-z = <32>; 205}; 206 207&dss { 208 status = "ok"; 209 210 vdda_video-supply = <&vdac>; 211}; 212 213&dsi { 214 status = "ok"; 215 216 pinctrl-names = "default"; 217 pinctrl-0 = <&dsi_pins>; 218 219 vdd-supply = <&vpll2>; 220 221 port { 222 dsi_out_ep: endpoint { 223 remote-endpoint = <&lcd0_in>; 224 lanes = <2 3 0 1 4 5>; 225 }; 226 }; 227 228 lcd0: display { 229 compatible = "nokia,himalaya", "panel-dsi-cm"; 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}; 274