// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * at91-ariag25.dts - Device Tree file for Acme Systems Aria G25 (AT91SAM9G25 based)
 *
 * Copyright (C) 2013 Douglas Gilbert <dgilbert@interlog.com>,
 *                    Robert Nelson <robertcnelson@gmail.com>
 */
/dts-v1/;
#include "at91sam9g25.dtsi"

/ {
	model = "Acme Systems Aria G25";
	compatible = "acme,ariag25", "atmel,at91sam9x5ek",
		     "atmel,at91sam9x5", "atmel,at91sam9";

	aliases {
		serial0 = &dbgu;
		serial1 = &usart0;
		serial2 = &usart1;
		serial3 = &usart2;
		serial4 = &usart3;
		serial5 = &uart0;
		serial6 = &uart1;
	};

	chosen {
		bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";
	};

	memory {
		/* 128 MB, change this for 256 MB revision */
		reg = <0x20000000 0x8000000>;
	};

	clocks {
		slow_xtal {
			clock-frequency = <32768>;
		};

		main_xtal {
			clock-frequency = <12000000>;
		};
	};

	ahb {
		apb {
			mmc0: mmc@f0008000 {
				/* N.B. Aria has no SD card detect (CD), assumed present */

				pinctrl-0 = <
					&pinctrl_mmc0_slot0_clk_cmd_dat0
					&pinctrl_mmc0_slot0_dat1_3>;
				status = "okay";
				slot@0 {
					reg = <0>;
					bus-width = <4>;
				};
			};

			tcb0: timer@f8008000 {
				timer@0 {
					compatible = "atmel,tcb-timer";
					reg = <0>;
				};

				timer@1 {
					compatible = "atmel,tcb-timer";
					reg = <1>;
				};
			};

			i2c0: i2c@f8010000 {
				status = "okay";
			};

			i2c1: i2c@f8014000 {
				status = "okay";
			};

			/* TWD2+TCLK2 hidden behind ethernet, so no i2c2 */

			usart0: serial@f801c000 {
				pinctrl-0 = <&pinctrl_usart0
					     &pinctrl_usart0_rts
					     &pinctrl_usart0_cts>;
				status = "okay";
			};

			usart1: serial@f8020000 {
				pinctrl-0 = <&pinctrl_usart1
					     /* &pinctrl_usart1_rts */
					     /* &pinctrl_usart1_cts */
					    >;
				status = "okay";
			};

			usart2: serial@f8024000 {
				/* cannot activate RTS2+CTS2, clash with
				 * ethernet on PB0 and PB1 */
				pinctrl-0 = <&pinctrl_usart2>;
				status = "okay";
			};

			usart3: serial@f8028000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xf8028000 0x200>;
				interrupts = <8 4 5>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_usart3
					     /* &pinctrl_usart3_rts */
					     /* &pinctrl_usart3_cts */
					    >;
				status = "okay";
			};

			macb0: ethernet@f802c000 {
				phy-mode = "rmii";
				/*
				 * following can be overwritten by bootloader:
				 * for example u-boot 'ftd set' command
				 */
				local-mac-address = [00 00 00 00 00 00];
				status = "okay";
			};

			/*
			 * UART0/1 pins are marked as GPIO on
			 * Aria documentation.
			 * Change to "okay" if you need additional serial ports
			 */
			uart0: serial@f8040000 {
				status = "disabled";
			};

			uart1: serial@f8044000 {
				status = "disabled";
			};

			adc0: adc@f804c000 {
				status = "okay";
				atmel,adc-channels-used = <0xf>;
			};

			dbgu: serial@fffff200 {
				status = "okay";
			};

			pinctrl@fffff400 {
				w1_0 {
					pinctrl_w1_0: w1_0-0 {
						atmel,pins = <0 21 0x0 0x1>; /* PA21 PIO, pull-up */
					};
				};
			};

			rtc@fffffeb0 {
				status = "okay";
			};
		};

		usb0: ohci@600000 {
			status = "okay";
			num-ports = <3>;
		};

		usb1: ehci@700000 {
			status = "okay";
		};
	};

	leds {
		compatible = "gpio-leds";

		/* little green LED in middle of Aria G25 module */
		aria_led {
			label = "aria_led";
			gpios = <&pioB 8 GPIO_ACTIVE_HIGH>; /* PB8 */
			linux,default-trigger = "heartbeat";
		};

	};

	onewire {
		compatible = "w1-gpio";
		gpios = <&pioA 21 GPIO_ACTIVE_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_w1_0>;
	};
};
