Display002_7.dts 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471
  1. /*
  2. * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. */
  8. /dts-v1/;
  9. #include "am33xx.dtsi"
  10. #include "am335x-bone-common.dtsi"
  11. &ldo3_reg {
  12. regulator-min-microvolt = <1800000>;
  13. regulator-max-microvolt = <1800000>;
  14. regulator-always-on;
  15. };
  16. &mmc1 {
  17. vmmc-supply = <&vmmcsd_fixed>;
  18. };
  19. &mmc2 {
  20. vmmc-supply = <&vmmcsd_fixed>;
  21. pinctrl-names = "default";
  22. pinctrl-0 = <&emmc_pins>;
  23. bus-width = <8>;
  24. ti,non-removable;
  25. status = "okay";
  26. };
  27. &am33xx_pinmux {
  28. lcd_pins_default: lcd_pins_default {
  29. pinctrl-single,pins = <
  30. 0x20 0x01 /* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
  31. 0x24 0x01 /* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
  32. 0x28 0x01 /* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
  33. 0x2c 0x01 /* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
  34. 0x30 0x01 /* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
  35. 0x34 0x01 /* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
  36. 0x38 0x01 /* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
  37. 0x3c 0x01 /* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
  38. 0xa0 0x00 /* lcd_data0.lcd_data0, OUTPUT | MODE0 */
  39. 0xa4 0x00 /* lcd_data1.lcd_data1, OUTPUT | MODE0 */
  40. 0xa8 0x00 /* lcd_data2.lcd_data2, OUTPUT | MODE0 */
  41. 0xac 0x00 /* lcd_data3.lcd_data3, OUTPUT | MODE0 */
  42. 0xb0 0x00 /* lcd_data4.lcd_data4, OUTPUT | MODE0 */
  43. 0xb4 0x00 /* lcd_data5.lcd_data5, OUTPUT | MODE0 */
  44. 0xb8 0x00 /* lcd_data6.lcd_data6, OUTPUT | MODE0 */
  45. 0xbc 0x00 /* lcd_data7.lcd_data7, OUTPUT | MODE0 */
  46. 0xc0 0x00 /* lcd_data8.lcd_data8, OUTPUT | MODE0 */
  47. 0xc4 0x00 /* lcd_data9.lcd_data9, OUTPUT | MODE0 */
  48. 0xc8 0x00 /* lcd_data10.lcd_data10, OUTPUT | MODE0 */
  49. 0xcc 0x00 /* lcd_data11.lcd_data11, OUTPUT | MODE0 */
  50. 0xd0 0x00 /* lcd_data12.lcd_data12, OUTPUT | MODE0 */
  51. 0xd4 0x00 /* lcd_data13.lcd_data13, OUTPUT | MODE0 */
  52. 0xd8 0x00 /* lcd_data14.lcd_data14, OUTPUT | MODE0 */
  53. 0xdc 0x00 /* lcd_data15.lcd_data15, OUTPUT | MODE0 */
  54. 0xe0 0x00 /* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
  55. 0xe4 0x00 /* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
  56. 0xe8 0x00 /* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
  57. 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
  58. >;
  59. };
  60. lcd_pins_sleep: lcd_pins_sleep {
  61. pinctrl-single,pins = <
  62. 0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad8.lcd_data16 */
  63. 0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad9.lcd_data17 */
  64. 0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad10.lcd_data18 */
  65. 0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad11.lcd_data19 */
  66. 0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad12.lcd_data20 */
  67. 0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad13.lcd_data21 */
  68. 0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad14.lcd_data22 */
  69. 0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad15.lcd_data23 */
  70. 0xa0 (PULL_DISABLE | MUX_MODE7) /* lcd_data0.lcd_data0 */
  71. 0xa4 (PULL_DISABLE | MUX_MODE7) /* lcd_data1.lcd_data1 */
  72. 0xa8 (PULL_DISABLE | MUX_MODE7) /* lcd_data2.lcd_data2 */
  73. 0xac (PULL_DISABLE | MUX_MODE7) /* lcd_data3.lcd_data3 */
  74. 0xb0 (PULL_DISABLE | MUX_MODE7) /* lcd_data4.lcd_data4 */
  75. 0xb4 (PULL_DISABLE | MUX_MODE7) /* lcd_data5.lcd_data5 */
  76. 0xb8 (PULL_DISABLE | MUX_MODE7) /* lcd_data6.lcd_data6 */
  77. 0xbc (PULL_DISABLE | MUX_MODE7) /* lcd_data7.lcd_data7 */
  78. 0xc0 (PULL_DISABLE | MUX_MODE7) /* lcd_data8.lcd_data8 */
  79. 0xc4 (PULL_DISABLE | MUX_MODE7) /* lcd_data9.lcd_data9 */
  80. 0xc8 (PULL_DISABLE | MUX_MODE7) /* lcd_data10.lcd_data10 */
  81. 0xcc (PULL_DISABLE | MUX_MODE7) /* lcd_data11.lcd_data11 */
  82. 0xd0 (PULL_DISABLE | MUX_MODE7) /* lcd_data12.lcd_data12 */
  83. 0xd4 (PULL_DISABLE | MUX_MODE7) /* lcd_data13.lcd_data13 */
  84. 0xd8 (PULL_DISABLE | MUX_MODE7) /* lcd_data14.lcd_data14 */
  85. 0xdc (PULL_DISABLE | MUX_MODE7) /* lcd_data15.lcd_data15 */
  86. 0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
  87. 0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_hsync.lcd_hsync */
  88. 0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_pclk.lcd_pclk */
  89. 0xec (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_ac_bias_en.lcd_ac_bias_en */
  90. >;
  91. };
  92. i2c_gpio_pins: pinmux_i2c_gpio_pins {
  93. pinctrl-single,pins = <
  94. 0x150 (PIN_INPUT | MUX_MODE7) /* spi0_sclk.i2c2_sda */
  95. 0x154 (PIN_INPUT | MUX_MODE7) /* spi0_d0.i2c2_scl */
  96. >;
  97. };
  98. spi1_pins: pinmux_spi1_pins {
  99. pinctrl-single,pins = <
  100. 0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
  101. 0x194 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_fsx.spi1_d0 */
  102. 0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
  103. 0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
  104. 0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
  105. >;
  106. };
  107. edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
  108. pinctrl-single,pins = <
  109. 0x1ac (PIN_OUTPUT | MUX_MODE7) /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
  110. 0x8c (PIN_INPUT | MUX_MODE7) /* gpmc_clk_mux0.gpio2.1 INT TOUCH P8_18 */
  111. >;
  112. };
  113. uart1_pins_default: pinmux_uart1_pins_default {
  114. pinctrl-single,pins = <
  115. 0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
  116. 0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
  117. 0x178 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda.uart1_ctsn */
  118. 0x17c (PIN_OUTPUT | MUX_MODE0) /* i2c2_scl.uart1_rtsn */
  119. >;
  120. };
  121. uart1_pins_sleep: pinmux_uart1_pins_sleep {
  122. pinctrl-single,pins = <
  123. 0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* uart1_rxd.uart1_rxd */
  124. 0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
  125. 0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* i2c2_sda.uart1_ctsn */
  126. 0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0) /* i2c2_scl.uart1_rtsn */
  127. >;
  128. };
  129. timer7_pins: pinmux_timer7_pins {
  130. pinctrl-single,pins = <
  131. 0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_oen_ren.timer7 */
  132. >;
  133. };
  134. timer4_pins: pinmux_timer4_pins {
  135. pinctrl-single,pins = <
  136. 0x090 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_advn_ale.timer4 */
  137. >;
  138. };
  139. timer5_pins: pinmux_timer5_pins {
  140. pinctrl-single,pins = <
  141. 0x09c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_ben0_cle.timer5 */
  142. >;
  143. };
  144. di_pins_default: pinmux_di_pins_default {
  145. pinctrl-single,pins = <
  146. 0x070 (PIN_INPUT | MUX_MODE7) /* gpmc_wait0.uart4_rxd */
  147. 0x074 (PIN_INPUT | MUX_MODE7) /* gpmc_wpn.uart4_txd */
  148. 0x158 (PIN_INPUT | MUX_MODE7) /* spi0_d1.uart0_rxd */
  149. 0x15c (PIN_INPUT | MUX_MODE7) /* spi0_cs0.uart0_txd */
  150. >;
  151. };
  152. };
  153. &timer7 {
  154. pinctrl-names = "default";
  155. pinctrl-0 = <&timer7_pins>;
  156. status = "okay";
  157. };
  158. &timer4 {
  159. pinctrl-names = "default";
  160. pinctrl-0 = <&timer4_pins>;
  161. status = "okay";
  162. };
  163. &timer5 {
  164. pinctrl-names = "default";
  165. pinctrl-0 = <&timer5_pins>;
  166. status = "okay";
  167. };
  168. &i2c0 {
  169. hdmi1: hdmi@70 {
  170. compatible = "nxp,tda998x";
  171. reg = <0x70>;
  172. };
  173. };
  174. / {
  175. i2c@3 {
  176. compatible = "i2c-gpio";
  177. pinctrl-names = "default";
  178. pinctrl-0 = <&i2c_gpio_pins>;
  179. status = "okay";
  180. gpios = <&gpio0 2 0 /* sda */
  181. &gpio0 3 0 /* scl */
  182. >;
  183. /*i2c-gpio,sda-open-drain;
  184. i2c-gpio,scl-open-drain;*/
  185. i2c-gpio,delay-us = <1>; /* ~200 kHz */
  186. #address-cells = <1>;
  187. #size-cells = <0>;
  188. polytouch: edt-ft5x06@38 {
  189. compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
  190. reg = <0x38>;
  191. pinctrl-names = "default";
  192. pinctrl-0 = <&edt_ft5x06_pins>;
  193. interrupt-parent = <&gpio2>;
  194. interrupts = <1 8>;
  195. reset-gpios = <&gpio3 21 1>;
  196. max_x = <800>;
  197. max_y = <480>;
  198. };
  199. maxtouch: atmel_mxt_ts@4a {
  200. compatible = "atmel,maxtouch";
  201. invert_y;
  202. reg = <0x4a>;
  203. pinctrl-names = "default";
  204. pinctrl-0 = <&edt_ft5x06_pins>;
  205. interrupt-parent = <&gpio2>;
  206. interrupts = <1 8>;
  207. };
  208. mcp7940x: rtc@6f {
  209. compatible = "microchip,mcp7940x";
  210. reg = <0x6f>;
  211. };
  212. };
  213. };
  214. &spi1 {
  215. pinctrl-names = "default";
  216. pinctrl-0 = <&spi1_pins>;
  217. clock-frequency = <1000000>;
  218. status = "okay";
  219. /*
  220. spi1_0{
  221. compatible = "spidev";
  222. reg = <0>;
  223. spi-max-frequency = <10000000>;
  224. };
  225. */
  226. gpio_gfa: gpio_gfa@0 {
  227. compatible = "fairchild,74hc595";
  228. reg = <0>;
  229. gpio-controller;
  230. #gpio-cells = <2>;
  231. registers-number = <1>;
  232. spi-max-frequency = <1000000>;
  233. };
  234. spi1_1{
  235. compatible = "spidev";
  236. reg = <1>;
  237. spi-max-frequency = <10000000>;
  238. };
  239. };
  240. &lcdc {
  241. status = "okay";
  242. };
  243. / {
  244. panel {
  245. compatible = "ti,tilcdc,panel";
  246. pinctrl-names = "default", "sleep";
  247. pinctrl-0 = <&lcd_pins_default>;
  248. pinctrl-1 = <&lcd_pins_sleep>;
  249. status = "okay";
  250. panel-info {
  251. ac-bias = <255>;
  252. ac-bias-intrpt = <0>;
  253. dma-burst-sz = <16>;
  254. bpp = <32>;
  255. fdd = <0x80>;
  256. sync-edge = <0>;
  257. sync-ctrl = <1>;
  258. raster-order = <0>;
  259. fifo-th = <0>;
  260. };
  261. display-timings {
  262. 800x480 {
  263. hactive = <800>;
  264. vactive = <480>;
  265. hback-porch = <88>;
  266. hfront-porch = <40>;
  267. hsync-len = <128>;
  268. vback-porch = <33>;
  269. vfront-porch = <10>;
  270. vsync-len = <2>;
  271. clock-frequency = <33000000>;
  272. hsync-active = <0>;
  273. vsync-active = <0>;
  274. de-active = <1>;
  275. pixelclk-active = <0>;
  276. };
  277. };
  278. };
  279. };
  280. /*
  281. &tscadc {
  282. status = "okay";
  283. tsc {
  284. ti,wires = <4>;
  285. ti,x-plate-resistance = <200>;
  286. ti,coordinate-readouts = <5>;
  287. ti,wire-config = <0x00 0x11 0x22 0x33>;
  288. };
  289. };
  290. */
  291. &tscadc {
  292. status = "okay";
  293. };
  294. &am335x_adc {
  295. ti,adc-channels = <0 1 2 3 4 5 6 7>;
  296. };
  297. &uart1 {
  298. pinctrl-names = "default", "sleep";
  299. pinctrl-0 = <&uart1_pins_default>;
  300. pinctrl-1 = <&uart1_pins_sleep>;
  301. status = "okay";
  302. };
  303. / {
  304. pwm7: dmtimer-pwm@7 {
  305. compatible = "ti,omap-dmtimer-pwm";
  306. ti,timers = <&timer7>;
  307. #pwm-cells = <3>;
  308. };
  309. pwm-beeper {
  310. compatible = "pwm-beeper";
  311. pwms = <&pwm7 0 0 0>;
  312. };
  313. pwm4: dmtimer-pwm@4 {
  314. compatible = "ti,omap-dmtimer-pwm";
  315. ti,timers = <&timer4>;
  316. #pwm-cells = <3>;
  317. };
  318. pwm5: dmtimer-pwm@5 {
  319. compatible = "ti,omap-dmtimer-pwm";
  320. ti,timers = <&timer5>;
  321. #pwm-cells = <3>;
  322. };
  323. pwmleds {
  324. compatible = "pwm-leds";
  325. gfa-backlight {
  326. pwms = <&pwm4 0 1000000 0>;
  327. label = "backlight";
  328. max-brightness = <255>;
  329. };
  330. gfa-leds {
  331. pwms = <&pwm5 0 1000000 0>;
  332. label = "led_brightness";
  333. max-brightness = <255>;
  334. };
  335. };
  336. gfa_panel_leds {
  337. compatible = "gpio-leds";
  338. led0 {
  339. label = "GfA-LED0";
  340. gpios = <&gpio_gfa 0 0>;
  341. linux,default-trigger = "default-on";
  342. };
  343. led1 {
  344. label = "GfA-LED1";
  345. gpios = <&gpio_gfa 1 0>;
  346. linux,default-trigger = "mmc1";
  347. };
  348. led2 {
  349. label = "GfA-LED2";
  350. gpios = <&gpio_gfa 2 0>;
  351. linux,default-trigger = "heartbeat";
  352. };
  353. };
  354. gpio_keys {
  355. compatible = "gpio-keys";
  356. pinctrl-names = "default";
  357. pinctrl-0 = <&di_pins_default>;
  358. #address-cells = <1>;
  359. #size-cells = <0>;
  360. button@1 {
  361. linux,input-type = <5>;
  362. debounce_interval = <50>;
  363. linux,code = <0x0f>;
  364. label = "IN_2";
  365. gpios = <&gpio0 31 0x0>;
  366. gpio-key,wakeup;
  367. };
  368. button@2 {
  369. linux,input-type = <5>;
  370. debounce_interval = <50>;
  371. linux,code = <0x10>;
  372. label = "IN_1";
  373. gpios = <&gpio0 30 0x0>;
  374. gpio-key,wakeup;
  375. };
  376. button@3 {
  377. linux,input-type = <5>;
  378. debounce_interval = <50>;
  379. linux,code = <0x11>;
  380. label = "IN_4";
  381. gpios = <&gpio0 4 0x0>;
  382. gpio-key,wakeup;
  383. };
  384. button@4 {
  385. linux,input-type = <5>;
  386. debounce_interval = <50>;
  387. linux,code = <0x12>;
  388. label = "IN_3";
  389. gpios = <&gpio0 5 0x0>;
  390. gpio-key,wakeup;
  391. };
  392. };
  393. };
  394. / {
  395. vendorinfo {
  396. vendor_name = "GfA Display002";
  397. display_dtb = "Display002_7.dtb";
  398. };
  399. };