/dts-v1/;

#include "tegra20.dtsi"

/ {
	model = "NVIDIA Tegra20 Whistler evaluation board";
	compatible = "nvidia,whistler", "nvidia,tegra20";

	memory {
		reg = <0x00000000 0x20000000>;
	};

	host1x {
		hdmi {
			status = "okay";

			vdd-supply = <&hdmi_vdd_reg>;
			pll-supply = <&hdmi_pll_reg>;

			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
				GPIO_ACTIVE_HIGH>;
		};
	};

	pinmux {
		pinctrl-names = "default";
		pinctrl-0 = <&state_default>;

		state_default: pinmux {
			ata {
				nvidia,pins = "ata", "atb", "ate", "gma", "gmb",
					"gmc", "gmd", "gpu";
				nvidia,function = "gmi";
			};
			atc {
				nvidia,pins = "atc", "atd";
				nvidia,function = "sdio4";
			};
			cdev1 {
				nvidia,pins = "cdev1";
				nvidia,function = "plla_out";
			};
			cdev2 {
				nvidia,pins = "cdev2";
				nvidia,function = "osc";
			};
			crtp {
				nvidia,pins = "crtp";
				nvidia,function = "crt";
			};
			csus {
				nvidia,pins = "csus";
				nvidia,function = "vi_sensor_clk";
			};
			dap1 {
				nvidia,pins = "dap1";
				nvidia,function = "dap1";
			};
			dap2 {
				nvidia,pins = "dap2";
				nvidia,function = "dap2";
			};
			dap3 {
				nvidia,pins = "dap3";
				nvidia,function = "dap3";
			};
			dap4 {
				nvidia,pins = "dap4";
				nvidia,function = "dap4";
			};
			ddc {
				nvidia,pins = "ddc";
				nvidia,function = "i2c2";
			};
			dta {
				nvidia,pins = "dta", "dtb", "dtc", "dtd";
				nvidia,function = "vi";
			};
			dte {
				nvidia,pins = "dte";
				nvidia,function = "rsvd1";
			};
			dtf {
				nvidia,pins = "dtf";
				nvidia,function = "i2c3";
			};
			gme {
				nvidia,pins = "gme";
				nvidia,function = "dap5";
			};
			gpu7 {
				nvidia,pins = "gpu7";
				nvidia,function = "rtck";
			};
			gpv {
				nvidia,pins = "gpv";
				nvidia,function = "pcie";
			};
			hdint {
				nvidia,pins = "hdint", "pta";
				nvidia,function = "hdmi";
			};
			i2cp {
				nvidia,pins = "i2cp";
				nvidia,function = "i2cp";
			};
			irrx {
				nvidia,pins = "irrx", "irtx";
				nvidia,function = "uartb";
			};
			kbca {
				nvidia,pins = "kbca", "kbcc", "kbce", "kbcf";
				nvidia,function = "kbc";
			};
			kbcb {
				nvidia,pins = "kbcb", "kbcd";
				nvidia,function = "sdio2";
			};
			lcsn {
				nvidia,pins = "lcsn", "lsck", "lsda", "lsdi",
					"spia", "spib", "spic";
				nvidia,function = "spi3";
			};
			ld0 {
				nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4",
					"ld5", "ld6", "ld7", "ld8", "ld9",
					"ld10", "ld11", "ld12", "ld13", "ld14",
					"ld15", "ld16", "ld17", "ldc", "ldi",
					"lhp0", "lhp1", "lhp2", "lhs", "lm0",
					"lm1", "lpp", "lpw0", "lpw1", "lpw2",
					"lsc0", "lsc1", "lspi", "lvp0", "lvp1",
					"lvs";
				nvidia,function = "displaya";
			};
			owc {
				nvidia,pins = "owc", "uac";
				nvidia,function = "owr";
			};
			pmc {
				nvidia,pins = "pmc";
				nvidia,function = "pwr_on";
			};
			rm {
				nvidia,pins = "rm";
				nvidia,function = "i2c1";
			};
			sdb {
				nvidia,pins = "sdb", "sdc", "sdd", "slxa",
					"slxc", "slxd", "slxk";
				nvidia,function = "sdio3";
			};
			sdio1 {
				nvidia,pins = "sdio1";
				nvidia,function = "sdio1";
			};
			spdi {
				nvidia,pins = "spdi", "spdo";
				nvidia,function = "rsvd2";
			};
			spid {
				nvidia,pins = "spid", "spie", "spig", "spih";
				nvidia,function = "spi2_alt";
			};
			spif {
				nvidia,pins = "spif";
				nvidia,function = "spi2";
			};
			uaa {
				nvidia,pins = "uaa", "uab";
				nvidia,function = "uarta";
			};
			uad {
				nvidia,pins = "uad";
				nvidia,function = "irda";
			};
			uca {
				nvidia,pins = "uca", "ucb";
				nvidia,function = "uartc";
			};
			uda {
				nvidia,pins = "uda";
				nvidia,function = "spi1";
			};
			conf_ata {
				nvidia,pins = "ata", "atb", "atc", "ddc", "gma",
					"gmb", "gmc", "gmd", "irrx", "irtx",
					"kbca", "kbcb", "kbcc", "kbcd", "kbce",
					"kbcf", "sdc", "sdd", "spie", "spig",
					"spih", "uaa", "uab", "uad", "uca",
					"ucb";
				nvidia,pull = <2>;
				nvidia,tristate = <0>;
			};
			conf_atd {
				nvidia,pins = "atd", "ate", "cdev1", "csus",
					"dap1", "dap2", "dap3", "dap4", "dte",
					"dtf", "gpu", "gpu7", "gpv", "i2cp",
					"rm", "sdio1", "slxa", "slxc", "slxd",
					"slxk", "spdi", "spdo", "uac", "uda";
				nvidia,pull = <0>;
				nvidia,tristate = <0>;
			};
			conf_cdev2 {
				nvidia,pins = "cdev2", "spia", "spib";
				nvidia,pull = <1>;
				nvidia,tristate = <1>;
			};
			conf_ck32 {
				nvidia,pins = "ck32", "ddrc", "lc", "pmca",
					"pmcb", "pmcc", "pmcd", "xm2c",
					"xm2d";
				nvidia,pull = <0>;
			};
			conf_crtp {
				nvidia,pins = "crtp";
				nvidia,pull = <0>;
				nvidia,tristate = <1>;
			};
			conf_dta {
				nvidia,pins = "dta", "dtb", "dtc", "dtd",
					"spid", "spif";
				nvidia,pull = <1>;
				nvidia,tristate = <0>;
			};
			conf_gme {
				nvidia,pins = "gme", "owc", "pta", "spic";
				nvidia,pull = <2>;
				nvidia,tristate = <1>;
			};
			conf_ld17_0 {
				nvidia,pins = "ld17_0", "ld19_18", "ld21_20",
					"ld23_22";
				nvidia,pull = <1>;
			};
			conf_ls {
				nvidia,pins = "ls", "pmce";
				nvidia,pull = <2>;
			};
			drive_dap1 {
				nvidia,pins = "drive_dap1";
				nvidia,high-speed-mode = <0>;
				nvidia,schmitt = <1>;
				nvidia,low-power-mode = <0>;
				nvidia,pull-down-strength = <0>;
				nvidia,pull-up-strength = <0>;
				nvidia,slew-rate-rising = <0>;
				nvidia,slew-rate-falling = <0>;
			};
		};
	};

	i2s@70002800 {
		status = "okay";
	};

	serial@70006000 {
		status = "okay";
	};

	hdmi_ddc: i2c@7000c400 {
		status = "okay";
		clock-frequency = <100000>;
	};

	i2c@7000d000 {
		status = "okay";
		clock-frequency = <100000>;

		codec: codec@1a {
			compatible = "wlf,wm8753";
			reg = <0x1a>;
		};

		tca6416: gpio@20 {
			compatible = "ti,tca6416";
			reg = <0x20>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		max8907@3c {
			compatible = "maxim,max8907";
			reg = <0x3c>;
			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;

			maxim,system-power-controller;

			mbatt-supply = <&usb0_vbus_reg>;
			in-v1-supply = <&mbatt_reg>;
			in-v2-supply = <&mbatt_reg>;
			in-v3-supply = <&mbatt_reg>;
			in1-supply = <&mbatt_reg>;
			in2-supply = <&nvvdd_sv3_reg>;
			in3-supply = <&mbatt_reg>;
			in4-supply = <&mbatt_reg>;
			in5-supply = <&mbatt_reg>;
			in6-supply = <&mbatt_reg>;
			in7-supply = <&mbatt_reg>;
			in8-supply = <&mbatt_reg>;
			in9-supply = <&mbatt_reg>;
			in10-supply = <&mbatt_reg>;
			in11-supply = <&mbatt_reg>;
			in12-supply = <&mbatt_reg>;
			in13-supply = <&mbatt_reg>;
			in14-supply = <&mbatt_reg>;
			in15-supply = <&mbatt_reg>;
			in16-supply = <&mbatt_reg>;
			in17-supply = <&nvvdd_sv3_reg>;
			in18-supply = <&nvvdd_sv3_reg>;
			in19-supply = <&mbatt_reg>;
			in20-supply = <&mbatt_reg>;

			regulators {
				mbatt_reg: mbatt {
					regulator-name = "vbat_pmu";
					regulator-always-on;
				};

				sd1 {
					regulator-name = "nvvdd_sv1,vdd_cpu_pmu";
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1000000>;
					regulator-always-on;
				};

				sd2 {
					regulator-name = "nvvdd_sv2,vdd_core";
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
					regulator-always-on;
				};

				nvvdd_sv3_reg: sd3 {
					regulator-name = "nvvdd_sv3";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
				};

				ldo1 {
					regulator-name = "nvvdd_ldo1,vddio_rx_ddr,vcore_acc";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
					regulator-always-on;
				};

				ldo2 {
					regulator-name = "nvvdd_ldo2,avdd_pll*";
					regulator-min-microvolt = <1100000>;
					regulator-max-microvolt = <1100000>;
					regulator-always-on;
				};

				ldo3 {
					regulator-name = "nvvdd_ldo3,vcom_1v8b";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
				};

				ldo4 {
					regulator-name = "nvvdd_ldo4,avdd_usb*";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
					regulator-always-on;
				};

				ldo5 {
					regulator-name = "nvvdd_ldo5,vcore_mmc,avdd_lcd1,vddio_1wire";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
					regulator-always-on;
				};

				hdmi_pll_reg: ldo6 {
					regulator-name = "nvvdd_ldo6,avdd_hdmi_pll";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};

				ldo7 {
					regulator-name = "nvvdd_ldo7,avddio_audio";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
					regulator-always-on;
				};

				ldo8 {
					regulator-name = "nvvdd_ldo8,vcom_3v0,vcore_cmps";
					regulator-min-microvolt = <3000000>;
					regulator-max-microvolt = <3000000>;
				};

				ldo9 {
					regulator-name = "nvvdd_ldo9,avdd_cam*";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
				};

				ldo10 {
					regulator-name = "nvvdd_ldo10,avdd_usb_ic_3v0";
					regulator-min-microvolt = <3000000>;
					regulator-max-microvolt = <3000000>;
					regulator-always-on;
				};

				hdmi_vdd_reg: ldo11 {
					regulator-name = "nvvdd_ldo11,vddio_pex_clk,vcom_33,avdd_hdmi";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
				};

				ldo12 {
					regulator-name = "nvvdd_ldo12,vddio_sdio";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
					regulator-always-on;
				};

				ldo13 {
					regulator-name = "nvvdd_ldo13,vcore_phtn,vdd_af";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
				};

				ldo14 {
					regulator-name = "nvvdd_ldo14,avdd_vdac";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
				};

				ldo15 {
					regulator-name = "nvvdd_ldo15,vcore_temp,vddio_hdcp";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
				};

				ldo16 {
					regulator-name = "nvvdd_ldo16,vdd_dbrtr";
					regulator-min-microvolt = <1300000>;
					regulator-max-microvolt = <1300000>;
				};

				ldo17 {
					regulator-name = "nvvdd_ldo17,vddio_mipi";
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
				};

				ldo18 {
					regulator-name = "nvvdd_ldo18,vddio_vi,vcore_cam*";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};

				ldo19 {
					regulator-name = "nvvdd_ldo19,avdd_lcd2,vddio_lx";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
				};

				ldo20 {
					regulator-name = "nvvdd_ldo20,vddio_ddr_1v2,vddio_hsic,vcom_1v2";
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
					regulator-always-on;
				};

				out5v {
					regulator-name = "usb0_vbus_reg";
				};

				out33v {
					regulator-name = "pmu_out3v3";
				};

				bbat {
					regulator-name = "pmu_bbat";
					regulator-min-microvolt = <2400000>;
					regulator-max-microvolt = <2400000>;
					regulator-always-on;
				};

				sdby {
					regulator-name = "vdd_aon";
					regulator-always-on;
				};

				vrtc {
					regulator-name = "vrtc,pmu_vccadc";
					regulator-always-on;
				};
			};
		};
	};

	pmc {
		nvidia,invert-interrupt;
		nvidia,suspend-mode = <1>;
		nvidia,cpu-pwr-good-time = <2000>;
		nvidia,cpu-pwr-off-time = <1000>;
		nvidia,core-pwr-good-time = <0 3845>;
		nvidia,core-pwr-off-time = <93727>;
		nvidia,core-power-req-active-high;
		nvidia,sys-clock-req-active-high;
		nvidia,combined-power-req;
	};

	usb@c5000000 {
		status = "okay";
	};

	usb-phy@c5000000 {
		status = "okay";
		vbus-supply = <&vbus1_reg>;
	};

	usb@c5008000 {
		status = "okay";
	};

	usb-phy@c5008000 {
		status = "okay";
		vbus-supply = <&vbus3_reg>;
	};

	sdhci@c8000400 {
		status = "okay";
		cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
		wp-gpios = <&gpio TEGRA_GPIO(V, 5) GPIO_ACTIVE_HIGH>;
		bus-width = <8>;
	};

	sdhci@c8000600 {
		status = "okay";
		bus-width = <8>;
		non-removable;
	};

	clocks {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;

		clk32k_in: clock {
			compatible = "fixed-clock";
			reg=<0>;
			#clock-cells = <0>;
			clock-frequency = <32768>;
		};
	};

	kbc {
		status = "okay";
		nvidia,debounce-delay-ms = <20>;
		nvidia,repeat-delay-ms = <160>;
		nvidia,kbc-row-pins = <0 1 2>;
		nvidia,kbc-col-pins = <16 17>;
		nvidia,wakeup-source;
		linux,keymap = <0x00000074	/* KEY_POWER */
				0x01000066	/* KEY_HOME */
				0x0101009E	/* KEY_BACK */
				0x0201008B>;	/* KEY_MENU */
	};

	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;

		usb0_vbus_reg: regulator {
			compatible = "regulator-fixed";
			reg = <0>;
			regulator-name = "usb0_vbus";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			regulator-always-on;
		};

		vbus1_reg: regulator@2 {
			compatible = "regulator-fixed";
			reg = <2>;
			regulator-name = "vbus1";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			gpio = <&tca6416 0 0>; /* GPIO_PMU0 */
			regulator-always-on;
			regulator-boot-on;
		};

		vbus3_reg: regulator@3 {
			compatible = "regulator-fixed";
			reg = <3>;
			regulator-name = "vbus3";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			gpio = <&tca6416 1 0>; /* GPIO_PMU1 */
			regulator-always-on;
			regulator-boot-on;
		};
	};

	sound {
		compatible = "nvidia,tegra-audio-wm8753-whistler",
			     "nvidia,tegra-audio-wm8753";
		nvidia,model = "NVIDIA Tegra Whistler";

		nvidia,audio-routing =
			"Headphone Jack", "LOUT1",
			"Headphone Jack", "ROUT1",
			"MIC2", "Mic Jack",
			"MIC2N", "Mic Jack";

		nvidia,i2s-controller = <&tegra_i2s1>;
		nvidia,audio-codec = <&codec>;

		clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
			 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
			 <&tegra_car TEGRA20_CLK_CDEV1>;
		clock-names = "pll_a", "pll_a_out0", "mclk";
	};
};
