exynos5800-peach-pi.dts 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Google Peach Pi Rev 10+ board device tree source
  4. *
  5. * Copyright (c) 2014 Google, Inc
  6. */
  7. /dts-v1/;
  8. #include <dt-bindings/input/input.h>
  9. #include <dt-bindings/gpio/gpio.h>
  10. #include <dt-bindings/interrupt-controller/irq.h>
  11. #include <dt-bindings/clock/maxim,max77802.h>
  12. #include <dt-bindings/regulator/maxim,max77802.h>
  13. #include <dt-bindings/sound/samsung-i2s.h>
  14. #include "exynos5800.dtsi"
  15. #include "exynos5420-cpus.dtsi"
  16. / {
  17. model = "Google Peach Pi Rev 10+";
  18. compatible = "google,pi-rev16",
  19. "google,pi-rev15", "google,pi-rev14",
  20. "google,pi-rev13", "google,pi-rev12",
  21. "google,pi-rev11", "google,pi-rev10",
  22. "google,pi", "google,peach", "samsung,exynos5800",
  23. "samsung,exynos5";
  24. chassis-type = "laptop";
  25. aliases {
  26. /* Assign 20 so we don't get confused w/ builtin ones */
  27. i2c20 = &i2c_tunnel;
  28. };
  29. backlight: backlight {
  30. compatible = "pwm-backlight";
  31. pwms = <&pwm 0 1000000 0>;
  32. brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
  33. default-brightness-level = <7>;
  34. enable-gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
  35. power-supply = <&tps65090_fet1>;
  36. pinctrl-0 = <&pwm0_out>;
  37. pinctrl-names = "default";
  38. };
  39. chosen {
  40. stdout-path = "serial3:115200n8";
  41. };
  42. fixed-rate-clocks {
  43. oscclk {
  44. compatible = "samsung,exynos5420-oscclk";
  45. clock-frequency = <24000000>;
  46. };
  47. };
  48. gpio-keys {
  49. compatible = "gpio-keys";
  50. pinctrl-names = "default";
  51. pinctrl-0 = <&power_key_irq &lid_irq>;
  52. power-key {
  53. label = "Power";
  54. gpios = <&gpx1 2 GPIO_ACTIVE_LOW>;
  55. linux,code = <KEY_POWER>;
  56. wakeup-source;
  57. };
  58. lid-switch {
  59. label = "Lid";
  60. gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
  61. linux,input-type = <5>; /* EV_SW */
  62. linux,code = <0>; /* SW_LID */
  63. debounce-interval = <1>;
  64. wakeup-source;
  65. };
  66. };
  67. memory@20000000 {
  68. device_type = "memory";
  69. reg = <0x20000000 0x80000000>;
  70. };
  71. sound {
  72. compatible = "google,snow-audio-max98091";
  73. samsung,model = "Peach-Pi-I2S-MAX98091";
  74. samsung,i2s-controller = <&i2s0>;
  75. samsung,audio-codec = <&max98091>;
  76. cpu {
  77. sound-dai = <&i2s0 0>;
  78. };
  79. codec {
  80. sound-dai = <&max98091>, <&hdmi>;
  81. };
  82. };
  83. usb300_vbus_reg: regulator-usb300 {
  84. compatible = "regulator-fixed";
  85. regulator-name = "P5.0V_USB3CON0";
  86. regulator-min-microvolt = <5000000>;
  87. regulator-max-microvolt = <5000000>;
  88. gpio = <&gph0 0 GPIO_ACTIVE_HIGH>;
  89. pinctrl-names = "default";
  90. pinctrl-0 = <&usb300_vbus_en>;
  91. enable-active-high;
  92. };
  93. usb301_vbus_reg: regulator-usb301 {
  94. compatible = "regulator-fixed";
  95. regulator-name = "P5.0V_USB3CON1";
  96. regulator-min-microvolt = <5000000>;
  97. regulator-max-microvolt = <5000000>;
  98. gpio = <&gph0 1 GPIO_ACTIVE_HIGH>;
  99. pinctrl-names = "default";
  100. pinctrl-0 = <&usb301_vbus_en>;
  101. enable-active-high;
  102. };
  103. vbat: fixed-regulator {
  104. compatible = "regulator-fixed";
  105. regulator-name = "vbat-supply";
  106. regulator-boot-on;
  107. regulator-always-on;
  108. };
  109. panel: panel {
  110. compatible = "auo,b133htn01";
  111. power-supply = <&tps65090_fet6>;
  112. backlight = <&backlight>;
  113. port {
  114. panel_in: endpoint {
  115. remote-endpoint = <&dp_out>;
  116. };
  117. };
  118. };
  119. mmc1_pwrseq: mmc1-pwrseq {
  120. compatible = "mmc-pwrseq-simple";
  121. reset-gpios = <&gpx0 0 GPIO_ACTIVE_LOW>; /* WIFI_EN */
  122. clocks = <&max77802 MAX77802_CLK_32K_CP>;
  123. clock-names = "ext_clock";
  124. };
  125. };
  126. &adc {
  127. status = "okay";
  128. vdd-supply = <&ldo9_reg>;
  129. };
  130. &clock_audss {
  131. assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>;
  132. assigned-clock-parents = <&clock CLK_MAU_EPLL>;
  133. };
  134. /*
  135. * Peach Pi board uses SoC revision with lower maximum frequency for A7 cores
  136. * (1.3 GHz instead of 1.4 GHz) than Odroid XU3/XU4 boards. Thus we need to
  137. * update A7 OPPs table accordingly.
  138. */
  139. &cluster_a7_opp_table {
  140. /delete-node/opp-1400000000;
  141. };
  142. &cpu0 {
  143. cpu-supply = <&buck2_reg>;
  144. };
  145. &cpu4 {
  146. cpu-supply = <&buck6_reg>;
  147. };
  148. &dp {
  149. status = "okay";
  150. pinctrl-names = "default";
  151. pinctrl-0 = <&dp_hpd_gpio>;
  152. samsung,color-space = <0>;
  153. samsung,color-depth = <1>;
  154. samsung,link-rate = <0x0a>;
  155. samsung,lane-count = <2>;
  156. samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
  157. ports {
  158. port {
  159. dp_out: endpoint {
  160. remote-endpoint = <&panel_in>;
  161. };
  162. };
  163. };
  164. };
  165. &fimd {
  166. status = "okay";
  167. samsung,invert-vclk;
  168. };
  169. &hdmi {
  170. status = "okay";
  171. hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
  172. pinctrl-names = "default";
  173. pinctrl-0 = <&hdmi_hpd_irq>;
  174. ddc = <&i2c_2>;
  175. hdmi-en-supply = <&tps65090_fet7>;
  176. vdd-supply = <&ldo8_reg>;
  177. vdd_osc-supply = <&ldo10_reg>;
  178. vdd_pll-supply = <&ldo8_reg>;
  179. };
  180. &hsi2c_4 {
  181. status = "okay";
  182. clock-frequency = <400000>;
  183. max77802: pmic@9 {
  184. compatible = "maxim,max77802";
  185. interrupt-parent = <&gpx3>;
  186. interrupts = <1 IRQ_TYPE_NONE>;
  187. pinctrl-names = "default";
  188. pinctrl-0 = <&max77802_irq>, <&pmic_selb>,
  189. <&pmic_dvs_1>, <&pmic_dvs_2>;
  190. wakeup-source;
  191. reg = <0x9>;
  192. #clock-cells = <1>;
  193. inb1-supply = <&tps65090_dcdc2>;
  194. inb2-supply = <&tps65090_dcdc1>;
  195. inb3-supply = <&tps65090_dcdc2>;
  196. inb4-supply = <&tps65090_dcdc2>;
  197. inb5-supply = <&tps65090_dcdc1>;
  198. inb6-supply = <&tps65090_dcdc2>;
  199. inb7-supply = <&tps65090_dcdc1>;
  200. inb8-supply = <&tps65090_dcdc1>;
  201. inb9-supply = <&tps65090_dcdc1>;
  202. inb10-supply = <&tps65090_dcdc1>;
  203. inl1-supply = <&buck5_reg>;
  204. inl2-supply = <&buck7_reg>;
  205. inl3-supply = <&buck9_reg>;
  206. inl4-supply = <&buck9_reg>;
  207. inl5-supply = <&buck9_reg>;
  208. inl6-supply = <&tps65090_dcdc2>;
  209. inl7-supply = <&buck9_reg>;
  210. inl9-supply = <&tps65090_dcdc2>;
  211. inl10-supply = <&buck7_reg>;
  212. regulators {
  213. buck1_reg: BUCK1 {
  214. regulator-name = "vdd_mif";
  215. regulator-min-microvolt = <800000>;
  216. regulator-max-microvolt = <1300000>;
  217. regulator-always-on;
  218. regulator-boot-on;
  219. regulator-ramp-delay = <12500>;
  220. regulator-state-mem {
  221. regulator-off-in-suspend;
  222. };
  223. };
  224. buck2_reg: BUCK2 {
  225. regulator-name = "vdd_arm";
  226. regulator-min-microvolt = <800000>;
  227. regulator-max-microvolt = <1500000>;
  228. regulator-always-on;
  229. regulator-boot-on;
  230. regulator-ramp-delay = <12500>;
  231. regulator-coupled-with = <&buck3_reg>;
  232. regulator-coupled-max-spread = <300000>;
  233. regulator-state-mem {
  234. regulator-off-in-suspend;
  235. };
  236. };
  237. buck3_reg: BUCK3 {
  238. regulator-name = "vdd_int";
  239. regulator-min-microvolt = <800000>;
  240. regulator-max-microvolt = <1400000>;
  241. regulator-always-on;
  242. regulator-boot-on;
  243. regulator-ramp-delay = <12500>;
  244. regulator-coupled-with = <&buck2_reg>;
  245. regulator-coupled-max-spread = <300000>;
  246. regulator-state-mem {
  247. regulator-off-in-suspend;
  248. };
  249. };
  250. buck4_reg: BUCK4 {
  251. regulator-name = "vdd_g3d";
  252. regulator-min-microvolt = <700000>;
  253. regulator-max-microvolt = <1400000>;
  254. regulator-always-on;
  255. regulator-boot-on;
  256. regulator-ramp-delay = <12500>;
  257. regulator-state-mem {
  258. regulator-off-in-suspend;
  259. };
  260. };
  261. buck5_reg: BUCK5 {
  262. regulator-name = "vdd_1v2";
  263. regulator-min-microvolt = <1200000>;
  264. regulator-max-microvolt = <1200000>;
  265. regulator-boot-on;
  266. regulator-state-mem {
  267. regulator-off-in-suspend;
  268. };
  269. };
  270. buck6_reg: BUCK6 {
  271. regulator-name = "vdd_kfc";
  272. regulator-min-microvolt = <800000>;
  273. regulator-max-microvolt = <1500000>;
  274. regulator-always-on;
  275. regulator-boot-on;
  276. regulator-ramp-delay = <12500>;
  277. regulator-state-mem {
  278. regulator-off-in-suspend;
  279. };
  280. };
  281. buck7_reg: BUCK7 {
  282. regulator-name = "vdd_1v35";
  283. regulator-min-microvolt = <1350000>;
  284. regulator-max-microvolt = <1350000>;
  285. regulator-always-on;
  286. regulator-boot-on;
  287. regulator-state-mem {
  288. regulator-on-in-suspend;
  289. };
  290. };
  291. buck8_reg: BUCK8 {
  292. regulator-name = "vdd_emmc";
  293. regulator-min-microvolt = <2850000>;
  294. regulator-max-microvolt = <2850000>;
  295. regulator-always-on;
  296. regulator-boot-on;
  297. regulator-state-mem {
  298. regulator-off-in-suspend;
  299. };
  300. };
  301. buck9_reg: BUCK9 {
  302. regulator-name = "vdd_2v";
  303. regulator-min-microvolt = <2000000>;
  304. regulator-max-microvolt = <2000000>;
  305. regulator-always-on;
  306. regulator-boot-on;
  307. regulator-state-mem {
  308. regulator-on-in-suspend;
  309. };
  310. };
  311. buck10_reg: BUCK10 {
  312. regulator-name = "vdd_1v8";
  313. regulator-min-microvolt = <1800000>;
  314. regulator-max-microvolt = <1800000>;
  315. regulator-always-on;
  316. regulator-boot-on;
  317. regulator-state-mem {
  318. regulator-on-in-suspend;
  319. };
  320. };
  321. ldo1_reg: LDO1 {
  322. regulator-name = "vdd_1v0";
  323. regulator-min-microvolt = <1000000>;
  324. regulator-max-microvolt = <1000000>;
  325. regulator-always-on;
  326. regulator-state-mem {
  327. regulator-on-in-suspend;
  328. regulator-mode = <MAX77802_OPMODE_LP>;
  329. };
  330. };
  331. ldo2_reg: LDO2 {
  332. regulator-name = "vdd_1v2_2";
  333. regulator-min-microvolt = <1200000>;
  334. regulator-max-microvolt = <1200000>;
  335. };
  336. ldo3_reg: LDO3 {
  337. regulator-name = "vdd_1v8_3";
  338. regulator-min-microvolt = <1800000>;
  339. regulator-max-microvolt = <1800000>;
  340. regulator-always-on;
  341. regulator-state-mem {
  342. regulator-on-in-suspend;
  343. regulator-mode = <MAX77802_OPMODE_LP>;
  344. };
  345. };
  346. vqmmc_sdcard: ldo4_reg: LDO4 {
  347. regulator-name = "vdd_sd";
  348. regulator-min-microvolt = <1800000>;
  349. regulator-max-microvolt = <2800000>;
  350. regulator-always-on;
  351. regulator-state-mem {
  352. regulator-off-in-suspend;
  353. };
  354. };
  355. ldo5_reg: LDO5 {
  356. regulator-name = "vdd_1v8_5";
  357. regulator-min-microvolt = <1800000>;
  358. regulator-max-microvolt = <1800000>;
  359. regulator-always-on;
  360. regulator-state-mem {
  361. regulator-off-in-suspend;
  362. };
  363. };
  364. ldo6_reg: LDO6 {
  365. regulator-name = "vdd_1v8_6";
  366. regulator-min-microvolt = <1800000>;
  367. regulator-max-microvolt = <1800000>;
  368. regulator-always-on;
  369. regulator-state-mem {
  370. regulator-off-in-suspend;
  371. };
  372. };
  373. ldo7_reg: LDO7 {
  374. regulator-name = "vdd_1v8_7";
  375. regulator-min-microvolt = <1800000>;
  376. regulator-max-microvolt = <1800000>;
  377. };
  378. ldo8_reg: LDO8 {
  379. regulator-name = "vdd_ldo8";
  380. regulator-min-microvolt = <1000000>;
  381. regulator-max-microvolt = <1000000>;
  382. regulator-always-on;
  383. regulator-state-mem {
  384. regulator-off-in-suspend;
  385. };
  386. };
  387. ldo9_reg: LDO9 {
  388. regulator-name = "vdd_ldo9";
  389. regulator-min-microvolt = <1800000>;
  390. regulator-max-microvolt = <1800000>;
  391. regulator-state-mem {
  392. regulator-on-in-suspend;
  393. regulator-mode = <MAX77802_OPMODE_LP>;
  394. };
  395. };
  396. ldo10_reg: LDO10 {
  397. regulator-name = "vdd_ldo10";
  398. regulator-min-microvolt = <1800000>;
  399. regulator-max-microvolt = <1800000>;
  400. regulator-always-on;
  401. regulator-state-mem {
  402. regulator-off-in-suspend;
  403. };
  404. };
  405. ldo11_reg: LDO11 {
  406. regulator-name = "vdd_ldo11";
  407. regulator-min-microvolt = <1800000>;
  408. regulator-max-microvolt = <1800000>;
  409. regulator-always-on;
  410. regulator-state-mem {
  411. regulator-on-in-suspend;
  412. regulator-mode = <MAX77802_OPMODE_LP>;
  413. };
  414. };
  415. ldo12_reg: LDO12 {
  416. regulator-name = "vdd_ldo12";
  417. regulator-min-microvolt = <3000000>;
  418. regulator-max-microvolt = <3000000>;
  419. regulator-always-on;
  420. regulator-state-mem {
  421. regulator-off-in-suspend;
  422. };
  423. };
  424. ldo13_reg: LDO13 {
  425. regulator-name = "vdd_ldo13";
  426. regulator-min-microvolt = <1800000>;
  427. regulator-max-microvolt = <1800000>;
  428. regulator-always-on;
  429. regulator-state-mem {
  430. regulator-on-in-suspend;
  431. regulator-mode = <MAX77802_OPMODE_LP>;
  432. };
  433. };
  434. ldo14_reg: LDO14 {
  435. regulator-name = "vdd_ldo14";
  436. regulator-min-microvolt = <1800000>;
  437. regulator-max-microvolt = <1800000>;
  438. regulator-always-on;
  439. regulator-state-mem {
  440. regulator-off-in-suspend;
  441. };
  442. };
  443. ldo15_reg: LDO15 {
  444. regulator-name = "vdd_ldo15";
  445. regulator-min-microvolt = <1000000>;
  446. regulator-max-microvolt = <1000000>;
  447. regulator-always-on;
  448. regulator-state-mem {
  449. regulator-off-in-suspend;
  450. };
  451. };
  452. ldo17_reg: LDO17 {
  453. regulator-name = "vdd_g3ds";
  454. regulator-min-microvolt = <900000>;
  455. regulator-max-microvolt = <1400000>;
  456. regulator-always-on;
  457. regulator-state-mem {
  458. regulator-off-in-suspend;
  459. };
  460. };
  461. ldo18_reg: LDO18 {
  462. regulator-name = "ldo_18";
  463. regulator-min-microvolt = <1800000>;
  464. regulator-max-microvolt = <1800000>;
  465. };
  466. ldo19_reg: LDO19 {
  467. regulator-name = "ldo_19";
  468. regulator-min-microvolt = <1800000>;
  469. regulator-max-microvolt = <1800000>;
  470. };
  471. ldo20_reg: LDO20 {
  472. regulator-name = "ldo_20";
  473. regulator-min-microvolt = <1800000>;
  474. regulator-max-microvolt = <1800000>;
  475. regulator-always-on;
  476. };
  477. ldo21_reg: LDO21 {
  478. regulator-name = "ldo_21";
  479. regulator-min-microvolt = <2800000>;
  480. regulator-max-microvolt = <2800000>;
  481. };
  482. ldo23_reg: LDO23 {
  483. regulator-name = "ldo_23";
  484. regulator-min-microvolt = <3300000>;
  485. regulator-max-microvolt = <3300000>;
  486. };
  487. ldo24_reg: LDO24 {
  488. regulator-name = "ldo_24";
  489. regulator-min-microvolt = <2800000>;
  490. regulator-max-microvolt = <2800000>;
  491. };
  492. ldo25_reg: LDO25 {
  493. regulator-name = "ldo_25";
  494. regulator-min-microvolt = <3300000>;
  495. regulator-max-microvolt = <3300000>;
  496. };
  497. ldo26_reg: LDO26 {
  498. regulator-name = "ldo_26";
  499. regulator-min-microvolt = <1200000>;
  500. regulator-max-microvolt = <1200000>;
  501. };
  502. ldo27_reg: LDO27 {
  503. regulator-name = "ldo_27";
  504. regulator-min-microvolt = <1200000>;
  505. regulator-max-microvolt = <1200000>;
  506. };
  507. ldo28_reg: LDO28 {
  508. regulator-name = "ldo_28";
  509. regulator-min-microvolt = <1800000>;
  510. regulator-max-microvolt = <1800000>;
  511. };
  512. ldo29_reg: LDO29 {
  513. regulator-name = "ldo_29";
  514. regulator-min-microvolt = <1800000>;
  515. regulator-max-microvolt = <1800000>;
  516. };
  517. ldo30_reg: LDO30 {
  518. regulator-name = "vdd_mifs";
  519. regulator-min-microvolt = <1000000>;
  520. regulator-max-microvolt = <1000000>;
  521. regulator-always-on;
  522. regulator-state-mem {
  523. regulator-off-in-suspend;
  524. };
  525. };
  526. ldo32_reg: LDO32 {
  527. regulator-name = "ldo_32";
  528. regulator-min-microvolt = <3000000>;
  529. regulator-max-microvolt = <3000000>;
  530. };
  531. ldo33_reg: LDO33 {
  532. regulator-name = "ldo_33";
  533. regulator-min-microvolt = <2800000>;
  534. regulator-max-microvolt = <2800000>;
  535. };
  536. ldo34_reg: LDO34 {
  537. regulator-name = "ldo_34";
  538. regulator-min-microvolt = <3000000>;
  539. regulator-max-microvolt = <3000000>;
  540. };
  541. ldo35_reg: LDO35 {
  542. regulator-name = "ldo_35";
  543. regulator-min-microvolt = <1200000>;
  544. regulator-max-microvolt = <1200000>;
  545. };
  546. };
  547. };
  548. };
  549. &hsi2c_7 {
  550. status = "okay";
  551. clock-frequency = <400000>;
  552. max98091: codec@10 {
  553. compatible = "maxim,max98091";
  554. reg = <0x10>;
  555. interrupts = <2 IRQ_TYPE_NONE>;
  556. interrupt-parent = <&gpx0>;
  557. pinctrl-names = "default";
  558. pinctrl-0 = <&max98091_irq>;
  559. clocks = <&pmu_system_controller 0>;
  560. clock-names = "mclk";
  561. #sound-dai-cells = <0>;
  562. };
  563. light-sensor@44 {
  564. compatible = "isil,isl29018";
  565. reg = <0x44>;
  566. vcc-supply = <&tps65090_fet5>;
  567. };
  568. };
  569. &hsi2c_8 {
  570. status = "okay";
  571. clock-frequency = <333000>;
  572. /* Atmel mXT540S */
  573. trackpad@4b {
  574. compatible = "atmel,maxtouch";
  575. reg = <0x4b>;
  576. interrupt-parent = <&gpx1>;
  577. interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
  578. wakeup-source;
  579. pinctrl-names = "default";
  580. pinctrl-0 = <&trackpad_irq>;
  581. linux,gpio-keymap = <KEY_RESERVED
  582. KEY_RESERVED
  583. KEY_RESERVED /* GPIO 0 */
  584. KEY_RESERVED /* GPIO 1 */
  585. BTN_LEFT /* GPIO 2 */
  586. KEY_RESERVED>; /* GPIO 3 */
  587. };
  588. };
  589. &hsi2c_9 {
  590. status = "okay";
  591. clock-frequency = <400000>;
  592. tpm@20 {
  593. compatible = "infineon,slb9645tt";
  594. reg = <0x20>;
  595. /* Unused irq; but still need to configure the pins */
  596. pinctrl-names = "default";
  597. pinctrl-0 = <&tpm_irq>;
  598. };
  599. };
  600. &i2c_2 {
  601. status = "okay";
  602. samsung,i2c-sda-delay = <100>;
  603. samsung,i2c-max-bus-freq = <66000>;
  604. samsung,i2c-slave-addr = <0x50>;
  605. };
  606. &i2s0 {
  607. assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>;
  608. assigned-clock-parents = <&clock_audss EXYNOS_I2S_BUS>;
  609. status = "okay";
  610. };
  611. &mixer {
  612. status = "okay";
  613. };
  614. /* eMMC flash */
  615. &mmc_0 {
  616. status = "okay";
  617. mmc-hs200-1_8v;
  618. mmc-hs400-1_8v;
  619. cap-mmc-highspeed;
  620. non-removable;
  621. clock-frequency = <800000000>;
  622. samsung,dw-mshc-ciu-div = <3>;
  623. samsung,dw-mshc-sdr-timing = <0 4>;
  624. samsung,dw-mshc-ddr-timing = <0 2>;
  625. samsung,dw-mshc-hs400-timing = <0 2>;
  626. samsung,read-strobe-delay = <90>;
  627. pinctrl-names = "default";
  628. pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_rclk>;
  629. bus-width = <8>;
  630. };
  631. /* WiFi SDIO module */
  632. &mmc_1 {
  633. status = "okay";
  634. non-removable;
  635. cap-sdio-irq;
  636. keep-power-in-suspend;
  637. clock-frequency = <400000000>;
  638. samsung,dw-mshc-ciu-div = <1>;
  639. samsung,dw-mshc-sdr-timing = <0 1>;
  640. samsung,dw-mshc-ddr-timing = <0 2>;
  641. pinctrl-names = "default";
  642. pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>,
  643. <&sd1_bus4>, <&sd1_bus8>, <&wifi_en>;
  644. bus-width = <4>;
  645. cap-sd-highspeed;
  646. mmc-pwrseq = <&mmc1_pwrseq>;
  647. vqmmc-supply = <&buck10_reg>;
  648. };
  649. /* uSD card */
  650. &mmc_2 {
  651. status = "okay";
  652. cap-sd-highspeed;
  653. card-detect-delay = <200>;
  654. clock-frequency = <400000000>;
  655. samsung,dw-mshc-ciu-div = <3>;
  656. samsung,dw-mshc-sdr-timing = <2 3>;
  657. samsung,dw-mshc-ddr-timing = <1 2>;
  658. pinctrl-names = "default";
  659. pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
  660. bus-width = <4>;
  661. };
  662. &pinctrl_0 {
  663. pinctrl-names = "default";
  664. pinctrl-0 = <&mask_tpm_reset>;
  665. wifi_en: wifi-en-pins {
  666. samsung,pins = "gpx0-0";
  667. samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
  668. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  669. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  670. };
  671. max98091_irq: max98091-irq-pins {
  672. samsung,pins = "gpx0-2";
  673. samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
  674. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  675. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  676. };
  677. /* We need GPX0_6 to be low at sleep time; just keep it low always */
  678. mask_tpm_reset: mask-tpm-reset-pins {
  679. samsung,pins = "gpx0-6";
  680. samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
  681. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  682. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  683. samsung,pin-val = <0>;
  684. };
  685. tpm_irq: tpm-irq-pins {
  686. samsung,pins = "gpx1-0";
  687. samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
  688. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  689. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  690. };
  691. trackpad_irq: trackpad-irq-pins {
  692. samsung,pins = "gpx1-1";
  693. samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
  694. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  695. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  696. };
  697. power_key_irq: power-key-irq-pins {
  698. samsung,pins = "gpx1-2";
  699. samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
  700. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  701. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  702. };
  703. ec_irq: ec-irq-pins {
  704. samsung,pins = "gpx1-5";
  705. samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
  706. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  707. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  708. };
  709. tps65090_irq: tps65090-irq-pins {
  710. samsung,pins = "gpx2-5";
  711. samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
  712. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  713. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  714. };
  715. dp_hpd_gpio: dp-hpd-gpio-pins {
  716. samsung,pins = "gpx2-6";
  717. samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
  718. samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
  719. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  720. };
  721. max77802_irq: max77802-irq-pins {
  722. samsung,pins = "gpx3-1";
  723. samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
  724. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  725. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  726. };
  727. lid_irq: lid-irq-pins {
  728. samsung,pins = "gpx3-4";
  729. samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
  730. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  731. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  732. };
  733. hdmi_hpd_irq: hdmi-hpd-irq-pins {
  734. samsung,pins = "gpx3-7";
  735. samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
  736. samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
  737. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  738. };
  739. pmic_dvs_1: pmic-dvs-1-pins {
  740. samsung,pins = "gpy7-6";
  741. samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
  742. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  743. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  744. };
  745. };
  746. /* pinctrl_1 */
  747. /* Adjust WiFi drive strengths lower for EMI */
  748. &sd1_bus1 {
  749. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
  750. };
  751. &sd1_bus4 {
  752. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
  753. };
  754. &sd1_bus8 {
  755. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
  756. };
  757. &sd1_clk {
  758. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
  759. };
  760. &sd1_cmd {
  761. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
  762. };
  763. &pinctrl_2 {
  764. pmic_dvs_2: pmic-dvs-2-pins {
  765. samsung,pins = "gpj4-2", "gpj4-3";
  766. samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
  767. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  768. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  769. };
  770. };
  771. /* pinctrl_3*/
  772. /* Drive SPI lines at x2 for better integrity */
  773. &spi2_bus {
  774. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
  775. };
  776. &pinctrl_3 {
  777. /* Drive SPI chip select at x2 for better integrity */
  778. ec_spi_cs: ec-spi-cs-pins {
  779. samsung,pins = "gpb1-2";
  780. samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
  781. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  782. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
  783. };
  784. usb300_vbus_en: usb300-vbus-en-pins {
  785. samsung,pins = "gph0-0";
  786. samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
  787. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  788. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  789. };
  790. usb301_vbus_en: usb301-vbus-en-pins {
  791. samsung,pins = "gph0-1";
  792. samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
  793. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  794. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  795. };
  796. pmic_selb: pmic-selb-pins {
  797. samsung,pins = "gph0-2", "gph0-3", "gph0-4", "gph0-5",
  798. "gph0-6";
  799. samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
  800. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  801. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  802. };
  803. };
  804. &pmu_system_controller {
  805. assigned-clocks = <&pmu_system_controller 0>;
  806. assigned-clock-parents = <&clock CLK_FIN_PLL>;
  807. };
  808. &rtc {
  809. status = "okay";
  810. clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>;
  811. clock-names = "rtc", "rtc_src";
  812. };
  813. &spi_2 {
  814. status = "okay";
  815. num-cs = <1>;
  816. samsung,spi-src-clk = <0>;
  817. cs-gpios = <&gpb1 2 GPIO_ACTIVE_HIGH>;
  818. cros_ec: cros-ec@0 {
  819. compatible = "google,cros-ec-spi";
  820. interrupt-parent = <&gpx1>;
  821. interrupts = <5 IRQ_TYPE_NONE>;
  822. pinctrl-names = "default";
  823. pinctrl-0 = <&ec_spi_cs &ec_irq>;
  824. reg = <0>;
  825. spi-max-frequency = <3125000>;
  826. google,has-vbc-nvram;
  827. controller-data {
  828. samsung,spi-feedback-delay = <1>;
  829. };
  830. i2c_tunnel: i2c-tunnel {
  831. compatible = "google,cros-ec-i2c-tunnel";
  832. #address-cells = <1>;
  833. #size-cells = <0>;
  834. google,remote-bus = <0>;
  835. battery: sbs-battery@b {
  836. compatible = "sbs,sbs-battery";
  837. reg = <0xb>;
  838. sbs,poll-retry-count = <1>;
  839. sbs,i2c-retry-count = <2>;
  840. };
  841. power-regulator@48 {
  842. compatible = "ti,tps65090";
  843. reg = <0x48>;
  844. /*
  845. * Config irq to disable internal pulls
  846. * even though we run in polling mode.
  847. */
  848. pinctrl-names = "default";
  849. pinctrl-0 = <&tps65090_irq>;
  850. vsys1-supply = <&vbat>;
  851. vsys2-supply = <&vbat>;
  852. vsys3-supply = <&vbat>;
  853. infet1-supply = <&vbat>;
  854. infet2-supply = <&tps65090_dcdc1>;
  855. infet3-supply = <&tps65090_dcdc2>;
  856. infet4-supply = <&tps65090_dcdc2>;
  857. infet5-supply = <&tps65090_dcdc2>;
  858. infet6-supply = <&tps65090_dcdc2>;
  859. infet7-supply = <&tps65090_dcdc1>;
  860. vsys-l1-supply = <&vbat>;
  861. vsys-l2-supply = <&vbat>;
  862. regulators {
  863. tps65090_dcdc1: dcdc1 {
  864. ti,enable-ext-control;
  865. };
  866. tps65090_dcdc2: dcdc2 {
  867. ti,enable-ext-control;
  868. };
  869. tps65090_dcdc3: dcdc3 {
  870. ti,enable-ext-control;
  871. };
  872. tps65090_fet1: fet1 {
  873. regulator-name = "vcd_led";
  874. };
  875. tps65090_fet2: fet2 {
  876. regulator-name = "video_mid";
  877. regulator-always-on;
  878. };
  879. tps65090_fet3: fet3 {
  880. regulator-name = "wwan_r";
  881. regulator-always-on;
  882. };
  883. tps65090_fet4: fet4 {
  884. regulator-name = "sdcard";
  885. regulator-always-on;
  886. };
  887. tps65090_fet5: fet5 {
  888. regulator-name = "camout";
  889. regulator-always-on;
  890. };
  891. tps65090_fet6: fet6 {
  892. regulator-name = "lcd_vdd";
  893. };
  894. tps65090_fet7: fet7 {
  895. regulator-name = "video_mid_1a";
  896. regulator-always-on;
  897. };
  898. tps65090_ldo1: ldo1 {
  899. };
  900. tps65090_ldo2: ldo2 {
  901. };
  902. };
  903. charger {
  904. compatible = "ti,tps65090-charger";
  905. };
  906. };
  907. };
  908. };
  909. };
  910. &serial_3 {
  911. status = "okay";
  912. };
  913. &timer {
  914. arm,cpu-registers-not-fw-configured;
  915. };
  916. &tmu_cpu0 {
  917. vtmu-supply = <&ldo10_reg>;
  918. };
  919. &tmu_cpu1 {
  920. vtmu-supply = <&ldo10_reg>;
  921. };
  922. &tmu_cpu2 {
  923. vtmu-supply = <&ldo10_reg>;
  924. };
  925. &tmu_cpu3 {
  926. vtmu-supply = <&ldo10_reg>;
  927. };
  928. &tmu_gpu {
  929. vtmu-supply = <&ldo10_reg>;
  930. };
  931. &usbdrd3_0 {
  932. vdd10-supply = <&ldo15_reg>;
  933. vdd33-supply = <&ldo12_reg>;
  934. };
  935. &usbdrd3_1 {
  936. vdd10-supply = <&ldo15_reg>;
  937. vdd33-supply = <&ldo12_reg>;
  938. };
  939. &usbdrd_dwc3_0 {
  940. dr_mode = "host";
  941. };
  942. &usbdrd_dwc3_1 {
  943. dr_mode = "host";
  944. };
  945. &usbdrd_phy0 {
  946. vbus-supply = <&usb300_vbus_reg>;
  947. };
  948. &usbdrd_phy1 {
  949. vbus-supply = <&usb301_vbus_reg>;
  950. };
  951. /*
  952. * Use longest HW watchdog in SoC (32 seconds) since the hardware
  953. * watchdog provides no debugging information (compared to soft/hard
  954. * lockup detectors) and so should be last resort.
  955. */
  956. &watchdog {
  957. timeout-sec = <32>;
  958. };
  959. #include "cros-ec-keyboard.dtsi"
  960. #include "cros-adc-thermistors.dtsi"