imx28-apf28dev.dts 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * Copyright 2012 Armadeus Systems - <[email protected]>
  4. */
  5. /* APF28Dev is a docking board for the APF28 SOM */
  6. #include "imx28-apf28.dts"
  7. / {
  8. model = "Armadeus Systems APF28Dev docking/development board";
  9. compatible = "armadeus,imx28-apf28dev", "armadeus,imx28-apf28", "fsl,imx28";
  10. apb@80000000 {
  11. apbh@80000000 {
  12. ssp0: spi@80010000 {
  13. compatible = "fsl,imx28-mmc";
  14. pinctrl-names = "default";
  15. pinctrl-0 = <&mmc0_4bit_pins_a
  16. &mmc0_cd_cfg &mmc0_sck_cfg>;
  17. bus-width = <4>;
  18. status = "okay";
  19. };
  20. ssp2: spi@80014000 {
  21. compatible = "fsl,imx28-spi";
  22. pinctrl-names = "default";
  23. pinctrl-0 = <&spi2_pins_a>;
  24. status = "okay";
  25. };
  26. pinctrl@80018000 {
  27. pinctrl-names = "default";
  28. pinctrl-0 = <&hog_pins_apf28dev>;
  29. hog_pins_apf28dev: hog@0 {
  30. reg = <0>;
  31. fsl,pinmux-ids = <
  32. MX28_PAD_LCD_D16__GPIO_1_16
  33. MX28_PAD_LCD_D17__GPIO_1_17
  34. MX28_PAD_LCD_D18__GPIO_1_18
  35. MX28_PAD_LCD_D19__GPIO_1_19
  36. MX28_PAD_LCD_D20__GPIO_1_20
  37. MX28_PAD_LCD_D21__GPIO_1_21
  38. MX28_PAD_LCD_D22__GPIO_1_22
  39. MX28_PAD_GPMI_CE1N__GPIO_0_17
  40. >;
  41. fsl,drive-strength = <MXS_DRIVE_4mA>;
  42. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  43. fsl,pull-up = <MXS_PULL_DISABLE>;
  44. };
  45. lcdif_pins_apf28dev: lcdif-apf28dev@0 {
  46. reg = <0>;
  47. fsl,pinmux-ids = <
  48. MX28_PAD_LCD_RD_E__LCD_VSYNC
  49. MX28_PAD_LCD_WR_RWN__LCD_HSYNC
  50. MX28_PAD_LCD_RS__LCD_DOTCLK
  51. MX28_PAD_LCD_CS__LCD_ENABLE
  52. >;
  53. fsl,drive-strength = <MXS_DRIVE_4mA>;
  54. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  55. fsl,pull-up = <MXS_PULL_DISABLE>;
  56. };
  57. usb0_otg_apf28dev: otg-apf28dev@0 {
  58. reg = <0>;
  59. fsl,pinmux-ids = <
  60. MX28_PAD_LCD_D23__GPIO_1_23
  61. >;
  62. fsl,drive-strength = <MXS_DRIVE_4mA>;
  63. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  64. fsl,pull-up = <MXS_PULL_DISABLE>;
  65. };
  66. };
  67. lcdif@80030000 {
  68. pinctrl-names = "default";
  69. pinctrl-0 = <&lcdif_16bit_pins_a
  70. &lcdif_pins_apf28dev>;
  71. display = <&display0>;
  72. status = "okay";
  73. display0: display0 {
  74. bits-per-pixel = <16>;
  75. bus-width = <16>;
  76. display-timings {
  77. native-mode = <&timing0>;
  78. timing0: timing0 {
  79. clock-frequency = <33000033>;
  80. hactive = <800>;
  81. vactive = <480>;
  82. hback-porch = <96>;
  83. hfront-porch = <96>;
  84. vback-porch = <20>;
  85. vfront-porch = <21>;
  86. hsync-len = <64>;
  87. vsync-len = <4>;
  88. hsync-active = <1>;
  89. vsync-active = <1>;
  90. de-active = <1>;
  91. pixelclk-active = <0>;
  92. };
  93. };
  94. };
  95. };
  96. can0: can@80032000 {
  97. pinctrl-names = "default";
  98. pinctrl-0 = <&can0_pins_a>;
  99. xceiver-supply = <&reg_can0_vcc>;
  100. status = "okay";
  101. };
  102. };
  103. apbx@80040000 {
  104. lradc@80050000 {
  105. fsl,lradc-touchscreen-wires = <4>;
  106. status = "okay";
  107. };
  108. i2c0: i2c@80058000 {
  109. pinctrl-names = "default";
  110. pinctrl-0 = <&i2c0_pins_a>;
  111. status = "okay";
  112. };
  113. pwm: pwm@80064000 {
  114. pinctrl-names = "default";
  115. pinctrl-0 = <&pwm3_pins_a &pwm4_pins_a>;
  116. status = "okay";
  117. };
  118. auart0: serial@8006a000 {
  119. pinctrl-names = "default";
  120. pinctrl-0 = <&auart0_pins_a>;
  121. uart-has-rtscts;
  122. status = "okay";
  123. };
  124. usbphy0: usbphy@8007c000 {
  125. status = "okay";
  126. };
  127. usbphy1: usbphy@8007e000 {
  128. status = "okay";
  129. };
  130. };
  131. };
  132. ahb@80080000 {
  133. usb0: usb@80080000 {
  134. pinctrl-names = "default";
  135. pinctrl-0 = <&usb0_otg_apf28dev
  136. &usb0_id_pins_b>;
  137. vbus-supply = <&reg_usb0_vbus>;
  138. status = "okay";
  139. };
  140. usb1: usb@80090000 {
  141. status = "okay";
  142. };
  143. mac1: ethernet@800f4000 {
  144. phy-mode = "rmii";
  145. pinctrl-names = "default";
  146. pinctrl-0 = <&mac1_pins_a>;
  147. phy-reset-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
  148. status = "okay";
  149. };
  150. };
  151. regulators {
  152. compatible = "simple-bus";
  153. #address-cells = <1>;
  154. #size-cells = <0>;
  155. reg_usb0_vbus: regulator@0 {
  156. compatible = "regulator-fixed";
  157. reg = <0>;
  158. regulator-name = "usb0_vbus";
  159. regulator-min-microvolt = <5000000>;
  160. regulator-max-microvolt = <5000000>;
  161. gpio = <&gpio1 23 1>;
  162. enable-active-high;
  163. };
  164. reg_can0_vcc: regulator@1 {
  165. compatible = "regulator-fixed";
  166. reg = <1>;
  167. regulator-name = "can0_vcc";
  168. regulator-min-microvolt = <5000000>;
  169. regulator-max-microvolt = <5000000>;
  170. };
  171. };
  172. leds {
  173. compatible = "gpio-leds";
  174. user {
  175. label = "Heartbeat";
  176. gpios = <&gpio0 21 0>;
  177. linux,default-trigger = "heartbeat";
  178. };
  179. };
  180. backlight {
  181. compatible = "pwm-backlight";
  182. pwms = <&pwm 3 191000>;
  183. brightness-levels = <0 4 8 16 32 64 128 255>;
  184. default-brightness-level = <6>;
  185. };
  186. gpio-keys {
  187. compatible = "gpio-keys";
  188. user-button {
  189. label = "User button";
  190. gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
  191. linux,code = <0x100>;
  192. wakeup-source;
  193. };
  194. };
  195. };