sa8155p-adp.dts 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611
  1. // SPDX-License-Identifier: BSD-3-Clause
  2. /*
  3. * Copyright (c) 2021, Linaro Limited
  4. */
  5. /dts-v1/;
  6. #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
  7. #include <dt-bindings/gpio/gpio.h>
  8. #include "sm8150.dtsi"
  9. #include "pmm8155au_1.dtsi"
  10. #include "pmm8155au_2.dtsi"
  11. / {
  12. model = "Qualcomm Technologies, Inc. SA8155P ADP";
  13. compatible = "qcom,sa8155p-adp", "qcom,sa8155p";
  14. aliases {
  15. serial0 = &uart2;
  16. };
  17. chosen {
  18. stdout-path = "serial0:115200n8";
  19. };
  20. vreg_3p3: vreg_3p3_regulator {
  21. compatible = "regulator-fixed";
  22. regulator-name = "vreg_3p3";
  23. regulator-min-microvolt = <3300000>;
  24. regulator-max-microvolt = <3300000>;
  25. };
  26. /*
  27. * S4A is always on and not controllable through RPMh.
  28. * So model it as a fixed regulator.
  29. */
  30. vreg_s4a_1p8: smps4 {
  31. compatible = "regulator-fixed";
  32. regulator-name = "vreg_s4a_1p8";
  33. regulator-min-microvolt = <1800000>;
  34. regulator-max-microvolt = <1800000>;
  35. regulator-always-on;
  36. regulator-boot-on;
  37. vin-supply = <&vreg_3p3>;
  38. };
  39. mtl_rx_setup: rx-queues-config {
  40. snps,rx-queues-to-use = <1>;
  41. snps,rx-sched-sp;
  42. queue0 {
  43. snps,dcb-algorithm;
  44. snps,map-to-dma-channel = <0x0>;
  45. snps,route-up;
  46. snps,priority = <0x1>;
  47. };
  48. };
  49. mtl_tx_setup: tx-queues-config {
  50. snps,tx-queues-to-use = <1>;
  51. snps,tx-sched-wrr;
  52. queue0 {
  53. snps,weight = <0x10>;
  54. snps,dcb-algorithm;
  55. snps,priority = <0x0>;
  56. };
  57. };
  58. };
  59. &apps_rsc {
  60. pmm8155au-1-rpmh-regulators {
  61. compatible = "qcom,pmm8155au-rpmh-regulators";
  62. qcom,pmic-id = "a";
  63. vdd-s1-supply = <&vreg_3p3>;
  64. vdd-s2-supply = <&vreg_3p3>;
  65. vdd-s3-supply = <&vreg_3p3>;
  66. vdd-s4-supply = <&vreg_3p3>;
  67. vdd-s5-supply = <&vreg_3p3>;
  68. vdd-s6-supply = <&vreg_3p3>;
  69. vdd-s7-supply = <&vreg_3p3>;
  70. vdd-s8-supply = <&vreg_3p3>;
  71. vdd-s9-supply = <&vreg_3p3>;
  72. vdd-s10-supply = <&vreg_3p3>;
  73. vdd-l1-l8-l11-supply = <&vreg_s6a_0p92>;
  74. vdd-l2-l10-supply = <&vreg_3p3>;
  75. vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p92>;
  76. vdd-l6-l9-supply = <&vreg_s6a_0p92>;
  77. vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
  78. vdd-l13-l16-l17-supply = <&vreg_3p3>;
  79. vreg_s5a_2p04: smps5 {
  80. regulator-name = "vreg_s5a_2p04";
  81. regulator-min-microvolt = <1904000>;
  82. regulator-max-microvolt = <2000000>;
  83. };
  84. vreg_s6a_0p92: smps6 {
  85. regulator-name = "vreg_s6a_0p92";
  86. regulator-min-microvolt = <920000>;
  87. regulator-max-microvolt = <1128000>;
  88. };
  89. vreg_l1a_0p752: ldo1 {
  90. regulator-name = "vreg_l1a_0p752";
  91. regulator-min-microvolt = <752000>;
  92. regulator-max-microvolt = <752000>;
  93. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  94. };
  95. vdda_usb_hs_3p1:
  96. vreg_l2a_3p072: ldo2 {
  97. regulator-name = "vreg_l2a_3p072";
  98. regulator-min-microvolt = <3072000>;
  99. regulator-max-microvolt = <3072000>;
  100. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  101. };
  102. vreg_l3a_0p8: ldo3 {
  103. regulator-name = "vreg_l3a_0p8";
  104. regulator-min-microvolt = <800000>;
  105. regulator-max-microvolt = <800000>;
  106. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  107. };
  108. vdd_usb_hs_core:
  109. vdda_usb_ss_dp_core_1:
  110. vreg_l5a_0p88: ldo5 {
  111. regulator-name = "vreg_l5a_0p88";
  112. regulator-min-microvolt = <880000>;
  113. regulator-max-microvolt = <880000>;
  114. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  115. regulator-allow-set-load;
  116. regulator-allowed-modes =
  117. <RPMH_REGULATOR_MODE_LPM
  118. RPMH_REGULATOR_MODE_HPM>;
  119. };
  120. vreg_l7a_1p8: ldo7 {
  121. regulator-name = "vreg_l7a_1p8";
  122. regulator-min-microvolt = <1800000>;
  123. regulator-max-microvolt = <1800000>;
  124. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  125. };
  126. vreg_l10a_2p96: ldo10 {
  127. regulator-name = "vreg_l10a_2p96";
  128. regulator-min-microvolt = <2504000>;
  129. regulator-max-microvolt = <2960000>;
  130. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  131. regulator-allow-set-load;
  132. regulator-allowed-modes =
  133. <RPMH_REGULATOR_MODE_LPM
  134. RPMH_REGULATOR_MODE_HPM>;
  135. };
  136. vreg_l11a_0p8: ldo11 {
  137. regulator-name = "vreg_l11a_0p8";
  138. regulator-min-microvolt = <800000>;
  139. regulator-max-microvolt = <800000>;
  140. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  141. };
  142. vdda_usb_hs_1p8:
  143. vreg_l12a_1p8: ldo12 {
  144. regulator-name = "vreg_l12a_1p8";
  145. regulator-min-microvolt = <1800000>;
  146. regulator-max-microvolt = <1800000>;
  147. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  148. };
  149. vreg_l13a_2p7: ldo13 {
  150. regulator-name = "vreg_l13a_2p7";
  151. regulator-min-microvolt = <2704000>;
  152. regulator-max-microvolt = <2704000>;
  153. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  154. };
  155. vreg_l15a_1p7: ldo15 {
  156. regulator-name = "vreg_l15a_1p7";
  157. regulator-min-microvolt = <1704000>;
  158. regulator-max-microvolt = <1704000>;
  159. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  160. };
  161. vreg_l16a_2p7: ldo16 {
  162. regulator-name = "vreg_l16a_2p7";
  163. regulator-min-microvolt = <2704000>;
  164. regulator-max-microvolt = <2960000>;
  165. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  166. };
  167. vreg_l17a_2p96: ldo17 {
  168. regulator-name = "vreg_l17a_2p96";
  169. regulator-min-microvolt = <2504000>;
  170. regulator-max-microvolt = <2960000>;
  171. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  172. };
  173. };
  174. pmm8155au-2-rpmh-regulators {
  175. compatible = "qcom,pmm8155au-rpmh-regulators";
  176. qcom,pmic-id = "c";
  177. vdd-s1-supply = <&vreg_3p3>;
  178. vdd-s2-supply = <&vreg_3p3>;
  179. vdd-s3-supply = <&vreg_3p3>;
  180. vdd-s4-supply = <&vreg_3p3>;
  181. vdd-s5-supply = <&vreg_3p3>;
  182. vdd-s6-supply = <&vreg_3p3>;
  183. vdd-s7-supply = <&vreg_3p3>;
  184. vdd-s8-supply = <&vreg_3p3>;
  185. vdd-s9-supply = <&vreg_3p3>;
  186. vdd-s10-supply = <&vreg_3p3>;
  187. vdd-l1-l8-l11-supply = <&vreg_s4c_1p352>;
  188. vdd-l2-l10-supply = <&vreg_3p3>;
  189. vdd-l3-l4-l5-l18-supply = <&vreg_s4c_1p352>;
  190. vdd-l6-l9-supply = <&vreg_s6c_1p128>;
  191. vdd-l7-l12-l14-l15-supply = <&vreg_s5c_2p04>;
  192. vdd-l13-l16-l17-supply = <&vreg_3p3>;
  193. vreg_s4c_1p352: smps4 {
  194. regulator-name = "vreg_s4c_1p352";
  195. regulator-min-microvolt = <1352000>;
  196. regulator-max-microvolt = <1352000>;
  197. };
  198. vreg_s5c_2p04: smps5 {
  199. regulator-name = "vreg_s5c_2p04";
  200. regulator-min-microvolt = <1904000>;
  201. regulator-max-microvolt = <2000000>;
  202. };
  203. vreg_s6c_1p128: smps6 {
  204. regulator-name = "vreg_s6c_1p128";
  205. regulator-min-microvolt = <1128000>;
  206. regulator-max-microvolt = <1128000>;
  207. };
  208. vreg_l1c_1p304: ldo1 {
  209. regulator-name = "vreg_l1c_1p304";
  210. regulator-min-microvolt = <1304000>;
  211. regulator-max-microvolt = <1304000>;
  212. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  213. };
  214. vreg_l2c_1p808: ldo2 {
  215. regulator-name = "vreg_l2c_1p808";
  216. regulator-min-microvolt = <1704000>;
  217. regulator-max-microvolt = <2928000>;
  218. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  219. };
  220. vreg_l5c_1p2: ldo5 {
  221. regulator-name = "vreg_l5c_1p2";
  222. regulator-min-microvolt = <1200000>;
  223. regulator-max-microvolt = <1200000>;
  224. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  225. regulator-allow-set-load;
  226. regulator-allowed-modes =
  227. <RPMH_REGULATOR_MODE_LPM
  228. RPMH_REGULATOR_MODE_HPM>;
  229. };
  230. vreg_l7c_1p8: ldo7 {
  231. regulator-name = "vreg_l7c_1p8";
  232. regulator-min-microvolt = <1800000>;
  233. regulator-max-microvolt = <1800000>;
  234. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  235. };
  236. vreg_l8c_1p2: ldo8 {
  237. regulator-name = "vreg_l8c_1p2";
  238. regulator-min-microvolt = <1200000>;
  239. regulator-max-microvolt = <1200000>;
  240. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  241. regulator-allow-set-load;
  242. regulator-allowed-modes =
  243. <RPMH_REGULATOR_MODE_LPM
  244. RPMH_REGULATOR_MODE_HPM>;
  245. };
  246. vreg_l10c_3p3: ldo10 {
  247. regulator-name = "vreg_l10c_3p3";
  248. regulator-min-microvolt = <3000000>;
  249. regulator-max-microvolt = <3312000>;
  250. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  251. };
  252. vreg_l11c_0p8: ldo11 {
  253. regulator-name = "vreg_l11c_0p8";
  254. regulator-min-microvolt = <800000>;
  255. regulator-max-microvolt = <800000>;
  256. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  257. };
  258. vreg_l12c_1p808: ldo12 {
  259. regulator-name = "vreg_l12c_1p808";
  260. regulator-min-microvolt = <1704000>;
  261. regulator-max-microvolt = <2928000>;
  262. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  263. };
  264. vreg_l13c_2p96: ldo13 {
  265. regulator-name = "vreg_l13c_2p96";
  266. regulator-min-microvolt = <2504000>;
  267. regulator-max-microvolt = <2960000>;
  268. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  269. };
  270. vreg_l15c_1p9: ldo15 {
  271. regulator-name = "vreg_l15c_1p9";
  272. regulator-min-microvolt = <1704000>;
  273. regulator-max-microvolt = <2928000>;
  274. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  275. };
  276. vreg_l16c_3p008: ldo16 {
  277. regulator-name = "vreg_l16c_3p008";
  278. regulator-min-microvolt = <3008000>;
  279. regulator-max-microvolt = <3008000>;
  280. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  281. };
  282. vreg_l18c_0p88: ldo18 {
  283. regulator-name = "vreg_l18c_0p88";
  284. regulator-min-microvolt = <880000>;
  285. regulator-max-microvolt = <880000>;
  286. regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  287. };
  288. };
  289. };
  290. &ethernet {
  291. status = "okay";
  292. snps,reset-gpio = <&tlmm 79 GPIO_ACTIVE_LOW>;
  293. snps,reset-active-low;
  294. snps,reset-delays-us = <0 11000 70000>;
  295. snps,mtl-rx-config = <&mtl_rx_setup>;
  296. snps,mtl-tx-config = <&mtl_tx_setup>;
  297. pinctrl-names = "default";
  298. pinctrl-0 = <&ethernet_defaults>;
  299. phy-handle = <&rgmii_phy>;
  300. phy-mode = "rgmii";
  301. max-speed = <1000>;
  302. mdio {
  303. #address-cells = <0x1>;
  304. #size-cells = <0x0>;
  305. compatible = "snps,dwmac-mdio";
  306. /* Micrel KSZ9031RNZ PHY */
  307. rgmii_phy: phy@7 {
  308. reg = <0x7>;
  309. interrupt-parent = <&tlmm>;
  310. interrupts-extended = <&tlmm 124 IRQ_TYPE_EDGE_FALLING>; /* phy intr */
  311. device_type = "ethernet-phy";
  312. compatible = "ethernet-phy-ieee802.3-c22";
  313. };
  314. };
  315. };
  316. &qupv3_id_1 {
  317. status = "okay";
  318. };
  319. &remoteproc_adsp {
  320. status = "okay";
  321. firmware-name = "qcom/sa8155p/adsp.mdt";
  322. };
  323. &remoteproc_cdsp {
  324. status = "okay";
  325. firmware-name = "qcom/sa8155p/cdsp.mdt";
  326. };
  327. &sdhc_2 {
  328. status = "okay";
  329. cd-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
  330. pinctrl-names = "default", "sleep";
  331. pinctrl-0 = <&sdc2_on>;
  332. pinctrl-1 = <&sdc2_off>;
  333. vqmmc-supply = <&vreg_l13c_2p96>; /* IO line power */
  334. vmmc-supply = <&vreg_l17a_2p96>; /* Card power line */
  335. bus-width = <4>;
  336. no-sdio;
  337. no-emmc;
  338. };
  339. &uart2 {
  340. status = "okay";
  341. };
  342. &ufs_mem_hc {
  343. status = "okay";
  344. reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
  345. vcc-supply = <&vreg_l10a_2p96>;
  346. vcc-max-microamp = <750000>;
  347. vccq-supply = <&vreg_l5c_1p2>;
  348. vccq-max-microamp = <700000>;
  349. vccq2-supply = <&vreg_s4a_1p8>;
  350. vccq2-max-microamp = <750000>;
  351. };
  352. &ufs_mem_phy {
  353. status = "okay";
  354. vdda-phy-supply = <&vreg_l8c_1p2>;
  355. vdda-pll-supply = <&vreg_l5a_0p88>;
  356. };
  357. &usb_1 {
  358. status = "okay";
  359. };
  360. &usb_1_dwc3 {
  361. dr_mode = "host";
  362. pinctrl-names = "default";
  363. pinctrl-0 = <&usb2phy_ac_en1_default>;
  364. };
  365. &usb_1_hsphy {
  366. status = "okay";
  367. vdda-pll-supply = <&vdd_usb_hs_core>;
  368. vdda33-supply = <&vdda_usb_hs_3p1>;
  369. vdda18-supply = <&vdda_usb_hs_1p8>;
  370. };
  371. &usb_1_qmpphy {
  372. status = "disabled";
  373. };
  374. &usb_2 {
  375. status = "okay";
  376. };
  377. &usb_2_dwc3 {
  378. dr_mode = "host";
  379. pinctrl-names = "default";
  380. pinctrl-0 = <&usb2phy_ac_en2_default>;
  381. };
  382. &usb_2_hsphy {
  383. status = "okay";
  384. vdda-pll-supply = <&vdd_usb_hs_core>;
  385. vdda33-supply = <&vdda_usb_hs_3p1>;
  386. vdda18-supply = <&vdda_usb_hs_1p8>;
  387. };
  388. &usb_2_qmpphy {
  389. status = "okay";
  390. vdda-phy-supply = <&vreg_l8c_1p2>;
  391. vdda-pll-supply = <&vdda_usb_ss_dp_core_1>;
  392. };
  393. &pcie0 {
  394. status = "okay";
  395. };
  396. &pcie0_phy {
  397. status = "okay";
  398. vdda-phy-supply = <&vreg_l18c_0p88>;
  399. vdda-pll-supply = <&vreg_l8c_1p2>;
  400. };
  401. &pcie1_phy {
  402. vdda-phy-supply = <&vreg_l18c_0p88>;
  403. vdda-pll-supply = <&vreg_l8c_1p2>;
  404. };
  405. &tlmm {
  406. gpio-reserved-ranges = <0 4>;
  407. sdc2_on: sdc2_on {
  408. clk {
  409. pins = "sdc2_clk";
  410. bias-disable; /* No pull */
  411. drive-strength = <16>; /* 16 MA */
  412. };
  413. cmd {
  414. pins = "sdc2_cmd";
  415. bias-pull-up; /* pull up */
  416. drive-strength = <16>; /* 16 MA */
  417. };
  418. data {
  419. pins = "sdc2_data";
  420. bias-pull-up; /* pull up */
  421. drive-strength = <16>; /* 16 MA */
  422. };
  423. sd-cd {
  424. pins = "gpio96";
  425. function = "gpio";
  426. bias-pull-up; /* pull up */
  427. drive-strength = <2>; /* 2 MA */
  428. };
  429. };
  430. sdc2_off: sdc2_off {
  431. clk {
  432. pins = "sdc2_clk";
  433. bias-disable; /* No pull */
  434. drive-strength = <2>; /* 2 MA */
  435. };
  436. cmd {
  437. pins = "sdc2_cmd";
  438. bias-pull-up; /* pull up */
  439. drive-strength = <2>; /* 2 MA */
  440. };
  441. data {
  442. pins = "sdc2_data";
  443. bias-pull-up; /* pull up */
  444. drive-strength = <2>; /* 2 MA */
  445. };
  446. sd-cd {
  447. pins = "gpio96";
  448. function = "gpio";
  449. bias-pull-up; /* pull up */
  450. drive-strength = <2>; /* 2 MA */
  451. };
  452. };
  453. usb2phy_ac_en1_default: usb2phy_ac_en1_default {
  454. mux {
  455. pins = "gpio113";
  456. function = "usb2phy_ac";
  457. bias-disable;
  458. drive-strength = <2>;
  459. };
  460. };
  461. usb2phy_ac_en2_default: usb2phy_ac_en2_default {
  462. mux {
  463. pins = "gpio123";
  464. function = "usb2phy_ac";
  465. bias-disable;
  466. drive-strength = <2>;
  467. };
  468. };
  469. ethernet_defaults: ethernet-defaults {
  470. mdc {
  471. pins = "gpio7";
  472. function = "rgmii";
  473. bias-pull-up;
  474. };
  475. mdio {
  476. pins = "gpio59";
  477. function = "rgmii";
  478. bias-pull-up;
  479. };
  480. rgmii-rx {
  481. pins = "gpio117", "gpio118", "gpio119", "gpio120", "gpio115", "gpio116";
  482. function = "rgmii";
  483. bias-disable;
  484. drive-strength = <2>;
  485. };
  486. rgmii-tx {
  487. pins = "gpio122", "gpio4", "gpio5", "gpio6", "gpio114", "gpio121";
  488. function = "rgmii";
  489. bias-pull-up;
  490. drive-strength = <16>;
  491. };
  492. phy-intr {
  493. pins = "gpio124";
  494. function = "emac_phy";
  495. bias-disable;
  496. drive-strength = <8>;
  497. };
  498. pps {
  499. pins = "gpio81";
  500. function = "emac_pps";
  501. bias-disable;
  502. drive-strength = <8>;
  503. };
  504. phy-reset {
  505. pins = "gpio79";
  506. function = "gpio";
  507. bias-pull-up;
  508. drive-strength = <16>;
  509. };
  510. };
  511. };