exynos5250-snow.dts 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631
  1. /*
  2. * Google Snow board device tree source
  3. *
  4. * Copyright (c) 2012 Google, Inc
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License version 2 as
  8. * published by the Free Software Foundation.
  9. */
  10. /dts-v1/;
  11. #include <dt-bindings/gpio/gpio.h>
  12. #include "exynos5250.dtsi"
  13. / {
  14. model = "Google Snow";
  15. compatible = "google,snow", "samsung,exynos5250", "samsung,exynos5";
  16. aliases {
  17. i2c104 = &i2c_104;
  18. };
  19. memory {
  20. reg = <0x40000000 0x80000000>;
  21. };
  22. chosen {
  23. };
  24. rtc@101E0000 {
  25. status = "okay";
  26. };
  27. pinctrl@11400000 {
  28. ec_irq: ec-irq {
  29. samsung,pins = "gpx1-6";
  30. samsung,pin-function = <0>;
  31. samsung,pin-pud = <0>;
  32. samsung,pin-drv = <0>;
  33. };
  34. sd3_clk: sd3-clk {
  35. samsung,pin-drv = <0>;
  36. };
  37. sd3_cmd: sd3-cmd {
  38. samsung,pin-pud = <3>;
  39. samsung,pin-drv = <0>;
  40. };
  41. sd3_bus4: sd3-bus-width4 {
  42. samsung,pin-drv = <0>;
  43. };
  44. max98095_en: max98095-en {
  45. samsung,pins = "gpx1-7";
  46. samsung,pin-function = <0>;
  47. samsung,pin-pud = <3>;
  48. samsung,pin-drv = <0>;
  49. };
  50. tps65090_irq: tps65090-irq {
  51. samsung,pins = "gpx2-6";
  52. samsung,pin-function = <0>;
  53. samsung,pin-pud = <0>;
  54. samsung,pin-drv = <0>;
  55. };
  56. usb3_vbus_en: usb3-vbus-en {
  57. samsung,pins = "gpx2-7";
  58. samsung,pin-function = <1>;
  59. samsung,pin-pud = <0>;
  60. samsung,pin-drv = <0>;
  61. };
  62. hdmi_hpd_irq: hdmi-hpd-irq {
  63. samsung,pins = "gpx3-7";
  64. samsung,pin-function = <0>;
  65. samsung,pin-pud = <1>;
  66. samsung,pin-drv = <0>;
  67. };
  68. };
  69. pinctrl@13400000 {
  70. arb_their_claim: arb-their-claim {
  71. samsung,pins = "gpe0-4";
  72. samsung,pin-function = <0>;
  73. samsung,pin-pud = <3>;
  74. samsung,pin-drv = <0>;
  75. };
  76. arb_our_claim: arb-our-claim {
  77. samsung,pins = "gpf0-3";
  78. samsung,pin-function = <1>;
  79. samsung,pin-pud = <0>;
  80. samsung,pin-drv = <0>;
  81. };
  82. };
  83. gpio-keys {
  84. compatible = "gpio-keys";
  85. power {
  86. label = "Power";
  87. gpios = <&gpx1 3 1>;
  88. linux,code = <116>; /* KEY_POWER */
  89. gpio-key,wakeup;
  90. };
  91. lid-switch {
  92. label = "Lid";
  93. gpios = <&gpx3 5 1>;
  94. linux,input-type = <5>; /* EV_SW */
  95. linux,code = <0>; /* SW_LID */
  96. debounce-interval = <1>;
  97. gpio-key,wakeup;
  98. };
  99. };
  100. vbat: vbat-fixed-regulator {
  101. compatible = "regulator-fixed";
  102. regulator-name = "vbat-supply";
  103. regulator-boot-on;
  104. };
  105. i2c-arbitrator {
  106. compatible = "i2c-arb-gpio-challenge";
  107. #address-cells = <1>;
  108. #size-cells = <0>;
  109. i2c-parent = <&{/i2c@12CA0000}>;
  110. our-claim-gpio = <&gpf0 3 1>;
  111. their-claim-gpios = <&gpe0 4 1>;
  112. slew-delay-us = <10>;
  113. wait-retry-us = <3000>;
  114. wait-free-us = <50000>;
  115. pinctrl-names = "default";
  116. pinctrl-0 = <&arb_our_claim &arb_their_claim>;
  117. /* Use ID 104 as a hint that we're on physical bus 4 */
  118. i2c_104: i2c@0 {
  119. reg = <0>;
  120. #address-cells = <1>;
  121. #size-cells = <0>;
  122. battery: sbs-battery@b {
  123. compatible = "sbs,sbs-battery";
  124. reg = <0xb>;
  125. sbs,poll-retry-count = <1>;
  126. };
  127. cros_ec: embedded-controller {
  128. compatible = "google,cros-ec-i2c";
  129. reg = <0x1e>;
  130. interrupts = <6 0>;
  131. interrupt-parent = <&gpx1>;
  132. pinctrl-names = "default";
  133. pinctrl-0 = <&ec_irq>;
  134. wakeup-source;
  135. };
  136. power-regulator {
  137. compatible = "ti,tps65090";
  138. reg = <0x48>;
  139. /*
  140. * Config irq to disable internal pulls
  141. * even though we run in polling mode.
  142. */
  143. pinctrl-names = "default";
  144. pinctrl-0 = <&tps65090_irq>;
  145. vsys1-supply = <&vbat>;
  146. vsys2-supply = <&vbat>;
  147. vsys3-supply = <&vbat>;
  148. infet1-supply = <&vbat>;
  149. infet2-supply = <&vbat>;
  150. infet3-supply = <&vbat>;
  151. infet4-supply = <&vbat>;
  152. infet5-supply = <&vbat>;
  153. infet6-supply = <&vbat>;
  154. infet7-supply = <&vbat>;
  155. vsys-l1-supply = <&vbat>;
  156. vsys-l2-supply = <&vbat>;
  157. regulators {
  158. dcdc1 {
  159. ti,enable-ext-control;
  160. };
  161. dcdc2 {
  162. ti,enable-ext-control;
  163. };
  164. dcdc3 {
  165. ti,enable-ext-control;
  166. };
  167. fet1: fet1 {
  168. regulator-name = "vcd_led";
  169. ti,overcurrent-wait = <3>;
  170. };
  171. tps65090_fet2: fet2 {
  172. regulator-name = "video_mid";
  173. regulator-always-on;
  174. ti,overcurrent-wait = <3>;
  175. };
  176. fet3 {
  177. regulator-name = "wwan_r";
  178. regulator-always-on;
  179. ti,overcurrent-wait = <3>;
  180. };
  181. fet4 {
  182. regulator-name = "sdcard";
  183. ti,overcurrent-wait = <3>;
  184. };
  185. fet5 {
  186. regulator-name = "camout";
  187. regulator-always-on;
  188. ti,overcurrent-wait = <3>;
  189. };
  190. fet6: fet6 {
  191. regulator-name = "lcd_vdd";
  192. ti,overcurrent-wait = <3>;
  193. };
  194. tps65090_fet7: fet7 {
  195. regulator-name = "video_mid_1a";
  196. regulator-always-on;
  197. ti,overcurrent-wait = <3>;
  198. };
  199. ldo1 {
  200. };
  201. ldo2 {
  202. };
  203. };
  204. charger {
  205. compatible = "ti,tps65090-charger";
  206. };
  207. };
  208. };
  209. };
  210. i2c@12CD0000 {
  211. max98095: codec@11 {
  212. compatible = "maxim,max98095";
  213. reg = <0x11>;
  214. pinctrl-0 = <&max98095_en>;
  215. pinctrl-names = "default";
  216. };
  217. ptn3460: lvds-bridge@20 {
  218. compatible = "nxp,ptn3460";
  219. reg = <0x20>;
  220. powerdown-gpios = <&gpy2 5 GPIO_ACTIVE_HIGH>;
  221. reset-gpios = <&gpx1 5 GPIO_ACTIVE_HIGH>;
  222. edid-emulation = <5>;
  223. panel = <&panel>;
  224. };
  225. };
  226. i2s0: i2s@03830000 {
  227. status = "okay";
  228. };
  229. sound {
  230. compatible = "google,snow-audio-max98095";
  231. samsung,model = "Snow-I2S-MAX98095";
  232. samsung,i2s-controller = <&i2s0>;
  233. samsung,audio-codec = <&max98095>;
  234. };
  235. usb3_vbus_reg: regulator-usb3 {
  236. compatible = "regulator-fixed";
  237. regulator-name = "P5.0V_USB3CON";
  238. regulator-min-microvolt = <5000000>;
  239. regulator-max-microvolt = <5000000>;
  240. gpio = <&gpx2 7 0>;
  241. pinctrl-names = "default";
  242. pinctrl-0 = <&usb3_vbus_en>;
  243. enable-active-high;
  244. };
  245. phy@12100000 {
  246. vbus-supply = <&usb3_vbus_reg>;
  247. };
  248. usb@12110000 {
  249. samsung,vbus-gpio = <&gpx1 1 0>;
  250. };
  251. fixed-rate-clocks {
  252. xxti {
  253. compatible = "samsung,clock-xxti";
  254. clock-frequency = <24000000>;
  255. };
  256. };
  257. hdmi {
  258. hpd-gpio = <&gpx3 7 0>;
  259. pinctrl-names = "default";
  260. pinctrl-0 = <&hdmi_hpd_irq>;
  261. phy = <&hdmiphy>;
  262. ddc = <&i2c_2>;
  263. hdmi-en-supply = <&tps65090_fet7>;
  264. vdd-supply = <&ldo8_reg>;
  265. vdd_osc-supply = <&ldo10_reg>;
  266. vdd_pll-supply = <&ldo8_reg>;
  267. };
  268. backlight: backlight {
  269. compatible = "pwm-backlight";
  270. pwms = <&pwm 0 1000000 0>;
  271. brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
  272. default-brightness-level = <7>;
  273. enable-gpios = <&gpx3 0 GPIO_ACTIVE_HIGH>;
  274. power-supply = <&fet1>;
  275. pinctrl-0 = <&pwm0_out>;
  276. pinctrl-names = "default";
  277. };
  278. fimd@14400000 {
  279. status = "okay";
  280. samsung,invert-vclk;
  281. };
  282. panel: panel {
  283. compatible = "auo,b116xw03";
  284. power-supply = <&fet6>;
  285. backlight = <&backlight>;
  286. };
  287. dp-controller@145B0000 {
  288. status = "okay";
  289. pinctrl-names = "default";
  290. pinctrl-0 = <&dp_hpd>;
  291. samsung,color-space = <0>;
  292. samsung,dynamic-range = <0>;
  293. samsung,ycbcr-coeff = <0>;
  294. samsung,color-depth = <1>;
  295. samsung,link-rate = <0x0a>;
  296. samsung,lane-count = <2>;
  297. samsung,hpd-gpio = <&gpx0 7 0>;
  298. bridge = <&ptn3460>;
  299. };
  300. };
  301. &i2c_0 {
  302. status = "okay";
  303. samsung,i2c-sda-delay = <100>;
  304. samsung,i2c-max-bus-freq = <378000>;
  305. max77686@09 {
  306. compatible = "maxim,max77686";
  307. interrupt-parent = <&gpx3>;
  308. interrupts = <2 0>;
  309. pinctrl-names = "default";
  310. pinctrl-0 = <&max77686_irq>;
  311. wakeup-source;
  312. reg = <0x09>;
  313. #clock-cells = <1>;
  314. voltage-regulators {
  315. ldo1_reg: LDO1 {
  316. regulator-name = "P1.0V_LDO_OUT1";
  317. regulator-min-microvolt = <1000000>;
  318. regulator-max-microvolt = <1000000>;
  319. regulator-always-on;
  320. };
  321. ldo2_reg: LDO2 {
  322. regulator-name = "P1.8V_LDO_OUT2";
  323. regulator-min-microvolt = <1800000>;
  324. regulator-max-microvolt = <1800000>;
  325. regulator-always-on;
  326. };
  327. ldo3_reg: LDO3 {
  328. regulator-name = "P1.8V_LDO_OUT3";
  329. regulator-min-microvolt = <1800000>;
  330. regulator-max-microvolt = <1800000>;
  331. regulator-always-on;
  332. };
  333. ldo7_reg: LDO7 {
  334. regulator-name = "P1.1V_LDO_OUT7";
  335. regulator-min-microvolt = <1100000>;
  336. regulator-max-microvolt = <1100000>;
  337. regulator-always-on;
  338. };
  339. ldo8_reg: LDO8 {
  340. regulator-name = "P1.0V_LDO_OUT8";
  341. regulator-min-microvolt = <1000000>;
  342. regulator-max-microvolt = <1000000>;
  343. regulator-always-on;
  344. };
  345. ldo10_reg: LDO10 {
  346. regulator-name = "P1.8V_LDO_OUT10";
  347. regulator-min-microvolt = <1800000>;
  348. regulator-max-microvolt = <1800000>;
  349. regulator-always-on;
  350. };
  351. ldo12_reg: LDO12 {
  352. regulator-name = "P3.0V_LDO_OUT12";
  353. regulator-min-microvolt = <3000000>;
  354. regulator-max-microvolt = <3000000>;
  355. regulator-always-on;
  356. };
  357. ldo14_reg: LDO14 {
  358. regulator-name = "P1.8V_LDO_OUT14";
  359. regulator-min-microvolt = <1800000>;
  360. regulator-max-microvolt = <1800000>;
  361. regulator-always-on;
  362. };
  363. ldo15_reg: LDO15 {
  364. regulator-name = "P1.0V_LDO_OUT15";
  365. regulator-min-microvolt = <1000000>;
  366. regulator-max-microvolt = <1000000>;
  367. regulator-always-on;
  368. };
  369. ldo16_reg: LDO16 {
  370. regulator-name = "P1.8V_LDO_OUT16";
  371. regulator-min-microvolt = <1800000>;
  372. regulator-max-microvolt = <1800000>;
  373. regulator-always-on;
  374. };
  375. buck1_reg: BUCK1 {
  376. regulator-name = "vdd_mif";
  377. regulator-min-microvolt = <950000>;
  378. regulator-max-microvolt = <1300000>;
  379. regulator-always-on;
  380. regulator-boot-on;
  381. };
  382. buck2_reg: BUCK2 {
  383. regulator-name = "vdd_arm";
  384. regulator-min-microvolt = <850000>;
  385. regulator-max-microvolt = <1350000>;
  386. regulator-always-on;
  387. regulator-boot-on;
  388. };
  389. buck3_reg: BUCK3 {
  390. regulator-name = "vdd_int";
  391. regulator-min-microvolt = <900000>;
  392. regulator-max-microvolt = <1200000>;
  393. regulator-always-on;
  394. regulator-boot-on;
  395. };
  396. buck4_reg: BUCK4 {
  397. regulator-name = "vdd_g3d";
  398. regulator-min-microvolt = <850000>;
  399. regulator-max-microvolt = <1300000>;
  400. regulator-always-on;
  401. regulator-boot-on;
  402. };
  403. buck5_reg: BUCK5 {
  404. regulator-name = "P1.8V_BUCK_OUT5";
  405. regulator-min-microvolt = <1800000>;
  406. regulator-max-microvolt = <1800000>;
  407. regulator-always-on;
  408. regulator-boot-on;
  409. };
  410. buck6_reg: BUCK6 {
  411. regulator-name = "P1.35V_BUCK_OUT6";
  412. regulator-min-microvolt = <1350000>;
  413. regulator-max-microvolt = <1350000>;
  414. regulator-always-on;
  415. };
  416. buck7_reg: BUCK7 {
  417. regulator-name = "P2.0V_BUCK_OUT7";
  418. regulator-min-microvolt = <2000000>;
  419. regulator-max-microvolt = <2000000>;
  420. regulator-always-on;
  421. };
  422. buck8_reg: BUCK8 {
  423. regulator-name = "P2.85V_BUCK_OUT8";
  424. regulator-min-microvolt = <2850000>;
  425. regulator-max-microvolt = <2850000>;
  426. regulator-always-on;
  427. };
  428. };
  429. };
  430. };
  431. &i2c_1 {
  432. status = "okay";
  433. samsung,i2c-sda-delay = <100>;
  434. samsung,i2c-max-bus-freq = <378000>;
  435. trackpad {
  436. reg = <0x67>;
  437. compatible = "cypress,cyapa";
  438. interrupts = <2 0>;
  439. interrupt-parent = <&gpx1>;
  440. wakeup-source;
  441. };
  442. };
  443. /*
  444. * Disabled pullups since external part has its own pullups and
  445. * double-pulling gets us out of spec in some cases.
  446. */
  447. &i2c2_bus {
  448. samsung,pin-pud = <0>;
  449. };
  450. &i2c_2 {
  451. status = "okay";
  452. samsung,i2c-sda-delay = <100>;
  453. samsung,i2c-max-bus-freq = <66000>;
  454. hdmiddc@50 {
  455. compatible = "samsung,exynos4210-hdmiddc";
  456. reg = <0x50>;
  457. };
  458. };
  459. &i2c_3 {
  460. status = "okay";
  461. samsung,i2c-sda-delay = <100>;
  462. samsung,i2c-max-bus-freq = <66000>;
  463. };
  464. &i2c_4 {
  465. status = "okay";
  466. samsung,i2c-sda-delay = <100>;
  467. samsung,i2c-max-bus-freq = <66000>;
  468. };
  469. &i2c_5 {
  470. status = "okay";
  471. samsung,i2c-sda-delay = <100>;
  472. samsung,i2c-max-bus-freq = <66000>;
  473. };
  474. &i2c_7 {
  475. status = "okay";
  476. samsung,i2c-sda-delay = <100>;
  477. samsung,i2c-max-bus-freq = <66000>;
  478. };
  479. &i2c_8 {
  480. status = "okay";
  481. samsung,i2c-sda-delay = <100>;
  482. samsung,i2c-max-bus-freq = <378000>;
  483. hdmiphy: hdmiphy@38 {
  484. compatible = "samsung,exynos4212-hdmiphy";
  485. reg = <0x38>;
  486. };
  487. };
  488. &mmc_0 {
  489. status = "okay";
  490. num-slots = <1>;
  491. broken-cd;
  492. card-detect-delay = <200>;
  493. samsung,dw-mshc-ciu-div = <3>;
  494. samsung,dw-mshc-sdr-timing = <2 3>;
  495. samsung,dw-mshc-ddr-timing = <1 2>;
  496. pinctrl-names = "default";
  497. pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
  498. bus-width = <8>;
  499. cap-mmc-highspeed;
  500. };
  501. &mmc_2 {
  502. status = "okay";
  503. num-slots = <1>;
  504. card-detect-delay = <200>;
  505. samsung,dw-mshc-ciu-div = <3>;
  506. samsung,dw-mshc-sdr-timing = <2 3>;
  507. samsung,dw-mshc-ddr-timing = <1 2>;
  508. pinctrl-names = "default";
  509. pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
  510. bus-width = <4>;
  511. wp-gpios = <&gpc2 1 0>;
  512. cap-sd-highspeed;
  513. };
  514. /*
  515. * On Snow we've got SIP WiFi and so can keep drive strengths low to
  516. * reduce EMI.
  517. */
  518. &mmc_3 {
  519. status = "okay";
  520. num-slots = <1>;
  521. broken-cd;
  522. card-detect-delay = <200>;
  523. samsung,dw-mshc-ciu-div = <3>;
  524. samsung,dw-mshc-sdr-timing = <2 3>;
  525. samsung,dw-mshc-ddr-timing = <1 2>;
  526. pinctrl-names = "default";
  527. pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>;
  528. bus-width = <4>;
  529. cap-sd-highspeed;
  530. };
  531. &pinctrl_0 {
  532. max77686_irq: max77686-irq {
  533. samsung,pins = "gpx3-2";
  534. samsung,pin-function = <0>;
  535. samsung,pin-pud = <0>;
  536. samsung,pin-drv = <0>;
  537. };
  538. };
  539. &spi_1 {
  540. status = "okay";
  541. samsung,spi-src-clk = <0>;
  542. num-cs = <1>;
  543. };
  544. &usbdrd_dwc3 {
  545. dr_mode = "host";
  546. };
  547. #include "cros-ec-keyboard.dtsi"