Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[cascardo/linux.git] / arch / arm / boot / dts / exynos5800-peach-pi.dts
1 /*
2  * Google Peach Pi Rev 10+ 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 "exynos5800.dtsi"
15
16 / {
17         model = "Google Peach Pi Rev 10+";
18
19         compatible = "google,pi-rev16",
20                 "google,pi-rev15", "google,pi-rev14",
21                 "google,pi-rev13", "google,pi-rev12",
22                 "google,pi-rev11", "google,pi-rev10",
23                 "google,pi", "google,peach", "samsung,exynos5800",
24                 "samsung,exynos5";
25
26         memory {
27                 reg = <0x20000000 0x80000000>;
28         };
29
30         fixed-rate-clocks {
31                 oscclk {
32                         compatible = "samsung,exynos5420-oscclk";
33                         clock-frequency = <24000000>;
34                 };
35         };
36
37         gpio-keys {
38                 compatible = "gpio-keys";
39
40                 pinctrl-names = "default";
41                 pinctrl-0 = <&power_key_irq>;
42
43                 power {
44                         label = "Power";
45                         gpios = <&gpx1 2 GPIO_ACTIVE_LOW>;
46                         linux,code = <KEY_POWER>;
47                         gpio-key,wakeup;
48                 };
49         };
50
51         backlight {
52                 compatible = "pwm-backlight";
53                 pwms = <&pwm 0 1000000 0>;
54                 brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
55                 default-brightness-level = <7>;
56                 pinctrl-0 = <&pwm0_out>;
57                 pinctrl-names = "default";
58         };
59
60         usb300_vbus_reg: regulator-usb300 {
61                 compatible = "regulator-fixed";
62                 regulator-name = "P5.0V_USB3CON0";
63                 regulator-min-microvolt = <5000000>;
64                 regulator-max-microvolt = <5000000>;
65                 gpio = <&gph0 0 0>;
66                 pinctrl-names = "default";
67                 pinctrl-0 = <&usb300_vbus_en>;
68                 enable-active-high;
69         };
70
71         usb301_vbus_reg: regulator-usb301 {
72                 compatible = "regulator-fixed";
73                 regulator-name = "P5.0V_USB3CON1";
74                 regulator-min-microvolt = <5000000>;
75                 regulator-max-microvolt = <5000000>;
76                 gpio = <&gph0 1 0>;
77                 pinctrl-names = "default";
78                 pinctrl-0 = <&usb301_vbus_en>;
79                 enable-active-high;
80         };
81 };
82
83 &pinctrl_0 {
84         tpm_irq: tpm-irq {
85                 samsung,pins = "gpx1-0";
86                 samsung,pin-function = <0>;
87                 samsung,pin-pud = <0>;
88                 samsung,pin-drv = <0>;
89         };
90
91         power_key_irq: power-key-irq {
92                 samsung,pins = "gpx1-2";
93                 samsung,pin-function = <0>;
94                 samsung,pin-pud = <0>;
95                 samsung,pin-drv = <0>;
96         };
97
98         dp_hpd_gpio: dp_hpd_gpio {
99                 samsung,pins = "gpx2-6";
100                 samsung,pin-function = <0>;
101                 samsung,pin-pud = <3>;
102                 samsung,pin-drv = <0>;
103         };
104
105         hdmi_hpd_irq: hdmi-hpd-irq {
106                 samsung,pins = "gpx3-7";
107                 samsung,pin-function = <0>;
108                 samsung,pin-pud = <1>;
109                 samsung,pin-drv = <0>;
110         };
111 };
112
113 &pinctrl_3 {
114         usb300_vbus_en: usb300-vbus-en {
115                 samsung,pins = "gph0-0";
116                 samsung,pin-function = <1>;
117                 samsung,pin-pud = <0>;
118                 samsung,pin-drv = <0>;
119         };
120
121         usb301_vbus_en: usb301-vbus-en {
122                 samsung,pins = "gph0-1";
123                 samsung,pin-function = <1>;
124                 samsung,pin-pud = <0>;
125                 samsung,pin-drv = <0>;
126         };
127 };
128
129 &rtc {
130         status = "okay";
131 };
132
133 &uart_3 {
134         status = "okay";
135 };
136
137 &mmc_0 {
138         status = "okay";
139         num-slots = <1>;
140         broken-cd;
141         caps2-mmc-hs200-1_8v;
142         supports-highspeed;
143         non-removable;
144         card-detect-delay = <200>;
145         clock-frequency = <400000000>;
146         samsung,dw-mshc-ciu-div = <3>;
147         samsung,dw-mshc-sdr-timing = <0 4>;
148         samsung,dw-mshc-ddr-timing = <0 2>;
149         pinctrl-names = "default";
150         pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
151
152         slot@0 {
153                 reg = <0>;
154                 bus-width = <8>;
155         };
156 };
157
158 &mmc_2 {
159         status = "okay";
160         num-slots = <1>;
161         supports-highspeed;
162         card-detect-delay = <200>;
163         clock-frequency = <400000000>;
164         samsung,dw-mshc-ciu-div = <3>;
165         samsung,dw-mshc-sdr-timing = <2 3>;
166         samsung,dw-mshc-ddr-timing = <1 2>;
167         pinctrl-names = "default";
168         pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
169
170         slot@0 {
171                 reg = <0>;
172                 bus-width = <4>;
173         };
174 };
175
176 &dp {
177         status = "okay";
178         pinctrl-names = "default";
179         pinctrl-0 = <&dp_hpd_gpio>;
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
188         display-timings {
189                 native-mode = <&timing1>;
190
191                 timing1: timing@1 {
192                         clock-frequency = <150660000>;
193                         hactive = <1920>;
194                         vactive = <1080>;
195                         hfront-porch = <60>;
196                         hback-porch = <172>;
197                         hsync-len = <80>;
198                         vback-porch = <25>;
199                         vfront-porch = <10>;
200                         vsync-len = <10>;
201                 };
202         };
203 };
204
205 &fimd {
206         status = "okay";
207         samsung,invert-vclk;
208 };
209
210 &hsi2c_9 {
211         status = "okay";
212         clock-frequency = <400000>;
213
214         tpm@20 {
215                 compatible = "infineon,slb9645tt";
216                 reg = <0x20>;
217                 /* Unused irq; but still need to configure the pins */
218                 pinctrl-names = "default";
219                 pinctrl-0 = <&tpm_irq>;
220         };
221 };
222
223 &i2c_2 {
224         status = "okay";
225         samsung,i2c-sda-delay = <100>;
226         samsung,i2c-max-bus-freq = <66000>;
227         samsung,i2c-slave-addr = <0x50>;
228 };
229
230 &hdmi {
231         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 };
237
238 &usbdrd_phy0 {
239         vbus-supply = <&usb300_vbus_reg>;
240 };
241
242 &usbdrd_phy1 {
243         vbus-supply = <&usb301_vbus_reg>;
244 };
245
246 /*
247  * Use longest HW watchdog in SoC (32 seconds) since the hardware
248  * watchdog provides no debugging information (compared to soft/hard
249  * lockup detectors) and so should be last resort.
250  */
251 &watchdog {
252         timeout-sec = <32>;
253 };