BTHOMEHUBV5A.dts 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. /dts-v1/;
  2. #include "vr9.dtsi"
  3. #include <dt-bindings/input/input.h>
  4. #include <dt-bindings/mips/lantiq_rcu_gphy.h>
  5. / {
  6. compatible = "bt,homehub-v5a", "lantiq,xway", "lantiq,vr9";
  7. model = "BT Home Hub 5A";
  8. chosen {
  9. bootargs = "console=ttyLTQ0,115200";
  10. };
  11. aliases {
  12. led-boot = &power_green;
  13. led-failsafe = &power_red;
  14. led-running = &power_blue;
  15. led-dsl = &broadband_blue;
  16. led-wifi = &wireless_blue;
  17. };
  18. memory@0 {
  19. reg = <0x0 0x8000000>;
  20. };
  21. gpio-keys-polled {
  22. compatible = "gpio-keys-polled";
  23. #address-cells = <1>;
  24. #size-cells = <0>;
  25. poll-interval = <100>;
  26. reset {
  27. label = "reset";
  28. gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
  29. linux,code = <KEY_RESTART>;
  30. };
  31. wps {
  32. label = "wps";
  33. gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
  34. linux,code = <KEY_WPS_BUTTON>;
  35. };
  36. restart {
  37. label = "restart";
  38. gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
  39. linux,code = <KEY_POWER>;
  40. };
  41. };
  42. gpio-leds {
  43. compatible = "gpio-leds";
  44. /* broadband-* is a single RGB led */
  45. broadband-red {
  46. label = "bthomehubv5a:red:broadband";
  47. gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
  48. };
  49. broadband-green {
  50. label = "bthomehubv5a:green:broadband";
  51. gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
  52. };
  53. broadband_blue: broadband-blue {
  54. label = "bthomehubv5a:blue:broadband";
  55. gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
  56. };
  57. /* wireless-* is a single RGB led */
  58. wireless-red {
  59. label = "bthomehubv5a:red:wireless";
  60. gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
  61. };
  62. wireless-green {
  63. label = "bthomehubv5a:green:wireless";
  64. gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
  65. };
  66. wireless_blue: wireless-blue {
  67. label = "bthomehubv5a:blue:wireless";
  68. gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
  69. };
  70. /* power-* is a single RGB led */
  71. power_red: power-red {
  72. label = "bthomehubv5a:red:power";
  73. gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
  74. };
  75. power_green: power-green {
  76. label = "bthomehubv5a:green:power";
  77. gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
  78. default-state = "keep";
  79. };
  80. power_blue: power-blue {
  81. label = "bthomehubv5a:blue:power";
  82. gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
  83. };
  84. dimmed {
  85. label = "dimmed";
  86. gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
  87. };
  88. };
  89. usb_vbus: regulator-usb-vbus {
  90. compatible = "regulator-fixed";
  91. regulator-name = "USB_VBUS";
  92. regulator-min-microvolt = <5000000>;
  93. regulator-max-microvolt = <5000000>;
  94. gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
  95. enable-active-high;
  96. };
  97. };
  98. &eth0 {
  99. lan: interface@0 {
  100. compatible = "lantiq,xrx200-pdi";
  101. #address-cells = <1>;
  102. #size-cells = <0>;
  103. reg = <0>;
  104. lantiq,switch;
  105. ethernet@0 {
  106. compatible = "lantiq,xrx200-pdi-port";
  107. reg = <0>;
  108. phy-mode = "rgmii";
  109. phy-handle = <&phy0>;
  110. };
  111. ethernet@1 {
  112. compatible = "lantiq,xrx200-pdi-port";
  113. reg = <1>;
  114. phy-mode = "rgmii";
  115. phy-handle = <&phy1>;
  116. };
  117. ethernet@2 {
  118. compatible = "lantiq,xrx200-pdi-port";
  119. reg = <2>;
  120. phy-mode = "gmii";
  121. phy-handle = <&phy11>;
  122. };
  123. ethernet@4 {
  124. compatible = "lantiq,xrx200-pdi-port";
  125. reg = <4>;
  126. phy-mode = "gmii";
  127. phy-handle = <&phy13>;
  128. };
  129. ethernet@5 {
  130. compatible = "lantiq,xrx200-pdi-port";
  131. reg = <5>;
  132. phy-mode = "rgmii";
  133. phy-handle = <&phy5>;
  134. };
  135. };
  136. mdio@0 {
  137. #address-cells = <1>;
  138. #size-cells = <0>;
  139. compatible = "lantiq,xrx200-mdio";
  140. reg = <0>;
  141. phy0: ethernet-phy@0 {
  142. reg = <0x0>;
  143. compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
  144. };
  145. phy1: ethernet-phy@1 {
  146. reg = <0x1>;
  147. compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
  148. };
  149. phy5: ethernet-phy@5 {
  150. reg = <0x5>;
  151. compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
  152. };
  153. phy11: ethernet-phy@11 {
  154. reg = <0x11>;
  155. compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
  156. };
  157. phy13: ethernet-phy@13 {
  158. reg = <0x13>;
  159. compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
  160. };
  161. };
  162. };
  163. &gphy0 {
  164. lantiq,gphy-mode = <GPHY_MODE_GE>;
  165. };
  166. &gphy1 {
  167. lantiq,gphy-mode = <GPHY_MODE_GE>;
  168. };
  169. &gpio {
  170. pinctrl-names = "default";
  171. pinctrl-0 = <&state_default>;
  172. state_default: pinmux {
  173. mdio {
  174. lantiq,groups = "mdio";
  175. lantiq,function = "mdio";
  176. };
  177. pci_rst {
  178. lantiq,pins = "io21";
  179. lantiq,output = <1>;
  180. lantiq,open-drain;
  181. };
  182. pcie_rst {
  183. lantiq,pins = "io38";
  184. lantiq,pull = <0>;
  185. lantiq,output = <1>;
  186. lantiq,open-drain;
  187. };
  188. usb_vbus {
  189. lantiq,pins = "io33";
  190. lantiq,pull = <0>;
  191. lantiq,open-drain = <0>;
  192. lantiq,output = <1>;
  193. };
  194. nand_out {
  195. lantiq,groups = "nand cle", "nand ale";
  196. lantiq,function = "ebu";
  197. lantiq,output = <1>;
  198. lantiq,open-drain = <0>;
  199. lantiq,pull = <0>;
  200. };
  201. nand_cs1 {
  202. lantiq,groups = "nand cs1";
  203. lantiq,function = "ebu";
  204. lantiq,open-drain = <0>;
  205. lantiq,pull = <0>;
  206. };
  207. };
  208. };
  209. &localbus {
  210. nand@1 {
  211. compatible = "lantiq,nand-xway";
  212. lantiq,cs = <1>;
  213. bank-width = <2>;
  214. reg = <0x1 0x0 0x2000000>;
  215. #address-cells = <1>;
  216. #size-cells = <1>;
  217. nand-on-flash-bbt;
  218. nand-ecc-strength = <3>;
  219. nand-ecc-step-size = <256>;
  220. partitions {
  221. compatible = "fixed-partitions";
  222. #address-cells = <1>;
  223. #size-cells = <1>;
  224. partition@0 {
  225. label = "u-boot";
  226. reg = <0x0 0xa0000>;
  227. read-only;
  228. };
  229. partition@a0000 {
  230. label = "uboot-env";
  231. reg = <0xa0000 0x20000>;
  232. read-only;
  233. };
  234. partition@c0000 {
  235. label = "unused";
  236. reg = <0xc0000 0x40000>;
  237. };
  238. partition@100000 {
  239. label = "ubi";
  240. reg = <0x100000 0x7e80000>;
  241. };
  242. /*
  243. * last 512 KiB are for the bad block table, not writable
  244. */
  245. };
  246. };
  247. };
  248. &pci0 {
  249. status = "okay";
  250. gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
  251. wifi@168c,002d {
  252. compatible = "pci168c,002d";
  253. reg = <0x7000 0 0 0 0>;
  254. qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
  255. qca,disable-5ghz;
  256. };
  257. };
  258. &usb_phy0 {
  259. status = "okay";
  260. };
  261. &usb0 {
  262. status = "okay";
  263. vbus-supply = <&usb_vbus>;
  264. };