038-v4.19-0001-ARM-dts-BCM5301X-Make-USB-3.0-PHY-use-MDIO-PHY-drive.patch 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. From 37f6130ec39fe14e923d472746a51e6f06f761b7 Mon Sep 17 00:00:00 2001
  2. From: Vivek Unune <[email protected]>
  3. Date: Mon, 9 Apr 2018 18:31:53 -0400
  4. Subject: [PATCH] ARM: dts: BCM5301X: Make USB 3.0 PHY use MDIO PHY driver
  5. MIME-Version: 1.0
  6. Content-Type: text/plain; charset=UTF-8
  7. Content-Transfer-Encoding: 8bit
  8. Currently, the USB 3.0 PHY in bcm5301x.dtsi uses platform driver which
  9. requires register range "ccb-mii" <0x18003000 0x1000>. This range
  10. overlaps with MDIO cmd and param registers (<0x18003000 0x8>).
  11. Essentially, the platform driver partly acts like a MDIO bus driver,
  12. hence to use of this register range.
  13. In some Northstar devices like Linksys EA9500, secondary switch is
  14. connected via external MDIO. The only way to access and configure the
  15. external switch is via MDIO bus. When we enable the MDIO bus in it's
  16. current state, the MDIO bus and any child buses fail to register because
  17. of the register range overlap.
  18. On Northstar, the USB 3.0 PHY is connected at address 0x10 on the
  19. internal MDIO bus. This change moves the usb3_phy node and makes it a
  20. child node of internal MDIO bus.
  21. Thanks to Rafał Miłecki's commit af850e14a7ae ("phy: bcm-ns-usb3: add
  22. MDIO driver using proper bus layer") the same USB 3.0 platform driver
  23. can now act as USB 3.0 PHY MDIO driver.
  24. Tested on Linksys Panamera (EA9500)
  25. Signed-off-by: Vivek Unune <[email protected]>
  26. Signed-off-by: Florian Fainelli <[email protected]>
  27. ---
  28. arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts | 4 +++
  29. arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts | 4 +++
  30. arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 4 +++
  31. arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts | 4 +++
  32. arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 4 +++
  33. arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 4 +++
  34. arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 4 +++
  35. arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts | 4 +++
  36. arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 4 +++
  37. arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts | 4 +++
  38. arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 4 +++
  39. arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts | 4 +++
  40. arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 4 +++
  41. arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 4 +++
  42. arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts | 4 +++
  43. arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 4 +++
  44. arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 4 +++
  45. arch/arm/boot/dts/bcm4709-linksys-ea9200.dts | 4 +++
  46. arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 4 +++
  47. arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 4 +++
  48. arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts | 4 +++
  49. arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 4 +++
  50. arch/arm/boot/dts/bcm47094-linksys-panamera.dts | 4 +++
  51. arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 4 +++
  52. arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 4 +++
  53. arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 4 +++
  54. arch/arm/boot/dts/bcm47094-netgear-r8500.dts | 4 +++
  55. arch/arm/boot/dts/bcm47094.dtsi | 7 +++--
  56. arch/arm/boot/dts/bcm5301x.dtsi | 35 +++++++++++++++++-----
  57. arch/arm/boot/dts/bcm94708.dts | 4 +++
  58. arch/arm/boot/dts/bcm94709.dts | 4 +++
  59. arch/arm/boot/dts/bcm953012er.dts | 4 +++
  60. arch/arm/boot/dts/bcm953012hr.dts | 4 +++
  61. arch/arm/boot/dts/bcm953012k.dts | 4 +++
  62. 34 files changed, 159 insertions(+), 11 deletions(-)
  63. --- a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
  64. +++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
  65. @@ -90,3 +90,7 @@
  66. };
  67. };
  68. };
  69. +
  70. +&usb3_phy {
  71. + status = "okay";
  72. +};
  73. --- a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
  74. +++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
  75. @@ -80,3 +80,7 @@
  76. };
  77. };
  78. };
  79. +
  80. +&usb3_phy {
  81. + status = "okay";
  82. +};
  83. --- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
  84. +++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
  85. @@ -146,3 +146,7 @@
  86. &spi_nor {
  87. status = "okay";
  88. };
  89. +
  90. +&usb3_phy {
  91. + status = "okay";
  92. +};
  93. --- a/arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts
  94. +++ b/arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts
  95. @@ -38,3 +38,7 @@
  96. };
  97. };
  98. };
  99. +
  100. +&usb3_phy {
  101. + status = "okay";
  102. +};
  103. --- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
  104. +++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
  105. @@ -57,3 +57,7 @@
  106. &spi_nor {
  107. status = "okay";
  108. };
  109. +
  110. +&usb3_phy {
  111. + status = "okay";
  112. +};
  113. --- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
  114. +++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
  115. @@ -64,3 +64,7 @@
  116. &spi_nor {
  117. status = "okay";
  118. };
  119. +
  120. +&usb3_phy {
  121. + status = "okay";
  122. +};
  123. --- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
  124. +++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
  125. @@ -91,3 +91,7 @@
  126. &spi_nor {
  127. status = "okay";
  128. };
  129. +
  130. +&usb3_phy {
  131. + status = "okay";
  132. +};
  133. --- a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
  134. +++ b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
  135. @@ -83,3 +83,7 @@
  136. &spi_nor {
  137. status = "okay";
  138. };
  139. +
  140. +&usb3_phy {
  141. + status = "okay";
  142. +};
  143. --- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
  144. +++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
  145. @@ -158,3 +158,7 @@
  146. };
  147. };
  148. };
  149. +
  150. +&usb3_phy {
  151. + status = "okay";
  152. +};
  153. --- a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
  154. +++ b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
  155. @@ -74,3 +74,7 @@
  156. };
  157. };
  158. };
  159. +
  160. +&usb3_phy {
  161. + status = "okay";
  162. +};
  163. --- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
  164. +++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
  165. @@ -118,3 +118,7 @@
  166. };
  167. };
  168. };
  169. +
  170. +&usb3_phy {
  171. + status = "okay";
  172. +};
  173. --- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
  174. +++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
  175. @@ -104,3 +104,7 @@
  176. };
  177. };
  178. };
  179. +
  180. +&usb3_phy {
  181. + status = "okay";
  182. +};
  183. --- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
  184. +++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
  185. @@ -57,3 +57,7 @@
  186. &spi_nor {
  187. status = "okay";
  188. };
  189. +
  190. +&usb3_phy {
  191. + status = "okay";
  192. +};
  193. --- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
  194. +++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
  195. @@ -105,3 +105,7 @@
  196. &spi_nor {
  197. status = "okay";
  198. };
  199. +
  200. +&usb3_phy {
  201. + status = "okay";
  202. +};
  203. --- a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
  204. +++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
  205. @@ -99,3 +99,7 @@
  206. &usb2 {
  207. vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
  208. };
  209. +
  210. +&usb3_phy {
  211. + status = "okay";
  212. +};
  213. --- a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
  214. +++ b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
  215. @@ -62,3 +62,7 @@
  216. };
  217. };
  218. };
  219. +
  220. +&usb3_phy {
  221. + status = "okay";
  222. +};
  223. --- a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
  224. +++ b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
  225. @@ -127,3 +127,7 @@
  226. &spi_nor {
  227. status = "okay";
  228. };
  229. +
  230. +&usb3_phy {
  231. + status = "okay";
  232. +};
  233. --- a/arch/arm/boot/dts/bcm4709-linksys-ea9200.dts
  234. +++ b/arch/arm/boot/dts/bcm4709-linksys-ea9200.dts
  235. @@ -39,3 +39,7 @@
  236. };
  237. };
  238. };
  239. +
  240. +&usb3_phy {
  241. + status = "okay";
  242. +};
  243. --- a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
  244. +++ b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
  245. @@ -101,3 +101,7 @@
  246. &usb3 {
  247. vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
  248. };
  249. +
  250. +&usb3_phy {
  251. + status = "okay";
  252. +};
  253. --- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
  254. +++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
  255. @@ -182,3 +182,7 @@
  256. &usb3 {
  257. vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
  258. };
  259. +
  260. +&usb3_phy {
  261. + status = "okay";
  262. +};
  263. --- a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
  264. +++ b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
  265. @@ -104,3 +104,7 @@
  266. &spi_nor {
  267. status = "okay";
  268. };
  269. +
  270. +&usb3_phy {
  271. + status = "okay";
  272. +};
  273. --- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
  274. +++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
  275. @@ -115,3 +115,7 @@
  276. &spi_nor {
  277. status = "okay";
  278. };
  279. +
  280. +&usb3_phy {
  281. + status = "okay";
  282. +};
  283. --- a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
  284. +++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
  285. @@ -33,3 +33,7 @@
  286. };
  287. };
  288. };
  289. +
  290. +&usb3_phy {
  291. + status = "okay";
  292. +};
  293. --- a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
  294. +++ b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
  295. @@ -60,3 +60,7 @@
  296. &spi_nor {
  297. status = "okay";
  298. };
  299. +
  300. +&usb3_phy {
  301. + status = "okay";
  302. +};
  303. --- a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
  304. +++ b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
  305. @@ -60,3 +60,7 @@
  306. &spi_nor {
  307. status = "okay";
  308. };
  309. +
  310. +&usb3_phy {
  311. + status = "okay";
  312. +};
  313. --- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
  314. +++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
  315. @@ -100,3 +100,7 @@
  316. &spi_nor {
  317. status = "okay";
  318. };
  319. +
  320. +&usb3_phy {
  321. + status = "okay";
  322. +};
  323. --- a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
  324. +++ b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
  325. @@ -91,3 +91,7 @@
  326. };
  327. };
  328. };
  329. +
  330. +&usb3_phy {
  331. + status = "okay";
  332. +};
  333. --- a/arch/arm/boot/dts/bcm47094.dtsi
  334. +++ b/arch/arm/boot/dts/bcm47094.dtsi
  335. @@ -7,9 +7,10 @@
  336. #include "bcm4708.dtsi"
  337. / {
  338. - usb3_phy: usb3-phy {
  339. - compatible = "brcm,ns-bx-usb3-phy";
  340. - };
  341. +};
  342. +
  343. +&usb3_phy {
  344. + compatible = "brcm,ns-bx-usb3-phy";
  345. };
  346. &uart0 {
  347. --- a/arch/arm/boot/dts/bcm5301x.dtsi
  348. +++ b/arch/arm/boot/dts/bcm5301x.dtsi
  349. @@ -154,13 +154,6 @@
  350. clock-names = "phy-ref-clk";
  351. };
  352. - usb3_phy: usb3-phy {
  353. - compatible = "brcm,ns-ax-usb3-phy";
  354. - reg = <0x18105000 0x1000>, <0x18003000 0x1000>;
  355. - reg-names = "dmp", "ccb-mii";
  356. - #phy-cells = <0>;
  357. - };
  358. -
  359. axi@18000000 {
  360. compatible = "brcm,bus-axi";
  361. reg = <0x18000000 0x1000>;
  362. @@ -359,7 +352,33 @@
  363. reg = <0x18003000 0x8>;
  364. #size-cells = <1>;
  365. #address-cells = <0>;
  366. - status = "disabled";
  367. + };
  368. +
  369. + mdio-bus-mux {
  370. + compatible = "mdio-mux-mmioreg";
  371. + mdio-parent-bus = <&mdio>;
  372. + #address-cells = <1>;
  373. + #size-cells = <0>;
  374. + reg = <0x18003000 0x4>;
  375. + mux-mask = <0x200>;
  376. +
  377. + mdio@0 {
  378. + reg = <0x0>;
  379. + #address-cells = <1>;
  380. + #size-cells = <0>;
  381. +
  382. + usb3_phy: usb3-phy@10 {
  383. + compatible = "brcm,ns-ax-usb3-phy";
  384. + reg = <0x10>;
  385. + usb3-dmp-syscon = <&usb3_dmp>;
  386. + #phy-cells = <0>;
  387. + status = "disabled";
  388. + };
  389. + };
  390. + };
  391. +
  392. + usb3_dmp: syscon@18105000 {
  393. + reg = <0x18105000 0x1000>;
  394. };
  395. i2c0: i2c@18009000 {
  396. --- a/arch/arm/boot/dts/bcm94708.dts
  397. +++ b/arch/arm/boot/dts/bcm94708.dts
  398. @@ -42,3 +42,7 @@
  399. reg = <0x00000000 0x08000000>;
  400. };
  401. };
  402. +
  403. +&usb3_phy {
  404. + status = "okay";
  405. +};
  406. --- a/arch/arm/boot/dts/bcm94709.dts
  407. +++ b/arch/arm/boot/dts/bcm94709.dts
  408. @@ -42,3 +42,7 @@
  409. reg = <0x00000000 0x08000000>;
  410. };
  411. };
  412. +
  413. +&usb3_phy {
  414. + status = "okay";
  415. +};
  416. --- a/arch/arm/boot/dts/bcm953012er.dts
  417. +++ b/arch/arm/boot/dts/bcm953012er.dts
  418. @@ -90,3 +90,7 @@
  419. };
  420. };
  421. };
  422. +
  423. +&usb3_phy {
  424. + status = "okay";
  425. +};
  426. --- a/arch/arm/boot/dts/bcm953012hr.dts
  427. +++ b/arch/arm/boot/dts/bcm953012hr.dts
  428. @@ -95,3 +95,7 @@
  429. reg = <0x00700000 0x00900000>;
  430. };
  431. };
  432. +
  433. +&usb3_phy {
  434. + status = "okay";
  435. +};
  436. --- a/arch/arm/boot/dts/bcm953012k.dts
  437. +++ b/arch/arm/boot/dts/bcm953012k.dts
  438. @@ -113,3 +113,7 @@
  439. &uart1 {
  440. status = "okay";
  441. };
  442. +
  443. +&usb3_phy {
  444. + status = "okay";
  445. +};