exynos5420-galaxy-tab-common.dtsi 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Base DT for Samsung's family of tablets based on Exynos5420.
  4. *
  5. * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
  6. * http://www.samsung.com
  7. * Copyright (c) 2022 Henrik Grimler
  8. */
  9. /dts-v1/;
  10. #include "exynos5420.dtsi"
  11. #include "exynos5420-cpus.dtsi"
  12. #include <dt-bindings/input/input.h>
  13. #include <dt-bindings/gpio/gpio.h>
  14. #include <dt-bindings/clock/samsung,s2mps11.h>
  15. / {
  16. chassis-type = "tablet";
  17. /*
  18. * To successfully boot the mainline kernel with the stock
  19. * bootloader (SBOOT), the tlb needs to be flushed after the
  20. * page table pointer has been updated in __common_mmu_cache_on.
  21. * The same hack is also needed to boot exynos4412-i9300 with
  22. * stock bootloader, and probably other Samsung devices of
  23. * similar age. See
  24. * https://lore.kernel.org/all/[email protected]
  25. * for more details.
  26. */
  27. chosen {
  28. stdout-path = "serial2:115200n8";
  29. };
  30. memory@20000000 {
  31. device_type = "memory";
  32. reg = <0x20000000 0xc0000000>;
  33. };
  34. firmware@2073000 {
  35. compatible = "samsung,secure-firmware";
  36. reg = <0x02073000 0x1000>;
  37. };
  38. fixed-rate-clocks {
  39. oscclk {
  40. compatible = "samsung,exynos5420-oscclk";
  41. clock-frequency = <24000000>;
  42. };
  43. };
  44. gpio-keys {
  45. compatible = "gpio-keys";
  46. pinctrl-names = "default";
  47. key-power {
  48. debounce-interval = <10>;
  49. gpios = <&gpx2 2 GPIO_ACTIVE_LOW>;
  50. label = "Power";
  51. linux,code = <KEY_POWER>;
  52. wakeup-source;
  53. };
  54. key-home {
  55. debounce-interval = <10>;
  56. gpios = <&gpx0 5 GPIO_ACTIVE_LOW>;
  57. label = "Home";
  58. linux,code = <KEY_HOME>;
  59. wakeup-source;
  60. };
  61. key-volume-up {
  62. debounce-interval = <10>;
  63. gpios = <&gpx0 2 GPIO_ACTIVE_LOW>;
  64. label = "Volume Up";
  65. linux,code = <KEY_VOLUMEUP>;
  66. };
  67. key-volume-down {
  68. debounce-interval = <10>;
  69. gpios = <&gpx0 3 GPIO_ACTIVE_LOW>;
  70. label = "Volume Down";
  71. linux,code = <KEY_VOLUMEDOWN>;
  72. };
  73. };
  74. };
  75. &cci {
  76. /* CCI is disabled in hardware */
  77. status = "disabled";
  78. };
  79. &cpu0 {
  80. cpu-supply = <&buck2_reg>;
  81. };
  82. &cpu4 {
  83. cpu-supply = <&buck6_reg>;
  84. };
  85. &gpu {
  86. status = "okay";
  87. mali-supply = <&buck4_reg>;
  88. };
  89. &hsi2c_7 {
  90. status = "okay";
  91. pmic@66 {
  92. compatible = "samsung,s2mps11-pmic";
  93. reg = <0x66>;
  94. interrupt-parent = <&gpx3>;
  95. interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
  96. pinctrl-names = "default";
  97. pinctrl-0 = <&s2mps11_irq>;
  98. s2mps11_osc: clocks {
  99. compatible = "samsung,s2mps11-clk";
  100. #clock-cells = <1>;
  101. clock-output-names = "s2mps11_ap", "s2mps11_cp",
  102. "s2mps11_bt";
  103. };
  104. regulators {
  105. buck1_reg: BUCK1 {
  106. regulator-name = "VDD_MIF_1V1";
  107. regulator-min-microvolt = <700000>;
  108. regulator-max-microvolt = <1300000>;
  109. regulator-always-on;
  110. regulator-boot-on;
  111. regulator-state-mem {
  112. regulator-off-in-suspend;
  113. };
  114. };
  115. buck2_reg: BUCK2 {
  116. regulator-name = "VDD_ARM_1V0";
  117. regulator-min-microvolt = <800000>;
  118. regulator-max-microvolt = <1500000>;
  119. regulator-always-on;
  120. regulator-boot-on;
  121. regulator-state-mem {
  122. regulator-off-in-suspend;
  123. };
  124. };
  125. buck3_reg: BUCK3 {
  126. regulator-name = "VDD_INT_1V0";
  127. regulator-min-microvolt = <800000>;
  128. regulator-max-microvolt = <1400000>;
  129. regulator-always-on;
  130. regulator-boot-on;
  131. regulator-state-mem {
  132. regulator-off-in-suspend;
  133. };
  134. };
  135. buck4_reg: BUCK4 {
  136. regulator-name = "VDD_G3D_1V0";
  137. regulator-min-microvolt = <700000>;
  138. regulator-max-microvolt = <1400000>;
  139. regulator-always-on;
  140. regulator-boot-on;
  141. regulator-state-mem {
  142. regulator-off-in-suspend;
  143. };
  144. };
  145. buck5_reg: BUCK5 {
  146. regulator-name = "VDD_MEM_1V2";
  147. regulator-min-microvolt = <1200000>;
  148. regulator-max-microvolt = <1200000>;
  149. regulator-always-on;
  150. regulator-boot-on;
  151. regulator-state-mem {
  152. regulator-off-in-suspend;
  153. };
  154. };
  155. buck6_reg: BUCK6 {
  156. regulator-name = "VDD_KFC_1V0";
  157. regulator-min-microvolt = <800000>;
  158. regulator-max-microvolt = <1500000>;
  159. regulator-always-on;
  160. regulator-boot-on;
  161. regulator-state-mem {
  162. regulator-off-in-suspend;
  163. };
  164. };
  165. buck7_reg: BUCK7 {
  166. regulator-name = "VIN_LLDO_1V4";
  167. regulator-min-microvolt = <1200000>;
  168. regulator-max-microvolt = <1500000>;
  169. regulator-always-on;
  170. };
  171. buck8_reg: BUCK8 {
  172. regulator-name = "VIN_MLDO_2V0";
  173. regulator-min-microvolt = <1800000>;
  174. regulator-max-microvolt = <2100000>;
  175. regulator-always-on;
  176. };
  177. buck9_reg: BUCK9 {
  178. regulator-name = "VIN_HLDO_3V5";
  179. regulator-min-microvolt = <3000000>;
  180. regulator-max-microvolt = <3500000>;
  181. regulator-always-on;
  182. };
  183. buck10_reg: BUCK10 {
  184. regulator-name = "VDD_CAM_ISP_1V0";
  185. regulator-min-microvolt = <750000>;
  186. regulator-max-microvolt = <3550000>;
  187. };
  188. ldo1_reg: LDO1 {
  189. regulator-name = "VDD_ALIVE_1.0V";
  190. regulator-min-microvolt = <1000000>;
  191. regulator-max-microvolt = <1000000>;
  192. regulator-always-on;
  193. };
  194. ldo2_reg: LDO2 {
  195. regulator-name = "VDD_APIO_1V8";
  196. regulator-min-microvolt = <1800000>;
  197. regulator-max-microvolt = <1800000>;
  198. regulator-always-on;
  199. regulator-boot-on;
  200. regulator-state-mem {
  201. regulator-on-in-suspend;
  202. };
  203. };
  204. ldo3_reg: LDO3 {
  205. regulator-name = "VDD_APIO_MMC01_1V8";
  206. regulator-min-microvolt = <1800000>;
  207. regulator-max-microvolt = <1800000>;
  208. regulator-always-on;
  209. regulator-state-mem {
  210. regulator-off-in-suspend;
  211. };
  212. };
  213. ldo4_reg: LDO4 {
  214. regulator-name = "VDD_ADC_1V8";
  215. regulator-min-microvolt = <1800000>;
  216. regulator-max-microvolt = <1800000>;
  217. regulator-always-on;
  218. regulator-boot-on;
  219. regulator-state-mem {
  220. regulator-on-in-suspend;
  221. };
  222. };
  223. ldo5_reg: LDO5 {
  224. /* Unused */
  225. regulator-name = "VDD_LDO5";
  226. regulator-min-microvolt = <1800000>;
  227. regulator-max-microvolt = <1800000>;
  228. };
  229. ldo6_reg: LDO6 {
  230. regulator-name = "VDD_MIPI_1V0";
  231. regulator-min-microvolt = <1000000>;
  232. regulator-max-microvolt = <1000000>;
  233. regulator-always-on;
  234. regulator-boot-on;
  235. regulator-state-mem {
  236. regulator-off-in-suspend;
  237. };
  238. };
  239. ldo7_reg: LDO7 {
  240. regulator-name = "VDD_MIPI_PLL_ABB1_18V";
  241. regulator-min-microvolt = <1800000>;
  242. regulator-max-microvolt = <1800000>;
  243. regulator-always-on;
  244. regulator-boot-on;
  245. regulator-state-mem {
  246. regulator-off-in-suspend;
  247. };
  248. };
  249. ldo8_reg: LDO8 {
  250. /* Unused */
  251. regulator-name = "VDD_LDO8";
  252. regulator-min-microvolt = <1800000>;
  253. regulator-max-microvolt = <1800000>;
  254. };
  255. ldo9_reg: LDO9 {
  256. regulator-name = "VDD_UOTG_3V0";
  257. regulator-min-microvolt = <3000000>;
  258. regulator-max-microvolt = <3000000>;
  259. regulator-always-on;
  260. regulator-boot-on;
  261. regulator-state-mem {
  262. regulator-on-in-suspend;
  263. };
  264. };
  265. ldo10_reg: LDO10 {
  266. regulator-name = "VDDQ_PRE_1V8";
  267. regulator-min-microvolt = <1800000>;
  268. regulator-max-microvolt = <1800000>;
  269. regulator-always-on;
  270. regulator-boot-on;
  271. regulator-state-mem {
  272. regulator-on-in-suspend;
  273. };
  274. };
  275. ldo11_reg: LDO11 {
  276. regulator-name = "VDD_HSIC_1V0";
  277. regulator-min-microvolt = <1000000>;
  278. regulator-max-microvolt = <1000000>;
  279. regulator-always-on;
  280. regulator-boot-on;
  281. regulator-state-mem {
  282. regulator-on-in-suspend;
  283. };
  284. };
  285. ldo12_reg: LDO12 {
  286. regulator-name = "VDD_HSIC_1V8";
  287. regulator-min-microvolt = <1800000>;
  288. regulator-max-microvolt = <1800000>;
  289. regulator-always-on;
  290. regulator-boot-on;
  291. regulator-state-mem {
  292. regulator-on-in-suspend;
  293. };
  294. };
  295. ldo13_reg: LDO13 {
  296. regulator-name = "VDD_APIO_MMC2_2V8";
  297. regulator-min-microvolt = <1800000>;
  298. regulator-max-microvolt = <2800000>;
  299. regulator-boot-on;
  300. regulator-state-mem {
  301. regulator-off-in-suspend;
  302. };
  303. };
  304. ldo14_reg: LDO14 {
  305. regulator-name = "VDD_MOTOR_3V0";
  306. regulator-min-microvolt = <3000000>;
  307. regulator-max-microvolt = <3000000>;
  308. regulator-state-mem {
  309. regulator-off-in-suspend;
  310. };
  311. };
  312. ldo15_reg: LDO15 {
  313. regulator-name = "VDD_LDO15";
  314. /*
  315. * LDO15 varies between devices and is
  316. * specified in the device dts
  317. */
  318. };
  319. ldo16_reg: LDO16 {
  320. regulator-name = "VDD_AP_2V8";
  321. regulator-min-microvolt = <2800000>;
  322. regulator-max-microvolt = <2800000>;
  323. regulator-always-on;
  324. regulator-boot-on;
  325. regulator-state-mem {
  326. regulator-on-in-suspend;
  327. };
  328. };
  329. ldo17_reg: LDO17 {
  330. regulator-name = "VDD_LDO17";
  331. /*
  332. * LDO17 varies between devices and is
  333. * specified in the device dts
  334. */
  335. };
  336. ldo18_reg: LDO18 {
  337. /* Unused */
  338. regulator-name = "VDD_LDO18";
  339. regulator-min-microvolt = <1800000>;
  340. regulator-max-microvolt = <1800000>;
  341. };
  342. ldo19_reg: LDO19 {
  343. regulator-name = "VDD_VTF_2V8";
  344. regulator-min-microvolt = <2800000>;
  345. regulator-max-microvolt = <2800000>;
  346. regulator-state-mem {
  347. regulator-off-in-suspend;
  348. };
  349. };
  350. ldo20_reg: LDO20 {
  351. regulator-name = "VDD_CAM1_CAM_1V8";
  352. regulator-min-microvolt = <1800000>;
  353. regulator-max-microvolt = <1800000>;
  354. regulator-state-mem {
  355. regulator-off-in-suspend;
  356. };
  357. };
  358. ldo21_reg: LDO21 {
  359. regulator-name = "VDD_CAM_IO_1V8";
  360. regulator-min-microvolt = <1800000>;
  361. regulator-max-microvolt = <1800000>;
  362. regulator-state-mem {
  363. regulator-off-in-suspend;
  364. };
  365. };
  366. ldo22_reg: LDO22 {
  367. regulator-name = "VDD_CAM0_S_CORE_1V1";
  368. regulator-min-microvolt = <1050000>;
  369. regulator-max-microvolt = <1200000>;
  370. regulator-state-mem {
  371. regulator-off-in-suspend;
  372. };
  373. };
  374. ldo23_reg: LDO23 {
  375. regulator-name = "VDD_MIFS_1V1";
  376. regulator-min-microvolt = <800000>;
  377. regulator-max-microvolt = <1100000>;
  378. regulator-always-on;
  379. regulator-state-mem {
  380. regulator-on-in-suspend;
  381. };
  382. };
  383. ldo24_reg: LDO24 {
  384. regulator-name = "VDD_TSP_3V3";
  385. regulator-min-microvolt = <3300000>;
  386. regulator-max-microvolt = <3300000>;
  387. regulator-state-mem {
  388. regulator-off-in-suspend;
  389. };
  390. };
  391. ldo25_reg: LDO25 {
  392. /* Unused */
  393. regulator-name = "VDD_LDO25";
  394. regulator-min-microvolt = <800000>;
  395. regulator-max-microvolt = <3950000>;
  396. };
  397. ldo26_reg: LDO26 {
  398. regulator-name = "VDD_CAM0_AF_2V8";
  399. regulator-min-microvolt = <2800000>;
  400. regulator-max-microvolt = <2800000>;
  401. regulator-state-mem {
  402. regulator-off-in-suspend;
  403. };
  404. };
  405. ldo27_reg: LDO27 {
  406. regulator-name = "VDD_G3DS_1V0";
  407. regulator-min-microvolt = <800000>;
  408. regulator-max-microvolt = <1000000>;
  409. regulator-always-on;
  410. regulator-state-mem {
  411. regulator-on-in-suspend;
  412. };
  413. };
  414. ldo28_reg: LDO28 {
  415. regulator-name = "VDD_LDO28";
  416. /*
  417. * LDO28 varies between devices and is
  418. * specified in the device dts
  419. */
  420. };
  421. ldo29_reg: LDO29 {
  422. regulator-name = "VDD_LDO29";
  423. /*
  424. * LDO29 varies between devices and is
  425. * specified in the device dts
  426. */
  427. };
  428. ldo30_reg: LDO30 {
  429. regulator-name = "VDD_TOUCH_1V8";
  430. regulator-min-microvolt = <1900000>;
  431. regulator-max-microvolt = <1900000>;
  432. regulator-state-mem {
  433. regulator-off-in-suspend;
  434. };
  435. };
  436. ldo31_reg: LDO31 {
  437. regulator-name = "VDD_LDO31";
  438. /*
  439. * LDO31 varies between devices and is
  440. * specified in the device dts
  441. */
  442. };
  443. ldo32_reg: LDO32 {
  444. regulator-name = "VDD_LDO32";
  445. /*
  446. * LDO32 varies between devices and is
  447. * specified in the device dts
  448. */
  449. };
  450. ldo33_reg: LDO33 {
  451. regulator-name = "VDD_MHL_1V8";
  452. regulator-min-microvolt = <1800000>;
  453. regulator-max-microvolt = <1800000>;
  454. regulator-state-mem {
  455. regulator-off-in-suspend;
  456. };
  457. };
  458. ldo34_reg: LDO34 {
  459. regulator-name = "VDD_MHL_3V3";
  460. regulator-min-microvolt = <3300000>;
  461. regulator-max-microvolt = <3300000>;
  462. regulator-state-mem {
  463. regulator-off-in-suspend;
  464. };
  465. };
  466. ldo35_reg: LDO35 {
  467. regulator-name = "VDD_SIL_1V2";
  468. regulator-min-microvolt = <1200000>;
  469. regulator-max-microvolt = <1200000>;
  470. regulator-state-mem {
  471. regulator-off-in-suspend;
  472. };
  473. };
  474. ldo36_reg: LDO36 {
  475. /* Unused */
  476. regulator-name = "VDD_LDO36";
  477. regulator-min-microvolt = <800000>;
  478. regulator-max-microvolt = <3950000>;
  479. };
  480. ldo37_reg: LDO37 {
  481. /* Unused */
  482. regulator-name = "VDD_LDO37";
  483. regulator-min-microvolt = <800000>;
  484. regulator-max-microvolt = <3950000>;
  485. };
  486. ldo38_reg: LDO38 {
  487. regulator-name = "VDD_KEY_LED_3V3";
  488. regulator-min-microvolt = <2500000>;
  489. regulator-max-microvolt = <3300000>;
  490. regulator-state-mem {
  491. regulator-off-in-suspend;
  492. };
  493. };
  494. };
  495. };
  496. };
  497. &mixer {
  498. status = "okay";
  499. };
  500. /* Internal storage */
  501. &mmc_0 {
  502. status = "okay";
  503. bus-width = <8>;
  504. cap-mmc-highspeed;
  505. card-detect-delay = <200>;
  506. mmc-hs200-1_8v;
  507. non-removable;
  508. pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
  509. pinctrl-names = "default";
  510. samsung,dw-mshc-ciu-div = <3>;
  511. samsung,dw-mshc-ddr-timing = <0 2>;
  512. samsung,dw-mshc-sdr-timing = <0 4>;
  513. vqmmc-supply = <&ldo3_reg>;
  514. };
  515. /* External sdcard */
  516. &mmc_2 {
  517. status = "okay";
  518. bus-width = <4>;
  519. cap-sd-highspeed;
  520. card-detect-delay = <200>;
  521. cd-gpios = <&gpx2 4 GPIO_ACTIVE_LOW>;
  522. pinctrl-0 = <&sd2_clk &sd2_cmd &mmc2_cd &sd2_bus1 &sd2_bus4>;
  523. pinctrl-names = "default";
  524. samsung,dw-mshc-ciu-div = <3>;
  525. samsung,dw-mshc-ddr-timing = <0 2>;
  526. samsung,dw-mshc-sdr-timing = <0 4>;
  527. sd-uhs-sdr50;
  528. vmmc-supply = <&ldo19_reg>;
  529. vqmmc-supply = <&ldo13_reg>;
  530. };
  531. &pinctrl_0 {
  532. mmc2_cd: mmc2-cd-pins {
  533. samsung,pins = "gpx2-4";
  534. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  535. };
  536. s2mps11_irq: s2mps11-irq-pins {
  537. samsung,pins = "gpx3-0";
  538. samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
  539. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  540. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  541. };
  542. };
  543. &rtc {
  544. status = "okay";
  545. clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
  546. clock-names = "rtc", "rtc_src";
  547. };
  548. &tmu_cpu0 {
  549. vtmu-supply = <&ldo10_reg>;
  550. };
  551. &tmu_cpu1 {
  552. vtmu-supply = <&ldo10_reg>;
  553. };
  554. &tmu_cpu2 {
  555. vtmu-supply = <&ldo10_reg>;
  556. };
  557. &tmu_cpu3 {
  558. vtmu-supply = <&ldo10_reg>;
  559. };
  560. &tmu_gpu {
  561. vtmu-supply = <&ldo10_reg>;
  562. };
  563. &usbdrd_dwc3_0 {
  564. dr_mode = "peripheral";
  565. };
  566. &usbdrd_dwc3_1 {
  567. dr_mode = "peripheral";
  568. };
  569. &usbdrd3_0 {
  570. vdd33-supply = <&ldo9_reg>;
  571. vdd10-supply = <&ldo11_reg>;
  572. };
  573. &usbdrd3_1 {
  574. vdd33-supply = <&ldo9_reg>;
  575. vdd10-supply = <&ldo11_reg>;
  576. };