]>
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; | |
190 | supports-highspeed; | |
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>; | |
199 | ||
200 | slot@0 { | |
201 | reg = <0>; | |
202 | bus-width = <8>; | |
203 | }; | |
204 | }; | |
205 | ||
206 | &mmc_2 { | |
207 | status = "okay"; | |
208 | num-slots = <1>; | |
209 | supports-highspeed; | |
210 | card-detect-delay = <200>; | |
211 | clock-frequency = <400000000>; | |
212 | samsung,dw-mshc-ciu-div = <3>; | |
213 | samsung,dw-mshc-sdr-timing = <2 3>; | |
214 | samsung,dw-mshc-ddr-timing = <1 2>; | |
215 | pinctrl-names = "default"; | |
216 | pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; | |
217 | ||
218 | slot@0 { | |
219 | reg = <0>; | |
220 | bus-width = <4>; | |
221 | }; | |
222 | }; | |
223 | ||
ead3993e | 224 | |
522c8ff5 | 225 | &pinctrl_0 { |
ac5ce09e DA |
226 | pinctrl-names = "default"; |
227 | pinctrl-0 = <&mask_tpm_reset>; | |
228 | ||
522c8ff5 TB |
229 | max98090_irq: max98090-irq { |
230 | samsung,pins = "gpx0-2"; | |
231 | samsung,pin-function = <0>; | |
232 | samsung,pin-pud = <0>; | |
233 | samsung,pin-drv = <0>; | |
ead3993e | 234 | }; |
ead3993e | 235 | |
ac5ce09e DA |
236 | /* We need GPX0_6 to be low at sleep time; just keep it low always */ |
237 | mask_tpm_reset: mask-tpm-reset { | |
238 | samsung,pins = "gpx0-6"; | |
239 | samsung,pin-function = <1>; | |
240 | samsung,pin-pud = <0>; | |
241 | samsung,pin-drv = <0>; | |
242 | samsung,pin-val = <0>; | |
243 | }; | |
244 | ||
522c8ff5 TB |
245 | tpm_irq: tpm-irq { |
246 | samsung,pins = "gpx1-0"; | |
247 | samsung,pin-function = <0>; | |
248 | samsung,pin-pud = <0>; | |
249 | samsung,pin-drv = <0>; | |
250 | }; | |
3528dd34 | 251 | |
522c8ff5 TB |
252 | power_key_irq: power-key-irq { |
253 | samsung,pins = "gpx1-2"; | |
254 | samsung,pin-function = <0>; | |
255 | samsung,pin-pud = <0>; | |
256 | samsung,pin-drv = <0>; | |
257 | }; | |
3528dd34 | 258 | |
8060098b DA |
259 | ec_irq: ec-irq { |
260 | samsung,pins = "gpx1-5"; | |
261 | samsung,pin-function = <0>; | |
262 | samsung,pin-pud = <0>; | |
263 | samsung,pin-drv = <0>; | |
264 | }; | |
265 | ||
266 | tps65090_irq: tps65090-irq { | |
267 | samsung,pins = "gpx2-5"; | |
268 | samsung,pin-function = <0>; | |
269 | samsung,pin-pud = <0>; | |
270 | samsung,pin-drv = <0>; | |
271 | }; | |
272 | ||
522c8ff5 TB |
273 | dp_hpd_gpio: dp_hpd_gpio { |
274 | samsung,pins = "gpx2-6"; | |
275 | samsung,pin-function = <0>; | |
276 | samsung,pin-pud = <3>; | |
277 | samsung,pin-drv = <0>; | |
278 | }; | |
279 | ||
280 | hdmi_hpd_irq: hdmi-hpd-irq { | |
281 | samsung,pins = "gpx3-7"; | |
282 | samsung,pin-function = <0>; | |
283 | samsung,pin-pud = <1>; | |
284 | samsung,pin-drv = <0>; | |
3528dd34 AK |
285 | }; |
286 | }; | |
287 | ||
522c8ff5 | 288 | &pinctrl_3 { |
8060098b DA |
289 | /* Drive SPI lines at x2 for better integrity */ |
290 | spi2-bus { | |
291 | samsung,pin-drv = <2>; | |
292 | }; | |
293 | ||
294 | /* Drive SPI chip select at x2 for better integrity */ | |
295 | ec_spi_cs: ec-spi-cs { | |
296 | samsung,pins = "gpb1-2"; | |
297 | samsung,pin-function = <1>; | |
298 | samsung,pin-pud = <0>; | |
299 | samsung,pin-drv = <2>; | |
300 | }; | |
301 | ||
522c8ff5 TB |
302 | usb300_vbus_en: usb300-vbus-en { |
303 | samsung,pins = "gph0-0"; | |
304 | samsung,pin-function = <1>; | |
305 | samsung,pin-pud = <0>; | |
306 | samsung,pin-drv = <0>; | |
307 | }; | |
308 | ||
309 | usb301_vbus_en: usb301-vbus-en { | |
310 | samsung,pins = "gph0-1"; | |
311 | samsung,pin-function = <1>; | |
312 | samsung,pin-pud = <0>; | |
313 | samsung,pin-drv = <0>; | |
314 | }; | |
315 | }; | |
316 | ||
317 | &rtc { | |
6ac189fc | 318 | status = "okay"; |
6ac189fc RS |
319 | }; |
320 | ||
8060098b DA |
321 | &spi_2 { |
322 | status = "okay"; | |
323 | num-cs = <1>; | |
324 | samsung,spi-src-clk = <0>; | |
325 | cs-gpios = <&gpb1 2 0>; | |
326 | ||
327 | cros_ec: cros-ec@0 { | |
328 | compatible = "google,cros-ec-spi"; | |
329 | interrupt-parent = <&gpx1>; | |
330 | interrupts = <5 0>; | |
331 | pinctrl-names = "default"; | |
332 | pinctrl-0 = <&ec_spi_cs &ec_irq>; | |
333 | reg = <0>; | |
334 | spi-max-frequency = <3125000>; | |
335 | ||
336 | controller-data { | |
337 | samsung,spi-feedback-delay = <1>; | |
338 | }; | |
339 | ||
340 | i2c-tunnel { | |
341 | compatible = "google,cros-ec-i2c-tunnel"; | |
342 | #address-cells = <1>; | |
343 | #size-cells = <0>; | |
344 | google,remote-bus = <0>; | |
345 | ||
346 | battery: sbs-battery@b { | |
347 | compatible = "sbs,sbs-battery"; | |
348 | reg = <0xb>; | |
349 | sbs,poll-retry-count = <1>; | |
350 | sbs,i2c-retry-count = <2>; | |
351 | }; | |
352 | ||
353 | power-regulator@48 { | |
354 | compatible = "ti,tps65090"; | |
355 | reg = <0x48>; | |
356 | ||
357 | /* | |
358 | * Config irq to disable internal pulls | |
359 | * even though we run in polling mode. | |
360 | */ | |
361 | pinctrl-names = "default"; | |
362 | pinctrl-0 = <&tps65090_irq>; | |
363 | ||
364 | vsys1-supply = <&vbat>; | |
365 | vsys2-supply = <&vbat>; | |
366 | vsys3-supply = <&vbat>; | |
367 | infet1-supply = <&vbat>; | |
368 | infet2-supply = <&vbat>; | |
369 | infet3-supply = <&vbat>; | |
370 | infet4-supply = <&vbat>; | |
371 | infet5-supply = <&vbat>; | |
372 | infet6-supply = <&vbat>; | |
373 | infet7-supply = <&vbat>; | |
374 | vsys-l1-supply = <&vbat>; | |
375 | vsys-l2-supply = <&vbat>; | |
376 | ||
377 | regulators { | |
378 | tps65090_dcdc1: dcdc1 { | |
379 | ti,enable-ext-control; | |
380 | }; | |
381 | tps65090_dcdc2: dcdc2 { | |
382 | ti,enable-ext-control; | |
383 | }; | |
384 | tps65090_dcdc3: dcdc3 { | |
385 | ti,enable-ext-control; | |
386 | }; | |
387 | tps65090_fet1: fet1 { | |
388 | regulator-name = "vcd_led"; | |
389 | }; | |
390 | tps65090_fet2: fet2 { | |
391 | regulator-name = "video_mid"; | |
392 | regulator-always-on; | |
393 | }; | |
394 | tps65090_fet3: fet3 { | |
395 | regulator-name = "wwan_r"; | |
396 | regulator-always-on; | |
397 | }; | |
398 | tps65090_fet4: fet4 { | |
399 | regulator-name = "sdcard"; | |
400 | regulator-always-on; | |
401 | }; | |
402 | tps65090_fet5: fet5 { | |
403 | regulator-name = "camout"; | |
404 | }; | |
405 | tps65090_fet6: fet6 { | |
406 | regulator-name = "lcd_vdd"; | |
407 | }; | |
408 | tps65090_fet7: fet7 { | |
409 | regulator-name = "video_mid_1a"; | |
410 | regulator-always-on; | |
411 | }; | |
412 | tps65090_ldo1: ldo1 { | |
413 | }; | |
414 | tps65090_ldo2: ldo2 { | |
415 | }; | |
416 | }; | |
417 | ||
418 | charger { | |
419 | compatible = "ti,tps65090-charger"; | |
420 | }; | |
421 | }; | |
422 | }; | |
423 | }; | |
424 | }; | |
425 | ||
522c8ff5 | 426 | &uart_3 { |
6ac189fc | 427 | status = "okay"; |
6ac189fc RS |
428 | }; |
429 | ||
0ce9f47a | 430 | &usbdrd_phy0 { |
14a35ada VG |
431 | vbus-supply = <&usb300_vbus_reg>; |
432 | }; | |
433 | ||
0ce9f47a | 434 | &usbdrd_phy1 { |
14a35ada VG |
435 | vbus-supply = <&usb301_vbus_reg>; |
436 | }; | |
437 | ||
3528dd34 AK |
438 | /* |
439 | * Use longest HW watchdog in SoC (32 seconds) since the hardware | |
440 | * watchdog provides no debugging information (compared to soft/hard | |
441 | * lockup detectors) and so should be last resort. | |
442 | */ | |
443 | &watchdog { | |
444 | timeout-sec = <32>; | |
445 | }; | |
ead3993e | 446 | |
8060098b | 447 | #include "cros-ec-keyboard.dtsi" |