imx28-eukrea-mbmx28lc.dtsi 6.7 KB

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