diff options
Diffstat (limited to 'arch/arm/boot/dts/exynos5800-peach-pi.dts')
-rw-r--r-- | arch/arm/boot/dts/exynos5800-peach-pi.dts | 374 |
1 files changed, 283 insertions, 91 deletions
diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts index f3af2079a063..f3ee48bbe05f 100644 --- a/arch/arm/boot/dts/exynos5800-peach-pi.dts +++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts | |||
@@ -23,8 +23,18 @@ | |||
23 | "google,pi", "google,peach", "samsung,exynos5800", | 23 | "google,pi", "google,peach", "samsung,exynos5800", |
24 | "samsung,exynos5"; | 24 | "samsung,exynos5"; |
25 | 25 | ||
26 | memory { | 26 | aliases { |
27 | reg = <0x20000000 0x80000000>; | 27 | /* Assign 20 so we don't get confused w/ builtin ones */ |
28 | i2c20 = "/spi@12d40000/cros-ec@0/i2c-tunnel"; | ||
29 | }; | ||
30 | |||
31 | backlight { | ||
32 | compatible = "pwm-backlight"; | ||
33 | pwms = <&pwm 0 1000000 0>; | ||
34 | brightness-levels = <0 100 500 1000 1500 2000 2500 2800>; | ||
35 | default-brightness-level = <7>; | ||
36 | pinctrl-0 = <&pwm0_out>; | ||
37 | pinctrl-names = "default"; | ||
28 | }; | 38 | }; |
29 | 39 | ||
30 | fixed-rate-clocks { | 40 | fixed-rate-clocks { |
@@ -48,13 +58,16 @@ | |||
48 | }; | 58 | }; |
49 | }; | 59 | }; |
50 | 60 | ||
51 | backlight { | 61 | memory { |
52 | compatible = "pwm-backlight"; | 62 | reg = <0x20000000 0x80000000>; |
53 | pwms = <&pwm 0 1000000 0>; | 63 | }; |
54 | brightness-levels = <0 100 500 1000 1500 2000 2500 2800>; | 64 | |
55 | default-brightness-level = <7>; | 65 | sound { |
56 | pinctrl-0 = <&pwm0_out>; | 66 | compatible = "google,snow-audio-max98091"; |
57 | pinctrl-names = "default"; | 67 | |
68 | samsung,model = "Peach-Pi-I2S-MAX98091"; | ||
69 | samsung,i2s-controller = <&i2s0>; | ||
70 | samsung,audio-codec = <&max98091>; | ||
58 | }; | 71 | }; |
59 | 72 | ||
60 | usb300_vbus_reg: regulator-usb300 { | 73 | usb300_vbus_reg: regulator-usb300 { |
@@ -78,59 +91,92 @@ | |||
78 | pinctrl-0 = <&usb301_vbus_en>; | 91 | pinctrl-0 = <&usb301_vbus_en>; |
79 | enable-active-high; | 92 | enable-active-high; |
80 | }; | 93 | }; |
81 | }; | ||
82 | 94 | ||
83 | &pinctrl_0 { | 95 | vbat: fixed-regulator { |
84 | tpm_irq: tpm-irq { | 96 | compatible = "regulator-fixed"; |
85 | samsung,pins = "gpx1-0"; | 97 | regulator-name = "vbat-supply"; |
86 | samsung,pin-function = <0>; | 98 | regulator-boot-on; |
87 | samsung,pin-pud = <0>; | 99 | regulator-always-on; |
88 | samsung,pin-drv = <0>; | ||
89 | }; | 100 | }; |
101 | }; | ||
90 | 102 | ||
91 | power_key_irq: power-key-irq { | 103 | &dp { |
92 | samsung,pins = "gpx1-2"; | 104 | status = "okay"; |
93 | samsung,pin-function = <0>; | 105 | pinctrl-names = "default"; |
94 | samsung,pin-pud = <0>; | 106 | pinctrl-0 = <&dp_hpd_gpio>; |
95 | samsung,pin-drv = <0>; | 107 | samsung,color-space = <0>; |
96 | }; | 108 | samsung,dynamic-range = <0>; |
109 | samsung,ycbcr-coeff = <0>; | ||
110 | samsung,color-depth = <1>; | ||
111 | samsung,link-rate = <0x0a>; | ||
112 | samsung,lane-count = <2>; | ||
113 | samsung,hpd-gpio = <&gpx2 6 0>; | ||
97 | 114 | ||
98 | dp_hpd_gpio: dp_hpd_gpio { | 115 | display-timings { |
99 | samsung,pins = "gpx2-6"; | 116 | native-mode = <&timing1>; |
100 | samsung,pin-function = <0>; | ||
101 | samsung,pin-pud = <3>; | ||
102 | samsung,pin-drv = <0>; | ||
103 | }; | ||
104 | 117 | ||
105 | hdmi_hpd_irq: hdmi-hpd-irq { | 118 | timing1: timing@1 { |
106 | samsung,pins = "gpx3-7"; | 119 | clock-frequency = <150660000>; |
107 | samsung,pin-function = <0>; | 120 | hactive = <1920>; |
108 | samsung,pin-pud = <1>; | 121 | vactive = <1080>; |
109 | samsung,pin-drv = <0>; | 122 | hfront-porch = <60>; |
123 | hback-porch = <172>; | ||
124 | hsync-len = <80>; | ||
125 | vback-porch = <25>; | ||
126 | vfront-porch = <10>; | ||
127 | vsync-len = <10>; | ||
128 | }; | ||
110 | }; | 129 | }; |
111 | }; | 130 | }; |
112 | 131 | ||
113 | &pinctrl_3 { | 132 | &fimd { |
114 | usb300_vbus_en: usb300-vbus-en { | 133 | status = "okay"; |
115 | samsung,pins = "gph0-0"; | 134 | samsung,invert-vclk; |
116 | samsung,pin-function = <1>; | 135 | }; |
117 | samsung,pin-pud = <0>; | 136 | |
118 | samsung,pin-drv = <0>; | 137 | &hdmi { |
138 | status = "okay"; | ||
139 | hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; | ||
140 | pinctrl-names = "default"; | ||
141 | pinctrl-0 = <&hdmi_hpd_irq>; | ||
142 | ddc = <&i2c_2>; | ||
143 | }; | ||
144 | |||
145 | &hsi2c_7 { | ||
146 | status = "okay"; | ||
147 | |||
148 | max98091: codec@10 { | ||
149 | compatible = "maxim,max98091"; | ||
150 | reg = <0x10>; | ||
151 | interrupts = <2 0>; | ||
152 | interrupt-parent = <&gpx0>; | ||
153 | pinctrl-names = "default"; | ||
154 | pinctrl-0 = <&max98091_irq>; | ||
119 | }; | 155 | }; |
156 | }; | ||
120 | 157 | ||
121 | usb301_vbus_en: usb301-vbus-en { | 158 | &hsi2c_9 { |
122 | samsung,pins = "gph0-1"; | 159 | status = "okay"; |
123 | samsung,pin-function = <1>; | 160 | clock-frequency = <400000>; |
124 | samsung,pin-pud = <0>; | 161 | |
125 | samsung,pin-drv = <0>; | 162 | tpm@20 { |
163 | compatible = "infineon,slb9645tt"; | ||
164 | reg = <0x20>; | ||
165 | |||
166 | /* Unused irq; but still need to configure the pins */ | ||
167 | pinctrl-names = "default"; | ||
168 | pinctrl-0 = <&tpm_irq>; | ||
126 | }; | 169 | }; |
127 | }; | 170 | }; |
128 | 171 | ||
129 | &rtc { | 172 | &i2c_2 { |
130 | status = "okay"; | 173 | status = "okay"; |
174 | samsung,i2c-sda-delay = <100>; | ||
175 | samsung,i2c-max-bus-freq = <66000>; | ||
176 | samsung,i2c-slave-addr = <0x50>; | ||
131 | }; | 177 | }; |
132 | 178 | ||
133 | &uart_3 { | 179 | &i2s0 { |
134 | status = "okay"; | 180 | status = "okay"; |
135 | }; | 181 | }; |
136 | 182 | ||
@@ -173,66 +219,210 @@ | |||
173 | }; | 219 | }; |
174 | }; | 220 | }; |
175 | 221 | ||
176 | &dp { | 222 | |
177 | status = "okay"; | 223 | &pinctrl_0 { |
178 | pinctrl-names = "default"; | 224 | pinctrl-names = "default"; |
179 | pinctrl-0 = <&dp_hpd_gpio>; | 225 | pinctrl-0 = <&mask_tpm_reset>; |
180 | samsung,color-space = <0>; | ||
181 | samsung,dynamic-range = <0>; | ||
182 | samsung,ycbcr-coeff = <0>; | ||
183 | samsung,color-depth = <1>; | ||
184 | samsung,link-rate = <0x0a>; | ||
185 | samsung,lane-count = <2>; | ||
186 | samsung,hpd-gpio = <&gpx2 6 0>; | ||
187 | 226 | ||
188 | display-timings { | 227 | max98091_irq: max98091-irq { |
189 | native-mode = <&timing1>; | 228 | samsung,pins = "gpx0-2"; |
229 | samsung,pin-function = <0>; | ||
230 | samsung,pin-pud = <0>; | ||
231 | samsung,pin-drv = <0>; | ||
232 | }; | ||
190 | 233 | ||
191 | timing1: timing@1 { | 234 | /* We need GPX0_6 to be low at sleep time; just keep it low always */ |
192 | clock-frequency = <150660000>; | 235 | mask_tpm_reset: mask-tpm-reset { |
193 | hactive = <1920>; | 236 | samsung,pins = "gpx0-6"; |
194 | vactive = <1080>; | 237 | samsung,pin-function = <1>; |
195 | hfront-porch = <60>; | 238 | samsung,pin-pud = <0>; |
196 | hback-porch = <172>; | 239 | samsung,pin-drv = <0>; |
197 | hsync-len = <80>; | 240 | samsung,pin-val = <0>; |
198 | vback-porch = <25>; | ||
199 | vfront-porch = <10>; | ||
200 | vsync-len = <10>; | ||
201 | }; | ||
202 | }; | 241 | }; |
203 | }; | ||
204 | 242 | ||
205 | &fimd { | 243 | tpm_irq: tpm-irq { |
206 | status = "okay"; | 244 | samsung,pins = "gpx1-0"; |
207 | samsung,invert-vclk; | 245 | samsung,pin-function = <0>; |
246 | samsung,pin-pud = <0>; | ||
247 | samsung,pin-drv = <0>; | ||
248 | }; | ||
249 | |||
250 | power_key_irq: power-key-irq { | ||
251 | samsung,pins = "gpx1-2"; | ||
252 | samsung,pin-function = <0>; | ||
253 | samsung,pin-pud = <0>; | ||
254 | samsung,pin-drv = <0>; | ||
255 | }; | ||
256 | |||
257 | ec_irq: ec-irq { | ||
258 | samsung,pins = "gpx1-5"; | ||
259 | samsung,pin-function = <0>; | ||
260 | samsung,pin-pud = <0>; | ||
261 | samsung,pin-drv = <0>; | ||
262 | }; | ||
263 | |||
264 | tps65090_irq: tps65090-irq { | ||
265 | samsung,pins = "gpx2-5"; | ||
266 | samsung,pin-function = <0>; | ||
267 | samsung,pin-pud = <0>; | ||
268 | samsung,pin-drv = <0>; | ||
269 | }; | ||
270 | |||
271 | dp_hpd_gpio: dp_hpd_gpio { | ||
272 | samsung,pins = "gpx2-6"; | ||
273 | samsung,pin-function = <0>; | ||
274 | samsung,pin-pud = <3>; | ||
275 | samsung,pin-drv = <0>; | ||
276 | }; | ||
277 | |||
278 | hdmi_hpd_irq: hdmi-hpd-irq { | ||
279 | samsung,pins = "gpx3-7"; | ||
280 | samsung,pin-function = <0>; | ||
281 | samsung,pin-pud = <1>; | ||
282 | samsung,pin-drv = <0>; | ||
283 | }; | ||
208 | }; | 284 | }; |
209 | 285 | ||
210 | &hsi2c_9 { | 286 | &pinctrl_3 { |
211 | status = "okay"; | 287 | /* Drive SPI lines at x2 for better integrity */ |
212 | clock-frequency = <400000>; | 288 | spi2-bus { |
289 | samsung,pin-drv = <2>; | ||
290 | }; | ||
213 | 291 | ||
214 | tpm@20 { | 292 | /* Drive SPI chip select at x2 for better integrity */ |
215 | compatible = "infineon,slb9645tt"; | 293 | ec_spi_cs: ec-spi-cs { |
216 | reg = <0x20>; | 294 | samsung,pins = "gpb1-2"; |
217 | /* Unused irq; but still need to configure the pins */ | 295 | samsung,pin-function = <1>; |
218 | pinctrl-names = "default"; | 296 | samsung,pin-pud = <0>; |
219 | pinctrl-0 = <&tpm_irq>; | 297 | samsung,pin-drv = <2>; |
298 | }; | ||
299 | |||
300 | usb300_vbus_en: usb300-vbus-en { | ||
301 | samsung,pins = "gph0-0"; | ||
302 | samsung,pin-function = <1>; | ||
303 | samsung,pin-pud = <0>; | ||
304 | samsung,pin-drv = <0>; | ||
305 | }; | ||
306 | |||
307 | usb301_vbus_en: usb301-vbus-en { | ||
308 | samsung,pins = "gph0-1"; | ||
309 | samsung,pin-function = <1>; | ||
310 | samsung,pin-pud = <0>; | ||
311 | samsung,pin-drv = <0>; | ||
220 | }; | 312 | }; |
221 | }; | 313 | }; |
222 | 314 | ||
223 | &i2c_2 { | 315 | &rtc { |
224 | status = "okay"; | 316 | status = "okay"; |
225 | samsung,i2c-sda-delay = <100>; | ||
226 | samsung,i2c-max-bus-freq = <66000>; | ||
227 | samsung,i2c-slave-addr = <0x50>; | ||
228 | }; | 317 | }; |
229 | 318 | ||
230 | &hdmi { | 319 | &spi_2 { |
320 | status = "okay"; | ||
321 | num-cs = <1>; | ||
322 | samsung,spi-src-clk = <0>; | ||
323 | cs-gpios = <&gpb1 2 0>; | ||
324 | |||
325 | cros_ec: cros-ec@0 { | ||
326 | compatible = "google,cros-ec-spi"; | ||
327 | interrupt-parent = <&gpx1>; | ||
328 | interrupts = <5 0>; | ||
329 | pinctrl-names = "default"; | ||
330 | pinctrl-0 = <&ec_spi_cs &ec_irq>; | ||
331 | reg = <0>; | ||
332 | spi-max-frequency = <3125000>; | ||
333 | |||
334 | controller-data { | ||
335 | samsung,spi-feedback-delay = <1>; | ||
336 | }; | ||
337 | |||
338 | i2c-tunnel { | ||
339 | compatible = "google,cros-ec-i2c-tunnel"; | ||
340 | #address-cells = <1>; | ||
341 | #size-cells = <0>; | ||
342 | google,remote-bus = <0>; | ||
343 | |||
344 | battery: sbs-battery@b { | ||
345 | compatible = "sbs,sbs-battery"; | ||
346 | reg = <0xb>; | ||
347 | sbs,poll-retry-count = <1>; | ||
348 | sbs,i2c-retry-count = <2>; | ||
349 | }; | ||
350 | |||
351 | power-regulator@48 { | ||
352 | compatible = "ti,tps65090"; | ||
353 | reg = <0x48>; | ||
354 | |||
355 | /* | ||
356 | * Config irq to disable internal pulls | ||
357 | * even though we run in polling mode. | ||
358 | */ | ||
359 | pinctrl-names = "default"; | ||
360 | pinctrl-0 = <&tps65090_irq>; | ||
361 | |||
362 | vsys1-supply = <&vbat>; | ||
363 | vsys2-supply = <&vbat>; | ||
364 | vsys3-supply = <&vbat>; | ||
365 | infet1-supply = <&vbat>; | ||
366 | infet2-supply = <&vbat>; | ||
367 | infet3-supply = <&vbat>; | ||
368 | infet4-supply = <&vbat>; | ||
369 | infet5-supply = <&vbat>; | ||
370 | infet6-supply = <&vbat>; | ||
371 | infet7-supply = <&vbat>; | ||
372 | vsys-l1-supply = <&vbat>; | ||
373 | vsys-l2-supply = <&vbat>; | ||
374 | |||
375 | regulators { | ||
376 | tps65090_dcdc1: dcdc1 { | ||
377 | ti,enable-ext-control; | ||
378 | }; | ||
379 | tps65090_dcdc2: dcdc2 { | ||
380 | ti,enable-ext-control; | ||
381 | }; | ||
382 | tps65090_dcdc3: dcdc3 { | ||
383 | ti,enable-ext-control; | ||
384 | }; | ||
385 | tps65090_fet1: fet1 { | ||
386 | regulator-name = "vcd_led"; | ||
387 | }; | ||
388 | tps65090_fet2: fet2 { | ||
389 | regulator-name = "video_mid"; | ||
390 | regulator-always-on; | ||
391 | }; | ||
392 | tps65090_fet3: fet3 { | ||
393 | regulator-name = "wwan_r"; | ||
394 | regulator-always-on; | ||
395 | }; | ||
396 | tps65090_fet4: fet4 { | ||
397 | regulator-name = "sdcard"; | ||
398 | regulator-always-on; | ||
399 | }; | ||
400 | tps65090_fet5: fet5 { | ||
401 | regulator-name = "camout"; | ||
402 | }; | ||
403 | tps65090_fet6: fet6 { | ||
404 | regulator-name = "lcd_vdd"; | ||
405 | }; | ||
406 | tps65090_fet7: fet7 { | ||
407 | regulator-name = "video_mid_1a"; | ||
408 | regulator-always-on; | ||
409 | }; | ||
410 | tps65090_ldo1: ldo1 { | ||
411 | }; | ||
412 | tps65090_ldo2: ldo2 { | ||
413 | }; | ||
414 | }; | ||
415 | |||
416 | charger { | ||
417 | compatible = "ti,tps65090-charger"; | ||
418 | }; | ||
419 | }; | ||
420 | }; | ||
421 | }; | ||
422 | }; | ||
423 | |||
424 | &uart_3 { | ||
231 | status = "okay"; | 425 | status = "okay"; |
232 | hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; | ||
233 | pinctrl-names = "default"; | ||
234 | pinctrl-0 = <&hdmi_hpd_irq>; | ||
235 | ddc = <&i2c_2>; | ||
236 | }; | 426 | }; |
237 | 427 | ||
238 | &usbdrd_phy0 { | 428 | &usbdrd_phy0 { |
@@ -251,3 +441,5 @@ | |||
251 | &watchdog { | 441 | &watchdog { |
252 | timeout-sec = <32>; | 442 | timeout-sec = <32>; |
253 | }; | 443 | }; |
444 | |||
445 | #include "cros-ec-keyboard.dtsi" | ||