imx28-eukrea-mbmx28lc.dtsi 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. /*
  2. * Copyright 2013 Eukréa Electromatique <eric@eukrea.com>
  3. * Copyright 2013 Eukréa Electromatique <denis@eukrea.com>
  4. *
  5. * This program is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU General Public License
  7. * as published by the Free Software Foundation; either version 2
  8. * of the License, or (at your option) any later version.
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. */
  14. #include <dt-bindings/input/input.h>
  15. #include <dt-bindings/gpio/gpio.h>
  16. #include "imx28.dtsi"
  17. / {
  18. model = "Eukrea Electromatique MBMX28LC";
  19. compatible = "eukrea,mbmx28lc", "fsl,imx28";
  20. backlight {
  21. compatible = "pwm-backlight";
  22. pwms = <&pwm 4 1000000>;
  23. brightness-levels = <0 25 50 75 100 125 150 175 200 225 255>;
  24. default-brightness-level = <10>;
  25. };
  26. button-sw3 {
  27. compatible = "gpio-keys";
  28. pinctrl-names = "default";
  29. pinctrl-0 = <&gpio_button_sw3_pins_mbmx28lc>;
  30. sw3 {
  31. label = "SW3";
  32. gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
  33. linux,code = <BTN_MISC>;
  34. gpio-key,wakeup;
  35. };
  36. };
  37. button-sw4 {
  38. compatible = "gpio-keys";
  39. pinctrl-names = "default";
  40. pinctrl-0 = <&gpio_button_sw4_pins_mbmx28lc>;
  41. sw4 {
  42. label = "SW4";
  43. gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
  44. linux,code = <BTN_MISC>;
  45. gpio-key,wakeup;
  46. };
  47. };
  48. led-d6 {
  49. compatible = "gpio-leds";
  50. pinctrl-names = "default";
  51. pinctrl-0 = <&led_d6_pins_mbmx28lc>;
  52. led1 {
  53. label = "d6";
  54. gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
  55. linux,default-trigger = "heartbeat";
  56. };
  57. };
  58. led-d7 {
  59. compatible = "gpio-leds";
  60. pinctrl-names = "default";
  61. pinctrl-0 = <&led_d7_pins_mbmx28lc>;
  62. led1 {
  63. label = "d7";
  64. gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
  65. linux,default-trigger = "default-on";
  66. };
  67. };
  68. regulators {
  69. compatible = "simple-bus";
  70. #address-cells = <1>;
  71. #size-cells = <0>;
  72. reg_3p3v: regulator@0 {
  73. compatible = "regulator-fixed";
  74. regulator-name = "3P3V";
  75. regulator-min-microvolt = <3300000>;
  76. regulator-max-microvolt = <3300000>;
  77. regulator-always-on;
  78. };
  79. reg_lcd_3v3: regulator@1 {
  80. compatible = "regulator-fixed";
  81. pinctrl-names = "default";
  82. pinctrl-0 = <&reg_lcd_3v3_pins_mbmx28lc>;
  83. regulator-name = "lcd-3v3";
  84. regulator-min-microvolt = <3300000>;
  85. regulator-max-microvolt = <3300000>;
  86. gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
  87. enable-active-high;
  88. };
  89. reg_usb0_vbus: regulator@2 {
  90. compatible = "regulator-fixed";
  91. pinctrl-names = "default";
  92. pinctrl-0 = <&reg_usb0_vbus_pins_mbmx28lc>;
  93. regulator-name = "usb0_vbus";
  94. regulator-min-microvolt = <5000000>;
  95. regulator-max-microvolt = <5000000>;
  96. gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>;
  97. enable-active-high;
  98. };
  99. reg_usb1_vbus: regulator@3 {
  100. compatible = "regulator-fixed";
  101. pinctrl-names = "default";
  102. pinctrl-0 = <&reg_usb1_vbus_pins_mbmx28lc>;
  103. regulator-name = "usb1_vbus";
  104. regulator-min-microvolt = <5000000>;
  105. regulator-max-microvolt = <5000000>;
  106. gpio = <&gpio1 19 GPIO_ACTIVE_HIGH>;
  107. enable-active-high;
  108. };
  109. };
  110. sound {
  111. compatible = "fsl,imx28-mbmx28lc-sgtl5000",
  112. "fsl,mxs-audio-sgtl5000";
  113. model = "imx28-mbmx28lc-sgtl5000";
  114. saif-controllers = <&saif0 &saif1>;
  115. audio-codec = <&sgtl5000>;
  116. };
  117. };
  118. &duart {
  119. pinctrl-names = "default";
  120. pinctrl-0 = <&duart_4pins_a>;
  121. status = "okay";
  122. };
  123. &i2c0 {
  124. pinctrl-names = "default";
  125. pinctrl-0 = <&i2c0_pins_a>;
  126. status = "okay";
  127. sgtl5000: codec@0a {
  128. compatible = "fsl,sgtl5000";
  129. reg = <0x0a>;
  130. VDDA-supply = <&reg_3p3v>;
  131. VDDIO-supply = <&reg_3p3v>;
  132. clocks = <&saif0>;
  133. };
  134. };
  135. &lcdif {
  136. pinctrl-names = "default";
  137. pinctrl-0 = <&lcdif_18bit_pins_a &lcdif_pins_mbmx28lc>;
  138. lcd-supply = <&reg_lcd_3v3>;
  139. display = <&display0>;
  140. status = "okay";
  141. display0: display0 {
  142. model = "43WVF1G-0";
  143. bits-per-pixel = <16>;
  144. bus-width = <18>;
  145. display-timings {
  146. native-mode = <&timing0>;
  147. timing0: timing0 {
  148. clock-frequency = <9072000>;
  149. hactive = <480>;
  150. vactive = <272>;
  151. hback-porch = <10>;
  152. hfront-porch = <5>;
  153. vback-porch = <8>;
  154. vfront-porch = <8>;
  155. hsync-len = <40>;
  156. vsync-len = <10>;
  157. hsync-active = <0>;
  158. vsync-active = <0>;
  159. de-active = <1>;
  160. pixelclk-active = <1>;
  161. };
  162. };
  163. };
  164. };
  165. &lradc {
  166. fsl,lradc-touchscreen-wires = <4>;
  167. status = "okay";
  168. };
  169. &pinctrl {
  170. gpio_button_sw3_pins_mbmx28lc: gpio-button-sw3-mbmx28lc@0 {
  171. reg = <0>;
  172. fsl,pinmux-ids = <
  173. MX28_PAD_LCD_D21__GPIO_1_21
  174. >;
  175. fsl,drive-strength = <MXS_DRIVE_4mA>;
  176. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  177. fsl,pull-up = <MXS_PULL_DISABLE>;
  178. };
  179. gpio_button_sw4_pins_mbmx28lc: gpio-button-sw4-mbmx28lc@0 {
  180. reg = <0>;
  181. fsl,pinmux-ids = <
  182. MX28_PAD_LCD_D20__GPIO_1_20
  183. >;
  184. fsl,drive-strength = <MXS_DRIVE_4mA>;
  185. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  186. fsl,pull-up = <MXS_PULL_DISABLE>;
  187. };
  188. lcdif_pins_mbmx28lc: lcdif-mbmx28lc@0 {
  189. reg = <0>;
  190. fsl,pinmux-ids = <
  191. MX28_PAD_LCD_VSYNC__LCD_VSYNC
  192. MX28_PAD_LCD_HSYNC__LCD_HSYNC
  193. MX28_PAD_LCD_DOTCLK__LCD_DOTCLK
  194. MX28_PAD_LCD_ENABLE__LCD_ENABLE
  195. >;
  196. fsl,drive-strength = <MXS_DRIVE_4mA>;
  197. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  198. fsl,pull-up = <MXS_PULL_DISABLE>;
  199. };
  200. led_d6_pins_mbmx28lc: led-d6-mbmx28lc@0 {
  201. reg = <0>;
  202. fsl,pinmux-ids = <
  203. MX28_PAD_LCD_D23__GPIO_1_23
  204. >;
  205. fsl,drive-strength = <MXS_DRIVE_4mA>;
  206. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  207. fsl,pull-up = <MXS_PULL_DISABLE>;
  208. };
  209. led_d7_pins_mbmx28lc: led-d7-mbmx28lc@0 {
  210. reg = <0>;
  211. fsl,pinmux-ids = <
  212. MX28_PAD_LCD_D22__GPIO_1_22
  213. >;
  214. fsl,drive-strength = <MXS_DRIVE_4mA>;
  215. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  216. fsl,pull-up = <MXS_PULL_DISABLE>;
  217. };
  218. reg_lcd_3v3_pins_mbmx28lc: lcd-3v3-mbmx28lc@0 {
  219. reg = <0>;
  220. fsl,pinmux-ids = <
  221. MX28_PAD_LCD_RESET__GPIO_3_30
  222. >;
  223. fsl,drive-strength = <MXS_DRIVE_4mA>;
  224. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  225. fsl,pull-up = <MXS_PULL_DISABLE>;
  226. };
  227. reg_usb0_vbus_pins_mbmx28lc: reg-usb0-vbus-mbmx28lc@0 {
  228. reg = <0>;
  229. fsl,pinmux-ids = <
  230. MX28_PAD_LCD_D18__GPIO_1_18
  231. >;
  232. fsl,drive-strength = <MXS_DRIVE_4mA>;
  233. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  234. fsl,pull-up = <MXS_PULL_DISABLE>;
  235. };
  236. reg_usb1_vbus_pins_mbmx28lc: reg-usb1-vbus-mbmx28lc@0 {
  237. reg = <0>;
  238. fsl,pinmux-ids = <
  239. MX28_PAD_LCD_D19__GPIO_1_19
  240. >;
  241. fsl,drive-strength = <MXS_DRIVE_4mA>;
  242. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  243. fsl,pull-up = <MXS_PULL_DISABLE>;
  244. };
  245. };
  246. &pwm {
  247. pinctrl-names = "default";
  248. pinctrl-0 = <&pwm4_pins_a>;
  249. status = "okay";
  250. };
  251. &saif0 {
  252. pinctrl-names = "default";
  253. pinctrl-0 = <&saif0_pins_a>;
  254. status = "okay";
  255. };
  256. &saif1 {
  257. pinctrl-names = "default";
  258. pinctrl-0 = <&saif1_pins_a>;
  259. fsl,saif-master = <&saif0>;
  260. status = "okay";
  261. };
  262. &ssp0 {
  263. compatible = "fsl,imx28-mmc";
  264. pinctrl-names = "default";
  265. pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_cd_cfg &mmc0_sck_cfg>;
  266. bus-width = <4>;
  267. cd-inverted;
  268. status = "okay";
  269. };
  270. &usb0 {
  271. disable-over-current;
  272. vbus-supply = <&reg_usb0_vbus>;
  273. status = "okay";
  274. pinctrl-names = "default";
  275. pinctrl-0 = <&usb0_id_pins_b>;
  276. };
  277. &usb1 {
  278. vbus-supply = <&reg_usb1_vbus>;
  279. status = "okay";
  280. };
  281. &usbphy0 {
  282. status = "okay";
  283. };
  284. &usbphy1 {
  285. status = "okay";
  286. };