// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * DTS file for CSR SiRFatlas7 Evaluation Board
 *
 * Copyright (c) 2014 Cambridge Silicon Radio Limited, a CSR plc group company.
 */

/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";
				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>;
			};
		};

	};
};
