// SPDX-License-Identifier: GPL-2.0-only /* * omap3-n950.dts - Device Tree file for Nokia N950 * * Written by: Aaro Koskinen */ /dts-v1/; #include "omap3-n950-n9.dtsi" #include / { model = "Nokia N950"; compatible = "nokia,omap3-n950", "ti,omap3630", "ti,omap36xx", "ti,omap3"; keys { compatible = "gpio-keys"; keypad_slide { label = "Keypad Slide"; gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; /* 109 */ linux,input-type = ; linux,code = ; 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 */ >; }; }; &omap3_pmx_core { dsi_pins: pinmux_dsi_pins { pinctrl-single,pins = < OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE1) /* dsi_dx0 - data0+ */ OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE1) /* dsi_dy0 - data0- */ OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE1) /* dsi_dx1 - clk+ */ OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE1) /* dsi_dy1 - clk- */ OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE1) /* dsi_dx2 - data1+ */ OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE1) /* dsi_dy2 - data1- */ >; }; display_pins: pinmux_display_pins { pinctrl-single,pins = < OMAP3_CORE1_IOPAD(0x20ca, PIN_INPUT | MUX_MODE4) /* gpio 62 - display te */ OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE4) /* gpio 87 - display reset */ >; }; }; &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)>; flash-leds = <&as3645a_flash &as3645a_indicator>; 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>; }; &dss { status = "ok"; vdda_video-supply = <&vdac>; }; &dsi { status = "ok"; pinctrl-names = "default"; pinctrl-0 = <&dsi_pins>; vdd-supply = <&vpll2>; port { dsi_out_ep: endpoint { remote-endpoint = <&lcd0_in>; lanes = <2 3 0 1 4 5>; }; }; lcd0: display { compatible = "nokia,himalaya", "panel-dsi-cm"; label = "lcd0"; pinctrl-names = "default"; pinctrl-0 = <&display_pins>; vpnl-supply = <&vmmc2>; vddi-supply = <&vio>; reset-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>; /* 87 */ te-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>; /* 62 */ width-mm = <49>; /* 48.960 mm */ height-mm = <88>; /* 88.128 mm */ /* TODO: * - panel is upside-down * - top + bottom 5px are not visible */ panel-timing { clock-frequency = <0>; /* Calculated by dsi */ hback-porch = <2>; hactive = <480>; hfront-porch = <0>; hsync-len = <2>; vback-porch = <1>; vactive = <864>; vfront-porch = <0>; vsync-len = <1>; hsync-active = <0>; vsync-active = <0>; de-active = <1>; pixelclk-active = <1>; }; port { lcd0_in: endpoint { remote-endpoint = <&dsi_out_ep>; }; }; }; };