/*
 * Google Snow board device tree source
 *
 * Copyright (c) 2012 Google, Inc
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
*/

/dts-v1/;
#include "exynos5250.dtsi"
#include "exynos5250-cros-common.dtsi"

/ {
	model = "Google Snow";
	compatible = "google,snow", "samsung,exynos5250", "samsung,exynos5";

	aliases {
		i2c104 = &i2c_104;
	};

	rtc@101E0000 {
		status = "okay";
	};

	pinctrl@11400000 {
		ec_irq: ec-irq {
			samsung,pins = "gpx1-6";
			samsung,pin-function = <0>;
			samsung,pin-pud = <0>;
			samsung,pin-drv = <0>;
		};

		sd3_clk: sd3-clk {
			samsung,pin-drv = <0>;
		};

		sd3_cmd: sd3-cmd {
			samsung,pin-pud = <3>;
			samsung,pin-drv = <0>;
		};

		sd3_bus4: sd3-bus-width4 {
			samsung,pin-drv = <0>;
		};

		max98095_en: max98095-en {
			samsung,pins = "gpx1-7";
			samsung,pin-function = <0>;
			samsung,pin-pud = <3>;
			samsung,pin-drv = <0>;
		};

		tps65090_irq: tps65090-irq {
			samsung,pins = "gpx2-6";
			samsung,pin-function = <0>;
			samsung,pin-pud = <0>;
			samsung,pin-drv = <0>;
		};

		usb3_vbus_en: usb3-vbus-en {
			samsung,pins = "gpx2-7";
			samsung,pin-function = <1>;
			samsung,pin-pud = <0>;
			samsung,pin-drv = <0>;
		};

		hdmi_hpd_irq: hdmi-hpd-irq {
			samsung,pins = "gpx3-7";
			samsung,pin-function = <0>;
			samsung,pin-pud = <1>;
			samsung,pin-drv = <0>;
		};
	};

	pinctrl@13400000 {
		arb_their_claim: arb-their-claim {
			samsung,pins = "gpe0-4";
			samsung,pin-function = <0>;
			samsung,pin-pud = <3>;
			samsung,pin-drv = <0>;
		};

		arb_our_claim: arb-our-claim {
			samsung,pins = "gpf0-3";
			samsung,pin-function = <1>;
			samsung,pin-pud = <0>;
			samsung,pin-drv = <0>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";

		lid-switch {
			label = "Lid";
			gpios = <&gpx3 5 1>;
			linux,input-type = <5>; /* EV_SW */
			linux,code = <0>; /* SW_LID */
			debounce-interval = <1>;
			gpio-key,wakeup;
		};
	};

	vbat: vbat-fixed-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vbat-supply";
		regulator-boot-on;
	};

	i2c-arbitrator {
		compatible = "i2c-arb-gpio-challenge";
		#address-cells = <1>;
		#size-cells = <0>;

		i2c-parent = <&{/i2c@12CA0000}>;

		our-claim-gpio = <&gpf0 3 1>;
		their-claim-gpios = <&gpe0 4 1>;
		slew-delay-us = <10>;
		wait-retry-us = <3000>;
		wait-free-us = <50000>;

		pinctrl-names = "default";
		pinctrl-0 = <&arb_our_claim &arb_their_claim>;

		/* Use ID 104 as a hint that we're on physical bus 4 */
		i2c_104: i2c@0 {
			reg = <0>;
			#address-cells = <1>;
			#size-cells = <0>;

			battery: sbs-battery@b {
				compatible = "sbs,sbs-battery";
				reg = <0xb>;
				sbs,poll-retry-count = <1>;
			};

			ec: embedded-controller {
				compatible = "google,cros-ec-i2c";
				reg = <0x1e>;
				interrupts = <6 0>;
				interrupt-parent = <&gpx1>;
				pinctrl-names = "default";
				pinctrl-0 = <&ec_irq>;
				wakeup-source;

				keyboard-controller {
				        compatible = "google,cros-ec-keyb";
				        keypad,num-rows = <8>;
				        keypad,num-columns = <13>;
				        google,needs-ghost-filter;
					linux,keymap = <0x0001007d	/* L_META */
							0x0002003b	/* F1 */
							0x00030030	/* B */
							0x00040044	/* F10 */
							0x00060031	/* N */
							0x0008000d	/* = */
							0x000a0064	/* R_ALT */

							0x01010001	/* ESC */
							0x0102003e	/* F4 */
							0x01030022	/* G */
							0x01040041	/* F7 */
							0x01060023	/* H */
							0x01080028	/* ' */
							0x01090043	/* F9 */
							0x010b000e	/* BKSPACE */

							0x0200001d	/* L_CTRL */
							0x0201000f	/* TAB */
							0x0202003d	/* F3 */
							0x02030014	/* T */
							0x02040040	/* F6 */
							0x0205001b	/* ] */
							0x02060015	/* Y */
							0x02070056	/* 102ND */
							0x0208001a	/* [ */
							0x02090042	/* F8 */

							0x03010029	/* GRAVE */
							0x0302003c	/* F2 */
							0x03030006	/* 5 */
							0x0304003f	/* F5 */
							0x03060007	/* 6 */
							0x0308000c	/* - */
							0x030b002b	/* \ */

							0x04000061	/* R_CTRL */
							0x0401001e	/* A */
							0x04020020	/* D */
							0x04030021	/* F */
							0x0404001f	/* S */
							0x04050025	/* K */
							0x04060024	/* J */
							0x04080027	/* ; */
							0x04090026	/* L */
							0x040a002b	/* \ */
							0x040b001c	/* ENTER */

							0x0501002c	/* Z */
							0x0502002e	/* C */
							0x0503002f	/* V */
							0x0504002d	/* X */
							0x05050033	/* , */
							0x05060032	/* M */
							0x0507002a	/* L_SHIFT */
							0x05080035	/* / */
							0x05090034	/* . */
							0x050B0039	/* SPACE */

							0x06010002	/* 1 */
							0x06020004	/* 3 */
							0x06030005	/* 4 */
							0x06040003	/* 2 */
							0x06050009	/* 8 */
							0x06060008	/* 7 */
							0x0608000b	/* 0 */
							0x0609000a	/* 9 */
							0x060a0038	/* L_ALT */
							0x060b006c	/* DOWN */
							0x060c006a	/* RIGHT */

							0x07010010	/* Q */
							0x07020012	/* E */
							0x07030013	/* R */
							0x07040011	/* W */
							0x07050017	/* I */
							0x07060016	/* U */
							0x07070036	/* R_SHIFT */
							0x07080019	/* P */
							0x07090018	/* O */
							0x070b0067	/* UP */
							0x070c0069>;	/* LEFT */
				};
			};

			power-regulator {
				compatible = "ti,tps65090";
				reg = <0x48>;

				/*
				 * Config irq to disable internal pulls
				 * even though we run in polling mode.
				 */
				pinctrl-names = "default";
				pinctrl-0 = <&tps65090_irq>;

				vsys1-supply = <&vbat>;
				vsys2-supply = <&vbat>;
				vsys3-supply = <&vbat>;
				infet1-supply = <&vbat>;
				infet2-supply = <&vbat>;
				infet3-supply = <&vbat>;
				infet4-supply = <&vbat>;
				infet5-supply = <&vbat>;
				infet6-supply = <&vbat>;
				infet7-supply = <&vbat>;
				vsys-l1-supply = <&vbat>;
				vsys-l2-supply = <&vbat>;

				regulators {
					dcdc1 {
						ti,enable-ext-control;
					};
					dcdc2 {
						ti,enable-ext-control;
					};
					dcdc3 {
						ti,enable-ext-control;
					};
					fet1 {
						regulator-name = "vcd_led";
						ti,overcurrent-wait = <3>;
					};
					tps65090_fet2: fet2 {
						regulator-name = "video_mid";
						regulator-always-on;
						ti,overcurrent-wait = <3>;
					};
					fet3 {
						regulator-name = "wwan_r";
						regulator-always-on;
						ti,overcurrent-wait = <3>;
					};
					fet4 {
						regulator-name = "sdcard";
						ti,overcurrent-wait = <3>;
					};
					fet5 {
						regulator-name = "camout";
						regulator-always-on;
						ti,overcurrent-wait = <3>;
					};
					fet6 {
						regulator-name = "lcd_vdd";
						ti,overcurrent-wait = <3>;
					};
					tps65090_fet7: fet7 {
						regulator-name = "video_mid_1a";
						regulator-always-on;
						ti,overcurrent-wait = <3>;
					};
					ldo1 {
					};
					ldo2 {
					};
				};

				charger {
					compatible = "ti,tps65090-charger";
				};
			};
		};
	};

	mmc@12200000 {
		status = "okay";
	};

	mmc@12220000 {
		status = "okay";
	};

	/*
	 * On Snow we've got SIP WiFi and so can keep drive strengths low to
	 * reduce EMI.
	 */
	mmc@12230000 {
		status = "okay";
		slot@0 {
			pinctrl-names = "default";
			pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>;
		};
	};

	i2c@12CD0000 {
		max98095: codec@11 {
			compatible = "maxim,max98095";
			reg = <0x11>;
			pinctrl-0 = <&max98095_en>;
			pinctrl-names = "default";
		};
	};

	i2s0: i2s@03830000 {
		status = "okay";
	};

	sound {
		compatible = "google,snow-audio-max98095";

		samsung,i2s-controller = <&i2s0>;
		samsung,audio-codec = <&max98095>;
	};

	usb3_vbus_reg: regulator-usb3 {
		compatible = "regulator-fixed";
		regulator-name = "P5.0V_USB3CON";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpx2 7 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb3_vbus_en>;
		enable-active-high;
	};

	phy@12100000 {
		vbus-supply = <&usb3_vbus_reg>;
	};

	usb@12110000 {
		samsung,vbus-gpio = <&gpx1 1 0>;
	};

	fixed-rate-clocks {
		xxti {
			compatible = "samsung,clock-xxti";
			clock-frequency = <24000000>;
		};
	};

	hdmi {
		hdmi-en-supply = <&tps65090_fet7>;
		vdd-supply = <&ldo8_reg>;
		vdd_osc-supply = <&ldo10_reg>;
		vdd_pll-supply = <&ldo8_reg>;
	};

	backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm 0 1000000 0>;
		brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
		default-brightness-level = <7>;
		pinctrl-0 = <&pwm0_out>;
		pinctrl-names = "default";
	};

	fimd@14400000 {
		status = "okay";
		samsung,invert-vclk;
	};

	dp-controller@145B0000 {
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&dp_hpd>;
		samsung,color-space = <0>;
		samsung,dynamic-range = <0>;
		samsung,ycbcr-coeff = <0>;
		samsung,color-depth = <1>;
		samsung,link-rate = <0x0a>;
		samsung,lane-count = <2>;
		samsung,hpd-gpio = <&gpx0 7 0>;

		display-timings {
			native-mode = <&timing1>;

			timing1: timing@1 {
				clock-frequency = <70589280>;
				hactive = <1366>;
				vactive = <768>;
				hfront-porch = <40>;
				hback-porch = <40>;
				hsync-len = <32>;
				vback-porch = <10>;
				vfront-porch = <12>;
				vsync-len = <6>;
			};
		};
	};
};
