aspeed-bmc-opp-zaius.dts 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578
  1. // SPDX-License-Identifier: GPL-2.0
  2. /dts-v1/;
  3. #include "aspeed-g5.dtsi"
  4. #include <dt-bindings/gpio/aspeed-gpio.h>
  5. / {
  6. model = "Zaius BMC";
  7. compatible = "ingrasys,zaius-bmc", "aspeed,ast2500";
  8. aliases {
  9. i2c15 = &i2cpcie0;
  10. i2c16 = &i2cpcie1;
  11. i2c17 = &i2cpcie2;
  12. i2c19 = &i2cpcie3;
  13. i2c20 = &i2cpcie4;
  14. };
  15. chosen {
  16. stdout-path = &uart5;
  17. bootargs = "console=ttyS4,115200 earlycon";
  18. };
  19. memory@80000000 {
  20. reg = <0x80000000 0x40000000>;
  21. };
  22. reserved-memory {
  23. #address-cells = <1>;
  24. #size-cells = <1>;
  25. ranges;
  26. flash_memory: region@98000000 {
  27. no-map;
  28. reg = <0x98000000 0x04000000>; /* 64M */
  29. };
  30. };
  31. onewire0 {
  32. compatible = "w1-gpio";
  33. gpios = <&gpio ASPEED_GPIO(H, 0) GPIO_ACTIVE_HIGH>;
  34. };
  35. onewire1 {
  36. compatible = "w1-gpio";
  37. gpios = <&gpio ASPEED_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
  38. };
  39. onewire2 {
  40. compatible = "w1-gpio";
  41. gpios = <&gpio ASPEED_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
  42. };
  43. onewire3 {
  44. compatible = "w1-gpio";
  45. gpios = <&gpio ASPEED_GPIO(H, 3) GPIO_ACTIVE_HIGH>;
  46. };
  47. gpio-keys {
  48. compatible = "gpio-keys";
  49. event-checkstop {
  50. label = "checkstop";
  51. gpios = <&gpio ASPEED_GPIO(F, 7) GPIO_ACTIVE_LOW>;
  52. linux,code = <ASPEED_GPIO(F, 7)>;
  53. };
  54. event-pcie-e2b-present{
  55. label = "pcie-e2b-present";
  56. gpios = <&gpio ASPEED_GPIO(E, 7) GPIO_ACTIVE_LOW>;
  57. linux,code = <ASPEED_GPIO(E, 7)>;
  58. };
  59. };
  60. leds {
  61. compatible = "gpio-leds";
  62. sys_boot_status {
  63. label = "System boot status";
  64. gpios = <&gpio ASPEED_GPIO(D, 5) GPIO_ACTIVE_LOW>;
  65. };
  66. attention {
  67. label = "Attention";
  68. gpios = <&gpio ASPEED_GPIO(D, 6) GPIO_ACTIVE_LOW>;
  69. };
  70. plt_fault {
  71. label = "Platform fault";
  72. gpios = <&gpio ASPEED_GPIO(D, 7) GPIO_ACTIVE_LOW>;
  73. };
  74. hdd_fault {
  75. label = "Onboard drive fault";
  76. gpios = <&gpio ASPEED_GPIO(AA, 2) GPIO_ACTIVE_LOW>;
  77. };
  78. };
  79. fsi: gpio-fsi {
  80. compatible = "fsi-master-gpio", "fsi-master";
  81. #address-cells = <2>;
  82. #size-cells = <0>;
  83. no-gpio-delays;
  84. trans-gpios = <&gpio ASPEED_GPIO(O, 6) GPIO_ACTIVE_HIGH>;
  85. enable-gpios = <&gpio ASPEED_GPIO(D, 0) GPIO_ACTIVE_HIGH>;
  86. clock-gpios = <&gpio ASPEED_GPIO(G, 0) GPIO_ACTIVE_HIGH>;
  87. data-gpios = <&gpio ASPEED_GPIO(G, 1) GPIO_ACTIVE_HIGH>;
  88. mux-gpios = <&gpio ASPEED_GPIO(P, 6) GPIO_ACTIVE_HIGH>;
  89. };
  90. iio-hwmon {
  91. compatible = "iio-hwmon";
  92. io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
  93. <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>,
  94. <&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>,
  95. <&adc 13>, <&adc 14>, <&adc 15>;
  96. };
  97. iio-hwmon-battery {
  98. compatible = "iio-hwmon";
  99. io-channels = <&adc 12>;
  100. };
  101. };
  102. &fmc {
  103. status = "okay";
  104. flash@0 {
  105. status = "okay";
  106. label = "bmc";
  107. m25p,fast-read;
  108. spi-max-frequency = <50000000>;
  109. #include "openbmc-flash-layout.dtsi"
  110. };
  111. };
  112. &spi1 {
  113. status = "okay";
  114. pinctrl-names = "default";
  115. pinctrl-0 = <&pinctrl_spi1_default>;
  116. flash@0 {
  117. status = "okay";
  118. label = "pnor";
  119. m25p,fast-read;
  120. spi-max-frequency = <100000000>;
  121. };
  122. };
  123. &spi2 {
  124. status = "okay";
  125. pinctrl-names = "default";
  126. pinctrl-0 = <&pinctrl_spi2ck_default
  127. &pinctrl_spi2cs0_default
  128. &pinctrl_spi2cs1_default
  129. &pinctrl_spi2miso_default
  130. &pinctrl_spi2mosi_default>;
  131. flash@0 {
  132. status = "okay";
  133. };
  134. };
  135. &uart1 {
  136. status = "okay";
  137. pinctrl-names = "default";
  138. pinctrl-0 = <&pinctrl_txd1_default
  139. &pinctrl_rxd1_default>;
  140. };
  141. &lpc_ctrl {
  142. status = "okay";
  143. memory-region = <&flash_memory>;
  144. flash = <&spi1>;
  145. };
  146. &lpc_snoop {
  147. status = "okay";
  148. snoop-ports = <0x80>;
  149. };
  150. &uart5 {
  151. status = "okay";
  152. };
  153. &mac0 {
  154. status = "okay";
  155. pinctrl-names = "default";
  156. pinctrl-0 = <&pinctrl_rmii1_default>;
  157. clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>,
  158. <&syscon ASPEED_CLK_MAC1RCLK>;
  159. clock-names = "MACCLK", "RCLK";
  160. use-ncsi;
  161. };
  162. &mac1 {
  163. status = "okay";
  164. pinctrl-names = "default";
  165. pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
  166. };
  167. &i2c0 {
  168. status = "okay";
  169. eeprom@50 {
  170. compatible = "atmel,24c64";
  171. reg = <0x50>;
  172. pagesize = <32>;
  173. };
  174. rtc@68 {
  175. compatible = "nxp,pcf8523";
  176. reg = <0x68>;
  177. };
  178. ucd90160@64 {
  179. compatible = "ti,ucd90160";
  180. reg = <0x64>;
  181. };
  182. /* Power sequencer UCD90160 PMBUS @64h
  183. * FRU AT24C64D @50h
  184. * RTC PCF8523 @68h
  185. * Clock buffer 9DBL04 @6dh
  186. */
  187. };
  188. &i2c1 {
  189. status = "okay";
  190. i2c-switch@71 {
  191. compatible = "nxp,pca9546";
  192. reg = <0x71>;
  193. #address-cells = <1>;
  194. #size-cells = <0>;
  195. i2cpcie0: i2c@0 {
  196. #address-cells = <1>;
  197. #size-cells = <0>;
  198. reg = <0>;
  199. };
  200. i2cpcie1: i2c@1 {
  201. #address-cells = <1>;
  202. #size-cells = <0>;
  203. reg = <1>;
  204. };
  205. i2cpcie2: i2c@2 {
  206. #address-cells = <1>;
  207. #size-cells = <0>;
  208. reg = <2>;
  209. };
  210. i2ctpm: i2c@3 {
  211. #address-cells = <1>;
  212. #size-cells = <0>;
  213. reg = <3>;
  214. };
  215. };
  216. /* MUX1 PCA9546A @71h
  217. * PCIe 0
  218. * PCIe 1
  219. * PCIe 2
  220. * TPM header
  221. */
  222. };
  223. &i2c2 {
  224. status = "disabled";
  225. /* OCP Mezz Connector A (OOB SMBUS) */
  226. };
  227. &i2c3 {
  228. status = "disabled";
  229. /* OCP Mezz Connector A (PCIe slot SMBUS) */
  230. };
  231. &i2c4 {
  232. status = "okay";
  233. i2c-switch@71 {
  234. compatible = "nxp,pca9546";
  235. reg = <0x71>;
  236. #address-cells = <1>;
  237. #size-cells = <0>;
  238. i2cpcie3: i2c@0 {
  239. #address-cells = <1>;
  240. #size-cells = <0>;
  241. reg = <0>;
  242. };
  243. i2cpcie4: i2c@1 {
  244. #address-cells = <1>;
  245. #size-cells = <0>;
  246. reg = <1>;
  247. };
  248. };
  249. /* MUX1 PCA9546A @71h
  250. * PCIe 3
  251. * PCIe 4
  252. */
  253. };
  254. &i2c5 {
  255. status = "disabled";
  256. /* CPU0 PRM 0.7V */
  257. /* CPU0 PRM 1.2V CH03 */
  258. /* CPU0 PRM 0.8V */
  259. /* CPU0 PRM 1.2V CH47 */
  260. };
  261. &i2c6 {
  262. status = "disabled";
  263. /* CPU1 PRM 0.7V */
  264. /* CPU1 PRM 1.2V CH03 */
  265. /* CPU1 PRM 0.8V */
  266. /* CPU1 PRM 1.2V CH47 */
  267. };
  268. &i2c7 {
  269. status = "okay";
  270. pca9541a@70 {
  271. compatible = "nxp,pca9541";
  272. reg = <0x70>;
  273. i2c-arb {
  274. #address-cells = <1>;
  275. #size-cells = <0>;
  276. hotswap@54 {
  277. compatible = "ti,lm5066i";
  278. reg = <0x54>;
  279. };
  280. };
  281. };
  282. vrm@64 {
  283. compatible = "isil,isl68137";
  284. reg = <0x64>;
  285. };
  286. vrm@40 {
  287. compatible = "isil,isl68137";
  288. reg = <0x40>;
  289. };
  290. vrm@60 {
  291. compatible = "isil,isl68137";
  292. reg = <0x60>;
  293. };
  294. vrm@43 {
  295. compatible = "infineon,ir38064";
  296. reg = <0x43>;
  297. };
  298. vrm@41 {
  299. compatible = "isil,isl68137";
  300. reg = <0x41>;
  301. };
  302. /* Master selector PCA9541A @70h (other master: CPU0)
  303. * LM5066I PMBUS @10h
  304. */
  305. /*
  306. * Brick will be one of these types/addresses. Depending
  307. * on the board SKU only one is actually present and will successfully
  308. * instantiate while the others will fail the probe operation.
  309. * These are the PVT (and presumably beyond) addresses:
  310. * 12V Quarter Brick DC/DC Converter Q54SJ12050 @6Ah
  311. * 12V Quarter Brick DC/DC Converter Q54SH12050 @30h
  312. */
  313. power-brick@6a {
  314. compatible = "delta,dps800";
  315. reg = <0x6a>;
  316. };
  317. power-brick@30 {
  318. compatible = "delta,dps800";
  319. reg = <0x30>;
  320. };
  321. /* CPU0 VR ISL68137 0.7V, 0.96V PMBUS @64h */
  322. /* CPU0 VR ISL68137 1.2V CH03 PMBUS @40h */
  323. /* CPU0 VR ISL68137 0.8V PMBUS @60h */
  324. /* CPU0 VR 1.0V IR38064 I2C @11h, PMBUS @43h */
  325. /* CPU0 VR ISL68137 1.2V CH47 PMBUS @41h */
  326. /* Master selector PCA9541A @70h (other master: CPU0)
  327. * LM5066I PMBUS @10h
  328. */
  329. };
  330. &i2c8 {
  331. status = "okay";
  332. vrm@64 {
  333. compatible = "isil,isl68137";
  334. reg = <0x64>;
  335. };
  336. vrm@40 {
  337. compatible = "isil,isl68137";
  338. reg = <0x40>;
  339. };
  340. vrm@41 {
  341. compatible = "isil,isl68137";
  342. reg = <0x41>;
  343. };
  344. vrm@42 {
  345. compatible = "infineon,ir38064";
  346. reg = <0x42>;
  347. };
  348. vrm@60 {
  349. compatible = "isil,isl68137";
  350. reg = <0x60>;
  351. };
  352. /* CPU1 VR ISL68137 0.7V, 0.96V PMBUS @64h */
  353. /* CPU1 VR ISL68137 1.2V CH03 PMBUS @40h */
  354. /* CPU1 VR ISL68137 1.2V CH47 PMBUS @41h */
  355. /* CPU1 VR 1.0V IR38064 I2C @12h, PMBUS @42h */
  356. /* CPU1 VR ISL68137 0.8V PMBUS @60h */
  357. };
  358. &i2c9 {
  359. status = "disabled";
  360. /* Fan board */
  361. };
  362. &i2c10 {
  363. status = "disabled";
  364. };
  365. &i2c11 {
  366. status = "disabled";
  367. /* GPU sideband */
  368. };
  369. &i2c12 {
  370. status = "disabled";
  371. };
  372. &i2c13 {
  373. status = "disabled";
  374. /* MUX PI3USB102
  375. * CPU0 debug
  376. * CPU1 debug
  377. */
  378. };
  379. &pinctrl {
  380. aspeed,external-nodes = <&gfx &lhc>;
  381. pinctrl_gpioh_unbiased: gpioi_unbiased {
  382. pins = "A8", "C7", "B7", "A7", "D7", "B6", "A6", "E7";
  383. bias-disable;
  384. };
  385. };
  386. &gpio {
  387. pinctrl-names = "default";
  388. pinctrl-0 = <&pinctrl_gpioh_unbiased>;
  389. gpio-line-names =
  390. /*A0-A7*/ "","cfam-reset","","","","","","",
  391. /*B0-B7*/ "","","","","","","","",
  392. /*C0-C7*/ "","","","","","","","",
  393. /*D0-D7*/ "fsi-enable","","","","","led-sys-boot-status","led-attention",
  394. "led-fault",
  395. /*E0-E7*/ "","","","","","","","presence-pcie-e2b",
  396. /*F0-F7*/ "","","","","","","","checkstop",
  397. /*G0-G7*/ "fsi-clock","fsi-data","","","","","","",
  398. /*H0-H7*/ "onewire0","onewire1","onewire2","onewire3","","","","",
  399. /*I0-I7*/ "","","","power-button","","","","",
  400. /*J0-J7*/ "","","","","","","","",
  401. /*K0-K7*/ "","","","","","","","",
  402. /*L0-L7*/ "","","","","","","","",
  403. /*M0-M7*/ "","","","","","","","",
  404. /*N0-N7*/ "","","","","","","","",
  405. /*O0-O7*/ "","","","","iso_u164_en","","fsi-trans","",
  406. /*P0-P7*/ "ncsi_mux_en_n","bmc_i2c2_sw_rst_n","","bmc_i2c5_sw_rst_n","",
  407. "","fsi-mux","",
  408. /*Q0-Q7*/ "","","","","","","","",
  409. /*R0-R7*/ "","","","","","","","",
  410. /*S0-S7*/ "","","","","","","","",
  411. /*T0-T7*/ "","","","","","","","",
  412. /*U0-U7*/ "","","","","","","","",
  413. /*V0-V7*/ "","","","","","","","",
  414. /*W0-W7*/ "","","","","","","","",
  415. /*X0-X7*/ "","","","","","","","",
  416. /*Y0-Y7*/ "","","","","","","","",
  417. /*Z0-Z7*/ "","","","","","","","",
  418. /*AA0-AA7*/ "","","led-hdd-fault","","","","","",
  419. /*AB0-AB7*/ "","","","","","","","",
  420. /*AC0-AC7*/ "","","","","","","","";
  421. line_iso_u146_en {
  422. gpio-hog;
  423. gpios = <ASPEED_GPIO(O, 4) GPIO_ACTIVE_HIGH>;
  424. output-high;
  425. };
  426. ncsi_mux_en_n {
  427. gpio-hog;
  428. gpios = <ASPEED_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
  429. output-low;
  430. };
  431. line_bmc_i2c2_sw_rst_n {
  432. gpio-hog;
  433. gpios = <ASPEED_GPIO(P, 1) GPIO_ACTIVE_HIGH>;
  434. output-high;
  435. };
  436. line_bmc_i2c5_sw_rst_n {
  437. gpio-hog;
  438. gpios = <ASPEED_GPIO(P, 3) GPIO_ACTIVE_HIGH>;
  439. output-high;
  440. };
  441. };
  442. &vuart {
  443. status = "okay";
  444. };
  445. &gfx {
  446. status = "okay";
  447. };
  448. &pwm_tacho {
  449. status = "okay";
  450. pinctrl-names = "default";
  451. pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default
  452. &pinctrl_pwm2_default &pinctrl_pwm3_default>;
  453. fan@0 {
  454. reg = <0x00>;
  455. aspeed,fan-tach-ch = /bits/ 8 <0x00>;
  456. };
  457. fan@1 {
  458. reg = <0x01>;
  459. aspeed,fan-tach-ch = /bits/ 8 <0x01>;
  460. };
  461. fan@2 {
  462. reg = <0x02>;
  463. aspeed,fan-tach-ch = /bits/ 8 <0x02>;
  464. };
  465. fan@3 {
  466. reg = <0x03>;
  467. aspeed,fan-tach-ch = /bits/ 8 <0x03>;
  468. };
  469. };
  470. &ibt {
  471. status = "okay";
  472. };
  473. #include "ibm-power9-dual.dtsi"