ARM: dts: rockchip: Specify rk3288-veyron-chromebook's display timings
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / rk3288-veyron-chromebook.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Google Veyron (and derivatives) board device tree source
4  * Chromebook specific parts
5  *
6  * Copyright 2015 Google, Inc
7  */
8
9 #include <dt-bindings/clock/rockchip,rk808.h>
10 #include <dt-bindings/input/input.h>
11 #include "rk3288-veyron.dtsi"
12 #include "rk3288-veyron-analog-audio.dtsi"
13 #include "rk3288-veyron-sdmmc.dtsi"
14
15 / {
16         aliases {
17                 /* Assign 20 so we don't get confused w/ builtin ones */
18                 i2c20 = &i2c_tunnel;
19         };
20
21         backlight: backlight {
22                 compatible = "pwm-backlight";
23                 brightness-levels = <
24                           0   1   2   3   4   5   6   7
25                           8   9  10  11  12  13  14  15
26                          16  17  18  19  20  21  22  23
27                          24  25  26  27  28  29  30  31
28                          32  33  34  35  36  37  38  39
29                          40  41  42  43  44  45  46  47
30                          48  49  50  51  52  53  54  55
31                          56  57  58  59  60  61  62  63
32                          64  65  66  67  68  69  70  71
33                          72  73  74  75  76  77  78  79
34                          80  81  82  83  84  85  86  87
35                          88  89  90  91  92  93  94  95
36                          96  97  98  99 100 101 102 103
37                         104 105 106 107 108 109 110 111
38                         112 113 114 115 116 117 118 119
39                         120 121 122 123 124 125 126 127
40                         128 129 130 131 132 133 134 135
41                         136 137 138 139 140 141 142 143
42                         144 145 146 147 148 149 150 151
43                         152 153 154 155 156 157 158 159
44                         160 161 162 163 164 165 166 167
45                         168 169 170 171 172 173 174 175
46                         176 177 178 179 180 181 182 183
47                         184 185 186 187 188 189 190 191
48                         192 193 194 195 196 197 198 199
49                         200 201 202 203 204 205 206 207
50                         208 209 210 211 212 213 214 215
51                         216 217 218 219 220 221 222 223
52                         224 225 226 227 228 229 230 231
53                         232 233 234 235 236 237 238 239
54                         240 241 242 243 244 245 246 247
55                         248 249 250 251 252 253 254 255>;
56                 default-brightness-level = <128>;
57                 enable-gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>;
58                 pinctrl-names = "default";
59                 pinctrl-0 = <&bl_en>;
60                 pwms = <&pwm0 0 1000000 0>;
61                 post-pwm-on-delay-ms = <10>;
62                 pwm-off-delay-ms = <10>;
63         };
64
65         gpio-charger {
66                 compatible = "gpio-charger";
67                 charger-type = "mains";
68                 gpios = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
69                 pinctrl-names = "default";
70                 pinctrl-0 = <&ac_present_ap>;
71         };
72
73         lid_switch: lid-switch {
74                 compatible = "gpio-keys";
75                 pinctrl-names = "default";
76                 pinctrl-0 = <&ap_lid_int_l>;
77
78                 lid {
79                         label = "Lid";
80                         gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
81                         wakeup-source;
82                         linux,code = <SW_LID>;
83                         linux,input-type = <EV_SW>;
84                         debounce-interval = <1>;
85                 };
86         };
87
88         panel: panel {
89                 compatible ="innolux,n116bge", "simple-panel";
90                 status = "okay";
91                 power-supply = <&vcc33_lcd>;
92                 backlight = <&backlight>;
93
94                 panel-timing {
95                         clock-frequency = <74250000>;
96                         hactive = <1366>;
97                         hfront-porch = <136>;
98                         hback-porch = <60>;
99                         hsync-len = <30>;
100                         hsync-active = <0>;
101                         vactive = <768>;
102                         vfront-porch = <8>;
103                         vback-porch = <12>;
104                         vsync-len = <12>;
105                         vsync-active = <0>;
106                 };
107
108                 ports {
109                         panel_in: port {
110                                 panel_in_edp: endpoint {
111                                         remote-endpoint = <&edp_out_panel>;
112                                 };
113                         };
114                 };
115         };
116
117         /* A non-regulated voltage from power supply or battery */
118         vccsys: vccsys {
119                 compatible = "regulator-fixed";
120                 regulator-name = "vccsys";
121                 regulator-boot-on;
122                 regulator-always-on;
123         };
124
125         vcc33_sys: vcc33-sys {
126                 vin-supply = <&vccsys>;
127         };
128
129         vcc_5v: vcc-5v {
130                 vin-supply = <&vccsys>;
131         };
132
133         /* This turns on vbus for host1 (dwc2) */
134         vcc5_host1: vcc5-host1-regulator {
135                 compatible = "regulator-fixed";
136                 enable-active-high;
137                 gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
138                 pinctrl-names = "default";
139                 pinctrl-0 = <&host1_pwr_en>;
140                 regulator-name = "vcc5_host1";
141                 regulator-always-on;
142                 regulator-boot-on;
143         };
144
145         /* This turns on vbus for otg for host mode (dwc2) */
146         vcc5v_otg: vcc5v-otg-regulator {
147                 compatible = "regulator-fixed";
148                 enable-active-high;
149                 gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
150                 pinctrl-names = "default";
151                 pinctrl-0 = <&usbotg_pwren_h>;
152                 regulator-name = "vcc5_host2";
153                 regulator-always-on;
154                 regulator-boot-on;
155         };
156 };
157
158 &edp {
159         status = "okay";
160
161         pinctrl-names = "default";
162         pinctrl-0 = <&edp_hpd>;
163
164         ports {
165                 edp_out: port@1 {
166                         reg = <1>;
167                         #address-cells = <1>;
168                         #size-cells = <0>;
169                         edp_out_panel: endpoint@0 {
170                                 reg = <0>;
171                                 remote-endpoint = <&panel_in_edp>;
172                         };
173                 };
174         };
175 };
176
177 &edp_phy {
178         status = "okay";
179 };
180
181 &pwm0 {
182         status = "okay";
183 };
184
185 &rk808 {
186         vcc11-supply = <&vcc_5v>;
187
188         regulators {
189                 vcc33_ccd: LDO_REG8 {
190                         regulator-name = "vcc33_ccd";
191                         regulator-always-on;
192                         regulator-boot-on;
193                         regulator-min-microvolt = <3300000>;
194                         regulator-max-microvolt = <3300000>;
195                         regulator-state-mem {
196                                 regulator-off-in-suspend;
197                         };
198                 };
199         };
200 };
201
202 &spi0 {
203         status = "okay";
204
205         cros_ec: ec@0 {
206                 compatible = "google,cros-ec-spi";
207                 reg = <0>;
208                 google,cros-ec-spi-pre-delay = <30>;
209                 interrupt-parent = <&gpio7>;
210                 interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
211                 pinctrl-names = "default";
212                 pinctrl-0 = <&ec_int>;
213                 spi-max-frequency = <3000000>;
214
215                 i2c_tunnel: i2c-tunnel {
216                         compatible = "google,cros-ec-i2c-tunnel";
217                         google,remote-bus = <0>;
218                         #address-cells = <1>;
219                         #size-cells = <0>;
220                 };
221         };
222 };
223
224 &i2c4 {
225         trackpad@15 {
226                 compatible = "elan,ekth3000";
227                 reg = <0x15>;
228                 interrupt-parent = <&gpio7>;
229                 interrupts = <RK_PA3 IRQ_TYPE_EDGE_FALLING>;
230                 pinctrl-names = "default";
231                 pinctrl-0 = <&trackpad_int>;
232                 vcc-supply = <&vcc33_io>;
233                 wakeup-source;
234         };
235 };
236
237 &vopl {
238         status = "okay";
239 };
240
241 &vopl_mmu {
242         status = "okay";
243 };
244
245 &pinctrl {
246         pinctrl-0 = <
247                 /* Common for sleep and wake, but no owners */
248                 &ddr0_retention
249                 &ddrio_pwroff
250                 &global_pwroff
251
252                 /* Wake only */
253                 &suspend_l_wake
254                 &bt_dev_wake_awake
255         >;
256         pinctrl-1 = <
257                 /* Common for sleep and wake, but no owners */
258                 &ddr0_retention
259                 &ddrio_pwroff
260                 &global_pwroff
261
262                 /* Sleep only */
263                 &suspend_l_sleep
264                 &bt_dev_wake_sleep
265         >;
266
267         backlight {
268                 bl_en: bl-en {
269                         rockchip,pins = <7 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
270                 };
271         };
272
273         buttons {
274                 ap_lid_int_l: ap-lid-int-l {
275                         rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
276                 };
277         };
278
279         charger {
280                 ac_present_ap: ac-present-ap {
281                         rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
282                 };
283         };
284
285         cros-ec {
286                 ec_int: ec-int {
287                         rockchip,pins = <7 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
288                 };
289         };
290
291         suspend {
292                 suspend_l_wake: suspend-l-wake {
293                         rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_output_low>;
294                 };
295
296                 suspend_l_sleep: suspend-l-sleep {
297                         rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_output_high>;
298                 };
299         };
300
301         trackpad {
302                 trackpad_int: trackpad-int {
303                         rockchip,pins = <7 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
304                 };
305         };
306
307         usb-host {
308                 host1_pwr_en: host1-pwr-en {
309                         rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
310                 };
311
312                 usbotg_pwren_h: usbotg-pwren-h {
313                         rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
314                 };
315         };
316 };
317
318 #include "cros-ec-keyboard.dtsi"