BTHOMEHUBV5A.dts 5.7 KB

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