Merge branch 'master' of git://git.denx.de/u-boot-sunxi
[platform/kernel/u-boot.git] / arch / x86 / dts / chromebook_link.dts
1 /dts-v1/;
2
3 #include <dt-bindings/gpio/x86-gpio.h>
4 #include <dt-bindings/sound/azalia.h>
5 #include <pci_ids.h>
6
7 /include/ "skeleton.dtsi"
8 /include/ "keyboard.dtsi"
9 /include/ "serial.dtsi"
10 /include/ "reset.dtsi"
11 /include/ "rtc.dtsi"
12 /include/ "tsc_timer.dtsi"
13
14 / {
15         model = "Google Link";
16         compatible = "google,link", "intel,celeron-ivybridge";
17
18         aliases {
19                 spi0 = &spi;
20                 usb0 = &usb_0;
21                 usb1 = &usb_1;
22         };
23
24         config {
25                silent_console = <0>;
26         };
27
28         cpus {
29                 #address-cells = <1>;
30                 #size-cells = <0>;
31
32                 cpu@0 {
33                         device_type = "cpu";
34                         compatible = "intel,core-gen3";
35                         reg = <0>;
36                         intel,apic-id = <0>;
37                 };
38
39                 cpu@1 {
40                         device_type = "cpu";
41                         compatible = "intel,core-gen3";
42                         reg = <1>;
43                         intel,apic-id = <1>;
44                 };
45
46                 cpu@2 {
47                         device_type = "cpu";
48                         compatible = "intel,core-gen3";
49                         reg = <2>;
50                         intel,apic-id = <2>;
51                 };
52
53                 cpu@3 {
54                         device_type = "cpu";
55                         compatible = "intel,core-gen3";
56                         reg = <3>;
57                         intel,apic-id = <3>;
58                 };
59
60         };
61
62         chosen {
63                 stdout-path = "/serial";
64         };
65
66         keyboard {
67                 intel,duplicate-por;
68         };
69
70         pch_pinctrl {
71                 compatible = "intel,x86-pinctrl";
72                 u-boot,dm-pre-reloc;
73                 reg = <0 0>;
74
75                 gpio_a0 {
76                         gpio-offset = <0 0>;
77                         mode-gpio;
78                         direction = <PIN_INPUT>;
79                 };
80
81                 gpio_a1 {
82                         gpio-offset = <0>;
83                         mode-gpio;
84                         direction = <PIN_OUTPUT>;
85                         output-value = <1>;
86                 };
87
88                 gpio_a3 {
89                         gpio-offset = <0 3>;
90                         mode-gpio;
91                         direction = <PIN_INPUT>;
92                 };
93
94                 gpio_a5 {
95                         gpio-offset = <0 5>;
96                         mode-gpio;
97                         direction = <PIN_INPUT>;
98                 };
99
100                 gpio_a6 {
101                         gpio-offset = <0 6>;
102                         mode-gpio;
103                         direction = <PIN_OUTPUT>;
104                         output-value = <1>;
105                 };
106
107                 gpio_a7 {
108                         gpio-offset = <0 7>;
109                         mode-gpio;
110                         direction = <PIN_INPUT>;
111                         invert;
112                 };
113
114                 gpio_a8 {
115                         gpio-offset = <0 8>;
116                         mode-gpio;
117                         direction = <PIN_INPUT>;
118                         invert;
119                 };
120
121                 gpio_a9 {
122                         gpio-offset = <0 9>;
123                         mode-gpio;
124                         direction = <PIN_INPUT>;
125                 };
126
127                 gpio_a10 {
128                         u-boot,dm-pre-reloc;
129                         gpio-offset = <0 10>;
130                         mode-gpio;
131                         direction = <PIN_INPUT>;
132                 };
133
134                 gpio_a11 {
135                         gpio-offset = <0 11>;
136                         mode-gpio;
137                         direction = <PIN_INPUT>;
138                 };
139
140                 gpio_a12 {
141                         gpio-offset = <0 12>;
142                         mode-gpio;
143                         direction = <PIN_INPUT>;
144                         invert;
145                 };
146
147                 gpio_a14 {
148                         gpio-offset = <0 14>;
149                         mode-gpio;
150                         direction = <PIN_INPUT>;
151                         invert;
152                 };
153
154                 gpio_a15 {
155                         gpio-offset = <0 15>;
156                         mode-gpio;
157                         direction = <PIN_INPUT>;
158                         invert;
159                 };
160
161                 gpio_a21 {
162                         gpio-offset = <0 21>;
163                         mode-gpio;
164                         direction = <PIN_INPUT>;
165                 };
166
167                 gpio_a24 {
168                         gpio-offset = <0 24>;
169                         mode-gpio;
170                         output-value = <0>;
171                         direction = <PIN_OUTPUT>;
172                 };
173
174                 gpio_a28 {
175                         gpio-offset = <0 28>;
176                         mode-gpio;
177                         direction = <PIN_INPUT>;
178                 };
179
180                 gpio_b4 {
181                         gpio-offset = <0x30 4>;
182                         mode-gpio;
183                         direction = <PIN_OUTPUT>;
184                         output-value = <1>;
185                 };
186
187                 gpio_b9 {
188                         u-boot,dm-pre-reloc;
189                         gpio-offset = <0x30 9>;
190                         mode-gpio;
191                         direction = <PIN_INPUT>;
192                 };
193
194                 gpio_b10 {
195                         u-boot,dm-pre-reloc;
196                         gpio-offset = <0x30 10>;
197                         mode-gpio;
198                         direction = <PIN_INPUT>;
199                 };
200
201                 gpio_b11 {
202                         u-boot,dm-pre-reloc;
203                         gpio-offset = <0x30 11>;
204                         mode-gpio;
205                         direction = <PIN_INPUT>;
206                 };
207
208                 gpio_b25 {
209                         gpio-offset = <0x30 25>;
210                         mode-gpio;
211                         direction = <PIN_INPUT>;
212                 };
213
214                 gpio_b28 {
215                         gpio-offset = <0x30 28>;
216                         mode-gpio;
217                         direction = <PIN_OUTPUT>;
218                         output-value = <1>;
219                 };
220
221         };
222
223         pci {
224                 compatible = "pci-x86";
225                 #address-cells = <3>;
226                 #size-cells = <2>;
227                 u-boot,dm-pre-reloc;
228                 ranges = <0x02000000 0x0 0xe0000000 0xe0000000 0 0x10000000
229                         0x42000000 0x0 0xd0000000 0xd0000000 0 0x10000000
230                         0x01000000 0x0 0x1000 0x1000 0 0xefff>;
231
232                 northbridge@0,0 {
233                         reg = <0x00000000 0 0 0 0>;
234                         u-boot,dm-pre-reloc;
235                         compatible = "intel,bd82x6x-northbridge";
236                         board-id-gpios = <&gpio_b 9 0>, <&gpio_b 10 0>,
237                                         <&gpio_b 11 0>, <&gpio_a 10 0>;
238                         spd {
239                                 u-boot,dm-pre-reloc;
240                                 #address-cells = <1>;
241                                 #size-cells = <0>;
242                                 elpida_4Gb_1600_x16 {
243                                         u-boot,dm-pre-reloc;
244                                         reg = <0>;
245                                         data = [92 10 0b 03 04 19 02 02
246                                                 03 52 01 08 0a 00 fe 00
247                                                 69 78 69 3c 69 11 18 81
248                                                 20 08 3c 3c 01 40 83 81
249                                                 00 00 00 00 00 00 00 00
250                                                 00 00 00 00 00 00 00 00
251                                                 00 00 00 00 00 00 00 00
252                                                 00 00 00 00 0f 11 42 00
253                                                 00 00 00 00 00 00 00 00
254                                                 00 00 00 00 00 00 00 00
255                                                 00 00 00 00 00 00 00 00
256                                                 00 00 00 00 00 00 00 00
257                                                 00 00 00 00 00 00 00 00
258                                                 00 00 00 00 00 00 00 00
259                                                 00 00 00 00 00 02 fe 00
260                                                 11 52 00 00 00 07 7f 37
261                                                 45 42 4a 32 30 55 47 36
262                                                 45 42 55 30 2d 47 4e 2d
263                                                 46 20 30 20 02 fe 00 00
264                                                 00 00 00 00 00 00 00 00
265                                                 00 00 00 00 00 00 00 00
266                                                 00 00 00 00 00 00 00 00
267                                                 00 00 00 00 00 00 00 00
268                                                 00 00 00 00 00 00 00 00
269                                                 00 00 00 00 00 00 00 00
270                                                 00 00 00 00 00 00 00 00
271                                                 00 00 00 00 00 00 00 00
272                                                 00 00 00 00 00 00 00 00
273                                                 00 00 00 00 00 00 00 00
274                                                 00 00 00 00 00 00 00 00
275                                                 00 00 00 00 00 00 00 00
276                                                 00 00 00 00 00 00 00 00];
277                                 };
278                                 samsung_4Gb_1600_1.35v_x16 {
279                                         u-boot,dm-pre-reloc;
280                                         reg = <1>;
281                                         data = [92 11 0b 03 04 19 02 02
282                                                 03 11 01 08 0a 00 fe 00
283                                                 69 78 69 3c 69 11 18 81
284                                                 f0 0a 3c 3c 01 40 83 01
285                                                 00 80 00 00 00 00 00 00
286                                                 00 00 00 00 00 00 00 00
287                                                 00 00 00 00 00 00 00 00
288                                                 00 00 00 00 0f 11 02 00
289                                                 00 00 00 00 00 00 00 00
290                                                 00 00 00 00 00 00 00 00
291                                                 00 00 00 00 00 00 00 00
292                                                 00 00 00 00 00 00 00 00
293                                                 00 00 00 00 00 00 00 00
294                                                 00 00 00 00 00 00 00 00
295                                                 00 00 00 00 00 80 ce 01
296                                                 00 00 00 00 00 00 6a 04
297                                                 4d 34 37 31 42 35 36 37
298                                                 34 42 48 30 2d 59 4b 30
299                                                 20 20 00 00 80 ce 00 00
300                                                 00 00 00 00 00 00 00 00
301                                                 00 00 00 00 00 00 00 00
302                                                 00 00 00 00 00 00 00 00
303                                                 00 00 00 00 00 00 00 00
304                                                 00 00 00 00 00 00 00 00
305                                                 00 00 00 00 00 00 00 00
306                                                 00 00 00 00 00 00 00 00
307                                                 00 00 00 00 00 00 00 00
308                                                 00 00 00 00 00 00 00 00
309                                                 00 00 00 00 00 00 00 00
310                                                 00 00 00 00 00 00 00 00
311                                                 00 00 00 00 00 00 00 00
312                                                 00 00 00 00 00 00 00 00];
313                                         };
314                                 micron_4Gb_1600_1.35v_x16 {
315                                         reg = <2>;
316                                         data = [92 11 0b 03 04 19 02 02
317                                                 03 11 01 08 0a 00 fe 00
318                                                 69 78 69 3c 69 11 18 81
319                                                 20 08 3c 3c 01 40 83 05
320                                                 00 00 00 00 00 00 00 00
321                                                 00 00 00 00 00 00 00 00
322                                                 00 00 00 00 00 00 00 00
323                                                 00 00 00 00 0f 01 02 00
324                                                 00 00 00 00 00 00 00 00
325                                                 00 00 00 00 00 00 00 00
326                                                 00 00 00 00 00 00 00 00
327                                                 00 00 00 00 00 00 00 00
328                                                 00 00 00 00 00 00 00 00
329                                                 00 00 00 00 00 00 00 00
330                                                 00 00 00 00 00 80 2c 00
331                                                 00 00 00 00 00 00 ad 75
332                                                 34 4b 54 46 32 35 36 36
333                                                 34 48 5a 2d 31 47 36 45
334                                                 31 20 45 31 80 2c 00 00
335                                                 00 00 00 00 00 00 00 00
336                                                 00 00 00 00 00 00 00 00
337                                                 00 00 00 00 00 00 00 00
338                                                 ff ff ff ff ff ff ff ff
339                                                 ff ff ff ff ff ff ff ff
340                                                 ff ff ff ff ff ff ff ff
341                                                 ff ff ff ff ff ff ff ff
342                                                 ff ff ff ff ff ff ff ff
343                                                 ff ff ff ff ff ff ff ff
344                                                 ff ff ff ff ff ff ff ff
345                                                 ff ff ff ff ff ff ff ff
346                                                 ff ff ff ff ff ff ff ff
347                                                 ff ff ff ff ff ff ff ff];
348                                 };
349                         };
350                 };
351
352                 gma@2,0 {
353                         reg = <0x00001000 0 0 0 0>;
354                         compatible = "intel,gma";
355                         intel,dp_hotplug = <0 0 0x06>;
356                         intel,panel-port-select = <1>;
357                         intel,panel-power-cycle-delay = <6>;
358                         intel,panel-power-up-delay = <2000>;
359                         intel,panel-power-down-delay = <500>;
360                         intel,panel-power-backlight-on-delay = <2000>;
361                         intel,panel-power-backlight-off-delay = <2000>;
362                         intel,cpu-backlight = <0x00000200>;
363                         intel,pch-backlight = <0x04000000>;
364                 };
365
366                 me@16,0 {
367                         reg = <0x0000b000 0 0 0 0>;
368                         compatible = "intel,me";
369                         u-boot,dm-pre-reloc;
370                 };
371
372                 usb_1: usb@1a,0 {
373                         reg = <0x0000d000 0 0 0 0>;
374                         compatible = "ehci-pci";
375                 };
376
377                 hda@1b,0 {
378                         reg = <0x0000d800 0 0 0 0>;
379                         compatible = "intel,bd82x6x-hda";
380
381                         /* These correspond to the Intel HDA specification */
382                         beep-verbs = <
383                                 0x00170500      /* power up codec */
384                                 0x00270500      /* power up DAC */
385                                 0x00b70500      /* power up speaker */
386                                 0x00b70740      /* enable speaker out */
387                                 0x00b78d00      /* enable EAPD pin */
388                                 0x00b70c02      /* set EAPD pin */
389                                 0x0143b013>;    /* beep volume */
390
391                         codecs {
392                                 creative_codec: creative-ca0132 {
393                                         vendor-id = <PCI_VENDOR_ID_CREATIVE>;
394                                         device-id = <PCI_DEVICE_ID_CREATIVE_CA01322>;
395                                 };
396                                 intel_hdmi: hdmi {
397                                         vendor-id = <PCI_VENDOR_ID_INTEL>;
398                                         device-id = <PCI_DEVICE_ID_INTEL_COUGARPOINT_HDMI>;
399                                 };
400                         };
401                 };
402
403                 usb_0: usb@1d,0 {
404                         reg = <0x0000e800 0 0 0 0>;
405                         compatible = "ehci-pci";
406                 };
407
408                 pch@1f,0 {
409                         reg = <0x0000f800 0 0 0 0>;
410                         compatible = "intel,bd82x6x", "intel,pch9";
411                         u-boot,dm-pre-reloc;
412                         #address-cells = <1>;
413                         #size-cells = <1>;
414                         intel,pirq-routing = <0x8b 0x8a 0x8b 0x8b
415                                                 0x80 0x80 0x80 0x80>;
416                         intel,gpi-routing = <0 0 0 0 0 0 0 2
417                                                 1 0 0 0 0 0 0 0>;
418                         /* Enable EC SMI source */
419                         intel,alt-gp-smi-enable = <0x0100>;
420
421                         spi: spi {
422                                 #address-cells = <1>;
423                                 #size-cells = <0>;
424                                 compatible = "intel,ich9-spi";
425                                 u-boot,dm-pre-reloc;
426                                 spi-flash@0 {
427                                         #size-cells = <1>;
428                                         #address-cells = <1>;
429                                         u-boot,dm-pre-reloc;
430                                         reg = <0>;
431                                         compatible = "winbond,w25q64",
432                                                         "spi-flash";
433                                         memory-map = <0xff800000 0x00800000>;
434                                         rw-mrc-cache {
435                                                 label = "rw-mrc-cache";
436                                                 reg = <0x003e0000 0x00010000>;
437                                                 u-boot,dm-pre-reloc;
438                                         };
439                                 };
440                         };
441
442                         gpio_a: gpioa {
443                                 compatible = "intel,ich6-gpio";
444                                 u-boot,dm-pre-reloc;
445                                 #gpio-cells = <2>;
446                                 gpio-controller;
447                                 reg = <0 0x10>;
448                                 bank-name = "A";
449                         };
450
451                         gpio_b: gpiob {
452                                 compatible = "intel,ich6-gpio";
453                                 u-boot,dm-pre-reloc;
454                                 #gpio-cells = <2>;
455                                 gpio-controller;
456                                 reg = <0x30 0x10>;
457                                 bank-name = "B";
458                         };
459
460                         gpio_c: gpioc {
461                                 compatible = "intel,ich6-gpio";
462                                 u-boot,dm-pre-reloc;
463                                 #gpio-cells = <2>;
464                                 gpio-controller;
465                                 reg = <0x40 0x10>;
466                                 bank-name = "C";
467                         };
468
469                         lpc {
470                                 compatible = "intel,bd82x6x-lpc";
471                                 #address-cells = <1>;
472                                 #size-cells = <0>;
473                                 u-boot,dm-pre-reloc;
474                                 intel,gen-dec = <0x800 0xfc 0x900 0xfc>;
475                                 cros-ec@200 {
476                                         compatible = "google,cros-ec";
477                                         reg = <0x204 1 0x200 1 0x880 0x80>;
478
479                                         /*
480                                          * Describes the flash memory within
481                                          * the EC
482                                          */
483                                         #address-cells = <1>;
484                                         #size-cells = <1>;
485                                         flash@8000000 {
486                                                 reg = <0x08000000 0x20000>;
487                                                 erase-value = <0xff>;
488                                         };
489                                 };
490                         };
491                 };
492
493                 sata@1f,2 {
494                         compatible = "intel,pantherpoint-ahci";
495                         reg = <0x0000fa00 0 0 0 0>;
496                         u-boot,dm-pre-reloc;
497                         intel,sata-mode = "ahci";
498                         intel,sata-port-map = <1>;
499                         intel,sata-port0-gen3-tx = <0x00880a7f>;
500                 };
501
502                 smbus: smbus@1f,3 {
503                         compatible = "intel,ich-i2c";
504                         reg = <0x0000fb00 0 0 0 0>;
505                         u-boot,dm-pre-reloc;
506                 };
507         };
508
509         tpm {
510                 reg = <0xfed40000 0x5000>;
511                 compatible = "infineon,slb9635lpc";
512         };
513
514         microcode {
515                 u-boot,dm-pre-reloc;
516                 update@0 {
517                         u-boot,dm-pre-reloc;
518 #include "microcode/m12306a9_0000001b.dtsi"
519                 };
520         };
521
522 };
523
524 &creative_codec {
525         verbs =  <
526                 /**
527                  * Malcolm Setup. These correspond to the Intel HDA
528                  * specification.
529                  */
530                 0x01570d09 0x01570c23 0x01570a01 0x01570df0
531                 0x01570efe 0x01570775 0x015707d3 0x01570709
532                 0x01570753 0x015707d4 0x015707ef 0x01570775
533                 0x015707d3 0x01570709 0x01570702 0x01570737
534                 0x01570778 0x01553cce 0x015575c9 0x01553dce
535                 0x0155b7c9 0x01570de8 0x01570efe 0x01570702
536                 0x01570768 0x01570762 0x01553ace 0x015546c9
537                 0x01553bce 0x0155e8c9 0x01570d49 0x01570c88
538                 0x01570d20 0x01570e19 0x01570700 0x01571a05
539                 0x01571b29 0x01571a04 0x01571b29 0x01570a01
540
541                 /* Pin Widget Verb Table */
542
543                 /* NID 0x01, HDA Codec Subsystem ID Verb Table: 0x144dc0c2 */
544                 AZALIA_SUBVENDOR(0x0, 0x144dc0c2)
545
546                 /*
547                  * Pin Complex (NID 0x0B)  Port-G Analog Unknown
548                  * Speaker at Int N/A
549                  */
550                 AZALIA_PIN_CFG(0x0, 0x0b, 0x901700f0)
551
552                 /* Pin Complex (NID 0x0C)  N/C */
553                 AZALIA_PIN_CFG(0x0, 0x0c, 0x70f000f0)
554
555                 /* Pin Complex (NID 0x0D)  N/C */
556                 AZALIA_PIN_CFG(0x0, 0x0d, 0x70f000f0)
557
558                 /* Pin Complex (NID 0x0E)  N/C */
559                 AZALIA_PIN_CFG(0x0, 0x0e, 0x70f000f0)
560
561                 /* Pin Complex (NID 0x0F)  N/C */
562                 AZALIA_PIN_CFG(0x0, 0x0f, 0x70f000f0)
563
564                 /* Pin Complex (NID 0x10) Port-D 1/8 Black HP Out at Ext Left */
565                 AZALIA_PIN_CFG(0x0, 0x10, 0x032110f0)
566
567                 /* Pin Complex (NID 0x11) Port-B Click Mic */
568                 AZALIA_PIN_CFG(0x0, 0x11, 0x90a700f0)
569
570                 /* Pin Complex (NID 0x12) Port-C Combo Jack Mic or D-Mic */
571                 AZALIA_PIN_CFG(0x0, 0x12, 0x03a110f0)
572
573                 /* Pin Complex (NID 0x13) What you hear */
574                 AZALIA_PIN_CFG(0x0, 0x13, 0x90d600f0)>;
575 };
576
577 &intel_hdmi {
578         verbs = <
579                 /* NID 0x01, HDA Codec Subsystem ID Verb Table: 0x80860101 */
580                 AZALIA_SUBVENDOR(0x3, 0x80860101)
581
582                 /* Pin Complex (NID 0x05) Digital Out at Int HDMI */
583                 AZALIA_PIN_CFG(0x3, 0x05, 0x18560010)
584
585                 /* Pin Complex (NID 0x06) Digital Out at Int HDMI */
586                 AZALIA_PIN_CFG(0x3, 0x06, 0x18560020)
587
588                 /* Pin Complex (NID 0x07) Digital Out at Int HDMI */
589                 AZALIA_PIN_CFG(0x3, 0x07, 0x18560030)>;
590 };