// SPDX-License-Identifier: GPL-2.0-only
/*
 * Device Tree file for CalAmp LMU5000 board
 *
 * Copyright (C) 2013 Adam Porter <porter.adam@gmail.com>
 */

/dts-v1/;
#include "at91sam9g20.dtsi"

/ {
	model = "CalAmp LMU5000";
	compatible = "calamp,lmu5000", "atmel,at91sam9g20", "atmel,at91sam9";

	chosen {
		bootargs = "mem=64M console=ttyS0,115200 rootfstype=jffs2";
	};

	memory {
		reg = <0x20000000 0x4000000>;
	};

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

		main_clock: clock@0 {
			compatible = "atmel,osc", "fixed-clock";
			clock-frequency = <18432000>;
		};
	};
};

&dbgu {
	status = "okay";
};

&ebi {
	status = "okay";

	nand_controller: nand-controller {
		pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
		pinctrl-names = "default";
		status = "okay";

		nand@3 {
			reg = <0x3 0x0 0x800000>;
			rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
			cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
			nand-bus-width = <8>;
			nand-ecc-mode = "soft";
			nand-on-flash-bbt;
			label = "atmel_nand";
			status = "okay";

			partitions {
				compatible = "fixed-partitions";
				#address-cells = <1>;
				#size-cells = <1>;

				kernel@0 {
					label = "kernel";
					reg = <0x0 0x400000>;
				};

				rootfs@400000 {
					label = "rootfs";
					reg = <0x400000 0x3C00000>;
				};

				user1@4000000 {
					label = "user1";
					reg = <0x4000000 0x2000000>;
				};

				user2@6000000 {
					label = "user2";
					reg = <0x6000000 0x2000000>;
				};
			};
		};
	};
};

&macb0 {
	phy-mode = "mii";
	status = "okay";
};

&pinctrl {
	board {
		pinctrl_pck0_as_mck: pck0_as_mck {
			atmel,pins = <AT91_PIOC 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;
		};
	};

	usb0 {
		pinctrl_usb1_vbus_gpio: usb0_vbus_gpio {
			atmel,pins = <AT91_PIOC 5 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
		};
	};
};

&ssc0 {
	status = "okay";
	pinctrl-0 = <&pinctrl_ssc0_tx>;
};

&uart0 {
	status = "okay";
};

&uart1 {
	status = "okay";
};

&usart0 {
	pinctrl-0 =
		<&pinctrl_usart0
		 &pinctrl_usart0_rts
		 &pinctrl_usart0_cts
		 &pinctrl_usart0_dtr_dsr
		 &pinctrl_usart0_dcd
		 &pinctrl_usart0_ri>;
	status = "okay";
};

&usart2 {
	status = "okay";
};

&usb0 {
	num-ports = <2>;
	status = "okay";
};

&usb1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usb1_vbus_gpio>;
	atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
	status = "okay";
};

&watchdog {
	status = "okay";
};
