/*
 * DTS file for CSR SiRFatlas7 Evaluation Board
 *
 * Copyright (c) 2014 Cambridge Silicon Radio Limited, a CSR plc group company.
 *
 * Licensed under GPLv2 or later.
 */

/dts-v1/;

/include/ "atlas7.dtsi"

#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "CSR SiRFatlas7 Evaluation Board";
	compatible = "sirf,atlas7-cb", "sirf,atlas7";

	chosen {
		bootargs = "console=ttySiRF1,115200 earlyprintk";
	};

	memory {
		device_type = "memory";
		reg = <0x40000000 0x20000000>;
	};

	reserved-memory {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		vpp_reserved: vpp_mem@5e800000 {
			compatible = "sirf,reserved-memory";
			reg = <0x5e800000 0x800000>;
		};

		nanddisk_reserved: nanddisk@46000000 {
			reg = <0x46000000 0x200000>;
			no-map;
		};
	};


	noc {
		mediam {
			nand@17050000 {
				memory-region = <&nanddisk_reserved>;
			};
		};

		gnssm {
			spi1: spi@18200000 {
				status = "okay";
				spiflash: macronix@0{
					status = "okay";
					compatible = "macronix,mx25l6405d";
					reg = <0>;
					spi-max-frequency = <37500000>;
					spi-cpha;
					spi-cpol;
					#address-cells = <1>;
					#size-cells = <1>;
					partitions@0 {
						label = "myspiboot";
						reg = <0x0 0x800000>;
					};
				};
			};
		};

		btm {
			uart6: uart@11000000 {
				status = "okay";
				sirf,uart-has-rtscts;
			};
		};

		disp-iobg {
			vpp@13110000 {
				memory-region = <&vpp_reserved>;
			};
		};

		display0: display@0 {
			compatible = "lvds-panel";
			source = "lvds.0";

			bl-gpios = <&gpio_1 63 0>;
			data-lines  = <24>;

			display-timings {
				native-mode = <&timing0>;
				timing0: timing0 {
					clock-frequency = <60000000>;
					hactive = <1024>;
					vactive = <600>;
					hfront-porch = <220>;
					hback-porch = <100>;
					hsync-len = <1>;
					vback-porch = <10>;
					vfront-porch = <25>;
					vsync-len = <1>;
					hsync-active = <0>;
					vsync-active = <0>;
					de-active = <1>;
					pixelclk-active = <1>;
				};
			};
		};

		gpio_keys {
			compatible = "gpio-keys";
			status = "okay";
			#address-cells = <1>;
			#size-cells = <0>;

			rearview_key {
				label = "rearview key";
				linux,code = <KEY_CAMERA>;
				gpios = <&gpio_1 3 GPIO_ACTIVE_LOW>;
				debounce_interval = <100>;
			};
		};

	};
};
