am335x-bonegreen-wireless.dts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/
  4. */
  5. /dts-v1/;
  6. #include "am33xx.dtsi"
  7. #include "am335x-bone-common.dtsi"
  8. #include "am335x-bonegreen-common.dtsi"
  9. #include <dt-bindings/interrupt-controller/irq.h>
  10. / {
  11. model = "TI AM335x BeagleBone Green Wireless";
  12. compatible = "ti,am335x-bone-green-wireless", "ti,am335x-bone-green", "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
  13. wlan_en_reg: fixedregulator@2 {
  14. compatible = "regulator-fixed";
  15. regulator-name = "wlan-en-regulator";
  16. regulator-min-microvolt = <1800000>;
  17. regulator-max-microvolt = <1800000>;
  18. startup-delay-us = <70000>;
  19. /* WL_EN */
  20. gpio = <&gpio0 26 0>;
  21. enable-active-high;
  22. };
  23. };
  24. &am33xx_pinmux {
  25. bt_pins: pinmux_bt_pins {
  26. pinctrl-single,pins = <
  27. AM33XX_PADCONF(AM335X_PIN_GPMC_BEN1, PIN_OUTPUT_PULLUP, MUX_MODE7) /* gpmc_ad12.gpio1_28 BT_EN */
  28. >;
  29. };
  30. mmc3_pins: pinmux_mmc3_pins {
  31. pinctrl-single,pins = <
  32. AM33XX_PADCONF(AM335X_PIN_GPMC_AD12, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad12.mmc2_dat0 */
  33. AM33XX_PADCONF(AM335X_PIN_GPMC_AD13, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad13.mmc2_dat1 */
  34. AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad14.mmc2_dat2 */
  35. AM33XX_PADCONF(AM335X_PIN_GPMC_AD15, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad15.mmc2_dat3 */
  36. AM33XX_PADCONF(AM335X_PIN_GPMC_CSN3, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_csn3.mmc2_cmd */
  37. AM33XX_PADCONF(AM335X_PIN_GPMC_CLK, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_clk.mmc2_clk */
  38. >;
  39. };
  40. uart3_pins: pinmux_uart3_pins {
  41. pinctrl-single,pins = <
  42. AM33XX_PADCONF(AM335X_PIN_MII1_RXD3, PIN_INPUT_PULLUP, MUX_MODE1) /* gmii1_rxd3.uart3_rxd */
  43. AM33XX_PADCONF(AM335X_PIN_MII1_RXD2, PIN_OUTPUT_PULLDOWN, MUX_MODE1) /* gmii1_rxd2.uart3_txd */
  44. AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT, MUX_MODE3) /* mdio_data.uart3_ctsn */
  45. AM33XX_PADCONF(AM335X_PIN_MDC, PIN_OUTPUT_PULLDOWN, MUX_MODE3) /* mdio_clk.uart3_rtsn */
  46. >;
  47. };
  48. wl18xx_pins: pinmux_wl18xx_pins {
  49. pinctrl-single,pins = <
  50. AM33XX_PADCONF(AM335X_PIN_GPMC_AD10, PIN_OUTPUT_PULLDOWN, MUX_MODE7) /* gpmc_ad10.gpio0_26 WL_EN */
  51. AM33XX_PADCONF(AM335X_PIN_GPMC_AD11, PIN_INPUT_PULLDOWN, MUX_MODE7) /* gpmc_ad11.gpio0_27 WL_IRQ */
  52. AM33XX_PADCONF(AM335X_PIN_GPMC_CSN0, PIN_OUTPUT_PULLUP, MUX_MODE7) /* gpmc_csn0.gpio1_29 LS_BUF_EN */
  53. >;
  54. };
  55. };
  56. &mac_sw {
  57. status = "disabled";
  58. };
  59. &mmc3 {
  60. dmas = <&edma_xbar 12 0 1
  61. &edma_xbar 13 0 2>;
  62. dma-names = "tx", "rx";
  63. status = "okay";
  64. vmmc-supply = <&wlan_en_reg>;
  65. bus-width = <4>;
  66. non-removable;
  67. cap-power-off-card;
  68. keep-power-in-suspend;
  69. pinctrl-names = "default";
  70. pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
  71. #address-cells = <1>;
  72. #size-cells = <0>;
  73. wlcore: wlcore@2 {
  74. compatible = "ti,wl1835";
  75. reg = <2>;
  76. interrupt-parent = <&gpio0>;
  77. interrupts = <27 IRQ_TYPE_EDGE_RISING>;
  78. };
  79. };
  80. &uart3 {
  81. pinctrl-names = "default";
  82. pinctrl-0 = <&uart3_pins &bt_pins>;
  83. status = "okay";
  84. bluetooth {
  85. compatible = "ti,wl1835-st";
  86. enable-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
  87. };
  88. };
  89. &gpio1 {
  90. ls-buf-en-hog {
  91. gpio-hog;
  92. gpios = <29 GPIO_ACTIVE_HIGH>;
  93. output-high;
  94. line-name = "LS_BUF_EN";
  95. };
  96. };
  97. /* BT_AUD_OUT from wl1835 has to be pulled low when WL_EN is activated.*/
  98. /* in case it isn't, wilink8 ends up in one of the test modes that */
  99. /* intruces various issues (elp wkaeup timeouts etc.) */
  100. /* On the BBGW this pin is routed through the level shifter (U21) that */
  101. /* introduces a pullup on the line and wilink8 ends up in a bad state. */
  102. /* use a gpio hog to force this pin low. An alternative may be adding */
  103. /* an external pulldown on U21 pin 4. */
  104. &gpio3 {
  105. bt-aud-in-hog {
  106. gpio-hog;
  107. gpios = <16 GPIO_ACTIVE_HIGH>;
  108. output-low;
  109. line-name = "MCASP0_AHCLKR";
  110. };
  111. };