omap3-n950.dts 6.2 KB

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