]>
Commit | Line | Data |
---|---|---|
3528dd34 AK |
1 | /* |
2 | * Google Peach Pit Rev 6+ board device tree source | |
3 | * | |
4 | * Copyright (c) 2014 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 | ||
11 | /dts-v1/; | |
12 | #include <dt-bindings/input/input.h> | |
13 | #include <dt-bindings/gpio/gpio.h> | |
14 | #include "exynos5420.dtsi" | |
15 | ||
16 | / { | |
17 | model = "Google Peach Pit Rev 6+"; | |
18 | ||
19 | compatible = "google,pit-rev16", | |
20 | "google,pit-rev15", "google,pit-rev14", | |
21 | "google,pit-rev13", "google,pit-rev12", | |
22 | "google,pit-rev11", "google,pit-rev10", | |
23 | "google,pit-rev9", "google,pit-rev8", | |
24 | "google,pit-rev7", "google,pit-rev6", | |
25 | "google,pit", "google,peach","samsung,exynos5420", | |
26 | "samsung,exynos5"; | |
27 | ||
8060098b DA |
28 | aliases { |
29 | /* Assign 20 so we don't get confused w/ builtin ones */ | |
30 | i2c20 = "/spi@12d40000/cros-ec@0/i2c-tunnel"; | |
31 | }; | |
32 | ||
522c8ff5 TB |
33 | backlight { |
34 | compatible = "pwm-backlight"; | |
35 | pwms = <&pwm 0 1000000 0>; | |
36 | brightness-levels = <0 100 500 1000 1500 2000 2500 2800>; | |
37 | default-brightness-level = <7>; | |
38 | pinctrl-0 = <&pwm0_out>; | |
39 | pinctrl-names = "default"; | |
3528dd34 AK |
40 | }; |
41 | ||
42 | fixed-rate-clocks { | |
43 | oscclk { | |
44 | compatible = "samsung,exynos5420-oscclk"; | |
45 | clock-frequency = <24000000>; | |
46 | }; | |
47 | }; | |
48 | ||
49 | gpio-keys { | |
50 | compatible = "gpio-keys"; | |
51 | ||
52 | pinctrl-names = "default"; | |
53 | pinctrl-0 = <&power_key_irq>; | |
54 | ||
55 | power { | |
56 | label = "Power"; | |
57 | gpios = <&gpx1 2 GPIO_ACTIVE_LOW>; | |
58 | linux,code = <KEY_POWER>; | |
59 | gpio-key,wakeup; | |
60 | }; | |
61 | }; | |
62 | ||
522c8ff5 TB |
63 | memory { |
64 | reg = <0x20000000 0x80000000>; | |
3528dd34 | 65 | }; |
ead3993e TB |
66 | |
67 | sound { | |
68 | compatible = "google,snow-audio-max98090"; | |
69 | ||
a8d80b6b | 70 | samsung,model = "Peach-Pit-I2S-MAX98090"; |
ead3993e TB |
71 | samsung,i2s-controller = <&i2s0>; |
72 | samsung,audio-codec = <&max98090>; | |
73 | }; | |
14a35ada VG |
74 | |
75 | usb300_vbus_reg: regulator-usb300 { | |
76 | compatible = "regulator-fixed"; | |
77 | regulator-name = "P5.0V_USB3CON0"; | |
78 | regulator-min-microvolt = <5000000>; | |
79 | regulator-max-microvolt = <5000000>; | |
80 | gpio = <&gph0 0 0>; | |
81 | pinctrl-names = "default"; | |
82 | pinctrl-0 = <&usb300_vbus_en>; | |
83 | enable-active-high; | |
84 | }; | |
85 | ||
86 | usb301_vbus_reg: regulator-usb301 { | |
87 | compatible = "regulator-fixed"; | |
88 | regulator-name = "P5.0V_USB3CON1"; | |
89 | regulator-min-microvolt = <5000000>; | |
90 | regulator-max-microvolt = <5000000>; | |
91 | gpio = <&gph0 1 0>; | |
92 | pinctrl-names = "default"; | |
93 | pinctrl-0 = <&usb301_vbus_en>; | |
94 | enable-active-high; | |
95 | }; | |
8060098b DA |
96 | |
97 | vbat: fixed-regulator { | |
98 | compatible = "regulator-fixed"; | |
99 | regulator-name = "vbat-supply"; | |
100 | regulator-boot-on; | |
101 | regulator-always-on; | |
102 | }; | |
3528dd34 AK |
103 | }; |
104 | ||
522c8ff5 TB |
105 | &dp { |
106 | status = "okay"; | |
107 | pinctrl-names = "default"; | |
108 | pinctrl-0 = <&dp_hpd_gpio>; | |
109 | samsung,color-space = <0>; | |
110 | samsung,dynamic-range = <0>; | |
111 | samsung,ycbcr-coeff = <0>; | |
112 | samsung,color-depth = <1>; | |
113 | samsung,link-rate = <0x06>; | |
114 | samsung,lane-count = <2>; | |
115 | samsung,hpd-gpio = <&gpx2 6 0>; | |
ead3993e | 116 | |
522c8ff5 TB |
117 | display-timings { |
118 | native-mode = <&timing1>; | |
3528dd34 | 119 | |
522c8ff5 TB |
120 | timing1: timing@1 { |
121 | clock-frequency = <70589280>; | |
122 | hactive = <1366>; | |
123 | vactive = <768>; | |
124 | hfront-porch = <40>; | |
125 | hback-porch = <40>; | |
126 | hsync-len = <32>; | |
127 | vback-porch = <10>; | |
128 | vfront-porch = <12>; | |
129 | vsync-len = <6>; | |
130 | }; | |
3528dd34 | 131 | }; |
522c8ff5 | 132 | }; |
6ac189fc | 133 | |
522c8ff5 TB |
134 | &fimd { |
135 | status = "okay"; | |
136 | samsung,invert-vclk; | |
137 | }; | |
94b62c38 | 138 | |
522c8ff5 TB |
139 | &hdmi { |
140 | status = "okay"; | |
141 | hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; | |
142 | pinctrl-names = "default"; | |
143 | pinctrl-0 = <&hdmi_hpd_irq>; | |
144 | ddc = <&i2c_2>; | |
3528dd34 AK |
145 | }; |
146 | ||
522c8ff5 TB |
147 | &hsi2c_7 { |
148 | status = "okay"; | |
149 | ||
150 | max98090: codec@10 { | |
151 | compatible = "maxim,max98090"; | |
152 | reg = <0x10>; | |
153 | interrupts = <2 0>; | |
154 | interrupt-parent = <&gpx0>; | |
155 | pinctrl-names = "default"; | |
156 | pinctrl-0 = <&max98090_irq>; | |
14a35ada | 157 | }; |
522c8ff5 | 158 | }; |
14a35ada | 159 | |
522c8ff5 TB |
160 | &hsi2c_9 { |
161 | status = "okay"; | |
162 | clock-frequency = <400000>; | |
163 | ||
164 | tpm@20 { | |
165 | compatible = "infineon,slb9645tt"; | |
166 | reg = <0x20>; | |
167 | ||
168 | /* Unused irq; but still need to configure the pins */ | |
169 | pinctrl-names = "default"; | |
170 | pinctrl-0 = <&tpm_irq>; | |
14a35ada VG |
171 | }; |
172 | }; | |
173 | ||
522c8ff5 | 174 | &i2c_2 { |
3528dd34 | 175 | status = "okay"; |
522c8ff5 TB |
176 | samsung,i2c-sda-delay = <100>; |
177 | samsung,i2c-max-bus-freq = <66000>; | |
178 | samsung,i2c-slave-addr = <0x50>; | |
3528dd34 AK |
179 | }; |
180 | ||
522c8ff5 | 181 | &i2s0 { |
3528dd34 AK |
182 | status = "okay"; |
183 | }; | |
184 | ||
185 | &mmc_0 { | |
186 | status = "okay"; | |
187 | num-slots = <1>; | |
188 | broken-cd; | |
189 | caps2-mmc-hs200-1_8v; | |
aaa25a5a | 190 | cap-mmc-highspeed; |
3528dd34 AK |
191 | non-removable; |
192 | card-detect-delay = <200>; | |
193 | clock-frequency = <400000000>; | |
194 | samsung,dw-mshc-ciu-div = <3>; | |
195 | samsung,dw-mshc-sdr-timing = <0 4>; | |
196 | samsung,dw-mshc-ddr-timing = <0 2>; | |
197 | pinctrl-names = "default"; | |
198 | pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>; | |
aaa25a5a | 199 | bus-width = <8>; |
3528dd34 AK |
200 | }; |
201 | ||
202 | &mmc_2 { | |
203 | status = "okay"; | |
204 | num-slots = <1>; | |
aaa25a5a | 205 | cap-sd-highspeed; |
3528dd34 AK |
206 | card-detect-delay = <200>; |
207 | clock-frequency = <400000000>; | |
208 | samsung,dw-mshc-ciu-div = <3>; | |
209 | samsung,dw-mshc-sdr-timing = <2 3>; | |
210 | samsung,dw-mshc-ddr-timing = <1 2>; | |
211 | pinctrl-names = "default"; | |
212 | pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; | |
aaa25a5a | 213 | bus-width = <4>; |
3528dd34 AK |
214 | }; |
215 | ||
ead3993e | 216 | |
522c8ff5 | 217 | &pinctrl_0 { |
ac5ce09e DA |
218 | pinctrl-names = "default"; |
219 | pinctrl-0 = <&mask_tpm_reset>; | |
220 | ||
522c8ff5 TB |
221 | max98090_irq: max98090-irq { |
222 | samsung,pins = "gpx0-2"; | |
223 | samsung,pin-function = <0>; | |
224 | samsung,pin-pud = <0>; | |
225 | samsung,pin-drv = <0>; | |
ead3993e | 226 | }; |
ead3993e | 227 | |
ac5ce09e DA |
228 | /* We need GPX0_6 to be low at sleep time; just keep it low always */ |
229 | mask_tpm_reset: mask-tpm-reset { | |
230 | samsung,pins = "gpx0-6"; | |
231 | samsung,pin-function = <1>; | |
232 | samsung,pin-pud = <0>; | |
233 | samsung,pin-drv = <0>; | |
234 | samsung,pin-val = <0>; | |
235 | }; | |
236 | ||
522c8ff5 TB |
237 | tpm_irq: tpm-irq { |
238 | samsung,pins = "gpx1-0"; | |
239 | samsung,pin-function = <0>; | |
240 | samsung,pin-pud = <0>; | |
241 | samsung,pin-drv = <0>; | |
242 | }; | |
3528dd34 | 243 | |
522c8ff5 TB |
244 | power_key_irq: power-key-irq { |
245 | samsung,pins = "gpx1-2"; | |
246 | samsung,pin-function = <0>; | |
247 | samsung,pin-pud = <0>; | |
248 | samsung,pin-drv = <0>; | |
249 | }; | |
3528dd34 | 250 | |
8060098b DA |
251 | ec_irq: ec-irq { |
252 | samsung,pins = "gpx1-5"; | |
253 | samsung,pin-function = <0>; | |
254 | samsung,pin-pud = <0>; | |
255 | samsung,pin-drv = <0>; | |
256 | }; | |
257 | ||
258 | tps65090_irq: tps65090-irq { | |
259 | samsung,pins = "gpx2-5"; | |
260 | samsung,pin-function = <0>; | |
261 | samsung,pin-pud = <0>; | |
262 | samsung,pin-drv = <0>; | |
263 | }; | |
264 | ||
522c8ff5 TB |
265 | dp_hpd_gpio: dp_hpd_gpio { |
266 | samsung,pins = "gpx2-6"; | |
267 | samsung,pin-function = <0>; | |
268 | samsung,pin-pud = <3>; | |
269 | samsung,pin-drv = <0>; | |
270 | }; | |
271 | ||
272 | hdmi_hpd_irq: hdmi-hpd-irq { | |
273 | samsung,pins = "gpx3-7"; | |
274 | samsung,pin-function = <0>; | |
275 | samsung,pin-pud = <1>; | |
276 | samsung,pin-drv = <0>; | |
3528dd34 AK |
277 | }; |
278 | }; | |
279 | ||
522c8ff5 | 280 | &pinctrl_3 { |
8060098b DA |
281 | /* Drive SPI lines at x2 for better integrity */ |
282 | spi2-bus { | |
283 | samsung,pin-drv = <2>; | |
284 | }; | |
285 | ||
286 | /* Drive SPI chip select at x2 for better integrity */ | |
287 | ec_spi_cs: ec-spi-cs { | |
288 | samsung,pins = "gpb1-2"; | |
289 | samsung,pin-function = <1>; | |
290 | samsung,pin-pud = <0>; | |
291 | samsung,pin-drv = <2>; | |
292 | }; | |
293 | ||
522c8ff5 TB |
294 | usb300_vbus_en: usb300-vbus-en { |
295 | samsung,pins = "gph0-0"; | |
296 | samsung,pin-function = <1>; | |
297 | samsung,pin-pud = <0>; | |
298 | samsung,pin-drv = <0>; | |
299 | }; | |
300 | ||
301 | usb301_vbus_en: usb301-vbus-en { | |
302 | samsung,pins = "gph0-1"; | |
303 | samsung,pin-function = <1>; | |
304 | samsung,pin-pud = <0>; | |
305 | samsung,pin-drv = <0>; | |
306 | }; | |
307 | }; | |
308 | ||
309 | &rtc { | |
6ac189fc | 310 | status = "okay"; |
6ac189fc RS |
311 | }; |
312 | ||
8060098b DA |
313 | &spi_2 { |
314 | status = "okay"; | |
315 | num-cs = <1>; | |
316 | samsung,spi-src-clk = <0>; | |
317 | cs-gpios = <&gpb1 2 0>; | |
318 | ||
319 | cros_ec: cros-ec@0 { | |
320 | compatible = "google,cros-ec-spi"; | |
321 | interrupt-parent = <&gpx1>; | |
322 | interrupts = <5 0>; | |
323 | pinctrl-names = "default"; | |
324 | pinctrl-0 = <&ec_spi_cs &ec_irq>; | |
325 | reg = <0>; | |
326 | spi-max-frequency = <3125000>; | |
327 | ||
328 | controller-data { | |
329 | samsung,spi-feedback-delay = <1>; | |
330 | }; | |
331 | ||
332 | i2c-tunnel { | |
333 | compatible = "google,cros-ec-i2c-tunnel"; | |
334 | #address-cells = <1>; | |
335 | #size-cells = <0>; | |
336 | google,remote-bus = <0>; | |
337 | ||
338 | battery: sbs-battery@b { | |
339 | compatible = "sbs,sbs-battery"; | |
340 | reg = <0xb>; | |
341 | sbs,poll-retry-count = <1>; | |
342 | sbs,i2c-retry-count = <2>; | |
343 | }; | |
344 | ||
345 | power-regulator@48 { | |
346 | compatible = "ti,tps65090"; | |
347 | reg = <0x48>; | |
348 | ||
349 | /* | |
350 | * Config irq to disable internal pulls | |
351 | * even though we run in polling mode. | |
352 | */ | |
353 | pinctrl-names = "default"; | |
354 | pinctrl-0 = <&tps65090_irq>; | |
355 | ||
356 | vsys1-supply = <&vbat>; | |
357 | vsys2-supply = <&vbat>; | |
358 | vsys3-supply = <&vbat>; | |
359 | infet1-supply = <&vbat>; | |
360 | infet2-supply = <&vbat>; | |
361 | infet3-supply = <&vbat>; | |
362 | infet4-supply = <&vbat>; | |
363 | infet5-supply = <&vbat>; | |
364 | infet6-supply = <&vbat>; | |
365 | infet7-supply = <&vbat>; | |
366 | vsys-l1-supply = <&vbat>; | |
367 | vsys-l2-supply = <&vbat>; | |
368 | ||
369 | regulators { | |
370 | tps65090_dcdc1: dcdc1 { | |
371 | ti,enable-ext-control; | |
372 | }; | |
373 | tps65090_dcdc2: dcdc2 { | |
374 | ti,enable-ext-control; | |
375 | }; | |
376 | tps65090_dcdc3: dcdc3 { | |
377 | ti,enable-ext-control; | |
378 | }; | |
379 | tps65090_fet1: fet1 { | |
380 | regulator-name = "vcd_led"; | |
381 | }; | |
382 | tps65090_fet2: fet2 { | |
383 | regulator-name = "video_mid"; | |
384 | regulator-always-on; | |
385 | }; | |
386 | tps65090_fet3: fet3 { | |
387 | regulator-name = "wwan_r"; | |
388 | regulator-always-on; | |
389 | }; | |
390 | tps65090_fet4: fet4 { | |
391 | regulator-name = "sdcard"; | |
392 | regulator-always-on; | |
393 | }; | |
394 | tps65090_fet5: fet5 { | |
395 | regulator-name = "camout"; | |
396 | }; | |
397 | tps65090_fet6: fet6 { | |
398 | regulator-name = "lcd_vdd"; | |
399 | }; | |
400 | tps65090_fet7: fet7 { | |
401 | regulator-name = "video_mid_1a"; | |
402 | regulator-always-on; | |
403 | }; | |
404 | tps65090_ldo1: ldo1 { | |
405 | }; | |
406 | tps65090_ldo2: ldo2 { | |
407 | }; | |
408 | }; | |
409 | ||
410 | charger { | |
411 | compatible = "ti,tps65090-charger"; | |
412 | }; | |
413 | }; | |
414 | }; | |
415 | }; | |
416 | }; | |
417 | ||
522c8ff5 | 418 | &uart_3 { |
6ac189fc | 419 | status = "okay"; |
6ac189fc RS |
420 | }; |
421 | ||
0ce9f47a | 422 | &usbdrd_phy0 { |
14a35ada VG |
423 | vbus-supply = <&usb300_vbus_reg>; |
424 | }; | |
425 | ||
0ce9f47a | 426 | &usbdrd_phy1 { |
14a35ada VG |
427 | vbus-supply = <&usb301_vbus_reg>; |
428 | }; | |
429 | ||
3528dd34 AK |
430 | /* |
431 | * Use longest HW watchdog in SoC (32 seconds) since the hardware | |
432 | * watchdog provides no debugging information (compared to soft/hard | |
433 | * lockup detectors) and so should be last resort. | |
434 | */ | |
435 | &watchdog { | |
436 | timeout-sec = <32>; | |
437 | }; | |
ead3993e | 438 | |
8060098b | 439 | #include "cros-ec-keyboard.dtsi" |