imx28-duckbill-2.dts 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * Copyright (C) 2015-2017 I2SE GmbH <[email protected]>
  4. * Copyright (C) 2016 Michael Heimpold <[email protected]>
  5. */
  6. /dts-v1/;
  7. #include <dt-bindings/interrupt-controller/irq.h>
  8. #include <dt-bindings/gpio/gpio.h>
  9. #include "imx28.dtsi"
  10. / {
  11. model = "I2SE Duckbill 2";
  12. compatible = "i2se,duckbill-2", "fsl,imx28";
  13. memory@40000000 {
  14. device_type = "memory";
  15. reg = <0x40000000 0x08000000>;
  16. };
  17. apb@80000000 {
  18. apbh@80000000 {
  19. ssp0: spi@80010000 {
  20. compatible = "fsl,imx28-mmc";
  21. pinctrl-names = "default";
  22. pinctrl-0 = <&mmc0_8bit_pins_a
  23. &mmc0_cd_cfg &mmc0_sck_cfg>;
  24. bus-width = <8>;
  25. vmmc-supply = <&reg_3p3v>;
  26. status = "okay";
  27. non-removable;
  28. };
  29. ssp2: spi@80014000 {
  30. compatible = "fsl,imx28-mmc";
  31. pinctrl-names = "default";
  32. pinctrl-0 = <&mmc2_4bit_pins_b
  33. &mmc2_cd_cfg &mmc2_sck_cfg_b>;
  34. bus-width = <4>;
  35. vmmc-supply = <&reg_3p3v>;
  36. status = "okay";
  37. };
  38. pinctrl@80018000 {
  39. pinctrl-names = "default";
  40. pinctrl-0 = <&hog_pins_a>;
  41. hog_pins_a: hog@0 {
  42. reg = <0>;
  43. fsl,pinmux-ids = <
  44. MX28_PAD_LCD_D17__GPIO_1_17 /* Revision detection */
  45. >;
  46. fsl,drive-strength = <MXS_DRIVE_4mA>;
  47. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  48. fsl,pull-up = <MXS_PULL_DISABLE>;
  49. };
  50. mac0_phy_reset_pin: mac0-phy-reset@0 {
  51. reg = <0>;
  52. fsl,pinmux-ids = <
  53. MX28_PAD_GPMI_ALE__GPIO_0_26 /* PHY Reset */
  54. >;
  55. fsl,drive-strength = <MXS_DRIVE_4mA>;
  56. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  57. fsl,pull-up = <MXS_PULL_DISABLE>;
  58. };
  59. mac0_phy_int_pin: mac0-phy-int@0 {
  60. reg = <0>;
  61. fsl,pinmux-ids = <
  62. MX28_PAD_GPMI_D07__GPIO_0_7 /* PHY Interrupt */
  63. >;
  64. fsl,drive-strength = <MXS_DRIVE_4mA>;
  65. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  66. fsl,pull-up = <MXS_PULL_DISABLE>;
  67. };
  68. led_pins: leds@0 {
  69. reg = <0>;
  70. fsl,pinmux-ids = <
  71. MX28_PAD_SAIF0_MCLK__GPIO_3_20
  72. MX28_PAD_SAIF0_LRCLK__GPIO_3_21
  73. >;
  74. fsl,drive-strength = <MXS_DRIVE_4mA>;
  75. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  76. fsl,pull-up = <MXS_PULL_DISABLE>;
  77. };
  78. };
  79. };
  80. apbx@80040000 {
  81. lradc@80050000 {
  82. status = "okay";
  83. };
  84. i2c0: i2c@80058000 {
  85. pinctrl-names = "default";
  86. pinctrl-0 = <&i2c0_pins_a>;
  87. status = "okay";
  88. };
  89. auart0: serial@8006a000 {
  90. pinctrl-names = "default";
  91. pinctrl-0 = <&auart0_2pins_a>;
  92. status = "okay";
  93. };
  94. duart: serial@80074000 {
  95. pinctrl-names = "default";
  96. pinctrl-0 = <&duart_pins_a>;
  97. status = "okay";
  98. };
  99. usbphy0: usbphy@8007c000 {
  100. status = "okay";
  101. };
  102. };
  103. };
  104. ahb@80080000 {
  105. usb0: usb@80080000 {
  106. status = "okay";
  107. dr_mode = "peripheral";
  108. };
  109. mac0: ethernet@800f0000 {
  110. phy-mode = "rmii";
  111. pinctrl-names = "default";
  112. pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
  113. phy-supply = <&reg_3p3v>;
  114. phy-reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
  115. phy-reset-duration = <25>;
  116. phy-handle = <&ethphy>;
  117. status = "okay";
  118. mdio {
  119. #address-cells = <1>;
  120. #size-cells = <0>;
  121. ethphy: ethernet-phy@0 {
  122. compatible = "ethernet-phy-ieee802.3-c22";
  123. reg = <0>;
  124. pinctrl-names = "default";
  125. pinctrl-0 = <&mac0_phy_int_pin>;
  126. interrupt-parent = <&gpio0>;
  127. interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
  128. max-speed = <100>;
  129. };
  130. };
  131. };
  132. };
  133. reg_3p3v: regulator-3p3v {
  134. compatible = "regulator-fixed";
  135. regulator-name = "3P3V";
  136. regulator-min-microvolt = <3300000>;
  137. regulator-max-microvolt = <3300000>;
  138. regulator-always-on;
  139. };
  140. leds {
  141. compatible = "gpio-leds";
  142. pinctrl-names = "default";
  143. pinctrl-0 = <&led_pins>;
  144. status-red {
  145. label = "duckbill:red:status";
  146. gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
  147. linux,default-trigger = "default-on";
  148. };
  149. status-green {
  150. label = "duckbill:green:status";
  151. gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
  152. linux,default-trigger = "heartbeat";
  153. };
  154. };
  155. };