/*
 *  linux/arch/arm/boot/nspire-classic.dts
 *
 *  Copyright (C) 2013 Daniel Tang <tangrs@tangrs.id.au>
 *
 * 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.
 *
 */

/include/ "nspire.dtsi"

&lcd {
	lcd-type = "classic";
};

&fast_timer {
	/* compatible = "lsi,zevio-timer"; */
	reg = <0x90010000 0x1000>, <0x900A0010 0x8>;
};

&uart {
	compatible = "ns16550";
	reg-shift = <2>;
	reg-io-width = <4>;
	clocks = <&apb_pclk>;
	no-loopback-test;
};

&timer0 {
	/* compatible = "lsi,zevio-timer"; */
	reg = <0x900C0000 0x1000>, <0x900A0018 0x8>;
};

&timer1 {
	compatible = "lsi,zevio-timer";
	reg = <0x900D0000 0x1000>, <0x900A0020 0x8>;
};

&keypad {
	active-low;

};

&base_clk {
	compatible = "lsi,nspire-classic-clock";
};

&ahb_clk {
	compatible = "lsi,nspire-classic-ahb-divider";
};


&vbus_reg {
	gpio = <&gpio 5 0>;
};

/ {
	memory {
		device_type = "memory";
		reg = <0x10000000 0x2000000>; /* 32 MB */
	};

	ahb {
		#address-cells = <1>;
		#size-cells = <1>;

		intc: interrupt-controller@DC000000 {
			compatible = "lsi,zevio-intc";
			interrupt-controller;
			reg = <0xDC000000 0x1000>;
			#interrupt-cells = <1>;
		};
	};
	chosen {
		bootargs = "debug earlyprintk console=tty0 console=ttyS0,115200n8 root=/dev/ram0";
	};
};
