imx28-duckbill-2-485.dts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  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 485";
  12. compatible = "i2se,duckbill-2-485", "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. MX28_PAD_I2C0_SCL__GPIO_3_24
  74. MX28_PAD_I2C0_SDA__GPIO_3_25
  75. >;
  76. fsl,drive-strength = <MXS_DRIVE_4mA>;
  77. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  78. fsl,pull-up = <MXS_PULL_DISABLE>;
  79. };
  80. };
  81. };
  82. apbx@80040000 {
  83. lradc@80050000 {
  84. status = "okay";
  85. };
  86. auart0: serial@8006a000 {
  87. pinctrl-names = "default";
  88. pinctrl-0 = <&auart0_2pins_a>;
  89. status = "okay";
  90. };
  91. duart: serial@80074000 {
  92. pinctrl-names = "default";
  93. pinctrl-0 = <&duart_pins_a>;
  94. status = "okay";
  95. };
  96. usbphy0: usbphy@8007c000 {
  97. status = "okay";
  98. };
  99. };
  100. };
  101. ahb@80080000 {
  102. usb0: usb@80080000 {
  103. status = "okay";
  104. dr_mode = "peripheral";
  105. };
  106. mac0: ethernet@800f0000 {
  107. phy-mode = "rmii";
  108. pinctrl-names = "default";
  109. pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
  110. phy-supply = <&reg_3p3v>;
  111. phy-reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
  112. phy-reset-duration = <25>;
  113. phy-handle = <&ethphy>;
  114. status = "okay";
  115. mdio {
  116. #address-cells = <1>;
  117. #size-cells = <0>;
  118. ethphy: ethernet-phy@0 {
  119. compatible = "ethernet-phy-ieee802.3-c22";
  120. reg = <0>;
  121. pinctrl-names = "default";
  122. pinctrl-0 = <&mac0_phy_int_pin>;
  123. interrupt-parent = <&gpio0>;
  124. interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
  125. max-speed = <100>;
  126. };
  127. };
  128. };
  129. };
  130. reg_3p3v: regulator-3p3v {
  131. compatible = "regulator-fixed";
  132. regulator-name = "3P3V";
  133. regulator-min-microvolt = <3300000>;
  134. regulator-max-microvolt = <3300000>;
  135. regulator-always-on;
  136. };
  137. leds {
  138. compatible = "gpio-leds";
  139. pinctrl-names = "default";
  140. pinctrl-0 = <&led_pins>;
  141. status-red {
  142. label = "duckbill:red:status";
  143. gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
  144. linux,default-trigger = "default-on";
  145. };
  146. status-green {
  147. label = "duckbill:green:status";
  148. gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
  149. linux,default-trigger = "heartbeat";
  150. };
  151. rs485-red {
  152. label = "duckbill:red:rs485";
  153. gpios = <&gpio3 24 GPIO_ACTIVE_LOW>;
  154. };
  155. rs485-green {
  156. label = "duckbill:green:rs485";
  157. gpios = <&gpio3 25 GPIO_ACTIVE_LOW>;
  158. };
  159. };
  160. };