/*
 * at91-kizbox.dts - Device Tree file for Overkiz Kizbox board
 *
 * Copyright (C) 2012-2014 Boris BREZILLON <b.brezillon@overkiz.com>
 *               2014-2015 Gaël PORTAY <g.portay@overkiz.com>
 *
 * Licensed under GPLv2 or later.
 */
/dts-v1/;
#include "at91sam9g20.dtsi"
#include <dt-bindings/pwm/pwm.h>

/ {
	model = "Overkiz Kizbox";
	compatible = "overkiz,kizbox", "atmel,at91sam9g20", "atmel,at91sam9";

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

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

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

	ahb {
		apb {
			tcb0: timer@fffa0000 {
				timer@0 {
					compatible = "atmel,tcb-timer";
					reg = <0>, <1>;
				};

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

			macb0: ethernet@fffc4000 {
				phy-mode = "mii";
				pinctrl-0 = <&pinctrl_macb_rmii
				             &pinctrl_macb_rmii_mii_alt>;
				status = "okay";
			};

			usart3: serial@fffd0000 {
				status = "okay";
			};

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

			watchdog@fffffd40 {
				timeout-sec = <15>;
				atmel,max-heartbeat-sec = <16>;
				atmel,min-heartbeat-sec = <0>;
				status = "okay";
			};
		};

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

		ebi: ebi@10000000 {
			status = "okay";

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

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

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

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

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

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

		reset {
			label = "PB_RST";
			gpios = <&pioB 30 GPIO_ACTIVE_HIGH>;
			linux,code = <0x100>;
			wakeup-source;
		};

		user {
			label = "PB_USER";
			gpios = <&pioB 31 GPIO_ACTIVE_HIGH>;
			linux,code = <0x101>;
			wakeup-source;
		};
	};

	i2c-gpio-0 {
		status = "okay";

		rtc: pcf8563@51 {
			compatible = "nxp,pcf8563";
			reg = <0x51>;
		};
	};

	pwm_leds {
		compatible = "pwm-leds";

		network_green {
			label = "pwm:green:network";
			pwms = <&tcb_pwm 2 10000000 PWM_POLARITY_INVERTED>;
			max-brightness = <255>;
			linux,default-trigger = "default-on";
		};

		network_red {
			label = "pwm:red:network";
			pwms = <&tcb_pwm 4 10000000 PWM_POLARITY_INVERTED>;
			max-brightness = <255>;
			linux,default-trigger = "default-on";
		};

		user_green {
			label = "pwm:green:user";
			pwms = <&tcb_pwm 0 10000000 PWM_POLARITY_INVERTED>;
			max-brightness = <255>;
			linux,default-trigger = "default-on";
		};

		user_red {
			label = "pwm:red:user";
			pwms = <&tcb_pwm 1 10000000 PWM_POLARITY_INVERTED>;
			max-brightness = <255>;
			linux,default-trigger = "default-on";
		};
	};

	tcb_pwm: pwm {
		compatible = "atmel,tcb-pwm";
		#pwm-cells = <3>;
		tc-block = <1>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_tcb1_tioa0
			     &pinctrl_tcb1_tioa1
			     &pinctrl_tcb1_tioa2
			     &pinctrl_tcb1_tiob0>;
	};
};
