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