Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * omap3-n950.dts - Device Tree file for Nokia N950
0004  *
0005  * Written by: Aaro Koskinen <aaro.koskinen@iki.fi>
0006  */
0007 
0008 /dts-v1/;
0009 
0010 #include "omap3-n950-n9.dtsi"
0011 #include <dt-bindings/input/input.h>
0012 
0013 / {
0014         model = "Nokia N950";
0015         compatible = "nokia,omap3-n950", "ti,omap3630", "ti,omap36xx", "ti,omap3";
0016 
0017         keys {
0018                 compatible = "gpio-keys";
0019 
0020                 keypad_slide {
0021                         label = "Keypad Slide";
0022                         gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; /* 109 */
0023                         linux,input-type = <EV_SW>;
0024                         linux,code = <SW_KEYPAD_SLIDE>;
0025                         wakeup-source;
0026                         pinctrl-names = "default";
0027                         pinctrl-0 = <&keypad_slide_pins>;
0028                 };
0029         };
0030 };
0031 
0032 &omap3_pmx_core {
0033         keypad_slide_pins: pinmux_debug_led_pins {
0034                 pinctrl-single,pins = <
0035                         OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT | MUX_MODE4)       /* cam_d10.gpio_109 */
0036                 >;
0037         };
0038 };
0039 
0040 &omap3_pmx_core {
0041         spi4_pins: pinmux_spi4_pins {
0042                 pinctrl-single,pins = <
0043                         OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */
0044                         OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */
0045                         OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */
0046                         OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */
0047                 >;
0048         };
0049 };
0050 
0051 &omap3_pmx_core {
0052         dsi_pins: pinmux_dsi_pins {
0053                 pinctrl-single,pins = <
0054                         OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE1) /* dsi_dx0 - data0+ */
0055                         OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE1) /* dsi_dy0 - data0- */
0056                         OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE1) /* dsi_dx1 - clk+   */
0057                         OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE1) /* dsi_dy1 - clk-   */
0058                         OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE1) /* dsi_dx2 - data1+ */
0059                         OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE1) /* dsi_dy2 - data1- */
0060                 >;
0061         };
0062 
0063         display_pins: pinmux_display_pins {
0064                 pinctrl-single,pins = <
0065                         OMAP3_CORE1_IOPAD(0x20ca, PIN_INPUT | MUX_MODE4) /* gpio 62 - display te */
0066                         OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE4) /* gpio 87 - display reset */
0067                 >;
0068         };
0069 };
0070 
0071 &i2c2 {
0072         smia_1: camera@10 {
0073                 compatible = "nokia,smia";
0074                 reg = <0x10>;
0075                 /* No reset gpio */
0076                 vana-supply = <&vaux3>;
0077                 clocks = <&isp 0>;
0078                 clock-frequency = <9600000>;
0079                 flash-leds = <&as3645a_flash &as3645a_indicator>;
0080                 port {
0081                         smia_1_1: endpoint {
0082                                 link-frequencies = /bits/ 64 <210000000 333600000 398400000>;
0083                                 clock-lanes = <0>;
0084                                 data-lanes = <1 2>;
0085                                 remote-endpoint = <&csi2a_ep>;
0086                         };
0087                 };
0088         };
0089 };
0090 
0091 &isp {
0092         vdd-csiphy1-supply = <&vaux2>;
0093         vdd-csiphy2-supply = <&vaux2>;
0094         ports {
0095                 port@2 {
0096                         reg = <2>;
0097                         csi2a_ep: endpoint {
0098                                 remote-endpoint = <&smia_1_1>;
0099                                 clock-lanes = <2>;
0100                                 data-lanes = <3 1>;
0101                                 crc = <1>;
0102                                 lane-polarities = <1 1 1>;
0103                         };
0104                 };
0105         };
0106 };
0107 
0108 &mcspi4 {
0109         status = "okay";
0110         pinctrl-names = "default";
0111         pinctrl-0 = <&spi4_pins>;
0112 
0113         wlcore: wlcore@0 {
0114                 compatible = "ti,wl1271";
0115                 pinctrl-names = "default";
0116                 pinctrl-0 = <&wlan_pins>;
0117                 reg = <0>;
0118                 spi-max-frequency = <48000000>;
0119                 clock-xtal;
0120                 ref-clock-frequency = <38400000>;
0121                 interrupts-extended = <&gpio2 10 IRQ_TYPE_LEVEL_HIGH>; /* gpio 42 */
0122                 vwlan-supply = <&vwlan_fixed>;
0123         };
0124 };
0125 
0126 &modem {
0127         compatible = "nokia,n950-modem";
0128 };
0129 
0130 &twl {
0131         twl_audio: audio {
0132                 compatible = "ti,twl4030-audio";
0133                 ti,enable-vibra = <1>;
0134         };
0135 };
0136 
0137 &twl_keypad {
0138         linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_BACKSLASH)
0139                          MATRIX_KEY(0x01, 0x00, KEY_LEFTSHIFT)
0140                          MATRIX_KEY(0x02, 0x00, KEY_COMPOSE)
0141                          MATRIX_KEY(0x03, 0x00, KEY_LEFTMETA)
0142                          MATRIX_KEY(0x04, 0x00, KEY_RIGHTCTRL)
0143                          MATRIX_KEY(0x05, 0x00, KEY_BACKSPACE)
0144                          MATRIX_KEY(0x06, 0x00, KEY_VOLUMEDOWN)
0145                          MATRIX_KEY(0x07, 0x00, KEY_VOLUMEUP)
0146 
0147                          MATRIX_KEY(0x03, 0x01, KEY_Z)
0148                          MATRIX_KEY(0x04, 0x01, KEY_A)
0149                          MATRIX_KEY(0x05, 0x01, KEY_Q)
0150                          MATRIX_KEY(0x06, 0x01, KEY_W)
0151                          MATRIX_KEY(0x07, 0x01, KEY_E)
0152 
0153                          MATRIX_KEY(0x03, 0x02, KEY_X)
0154                          MATRIX_KEY(0x04, 0x02, KEY_S)
0155                          MATRIX_KEY(0x05, 0x02, KEY_D)
0156                          MATRIX_KEY(0x06, 0x02, KEY_C)
0157                          MATRIX_KEY(0x07, 0x02, KEY_V)
0158 
0159                          MATRIX_KEY(0x03, 0x03, KEY_O)
0160                          MATRIX_KEY(0x04, 0x03, KEY_I)
0161                          MATRIX_KEY(0x05, 0x03, KEY_U)
0162                          MATRIX_KEY(0x06, 0x03, KEY_L)
0163                          MATRIX_KEY(0x07, 0x03, KEY_APOSTROPHE)
0164 
0165                          MATRIX_KEY(0x03, 0x04, KEY_Y)
0166                          MATRIX_KEY(0x04, 0x04, KEY_K)
0167                          MATRIX_KEY(0x05, 0x04, KEY_J)
0168                          MATRIX_KEY(0x06, 0x04, KEY_H)
0169                          MATRIX_KEY(0x07, 0x04, KEY_G)
0170 
0171                          MATRIX_KEY(0x03, 0x05, KEY_B)
0172                          MATRIX_KEY(0x04, 0x05, KEY_COMMA)
0173                          MATRIX_KEY(0x05, 0x05, KEY_M)
0174                          MATRIX_KEY(0x06, 0x05, KEY_N)
0175                          MATRIX_KEY(0x07, 0x05, KEY_DOT)
0176 
0177                          MATRIX_KEY(0x00, 0x06, KEY_SPACE)
0178                          MATRIX_KEY(0x03, 0x06, KEY_T)
0179                          MATRIX_KEY(0x04, 0x06, KEY_UP)
0180                          MATRIX_KEY(0x05, 0x06, KEY_LEFT)
0181                          MATRIX_KEY(0x06, 0x06, KEY_RIGHT)
0182                          MATRIX_KEY(0x07, 0x06, KEY_DOWN)
0183 
0184                          MATRIX_KEY(0x03, 0x07, KEY_P)
0185                          MATRIX_KEY(0x04, 0x07, KEY_ENTER)
0186                          MATRIX_KEY(0x05, 0x07, KEY_SLASH)
0187                          MATRIX_KEY(0x06, 0x07, KEY_F)
0188                          MATRIX_KEY(0x07, 0x07, KEY_R)
0189                          >;
0190 };
0191 
0192 &lis302 {
0193         st,axis-x = <(-2)>; /* LIS3_INV_DEV_Y */
0194         st,axis-y = <(-1)>; /* LIS3_INV_DEV_X */
0195         st,axis-z = <(-3)>; /* LIS3_INV_DEV_Z */
0196 
0197         st,min-limit-x = <(-32)>;
0198         st,min-limit-y = <3>;
0199         st,min-limit-z = <3>;
0200 
0201         st,max-limit-x = <(-3)>;
0202         st,max-limit-y = <32>;
0203         st,max-limit-z = <32>;
0204 };
0205 
0206 &dss {
0207         status = "okay";
0208 
0209         vdda_video-supply = <&vdac>;
0210 };
0211 
0212 &dsi {
0213         status = "okay";
0214 
0215         pinctrl-names = "default";
0216         pinctrl-0 = <&dsi_pins>;
0217 
0218         vdd-supply = <&vpll2>;
0219 
0220         port {
0221                 dsi_out_ep: endpoint {
0222                         remote-endpoint = <&lcd0_in>;
0223                         lanes = <2 3 0 1 4 5>;
0224                 };
0225         };
0226 
0227         lcd0: panel@0 {
0228                 compatible = "nokia,himalaya", "panel-dsi-cm";
0229                 reg = <0>;
0230                 label = "lcd0";
0231 
0232                 pinctrl-names = "default";
0233                 pinctrl-0 = <&display_pins>;
0234 
0235                 vpnl-supply = <&vmmc2>;
0236                 vddi-supply = <&vio>;
0237 
0238                 reset-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;     /* 87 */
0239                 te-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>;        /* 62 */
0240 
0241                 width-mm = <49>; /* 48.960 mm */
0242                 height-mm = <88>; /* 88.128 mm */
0243 
0244                 /* TODO:
0245                  * - panel is upside-down
0246                  * - top + bottom 5px are not visible
0247                  */
0248                 panel-timing {
0249                         clock-frequency = <0>;          /* Calculated by dsi */
0250 
0251                         hback-porch = <2>;
0252                         hactive = <480>;
0253                         hfront-porch = <0>;
0254                         hsync-len = <2>;
0255 
0256                         vback-porch = <1>;
0257                         vactive = <864>;
0258                         vfront-porch = <0>;
0259                         vsync-len = <1>;
0260 
0261                         hsync-active = <0>;
0262                         vsync-active = <0>;
0263                         de-active = <1>;
0264                         pixelclk-active = <1>;
0265                 };
0266 
0267                 port {
0268                         lcd0_in: endpoint {
0269                                 remote-endpoint = <&dsi_out_ep>;
0270                         };
0271                 };
0272         };
0273 };