/*
 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
 *
 * 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.
 */

/*
 * AM335x Starter Kit
 * http://www.ti.com/tool/tmdssk3358
 */

/dts-v1/;

/include/ "am33xx.dtsi"

/ {
	model = "TI AM335x EVM-SK";
	compatible = "ti,am335x-evmsk", "ti,am33xx";

	cpus {
		cpu@0 {
			cpu0-supply = <&vdd1_reg>;
		};
	};

	memory {
		device_type = "memory";
		reg = <0x80000000 0x10000000>; /* 256 MB */
	};

	am33xx_pinmux: pinmux@44e10800 {
		pinctrl-names = "default";
		pinctrl-0 = <&user_leds_s0 &gpio_keys_s0>;

		user_leds_s0: user_leds_s0 {
			pinctrl-single,pins = <
				0x10 0x7	/* gpmc_ad4.gpio1_4, OUTPUT | MODE7 */
				0x14 0x7	/* gpmc_ad5.gpio1_5, OUTPUT | MODE7 */
				0x18 0x7	/* gpmc_ad6.gpio1_6, OUTPUT | MODE7 */
				0x1c 0x7	/* gpmc_ad7.gpio1_7, OUTPUT | MODE7 */
			>;
		};

		gpio_keys_s0: gpio_keys_s0 {
			pinctrl-single,pins = <
				0x94 0x27	/* gpmc_oen_ren.gpio2_3, INPUT | MODE7 */
				0x90 0x27	/* gpmc_advn_ale.gpio2_2, INPUT | MODE7 */
				0x70 0x27	/* gpmc_wait0.gpio0_30, INPUT | MODE7 */
				0x9c 0x27	/* gpmc_ben0_cle.gpio2_5, INPUT | MODE7 */
			>;
		};
	};

	ocp {
		uart1: serial@44e09000 {
			status = "okay";
		};

		i2c0: i2c@44e0b000 {
			status = "okay";
			clock-frequency = <400000>;

			tps: tps@2d {
				reg = <0x2d>;
			};

			lis331dlh: lis331dlh@18 {
				compatible = "st,lis331dlh", "st,lis3lv02d";
				reg = <0x18>;
				Vdd-supply = <&lis3_reg>;
				Vdd_IO-supply = <&lis3_reg>;

				st,click-single-x;
				st,click-single-y;
				st,click-single-z;
				st,click-thresh-x = <10>;
				st,click-thresh-y = <10>;
				st,click-thresh-z = <10>;
				st,irq1-click;
				st,irq2-click;
				st,wakeup-x-lo;
				st,wakeup-x-hi;
				st,wakeup-y-lo;
				st,wakeup-y-hi;
				st,wakeup-z-lo;
				st,wakeup-z-hi;
				st,min-limit-x = <120>;
				st,min-limit-y = <120>;
				st,min-limit-z = <140>;
				st,max-limit-x = <550>;
				st,max-limit-y = <550>;
				st,max-limit-z = <750>;
			};
		};
	};

	vbat: fixedregulator@0 {
		compatible = "regulator-fixed";
		regulator-name = "vbat";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-boot-on;
	};

	lis3_reg: fixedregulator@1 {
		compatible = "regulator-fixed";
		regulator-name = "lis3_reg";
		regulator-boot-on;
	};

	leds {
		compatible = "gpio-leds";

		led@1 {
			label = "evmsk:green:usr0";
			gpios = <&gpio1 4 0>;
			default-state = "off";
		};

		led@2 {
			label = "evmsk:green:usr1";
			gpios = <&gpio1 5 0>;
			default-state = "off";
		};

		led@3 {
			label = "evmsk:green:mmc0";
			gpios = <&gpio1 6 0>;
			linux,default-trigger = "mmc0";
			default-state = "off";
		};

		led@4 {
			label = "evmsk:green:heartbeat";
			gpios = <&gpio1 7 0>;
			linux,default-trigger = "heartbeat";
			default-state = "off";
		};
	};

	gpio_buttons: gpio_buttons@0 {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

		switch@1 {
			label = "button0";
			linux,code = <0x100>;
			gpios = <&gpio2 3 0>;
		};

		switch@2 {
			label = "button1";
			linux,code = <0x101>;
			gpios = <&gpio2 2 0>;
		};

		switch@3 {
			label = "button2";
			linux,code = <0x102>;
			gpios = <&gpio0 30 0>;
			gpio-key,wakeup;
		};

		switch@4 {
			label = "button3";
			linux,code = <0x103>;
			gpios = <&gpio2 5 0>;
		};
	};
};

/include/ "tps65910.dtsi"

&tps {
	vcc1-supply = <&vbat>;
	vcc2-supply = <&vbat>;
	vcc3-supply = <&vbat>;
	vcc4-supply = <&vbat>;
	vcc5-supply = <&vbat>;
	vcc6-supply = <&vbat>;
	vcc7-supply = <&vbat>;
	vccio-supply = <&vbat>;

	regulators {
		vrtc_reg: regulator@0 {
			regulator-always-on;
		};

		vio_reg: regulator@1 {
			regulator-always-on;
		};

		vdd1_reg: regulator@2 {
			/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
			regulator-name = "vdd_mpu";
			regulator-min-microvolt = <912500>;
			regulator-max-microvolt = <1312500>;
			regulator-boot-on;
			regulator-always-on;
		};

		vdd2_reg: regulator@3 {
			/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
			regulator-name = "vdd_core";
			regulator-min-microvolt = <912500>;
			regulator-max-microvolt = <1150000>;
			regulator-boot-on;
			regulator-always-on;
		};

		vdd3_reg: regulator@4 {
			regulator-always-on;
		};

		vdig1_reg: regulator@5 {
			regulator-always-on;
		};

		vdig2_reg: regulator@6 {
			regulator-always-on;
		};

		vpll_reg: regulator@7 {
			regulator-always-on;
		};

		vdac_reg: regulator@8 {
			regulator-always-on;
		};

		vaux1_reg: regulator@9 {
			regulator-always-on;
		};

		vaux2_reg: regulator@10 {
			regulator-always-on;
		};

		vaux33_reg: regulator@11 {
			regulator-always-on;
		};

		vmmc_reg: regulator@12 {
			regulator-always-on;
		};
	};
};