// SPDX-License-Identifier: GPL-2.0
/*
 * at91-kizboxmini.dts - Device Tree file for Overkiz Kizbox mini board
 *
 * Copyright (C) 2014-2018 Overkiz SAS
 *   Author: Antoine Aubert <a.aubert@overkiz.com>
 *           Gaël Portay <g.portay@overkiz.com>
 *           Kévin Raymond <k.raymond@overkiz.com>
 *           Dorian Rocipon <d.rocipon@overkiz.com>
 */
#include "at91sam9g25.dtsi"

/ {
	chosen {
		bootargs = "ubi.mtd=ubi";
		stdout-path = &dbgu;
	};

	memory@20000000 {
		reg = <0x20000000 0x8000000>;
	};

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

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

		adc_op_clk {
			status = "disabled";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";

		key-prog {
			label = "PB_PROG";
			gpios = <&pioC 17 GPIO_ACTIVE_LOW>;
			linux,code = <0x102>;
			wakeup-source;
		};

		key-reset {
			label = "PB_RST";
			gpios = <&pioC 16 GPIO_ACTIVE_LOW>;
			linux,code = <0x100>;
			wakeup-source;
		};
	};

	leds: led-controller-1 {
		compatible = "pwm-leds";

		led_blue: led-1 {
			label = "pwm:blue:user";
			pwms = <&pwm0 2 10000000 0>;
			max-brightness = <255>;
			linux,default-trigger = "none";
			status = "disabled";
		};

		led_green: led-2 {
			label = "pwm:green:user";
			pwms = <&pwm0 0 10000000 0>;
			max-brightness = <255>;
			linux,default-trigger = "default-on";
		};

		led_red: led-3 {
			label = "pwm:red:user";
			pwms = <&pwm0 1 10000000 0>;
			max-brightness = <255>;
			linux,default-trigger = "default-on";
		};
	};
};

&usart0 {
	atmel,use-dma-rx;
	atmel,use-dma-tx;
	status = "okay";
};

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

&pwm0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pwm0_pwm0_1
		     &pinctrl_pwm0_pwm1_1
		     &pinctrl_pwm0_pwm2_1>;
	status = "okay";
};

&dbgu {
	status = "okay";
};

&watchdog {
	status = "okay";
};

&adc0 {
	status = "disabled";
};

&rtc {
	status = "disabled";
};

&ebi {
	pinctrl-0 = <&pinctrl_ebi_addr_nand
			&pinctrl_ebi_data_0_7>;
	pinctrl-names = "default";
	status = "okay";
};

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

	nand@3 {
		reg = <0x3 0x0 0x800000>;
		rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
		cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
		nand-bus-width = <8>;
		nand-ecc-mode = "hw";
		nand-ecc-strength = <4>;
		nand-ecc-step-size = <512>;
		nand-on-flash-bbt;
		label = "atmel_nand";

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

			bootstrap@0 {
				label = "bootstrap";
				reg = <0x0 0x20000>;
			};

			ubi@20000 {
				label = "ubi";
				reg = <0x20000 0x7fe0000>;
			};
		};
	};
};

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

&usb1 {
	status = "okay";
};