x86/efi: Enforce CONFIG_RELOCATABLE for EFI boot stub
[linux/fpc-iii.git] / arch / arm / boot / dts / tegra30-cardhu.dtsi
blobe19dbf238e5c8498878dc56492018585190830ce
1 #include "tegra30.dtsi"
3 /**
4  * This file contains common DT entry for all fab version of Cardhu.
5  * There is multiple fab version of Cardhu starting from A01 to A07.
6  * Cardhu fab version A01 and A03 are not supported. Cardhu fab version
7  * A02 will have different sets of GPIOs for fixed regulator compare to
8  * Cardhu fab version A04. The Cardhu fab version A05, A06, A07 are
9  * compatible with fab version A04. Based on Cardhu fab version, the
10  * related dts file need to be chosen like for Cardhu fab version A02,
11  * use tegra30-cardhu-a02.dts, Cardhu fab version A04 and later, use
12  * tegra30-cardhu-a04.dts.
13  * The identification of board is done in two ways, by looking the sticker
14  * on PCB and by reading board id eeprom.
15  * The stciker will have number like 600-81291-1000-002 C.3. In this 4th
16  * number is the fab version like here it is 002 and hence fab version A02.
17  * The (downstream internal) U-Boot of Cardhu display the board-id as
18  * follows:
19  * BoardID: 0C5B, SKU: 0A01, Fab: 02, Rev: 45.00
20  * In this Fab version is 02 i.e. A02.
21  * The BoardID I2C eeprom is interfaced through i2c5 (pwr_i2c address 0x56).
22  * The location 0x8 of this eeprom contains the Fab version. It is 1 byte
23  * wide.
24  */
26 / {
27         model = "NVIDIA Tegra30 Cardhu evaluation board";
28         compatible = "nvidia,cardhu", "nvidia,tegra30";
30         memory {
31                 reg = <0x80000000 0x40000000>;
32         };
34         pcie-controller {
35                 status = "okay";
36                 pex-clk-supply = <&pex_hvdd_3v3_reg>;
37                 vdd-supply = <&ldo1_reg>;
38                 avdd-supply = <&ldo2_reg>;
40                 pci@1,0 {
41                         nvidia,num-lanes = <4>;
42                 };
44                 pci@2,0 {
45                         nvidia,num-lanes = <1>;
46                 };
48                 pci@3,0 {
49                         status = "okay";
50                         nvidia,num-lanes = <1>;
51                 };
52         };
54         pinmux {
55                 pinctrl-names = "default";
56                 pinctrl-0 = <&state_default>;
58                 state_default: pinmux {
59                         sdmmc1_clk_pz0 {
60                                 nvidia,pins = "sdmmc1_clk_pz0";
61                                 nvidia,function = "sdmmc1";
62                                 nvidia,pull = <0>;
63                                 nvidia,tristate = <0>;
64                         };
65                         sdmmc1_cmd_pz1 {
66                                 nvidia,pins =   "sdmmc1_cmd_pz1",
67                                                 "sdmmc1_dat0_py7",
68                                                 "sdmmc1_dat1_py6",
69                                                 "sdmmc1_dat2_py5",
70                                                 "sdmmc1_dat3_py4";
71                                 nvidia,function = "sdmmc1";
72                                 nvidia,pull = <2>;
73                                 nvidia,tristate = <0>;
74                         };
75                         sdmmc3_clk_pa6 {
76                                 nvidia,pins = "sdmmc3_clk_pa6";
77                                 nvidia,function = "sdmmc3";
78                                 nvidia,pull = <0>;
79                                 nvidia,tristate = <0>;
80                         };
81                         sdmmc3_cmd_pa7 {
82                                 nvidia,pins =   "sdmmc3_cmd_pa7",
83                                                 "sdmmc3_dat0_pb7",
84                                                 "sdmmc3_dat1_pb6",
85                                                 "sdmmc3_dat2_pb5",
86                                                 "sdmmc3_dat3_pb4";
87                                 nvidia,function = "sdmmc3";
88                                 nvidia,pull = <2>;
89                                 nvidia,tristate = <0>;
90                         };
91                         sdmmc4_clk_pcc4 {
92                                 nvidia,pins =   "sdmmc4_clk_pcc4",
93                                                 "sdmmc4_rst_n_pcc3";
94                                 nvidia,function = "sdmmc4";
95                                 nvidia,pull = <0>;
96                                 nvidia,tristate = <0>;
97                         };
98                         sdmmc4_dat0_paa0 {
99                                 nvidia,pins =   "sdmmc4_dat0_paa0",
100                                                 "sdmmc4_dat1_paa1",
101                                                 "sdmmc4_dat2_paa2",
102                                                 "sdmmc4_dat3_paa3",
103                                                 "sdmmc4_dat4_paa4",
104                                                 "sdmmc4_dat5_paa5",
105                                                 "sdmmc4_dat6_paa6",
106                                                 "sdmmc4_dat7_paa7";
107                                 nvidia,function = "sdmmc4";
108                                 nvidia,pull = <2>;
109                                 nvidia,tristate = <0>;
110                         };
111                         dap2_fs_pa2 {
112                                 nvidia,pins =   "dap2_fs_pa2",
113                                                 "dap2_sclk_pa3",
114                                                 "dap2_din_pa4",
115                                                 "dap2_dout_pa5";
116                                 nvidia,function = "i2s1";
117                                 nvidia,pull = <0>;
118                                 nvidia,tristate = <0>;
119                         };
120                         sdio3 {
121                                 nvidia,pins = "drive_sdio3";
122                                 nvidia,high-speed-mode = <0>;
123                                 nvidia,schmitt = <0>;
124                                 nvidia,pull-down-strength = <46>;
125                                 nvidia,pull-up-strength = <42>;
126                                 nvidia,slew-rate-rising = <1>;
127                                 nvidia,slew-rate-falling = <1>;
128                         };
129                         uart3_txd_pw6 {
130                                 nvidia,pins =   "uart3_txd_pw6",
131                                                 "uart3_cts_n_pa1",
132                                                 "uart3_rts_n_pc0",
133                                                 "uart3_rxd_pw7";
134                                 nvidia,function = "uartc";
135                                 nvidia,pull = <0>;
136                                 nvidia,tristate = <0>;
137                         };
138                 };
139         };
141         serial@70006000 {
142                 status = "okay";
143         };
145         serial@70006200 {
146                 compatible = "nvidia,tegra30-hsuart";
147                 status = "okay";
148         };
150         i2c@7000c000 {
151                 status = "okay";
152                 clock-frequency = <100000>;
153         };
155         i2c@7000c400 {
156                 status = "okay";
157                 clock-frequency = <100000>;
158         };
160         i2c@7000c500 {
161                 status = "okay";
162                 clock-frequency = <100000>;
164                 /* ALS and Proximity sensor */
165                 isl29028@44 {
166                         compatible = "isil,isl29028";
167                         reg = <0x44>;
168                         interrupt-parent = <&gpio>;
169                         interrupts = <TEGRA_GPIO(L, 0) IRQ_TYPE_LEVEL_HIGH>;
170                 };
171         };
173         i2c@7000c700 {
174                 status = "okay";
175                 clock-frequency = <100000>;
176         };
178         i2c@7000d000 {
179                 status = "okay";
180                 clock-frequency = <100000>;
182                 wm8903: wm8903@1a {
183                         compatible = "wlf,wm8903";
184                         reg = <0x1a>;
185                         interrupt-parent = <&gpio>;
186                         interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_HIGH>;
188                         gpio-controller;
189                         #gpio-cells = <2>;
191                         micdet-cfg = <0>;
192                         micdet-delay = <100>;
193                         gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
194                 };
196                 pmic: tps65911@2d {
197                         compatible = "ti,tps65911";
198                         reg = <0x2d>;
200                         interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
201                         #interrupt-cells = <2>;
202                         interrupt-controller;
204                         ti,system-power-controller;
206                         #gpio-cells = <2>;
207                         gpio-controller;
209                         vcc1-supply = <&vdd_ac_bat_reg>;
210                         vcc2-supply = <&vdd_ac_bat_reg>;
211                         vcc3-supply = <&vio_reg>;
212                         vcc4-supply = <&vdd_5v0_reg>;
213                         vcc5-supply = <&vdd_ac_bat_reg>;
214                         vcc6-supply = <&vdd2_reg>;
215                         vcc7-supply = <&vdd_ac_bat_reg>;
216                         vccio-supply = <&vdd_ac_bat_reg>;
218                         regulators {
219                                 vdd1_reg: vdd1 {
220                                         regulator-name = "vddio_ddr_1v2";
221                                         regulator-min-microvolt = <1200000>;
222                                         regulator-max-microvolt = <1200000>;
223                                         regulator-always-on;
224                                 };
226                                 vdd2_reg: vdd2 {
227                                         regulator-name = "vdd_1v5_gen";
228                                         regulator-min-microvolt = <1500000>;
229                                         regulator-max-microvolt = <1500000>;
230                                         regulator-always-on;
231                                 };
233                                 vddctrl_reg: vddctrl {
234                                         regulator-name = "vdd_cpu,vdd_sys";
235                                         regulator-min-microvolt = <1000000>;
236                                         regulator-max-microvolt = <1000000>;
237                                         regulator-always-on;
238                                 };
240                                 vio_reg: vio {
241                                         regulator-name = "vdd_1v8_gen";
242                                         regulator-min-microvolt = <1800000>;
243                                         regulator-max-microvolt = <1800000>;
244                                         regulator-always-on;
245                                 };
247                                 ldo1_reg: ldo1 {
248                                         regulator-name = "vdd_pexa,vdd_pexb";
249                                         regulator-min-microvolt = <1050000>;
250                                         regulator-max-microvolt = <1050000>;
251                                 };
253                                 ldo2_reg: ldo2 {
254                                         regulator-name = "vdd_sata,avdd_plle";
255                                         regulator-min-microvolt = <1050000>;
256                                         regulator-max-microvolt = <1050000>;
257                                 };
259                                 /* LDO3 is not connected to anything */
261                                 ldo4_reg: ldo4 {
262                                         regulator-name = "vdd_rtc";
263                                         regulator-min-microvolt = <1200000>;
264                                         regulator-max-microvolt = <1200000>;
265                                         regulator-always-on;
266                                 };
268                                 ldo5_reg: ldo5 {
269                                         regulator-name = "vddio_sdmmc,avdd_vdac";
270                                         regulator-min-microvolt = <3300000>;
271                                         regulator-max-microvolt = <3300000>;
272                                         regulator-always-on;
273                                 };
275                                 ldo6_reg: ldo6 {
276                                         regulator-name = "avdd_dsi_csi,pwrdet_mipi";
277                                         regulator-min-microvolt = <1200000>;
278                                         regulator-max-microvolt = <1200000>;
279                                 };
281                                 ldo7_reg: ldo7 {
282                                         regulator-name = "vdd_pllm,x,u,a_p_c_s";
283                                         regulator-min-microvolt = <1200000>;
284                                         regulator-max-microvolt = <1200000>;
285                                         regulator-always-on;
286                                 };
288                                 ldo8_reg: ldo8 {
289                                         regulator-name = "vdd_ddr_hs";
290                                         regulator-min-microvolt = <1000000>;
291                                         regulator-max-microvolt = <1000000>;
292                                         regulator-always-on;
293                                 };
294                         };
295                 };
297                 nct1008 {
298                         compatible = "onnn,nct1008";
299                         reg = <0x4c>;
300                         interrupt-parent = <&gpio>;
301                         interrupts = <TEGRA_GPIO(CC, 2) IRQ_TYPE_LEVEL_LOW>;
302                 };
304                 tps62361 {
305                         compatible = "ti,tps62361";
306                         reg = <0x60>;
308                         regulator-name = "tps62361-vout";
309                         regulator-min-microvolt = <500000>;
310                         regulator-max-microvolt = <1500000>;
311                         regulator-boot-on;
312                         regulator-always-on;
313                         ti,vsel0-state-high;
314                         ti,vsel1-state-high;
315                 };
316         };
318         spi@7000da00 {
319                 status = "okay";
320                 spi-max-frequency = <25000000>;
321                 spi-flash@1 {
322                         compatible = "winbond,w25q32";
323                         reg = <1>;
324                         spi-max-frequency = <20000000>;
325                 };
326         };
328         ahub {
329                 i2s@70080400 {
330                         status = "okay";
331                 };
332         };
334         pmc {
335                 status = "okay";
336                 nvidia,invert-interrupt;
337                 nvidia,suspend-mode = <1>;
338                 nvidia,cpu-pwr-good-time = <2000>;
339                 nvidia,cpu-pwr-off-time = <200>;
340                 nvidia,core-pwr-good-time = <3845 3845>;
341                 nvidia,core-pwr-off-time = <0>;
342                 nvidia,core-power-req-active-high;
343                 nvidia,sys-clock-req-active-high;
344         };
346         sdhci@78000000 {
347                 status = "okay";
348                 cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
349                 wp-gpios = <&gpio TEGRA_GPIO(T, 3) GPIO_ACTIVE_HIGH>;
350                 power-gpios = <&gpio TEGRA_GPIO(D, 7) GPIO_ACTIVE_HIGH>;
351                 bus-width = <4>;
352         };
354         sdhci@78000600 {
355                 status = "okay";
356                 bus-width = <8>;
357                 non-removable;
358         };
360         usb@7d008000 {
361                 status = "okay";
362         };
364         usb-phy@7d008000 {
365                 vbus-supply = <&usb3_vbus_reg>;
366                 status = "okay";
367         };
369         clocks {
370                 compatible = "simple-bus";
371                 #address-cells = <1>;
372                 #size-cells = <0>;
374                 clk32k_in: clock {
375                         compatible = "fixed-clock";
376                         reg=<0>;
377                         #clock-cells = <0>;
378                         clock-frequency = <32768>;
379                 };
380         };
382         regulators {
383                 compatible = "simple-bus";
384                 #address-cells = <1>;
385                 #size-cells = <0>;
387                 vdd_ac_bat_reg: regulator@0 {
388                         compatible = "regulator-fixed";
389                         reg = <0>;
390                         regulator-name = "vdd_ac_bat";
391                         regulator-min-microvolt = <5000000>;
392                         regulator-max-microvolt = <5000000>;
393                         regulator-always-on;
394                 };
396                 cam_1v8_reg: regulator@1 {
397                         compatible = "regulator-fixed";
398                         reg = <1>;
399                         regulator-name = "cam_1v8";
400                         regulator-min-microvolt = <1800000>;
401                         regulator-max-microvolt = <1800000>;
402                         enable-active-high;
403                         gpio = <&gpio TEGRA_GPIO(BB, 4) GPIO_ACTIVE_HIGH>;
404                         vin-supply = <&vio_reg>;
405                 };
407                 cp_5v_reg: regulator@2 {
408                         compatible = "regulator-fixed";
409                         reg = <2>;
410                         regulator-name = "cp_5v";
411                         regulator-min-microvolt = <5000000>;
412                         regulator-max-microvolt = <5000000>;
413                         regulator-boot-on;
414                         regulator-always-on;
415                         enable-active-high;
416                         gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
417                 };
419                 emmc_3v3_reg: regulator@3 {
420                         compatible = "regulator-fixed";
421                         reg = <3>;
422                         regulator-name = "emmc_3v3";
423                         regulator-min-microvolt = <3300000>;
424                         regulator-max-microvolt = <3300000>;
425                         regulator-always-on;
426                         regulator-boot-on;
427                         enable-active-high;
428                         gpio = <&gpio TEGRA_GPIO(D, 1) GPIO_ACTIVE_HIGH>;
429                         vin-supply = <&sys_3v3_reg>;
430                 };
432                 modem_3v3_reg: regulator@4 {
433                         compatible = "regulator-fixed";
434                         reg = <4>;
435                         regulator-name = "modem_3v3";
436                         regulator-min-microvolt = <3300000>;
437                         regulator-max-microvolt = <3300000>;
438                         enable-active-high;
439                         gpio = <&gpio TEGRA_GPIO(D, 6) GPIO_ACTIVE_HIGH>;
440                 };
442                 pex_hvdd_3v3_reg: regulator@5 {
443                         compatible = "regulator-fixed";
444                         reg = <5>;
445                         regulator-name = "pex_hvdd_3v3";
446                         regulator-min-microvolt = <3300000>;
447                         regulator-max-microvolt = <3300000>;
448                         enable-active-high;
449                         gpio = <&gpio TEGRA_GPIO(L, 7) GPIO_ACTIVE_HIGH>;
450                         vin-supply = <&sys_3v3_reg>;
451                 };
453                 vdd_cam1_ldo_reg: regulator@6 {
454                         compatible = "regulator-fixed";
455                         reg = <6>;
456                         regulator-name = "vdd_cam1_ldo";
457                         regulator-min-microvolt = <2800000>;
458                         regulator-max-microvolt = <2800000>;
459                         enable-active-high;
460                         gpio = <&gpio TEGRA_GPIO(R, 6) GPIO_ACTIVE_HIGH>;
461                         vin-supply = <&sys_3v3_reg>;
462                 };
464                 vdd_cam2_ldo_reg: regulator@7 {
465                         compatible = "regulator-fixed";
466                         reg = <7>;
467                         regulator-name = "vdd_cam2_ldo";
468                         regulator-min-microvolt = <2800000>;
469                         regulator-max-microvolt = <2800000>;
470                         enable-active-high;
471                         gpio = <&gpio TEGRA_GPIO(R, 7) GPIO_ACTIVE_HIGH>;
472                         vin-supply = <&sys_3v3_reg>;
473                 };
475                 vdd_cam3_ldo_reg: regulator@8 {
476                         compatible = "regulator-fixed";
477                         reg = <8>;
478                         regulator-name = "vdd_cam3_ldo";
479                         regulator-min-microvolt = <3300000>;
480                         regulator-max-microvolt = <3300000>;
481                         enable-active-high;
482                         gpio = <&gpio TEGRA_GPIO(S, 0) GPIO_ACTIVE_HIGH>;
483                         vin-supply = <&sys_3v3_reg>;
484                 };
486                 vdd_com_reg: regulator@9 {
487                         compatible = "regulator-fixed";
488                         reg = <9>;
489                         regulator-name = "vdd_com";
490                         regulator-min-microvolt = <3300000>;
491                         regulator-max-microvolt = <3300000>;
492                         regulator-always-on;
493                         regulator-boot-on;
494                         enable-active-high;
495                         gpio = <&gpio TEGRA_GPIO(D, 0) GPIO_ACTIVE_HIGH>;
496                         vin-supply = <&sys_3v3_reg>;
497                 };
499                 vdd_fuse_3v3_reg: regulator@10 {
500                         compatible = "regulator-fixed";
501                         reg = <10>;
502                         regulator-name = "vdd_fuse_3v3";
503                         regulator-min-microvolt = <3300000>;
504                         regulator-max-microvolt = <3300000>;
505                         enable-active-high;
506                         gpio = <&gpio TEGRA_GPIO(L, 6) GPIO_ACTIVE_HIGH>;
507                         vin-supply = <&sys_3v3_reg>;
508                 };
510                 vdd_pnl1_reg: regulator@11 {
511                         compatible = "regulator-fixed";
512                         reg = <11>;
513                         regulator-name = "vdd_pnl1";
514                         regulator-min-microvolt = <3300000>;
515                         regulator-max-microvolt = <3300000>;
516                         regulator-always-on;
517                         regulator-boot-on;
518                         enable-active-high;
519                         gpio = <&gpio TEGRA_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
520                         vin-supply = <&sys_3v3_reg>;
521                 };
523                 vdd_vid_reg: regulator@12 {
524                         compatible = "regulator-fixed";
525                         reg = <12>;
526                         regulator-name = "vddio_vid";
527                         regulator-min-microvolt = <5000000>;
528                         regulator-max-microvolt = <5000000>;
529                         enable-active-high;
530                         gpio = <&gpio TEGRA_GPIO(T, 0) GPIO_ACTIVE_HIGH>;
531                         gpio-open-drain;
532                         vin-supply = <&vdd_5v0_reg>;
533                 };
534         };
536         sound {
537                 compatible = "nvidia,tegra-audio-wm8903-cardhu",
538                              "nvidia,tegra-audio-wm8903";
539                 nvidia,model = "NVIDIA Tegra Cardhu";
541                 nvidia,audio-routing =
542                         "Headphone Jack", "HPOUTR",
543                         "Headphone Jack", "HPOUTL",
544                         "Int Spk", "ROP",
545                         "Int Spk", "RON",
546                         "Int Spk", "LOP",
547                         "Int Spk", "LON",
548                         "Mic Jack", "MICBIAS",
549                         "IN1L", "Mic Jack";
551                 nvidia,i2s-controller = <&tegra_i2s1>;
552                 nvidia,audio-codec = <&wm8903>;
554                 nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
555                 nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2)
556                         GPIO_ACTIVE_HIGH>;
558                 clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
559                          <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
560                          <&tegra_car TEGRA30_CLK_EXTERN1>;
561                 clock-names = "pll_a", "pll_a_out0", "mclk";
562         };