Linux Audio

Check our new training course

Linux kernel drivers training

May 6-19, 2025
Register
Loading...
   1// SPDX-License-Identifier: GPL-2.0
   2
   3#include <dt-bindings/input/gpio-keys.h>
   4#include <dt-bindings/input/input.h>
   5#include <dt-bindings/power/summit,smb347-charger.h>
   6#include <dt-bindings/thermal/thermal.h>
   7
   8#include "tegra30.dtsi"
   9#include "tegra30-cpu-opp.dtsi"
  10#include "tegra30-cpu-opp-microvolt.dtsi"
  11#include "tegra30-asus-lvds-display.dtsi"
  12
  13/ {
  14	aliases {
  15		mmc0 = &sdmmc4; /* eMMC */
  16		mmc1 = &sdmmc3; /* WiFi */
  17
  18		rtc0 = &pmic;
  19		rtc1 = "/rtc@7000e000";
  20
  21		serial1 = &uartc; /* Bluetooth */
  22		serial2 = &uartb; /* GPS */
  23	};
  24
  25	/*
  26	 * The decompressor and also some bootloaders rely on a
  27	 * pre-existing /chosen node to be available to insert the
  28	 * command line and merge other ATAGS info.
  29	 */
  30	chosen {};
  31
  32	firmware {
  33		trusted-foundations {
  34			compatible = "tlm,trusted-foundations";
  35			tlm,version-major = <0x0>;
  36			tlm,version-minor = <0x0>;
  37		};
  38	};
  39
  40	memory@80000000 {
  41		reg = <0x80000000 0x40000000>;
  42	};
  43
  44	reserved-memory {
  45		#address-cells = <1>;
  46		#size-cells = <1>;
  47		ranges;
  48
  49		linux,cma@80000000 {
  50			compatible = "shared-dma-pool";
  51			alloc-ranges = <0x80000000 0x30000000>;
  52			size = <0x10000000>; /* 256MiB */
  53			linux,cma-default;
  54			reusable;
  55		};
  56
  57		ramoops@bfdf0000 {
  58			compatible = "ramoops";
  59			reg = <0xbfdf0000 0x10000>;	/* 64kB */
  60			console-size = <0x8000>;	/* 32kB */
  61			record-size = <0x400>;		/*  1kB */
  62			ecc-size = <16>;
  63		};
  64
  65		trustzone@bfe00000 {
  66			reg = <0xbfe00000 0x200000>;
  67			no-map;
  68		};
  69	};
  70
  71	gpio@6000d000 {
  72		init-low-power-mode-hog {
  73			gpio-hog;
  74			gpios = <TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>;
  75			input;
  76		};
  77
  78		init-mode-hog {
  79			gpio-hog;
  80			gpios = <TEGRA_GPIO(DD, 7) GPIO_ACTIVE_HIGH>,
  81				<TEGRA_GPIO(CC, 6) GPIO_ACTIVE_HIGH>,
  82				<TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>;
  83			output-low;
  84		};
  85	};
  86
  87	pinmux@70000868 {
  88		pinctrl-names = "default";
  89		pinctrl-0 = <&state_default>;
  90
  91		state_default: pinmux {
  92			clk_32k_out_pa0 {
  93				nvidia,pins = "clk_32k_out_pa0";
  94				nvidia,function = "blink";
  95				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
  96				nvidia,tristate = <TEGRA_PIN_DISABLE>;
  97				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
  98			};
  99			uart3_cts_n_pa1 {
 100				nvidia,pins = "uart3_cts_n_pa1",
 101						"uart3_rxd_pw7";
 102				nvidia,function = "uartc";
 103				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 104				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 105				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 106			};
 107			dap2_fs_pa2 {
 108				nvidia,pins = "dap2_fs_pa2",
 109						"dap2_sclk_pa3",
 110						"dap2_din_pa4",
 111						"dap2_dout_pa5";
 112				nvidia,function = "i2s1";
 113				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 114				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 115				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 116			};
 117			sdmmc3_clk_pa6 {
 118				nvidia,pins = "sdmmc3_clk_pa6";
 119				nvidia,function = "sdmmc3";
 120				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 121				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 122				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 123			};
 124			sdmmc3_cmd_pa7 {
 125				nvidia,pins = "sdmmc3_cmd_pa7",
 126						"sdmmc3_dat3_pb4",
 127						"sdmmc3_dat2_pb5",
 128						"sdmmc3_dat1_pb6",
 129						"sdmmc3_dat0_pb7",
 130						"sdmmc3_dat4_pd1",
 131						"sdmmc3_dat6_pd3",
 132						"sdmmc3_dat7_pd4";
 133				nvidia,function = "sdmmc3";
 134				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 135				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 136				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 137			};
 138			gmi_a17_pb0 {
 139				nvidia,pins = "gmi_a17_pb0",
 140						"gmi_a18_pb1";
 141				nvidia,function = "uartd";
 142				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 143				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 144				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 145			};
 146			lcd_pwr0_pb2 {
 147				nvidia,pins = "lcd_pwr0_pb2",
 148						"lcd_pwr1_pc1",
 149						"lcd_m1_pw1";
 150				nvidia,function = "displaya";
 151				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 152				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 153				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 154			};
 155			lcd_pclk_pb3 {
 156				nvidia,pins = "lcd_pclk_pb3",
 157						"lcd_d0_pe0",
 158						"lcd_d1_pe1",
 159						"lcd_d2_pe2",
 160						"lcd_d3_pe3",
 161						"lcd_d4_pe4",
 162						"lcd_d5_pe5",
 163						"lcd_d6_pe6",
 164						"lcd_d7_pe7",
 165						"lcd_d8_pf0",
 166						"lcd_d9_pf1",
 167						"lcd_d10_pf2",
 168						"lcd_d11_pf3",
 169						"lcd_d12_pf4",
 170						"lcd_d13_pf5",
 171						"lcd_d14_pf6",
 172						"lcd_d15_pf7",
 173						"lcd_de_pj1",
 174						"lcd_hsync_pj3",
 175						"lcd_vsync_pj4",
 176						"lcd_d16_pm0",
 177						"lcd_d17_pm1",
 178						"lcd_d18_pm2",
 179						"lcd_d19_pm3",
 180						"lcd_d20_pm4",
 181						"lcd_d21_pm5",
 182						"lcd_d22_pm6",
 183						"lcd_d23_pm7",
 184						"lcd_cs0_n_pn4",
 185						"lcd_sdout_pn5",
 186						"lcd_dc0_pn6",
 187						"lcd_cs1_n_pw0",
 188						"lcd_sdin_pz2",
 189						"lcd_sck_pz4";
 190				nvidia,function = "displaya";
 191				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 192				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 193				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 194			};
 195			uart3_rts_n_pc0 {
 196				nvidia,pins = "uart3_rts_n_pc0",
 197						"uart3_txd_pw6";
 198				nvidia,function = "uartc";
 199				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 200				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 201				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 202			};
 203			uart2_txd_pc2 {
 204				nvidia,pins = "uart2_txd_pc2",
 205						"uart2_rts_n_pj6";
 206				nvidia,function = "uartb";
 207				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 208				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 209				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 210			};
 211			uart2_rxd_pc3 {
 212				nvidia,pins = "uart2_rxd_pc3",
 213						"uart2_cts_n_pj5";
 214				nvidia,function = "uartb";
 215				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 216				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 217				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 218			};
 219			gen1_i2c_scl_pc4 {
 220				nvidia,pins = "gen1_i2c_scl_pc4",
 221						"gen1_i2c_sda_pc5";
 222				nvidia,function = "i2c1";
 223				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 224				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 225				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 226				nvidia,open-drain = <TEGRA_PIN_ENABLE>;
 227			};
 228			gmi_wp_n_pc7 {
 229				nvidia,pins = "gmi_wp_n_pc7",
 230						"gmi_wait_pi7",
 231						"gmi_cs4_n_pk2",
 232						"gmi_cs3_n_pk4";
 233				nvidia,function = "rsvd1";
 234				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 235				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 236				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 237			};
 238			gmi_ad12_ph4 {
 239				nvidia,pins = "gmi_ad12_ph4",
 240						"gmi_cs0_n_pj0",
 241						"gmi_cs1_n_pj2",
 242						"gmi_cs2_n_pk3";
 243				nvidia,function = "rsvd1";
 244				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 245				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 246				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 247			};
 248			sdmmc3_dat5_pd0 {
 249				nvidia,pins = "sdmmc3_dat5_pd0";
 250				nvidia,function = "sdmmc3";
 251				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 252				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 253				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 254			};
 255			gmi_ad0_pg0 {
 256				nvidia,pins = "gmi_ad0_pg0",
 257						"gmi_ad1_pg1",
 258						"gmi_ad14_ph6",
 259						"pu1";
 260				nvidia,function = "rsvd1";
 261				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 262				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 263				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 264			};
 265			gmi_ad2_pg2 {
 266				nvidia,pins = "gmi_ad2_pg2",
 267						"gmi_ad3_pg3",
 268						"gmi_ad6_pg6",
 269						"gmi_ad7_pg7";
 270				nvidia,function = "rsvd1";
 271				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
 272				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 273				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 274			};
 275			gmi_ad4_pg4 {
 276				nvidia,pins = "gmi_ad4_pg4",
 277						"gmi_ad5_pg5";
 278				nvidia,function = "nand";
 279				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 280				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 281				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 282			};
 283			gmi_ad8_ph0 {
 284				nvidia,pins = "gmi_ad8_ph0";
 285				nvidia,function = "pwm0";
 286				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 287				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 288				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 289			};
 290			gmi_ad9_ph1 {
 291				nvidia,pins = "gmi_ad9_ph1";
 292				nvidia,function = "rsvd4";
 293				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
 294				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 295				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 296			};
 297			gmi_ad10_ph2 {
 298				nvidia,pins = "gmi_ad10_ph2";
 299				nvidia,function = "pwm2";
 300				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 301				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 302				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 303			};
 304			gmi_ad11_ph3 {
 305				nvidia,pins = "gmi_ad11_ph3";
 306				nvidia,function = "pwm3";
 307				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 308				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 309				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 310			};
 311			gmi_ad13_ph5 {
 312				nvidia,pins = "gmi_ad13_ph5",
 313						"gmi_wr_n_pi0",
 314						"gmi_oe_n_pi1",
 315						"gmi_adv_n_pk0";
 316				nvidia,function = "rsvd1";
 317				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 318				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 319				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 320			};
 321			gmi_ad15_ph7 {
 322				nvidia,pins = "gmi_ad15_ph7";
 323				nvidia,function = "rsvd1";
 324				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 325				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 326				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 327			};
 328			gmi_dqs_pi2 {
 329				nvidia,pins = "gmi_dqs_pi2",
 330						"pu2",
 331						"pv1";
 332				nvidia,function = "rsvd1";
 333				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 334				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 335				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 336			};
 337			gmi_rst_n_pi4 {
 338				nvidia,pins = "gmi_rst_n_pi4";
 339				nvidia,function = "nand";
 340				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 341				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 342				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 343			};
 344			gmi_iordy_pi5 {
 345				nvidia,pins = "gmi_iordy_pi5";
 346				nvidia,function = "rsvd1";
 347				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 348				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 349				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 350			};
 351			gmi_cs7_n_pi6 {
 352				nvidia,pins = "gmi_cs7_n_pi6",
 353						"gmi_clk_pk1";
 354				nvidia,function = "nand";
 355				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 356				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 357				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 358			};
 359			gmi_a16_pj7 {
 360				nvidia,pins = "gmi_a16_pj7",
 361						"gmi_a19_pk7";
 362				nvidia,function = "uartd";
 363				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 364				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 365				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 366			};
 367			spdif_out_pk5 {
 368				nvidia,pins = "spdif_out_pk5";
 369				nvidia,function = "spdif";
 370				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 371				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 372				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 373			};
 374			spdif_in_pk6 {
 375				nvidia,pins = "spdif_in_pk6";
 376				nvidia,function = "spdif";
 377				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 378				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 379				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 380			};
 381			dap1_fs_pn0 {
 382				nvidia,pins = "dap1_fs_pn0",
 383						"dap1_din_pn1",
 384						"dap1_dout_pn2",
 385						"dap1_sclk_pn3";
 386				nvidia,function = "i2s0";
 387				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 388				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 389				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 390			};
 391			hdmi_int_pn7 {
 392				nvidia,pins = "hdmi_int_pn7";
 393				nvidia,function = "hdmi";
 394				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 395				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 396				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 397			};
 398			ulpi_data7_po0 {
 399				nvidia,pins = "ulpi_data7_po0";
 400				nvidia,function = "uarta";
 401				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 402				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 403				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 404			};
 405			ulpi_data3_po4 {
 406				nvidia,pins = "ulpi_data3_po4";
 407				nvidia,function = "ulpi";
 408				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 409				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 410				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 411			};
 412			dap3_fs_pp0 {
 413				nvidia,pins = "dap3_fs_pp0";
 414				nvidia,function = "i2s2";
 415				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 416				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 417				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 418			};
 419			dap4_fs_pp4 {
 420				nvidia,pins = "dap4_fs_pp4",
 421						"dap4_din_pp5",
 422						"dap4_dout_pp6",
 423						"dap4_sclk_pp7";
 424				nvidia,function = "i2s3";
 425				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 426				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 427				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 428			};
 429			kb_col0_pq0 {
 430				nvidia,pins = "kb_col0_pq0",
 431						"kb_col1_pq1",
 432						"kb_row1_pr1";
 433				nvidia,function = "kbc";
 434				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 435				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 436				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 437			};
 438			kb_col2_pq2 {
 439				nvidia,pins = "kb_col2_pq2",
 440						"kb_col3_pq3";
 441				nvidia,function = "rsvd4";
 442				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 443				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 444				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 445			};
 446			kb_col4_pq4 {
 447				nvidia,pins = "kb_col4_pq4",
 448						"kb_col5_pq5",
 449						"kb_col7_pq7",
 450						"kb_row2_pr2",
 451						"kb_row4_pr4",
 452						"kb_row5_pr5",
 453						"kb_row14_ps6";
 454				nvidia,function = "kbc";
 455				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 456				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 457				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 458			};
 459			kb_row0_pr0 {
 460				nvidia,pins = "kb_row0_pr0";
 461				nvidia,function = "rsvd4";
 462				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 463				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 464				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 465			};
 466			kb_row6_pr6 {
 467				nvidia,pins = "kb_row6_pr6",
 468						"kb_row8_ps0",
 469						"kb_row9_ps1",
 470						"kb_row10_ps2";
 471				nvidia,function = "kbc";
 472				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 473				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 474				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 475			};
 476			kb_row11_ps3 {
 477				nvidia,pins = "kb_row11_ps3",
 478						"kb_row12_ps4";
 479				nvidia,function = "kbc";
 480				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 481				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 482				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 483			};
 484			gen2_i2c_scl_pt5 {
 485				nvidia,pins = "gen2_i2c_scl_pt5",
 486						"gen2_i2c_sda_pt6";
 487				nvidia,function = "i2c2";
 488				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 489				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 490				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 491				nvidia,open-drain = <TEGRA_PIN_ENABLE>;
 492			};
 493			sdmmc4_cmd_pt7 {
 494				nvidia,pins = "sdmmc4_cmd_pt7",
 495						"sdmmc4_dat0_paa0",
 496						"sdmmc4_dat1_paa1",
 497						"sdmmc4_dat2_paa2",
 498						"sdmmc4_dat3_paa3",
 499						"sdmmc4_dat4_paa4",
 500						"sdmmc4_dat5_paa5",
 501						"sdmmc4_dat6_paa6",
 502						"sdmmc4_dat7_paa7";
 503				nvidia,function = "sdmmc4";
 504				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 505				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 506				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 507			};
 508			pu0 {
 509				nvidia,pins = "pu0",
 510						"pu6";
 511				nvidia,function = "rsvd4";
 512				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 513				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 514				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 515			};
 516			jtag_rtck_pu7 {
 517				nvidia,pins = "jtag_rtck_pu7";
 518				nvidia,function = "rtck";
 519				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 520				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 521				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 522			};
 523			pv0 {
 524				nvidia,pins = "pv0";
 525				nvidia,function = "rsvd1";
 526				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 527				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 528				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 529			};
 530			ddc_scl_pv4 {
 531				nvidia,pins = "ddc_scl_pv4",
 532						"ddc_sda_pv5";
 533				nvidia,function = "i2c4";
 534				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 535				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 536				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 537			};
 538			crt_hsync_pv6 {
 539				nvidia,pins = "crt_hsync_pv6",
 540						"crt_vsync_pv7";
 541				nvidia,function = "crt";
 542				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 543				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 544				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 545			};
 546			spi2_cs1_n_pw2 {
 547				nvidia,pins = "spi2_cs1_n_pw2",
 548						"spi2_miso_px1",
 549						"spi2_sck_px2";
 550				nvidia,function = "spi2";
 551				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 552				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 553				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 554			};
 555			clk1_out_pw4 {
 556				nvidia,pins = "clk1_out_pw4";
 557				nvidia,function = "extperiph1";
 558				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 559				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 560				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 561			};
 562			clk2_out_pw5 {
 563				nvidia,pins = "clk2_out_pw5";
 564				nvidia,function = "extperiph2";
 565				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 566				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 567				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 568			};
 569			spi2_cs0_n_px3 {
 570				nvidia,pins = "spi2_cs0_n_px3";
 571				nvidia,function = "spi6";
 572				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 573				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 574				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 575			};
 576			spi1_mosi_px4 {
 577				nvidia,pins = "spi1_mosi_px4",
 578						"spi1_cs0_n_px6";
 579				nvidia,function = "spi1";
 580				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 581				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 582				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 583			};
 584			ulpi_clk_py0 {
 585				nvidia,pins = "ulpi_clk_py0",
 586						"ulpi_dir_py1";
 587				nvidia,function = "ulpi";
 588				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 589				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 590				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 591			};
 592			sdmmc1_dat3_py4 {
 593				nvidia,pins = "sdmmc1_dat3_py4",
 594						"sdmmc1_dat2_py5",
 595						"sdmmc1_dat1_py6",
 596						"sdmmc1_dat0_py7",
 597						"sdmmc1_cmd_pz1";
 598				nvidia,function = "sdmmc1";
 599				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 600				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 601				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 602			};
 603			sdmmc1_clk_pz0 {
 604				nvidia,pins = "sdmmc1_clk_pz0";
 605				nvidia,function = "sdmmc1";
 606				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 607				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 608				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 609			};
 610			lcd_wr_n_pz3 {
 611				nvidia,pins = "lcd_wr_n_pz3";
 612				nvidia,function = "displaya";
 613				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 614				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 615				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 616			};
 617			sys_clk_req_pz5 {
 618				nvidia,pins = "sys_clk_req_pz5";
 619				nvidia,function = "sysclk";
 620				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 621				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 622				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 623			};
 624			pwr_i2c_scl_pz6 {
 625				nvidia,pins = "pwr_i2c_scl_pz6",
 626						"pwr_i2c_sda_pz7";
 627				nvidia,function = "i2cpwr";
 628				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 629				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 630				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 631				nvidia,open-drain = <TEGRA_PIN_ENABLE>;
 632			};
 633			pbb0 {
 634				nvidia,pins = "pbb0",
 635						"pcc1";
 636				nvidia,function = "rsvd2";
 637				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 638				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 639				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 640			};
 641			cam_i2c_scl_pbb1 {
 642				nvidia,pins = "cam_i2c_scl_pbb1",
 643						"cam_i2c_sda_pbb2";
 644				nvidia,function = "i2c3";
 645				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 646				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 647				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 648				nvidia,open-drain = <TEGRA_PIN_ENABLE>;
 649			};
 650			pbb3 {
 651				nvidia,pins = "pbb3";
 652				nvidia,function = "vgp3";
 653				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 654				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 655				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 656			};
 657			pbb4 {
 658				nvidia,pins = "pbb4";
 659				nvidia,function = "vgp4";
 660				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 661				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 662				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 663			};
 664			pbb5 {
 665				nvidia,pins = "pbb5";
 666				nvidia,function = "vgp5";
 667				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 668				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 669				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 670			};
 671			pbb6 {
 672				nvidia,pins = "pbb6";
 673				nvidia,function = "vgp6";
 674				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 675				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 676				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 677			};
 678			pbb7 {
 679				nvidia,pins = "pbb7",
 680						"pcc2";
 681				nvidia,function = "i2s4";
 682				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 683				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 684				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 685			};
 686			cam_mclk_pcc0 {
 687				nvidia,pins = "cam_mclk_pcc0";
 688				nvidia,function = "vi_alt3";
 689				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
 690				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 691				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 692			};
 693			sdmmc4_rst_n_pcc3 {
 694				nvidia,pins = "sdmmc4_rst_n_pcc3";
 695				nvidia,function = "rsvd2";
 696				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
 697				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 698				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 699			};
 700			sdmmc4_clk_pcc4 {
 701				nvidia,pins = "sdmmc4_clk_pcc4";
 702				nvidia,function = "sdmmc4";
 703				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 704				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 705				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 706			};
 707			clk2_req_pcc5 {
 708				nvidia,pins = "clk2_req_pcc5";
 709				nvidia,function = "dap";
 710				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 711				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 712				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 713			};
 714			pex_l2_rst_n_pcc6 {
 715				nvidia,pins = "pex_l2_rst_n_pcc6",
 716						"pex_l2_clkreq_n_pcc7";
 717				nvidia,function = "pcie";
 718				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 719				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 720				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 721			};
 722			pex_wake_n_pdd3 {
 723				nvidia,pins = "pex_wake_n_pdd3",
 724						"pex_l2_prsnt_n_pdd7";
 725				nvidia,function = "pcie";
 726				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 727				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 728				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 729			};
 730			clk3_out_pee0 {
 731				nvidia,pins = "clk3_out_pee0";
 732				nvidia,function = "extperiph3";
 733				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 734				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 735				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 736			};
 737			clk1_req_pee2 {
 738				nvidia,pins = "clk1_req_pee2";
 739				nvidia,function = "dap";
 740				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 741				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 742				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 743			};
 744			hdmi_cec_pee3 {
 745				nvidia,pins = "hdmi_cec_pee3";
 746				nvidia,function = "cec";
 747				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 748				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 749				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 750				nvidia,open-drain = <TEGRA_PIN_DISABLE>;
 751			};
 752			owr {
 753				nvidia,pins = "owr";
 754				nvidia,function = "owr";
 755				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 756				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 757				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
 758			};
 759			drive_dap1 {
 760				nvidia,pins = "drive_dap1",
 761						"drive_dap2",
 762						"drive_dbg",
 763						"drive_at5",
 764						"drive_gme",
 765						"drive_ddc",
 766						"drive_ao1",
 767						"drive_uart3";
 768				nvidia,high-speed-mode = <0>;
 769				nvidia,schmitt = <TEGRA_PIN_ENABLE>;
 770				nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>;
 771				nvidia,pull-down-strength = <31>;
 772				nvidia,pull-up-strength = <31>;
 773				nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>;
 774				nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>;
 775			};
 776			drive_sdio1 {
 777				nvidia,pins = "drive_sdio1",
 778						"drive_sdio3";
 779				nvidia,high-speed-mode = <0>;
 780				nvidia,schmitt = <TEGRA_PIN_DISABLE>;
 781				nvidia,pull-down-strength = <46>;
 782				nvidia,pull-up-strength = <42>;
 783				nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FAST>;
 784				nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FAST>;
 785			};
 786			drive_gma {
 787				nvidia,pins = "drive_gma",
 788						"drive_gmb",
 789						"drive_gmc",
 790						"drive_gmd";
 791				nvidia,pull-down-strength = <9>;
 792				nvidia,pull-up-strength = <9>;
 793				nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
 794				nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
 795			};
 796		};
 797	};
 798
 799	uartb: serial@70006040 {
 800		compatible = "nvidia,tegra30-hsuart";
 801		reset-names = "serial";
 802		/delete-property/ reg-shift;
 803		/* GPS BCM4751 */
 804	};
 805
 806	uartc: serial@70006200 {
 807		compatible = "nvidia,tegra30-hsuart";
 808		reset-names = "serial";
 809		/delete-property/ reg-shift;
 810		status = "okay";
 811
 812		nvidia,adjust-baud-rates = <0 9600 100>,
 813					   <9600 115200 200>,
 814					   <1000000 4000000 136>;
 815
 816		/* Azurewave AW-NH665 BCM4330B1 */
 817		bluetooth {
 818			compatible = "brcm,bcm4330-bt";
 819
 820			interrupt-parent = <&gpio>;
 821			interrupts = <TEGRA_GPIO(U, 6) IRQ_TYPE_EDGE_RISING>;
 822			interrupt-names = "host-wakeup";
 823
 824			max-speed = <4000000>;
 825
 826			clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
 827			clock-names = "txco";
 828
 829			vbat-supply  = <&vdd_3v3_sys>;
 830			vddio-supply = <&vdd_1v8>;
 831
 832			device-wakeup-gpios = <&gpio TEGRA_GPIO(U, 1) GPIO_ACTIVE_HIGH>;
 833			shutdown-gpios = <&gpio TEGRA_GPIO(U, 0) GPIO_ACTIVE_HIGH>;
 834		};
 835	};
 836
 837	pwm: pwm@7000a000 {
 838		status = "okay";
 839	};
 840
 841	i2c@7000c400 {
 842		clock-frequency = <400000>;
 843		status = "okay";
 844
 845		touchscreen@10 {
 846			compatible = "elan,ektf3624";
 847			reg = <0x10>;
 848
 849			interrupt-parent = <&gpio>;
 850			interrupts = <TEGRA_GPIO(H, 4) IRQ_TYPE_LEVEL_LOW>;
 851
 852			reset-gpios = <&gpio TEGRA_GPIO(H, 6) GPIO_ACTIVE_LOW>;
 853
 854			vcc33-supply = <&vcc_3v3_ts>;
 855			vccio-supply = <&vcc_3v3_ts>;
 856
 857			touchscreen-size-x = <2112>;
 858			touchscreen-size-y = <1280>;
 859			touchscreen-swapped-x-y;
 860			touchscreen-inverted-x;
 861		};
 862	};
 863
 864	i2c@7000c500 {
 865		clock-frequency = <100000>;
 866		status = "okay";
 867
 868		compass@e {
 869			compatible = "asahi-kasei,ak8974";
 870			reg = <0x0e>;
 871
 872			interrupt-parent = <&gpio>;
 873			interrupts = <TEGRA_GPIO(W, 0) IRQ_TYPE_EDGE_RISING>;
 874
 875			avdd-supply = <&vdd_3v3_sys>;
 876			dvdd-supply = <&vdd_1v8>;
 877
 878			mount-matrix =	 "0", "-1",  "0",
 879					"-1",  "0",  "0",
 880					 "0",  "0", "-1";
 881		};
 882
 883		light-sensor@1c {
 884			compatible = "dynaimage,al3010";
 885			reg = <0x1c>;
 886
 887			interrupt-parent = <&gpio>;
 888			interrupts = <TEGRA_GPIO(Z, 2) IRQ_TYPE_LEVEL_HIGH>;
 889
 890			vdd-supply = <&vdd_3v3_sys>;
 891		};
 892
 893		accelerometer@68 {
 894			compatible = "invensense,mpu6050";
 895			reg = <0x68>;
 896
 897			interrupt-parent = <&gpio>;
 898			interrupts = <TEGRA_GPIO(X, 1) IRQ_TYPE_EDGE_RISING>;
 899
 900			vdd-supply   = <&vdd_3v3_sys>;
 901			vddio-supply = <&vdd_1v8>;
 902
 903			mount-matrix =	 "0", "-1",  "0",
 904					"-1",  "0",  "0",
 905					 "0",  "0", "-1";
 906		};
 907	};
 908
 909	i2c@7000d000 {
 910		clock-frequency = <100000>;
 911		status = "okay";
 912
 913		rt5640: audio-codec@1c {
 914			compatible = "realtek,rt5640";
 915			reg = <0x1c>;
 916
 917			realtek,dmic1-data-pin = <1>;
 918
 919			clocks = <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
 920			clock-names = "mclk";
 921		};
 922
 923		nct72: temperature-sensor@4c {
 924			compatible = "onnn,nct1008";
 925			reg = <0x4c>;
 926			vcc-supply = <&vdd_3v3_sys>;
 927
 928			interrupt-parent = <&gpio>;
 929			interrupts = <TEGRA_GPIO(S, 3) IRQ_TYPE_EDGE_FALLING>;
 930
 931			#thermal-sensor-cells = <1>;
 932		};
 933
 934		fuel-gauge@55 {
 935			compatible = "ti,bq27541";
 936			reg = <0x55>;
 937			power-supplies = <&power_supply>;
 938		};
 939
 940		power_supply: charger@6a {
 941			compatible = "summit,smb347";
 942			reg = <0x6a>;
 943
 944			interrupt-parent = <&gpio>;
 945			interrupts = <TEGRA_GPIO(V, 1) IRQ_TYPE_EDGE_BOTH>;
 946
 947			summit,enable-charge-control = <SMB3XX_CHG_ENABLE_PIN_ACTIVE_LOW>;
 948			summit,inok-polarity = <SMB3XX_SYSOK_INOK_ACTIVE_LOW>;
 949			summit,enable-usb-charging;
 950
 951			monitored-battery = <&battery_cell>;
 952
 953			usb_vbus: usb-vbus {
 954				regulator-name = "usb_vbus";
 955				regulator-min-microvolt = <5000000>;
 956				regulator-max-microvolt = <5000000>;
 957				regulator-min-microamp = <750000>;
 958				regulator-max-microamp = <750000>;
 959
 960				/*
 961				 * SMB347 INOK input pin is connected to PMIC's
 962				 * ACOK output, which is fixed to ACTIVE_LOW as
 963				 * long as battery voltage is in a good range.
 964				 *
 965				 * Active INOK disables SMB347 output, so polarity
 966				 * needs to be toggled when we want to get the
 967				 * output.
 968				 */
 969				summit,needs-inok-toggle;
 970			};
 971		};
 972	};
 973
 974	pmc@7000e400 {
 975		status = "okay";
 976		nvidia,invert-interrupt;
 977		nvidia,suspend-mode = <1>;
 978		nvidia,cpu-pwr-good-time = <2000>;
 979		nvidia,cpu-pwr-off-time = <200>;
 980		nvidia,core-pwr-good-time = <3845 3845>;
 981		nvidia,core-pwr-off-time = <0>;
 982		nvidia,core-power-req-active-high;
 983		nvidia,sys-clock-req-active-high;
 984		core-supply = <&vdd_core>;
 985	};
 986
 987	ahub@70080000 {
 988		i2s@70080400 {
 989			status = "okay";
 990		};
 991	};
 992
 993	sdmmc3: mmc@78000400 {
 994		status = "okay";
 995
 996		#address-cells = <1>;
 997		#size-cells = <0>;
 998
 999		assigned-clocks = <&tegra_car TEGRA30_CLK_SDMMC3>;
1000		assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_C>;
1001		assigned-clock-rates = <50000000>;
1002
1003		max-frequency = <50000000>;
1004		keep-power-in-suspend;
1005		bus-width = <4>;
1006		non-removable;
1007
1008		mmc-pwrseq = <&brcm_wifi_pwrseq>;
1009		vmmc-supply = <&vdd_3v3_sys>;
1010		vqmmc-supply = <&vdd_1v8>;
1011
1012		/* Azurewave AW-NH665 BCM4330 */
1013		wifi@1 {
1014			reg = <1>;
1015			compatible = "brcm,bcm4329-fmac";
1016			interrupt-parent = <&gpio>;
1017			interrupts = <TEGRA_GPIO(O, 4) IRQ_TYPE_LEVEL_HIGH>;
1018			interrupt-names = "host-wake";
1019		};
1020	};
1021
1022	sdmmc4: mmc@78000600 {
1023		status = "okay";
1024		bus-width = <8>;
1025		vmmc-supply = <&vcore_emmc>;
1026		vqmmc-supply = <&vdd_1v8>;
1027		non-removable;
1028	};
1029
1030	usb@7d000000 {
1031		compatible = "nvidia,tegra30-udc";
1032		status = "okay";
1033		dr_mode = "otg";
1034		vbus-supply = <&usb_vbus>;
1035	};
1036
1037	usb-phy@7d000000 {
1038		status = "okay";
1039		dr_mode = "otg";
1040		nvidia,hssync-start-delay = <0>;
1041		nvidia,xcvr-lsfslew = <2>;
1042		nvidia,xcvr-lsrslew = <2>;
1043	};
1044
1045	backlight: backlight {
1046		compatible = "pwm-backlight";
1047
1048		power-supply = <&vdd_5v0_sys>;
1049		pwms = <&pwm 0 50000>;
1050
1051		brightness-levels = <1 255>;
1052		num-interpolated-steps = <254>;
1053		default-brightness-level = <15>;
1054	};
1055
1056	battery_cell: battery-cell {
1057		compatible = "simple-battery";
1058		constant-charge-current-max-microamp = <1800000>;
1059		operating-range-celsius = <0 45>;
1060	};
1061
1062	/* PMIC has a built-in 32KHz oscillator which is used by PMC */
1063	clk32k_in: clock-32k {
1064		compatible = "fixed-clock";
1065		#clock-cells = <0>;
1066		clock-frequency = <32768>;
1067		clock-output-names = "pmic-oscillator";
1068	};
1069
1070	cpus {
1071		cpu0: cpu@0 {
1072			cpu-supply = <&vdd_cpu>;
1073			operating-points-v2 = <&cpu0_opp_table>;
1074			#cooling-cells = <2>;
1075		};
1076
1077		cpu1: cpu@1 {
1078			cpu-supply = <&vdd_cpu>;
1079			operating-points-v2 = <&cpu0_opp_table>;
1080			#cooling-cells = <2>;
1081		};
1082
1083		cpu2: cpu@2 {
1084			cpu-supply = <&vdd_cpu>;
1085			operating-points-v2 = <&cpu0_opp_table>;
1086			#cooling-cells = <2>;
1087		};
1088
1089		cpu3: cpu@3 {
1090			cpu-supply = <&vdd_cpu>;
1091			operating-points-v2 = <&cpu0_opp_table>;
1092			#cooling-cells = <2>;
1093		};
1094	};
1095
1096	display-panel {
1097		/*
1098		 * Some device variants come with a Hydis HV070WX2-1E0, but
1099		 * since they are all largely compatible, we'll go with the
1100		 * Chunghwa one here.
1101		 */
1102		compatible = "chunghwa,claa070wp03xg", "panel-lvds";
1103
1104		width-mm = <94>;
1105		height-mm = <150>;
1106		rotation = <180>;
1107
1108		data-mapping = "jeida-24";
1109
1110		/* DDC unconnected on Nexus 7 */
1111		/delete-property/ ddc-i2c-bus;
1112	};
1113
1114	gpio-keys {
1115		compatible = "gpio-keys";
1116
1117		key-power {
1118			label = "Power";
1119			gpios = <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
1120			linux,code = <KEY_POWER>;
1121			debounce-interval = <10>;
1122			wakeup-event-action = <EV_ACT_ASSERTED>;
1123			wakeup-source;
1124		};
1125
1126		key-volume-down {
1127			label = "Volume Down";
1128			gpios = <&gpio TEGRA_GPIO(Q, 3) GPIO_ACTIVE_LOW>;
1129			linux,code = <KEY_VOLUMEDOWN>;
1130			debounce-interval = <10>;
1131			wakeup-event-action = <EV_ACT_ASSERTED>;
1132			wakeup-source;
1133		};
1134
1135		key-volume-up {
1136			label = "Volume Up";
1137			gpios = <&gpio TEGRA_GPIO(Q, 2) GPIO_ACTIVE_LOW>;
1138			linux,code = <KEY_VOLUMEUP>;
1139			debounce-interval = <10>;
1140			wakeup-event-action = <EV_ACT_ASSERTED>;
1141			wakeup-source;
1142		};
1143
1144		switch-hall-sensor {
1145			label = "Lid";
1146			gpios = <&gpio TEGRA_GPIO(S, 6) GPIO_ACTIVE_LOW>;
1147			linux,input-type = <EV_SW>;
1148			linux,code = <SW_LID>;
1149			debounce-interval = <500>;
1150			wakeup-event-action = <EV_ACT_DEASSERTED>;
1151			wakeup-source;
1152		};
1153	};
1154
1155	brcm_wifi_pwrseq: pwrseq-wifi {
1156		compatible = "mmc-pwrseq-simple";
1157
1158		clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
1159		clock-names = "ext_clock";
1160
1161		reset-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_LOW>;
1162		post-power-on-delay-ms = <300>;
1163		power-off-delay-us = <300>;
1164	};
1165
1166	vdd_5v0_sys: regulator-5v0 {
1167		compatible = "regulator-fixed";
1168		regulator-name = "vdd_5v0";
1169		regulator-min-microvolt = <5000000>;
1170		regulator-max-microvolt = <5000000>;
1171		regulator-always-on;
1172		regulator-boot-on;
1173	};
1174
1175	vdd_3v3_sys: regulator-3v3 {
1176		compatible = "regulator-fixed";
1177		regulator-name = "vdd_3v3";
1178		regulator-min-microvolt = <3300000>;
1179		regulator-max-microvolt = <3300000>;
1180		regulator-always-on;
1181		regulator-boot-on;
1182		vin-supply = <&vdd_5v0_sys>;
1183	};
1184
1185	vdd_pnl: regulator-panel {
1186		compatible = "regulator-fixed";
1187		regulator-name = "vdd_panel";
1188		regulator-min-microvolt = <3300000>;
1189		regulator-max-microvolt = <3300000>;
1190		regulator-enable-ramp-delay = <300000>;
1191		gpio = <&gpio TEGRA_GPIO(W, 1) GPIO_ACTIVE_HIGH>;
1192		enable-active-high;
1193		vin-supply = <&vdd_3v3_sys>;
1194	};
1195
1196	vcc_3v3_ts: regulator-ts {
1197		compatible = "regulator-fixed";
1198		regulator-name = "ldo_s-1167_3v3";
1199		regulator-min-microvolt = <3300000>;
1200		regulator-max-microvolt = <3300000>;
1201		regulator-always-on;
1202		regulator-boot-on;
1203		vin-supply = <&vdd_5v0_sys>;
1204	};
1205
1206	sound {
1207		compatible = "nvidia,tegra-audio-rt5640-grouper",
1208			     "nvidia,tegra-audio-rt5640";
1209		nvidia,model = "ASUS Google Nexus 7 ALC5642";
1210
1211		nvidia,audio-routing =
1212			"Headphones", "HPOR",
1213			"Headphones", "HPOL",
1214			"Speakers", "SPORP",
1215			"Speakers", "SPORN",
1216			"Speakers", "SPOLP",
1217			"Speakers", "SPOLN",
1218			"DMIC1", "Mic Jack";
1219
1220		nvidia,i2s-controller = <&tegra_i2s1>;
1221		nvidia,audio-codec = <&rt5640>;
1222
1223		nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
1224
1225		clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
1226			 <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
1227			 <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
1228		clock-names = "pll_a", "pll_a_out0", "mclk";
1229
1230		assigned-clocks = <&tegra_car TEGRA30_CLK_EXTERN1>,
1231				  <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
1232
1233		assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
1234					 <&tegra_car TEGRA30_CLK_EXTERN1>;
1235	};
1236
1237	thermal-zones {
1238		/*
1239		 * NCT72 has two sensors:
1240		 *
1241		 *	0: internal that monitors ambient/skin temperature
1242		 *	1: external that is connected to the CPU's diode
1243		 *
1244		 * Ideally we should use userspace thermal governor,
1245		 * but it's a much more complex solution.  The "skin"
1246		 * zone is a simpler solution which prevents Nexus 7
1247		 * from getting too hot from a user's tactile perspective.
1248		 * The CPU zone is intended to protect silicon from damage.
1249		 */
1250
1251		skin-thermal {
1252			polling-delay-passive = <1000>; /* milliseconds */
1253			polling-delay = <5000>; /* milliseconds */
1254
1255			thermal-sensors = <&nct72 0>;
1256
1257			trips {
1258				trip0: skin-alert {
1259					/* throttle at 57C until temperature drops to 56.8C */
1260					temperature = <57000>;
1261					hysteresis = <200>;
1262					type = "passive";
1263				};
1264
1265				trip1: skin-crit {
1266					/* shut down at 65C */
1267					temperature = <65000>;
1268					hysteresis = <2000>;
1269					type = "critical";
1270				};
1271			};
1272
1273			cooling-maps {
1274				map0 {
1275					trip = <&trip0>;
1276					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1277							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1278							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1279							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1280							 <&actmon THERMAL_NO_LIMIT
1281								  THERMAL_NO_LIMIT>;
1282				};
1283			};
1284		};
1285
1286		cpu-thermal {
1287			polling-delay-passive = <1000>; /* milliseconds */
1288			polling-delay = <5000>; /* milliseconds */
1289
1290			thermal-sensors = <&nct72 1>;
1291
1292			trips {
1293				trip2: cpu-alert {
1294					/* throttle at 85C until temperature drops to 84.8C */
1295					temperature = <85000>;
1296					hysteresis = <200>;
1297					type = "passive";
1298				};
1299
1300				trip3: cpu-crit {
1301					/* shut down at 90C */
1302					temperature = <90000>;
1303					hysteresis = <2000>;
1304					type = "critical";
1305				};
1306			};
1307
1308			cooling-maps {
1309				map1 {
1310					trip = <&trip2>;
1311					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1312							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1313							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1314							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1315							 <&actmon THERMAL_NO_LIMIT
1316								  THERMAL_NO_LIMIT>;
1317				};
1318			};
1319		};
1320	};
1321};