/*
 * wb45n.dts - Device Tree file for WB45NBT board
 *
 *  Copyright (C) 2015 Laird
 *
 * Licensed under GPLv2 or later.
 */
/dts-v1/;
#include "at91sam9g25.dtsi"

/ {
	model = "Laird Workgroup Bridge 45N - Atmel AT91SAM (dt)";
	compatible = "laird,wb45n", "laird,wbxx", "atmel,at91sam9x5", "atmel,at91sam9";

	chosen {
		bootargs = "console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs";
	};

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

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

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

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

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

	ahb {
		apb {

			rstc@fffffe00 {
				compatible = "atmel,sama5d3-rstc";
			};

			pinctrl@fffff400 {
				nand {
					pinctrl_nand: nand-0 {
						atmel,pins =
							<AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD0 periph A Read Enable */
							 AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD1 periph A Write Enable */
							 AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD2 periph A Address Latch Enable */
							 AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD3 periph A Command Latch Enable */
							 AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP	/* PD4 gpio Chip Enable pin pull_up */
							 AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;  /* PD5 gpio RDY/BUSY pin pull_up */
					};
				};

				usb2 {
					pinctrl_board_usb2: usb2-board {
						atmel,pins =
							<AT91_PIOB 11 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;		/* PB11 gpio vbus sense, deglitch */
					};
				};
			};

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

			usart0: serial@f801c000 {
				status = "okay";
			};

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

			spi0: spi@f0000000 {
				status = "okay";
				cs-gpios = <&pioA 14 0>, <&pioA 7 0>, <0>, <0>;
			};

			mmc0: mmc@f0008000 {
				pinctrl-0 = <
					&pinctrl_mmc0_slot0_clk_cmd_dat0
					&pinctrl_mmc0_slot0_dat1_3>;
				status = "okay";
				/delete-property/dmas;
				/delete-property/dma-names;
				slot@0 {
					reg = <0>;
					bus-width = <4>;
				};
			};

			macb0: ethernet@f802c000 {
				phy-mode = "rmii";
				status = "okay";
			};

			usb2: gadget@f803c000 {
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_board_usb2>;
				atmel,vbus-gpio = <&pioB 11 GPIO_ACTIVE_HIGH>;
				status = "okay";
			};

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

			watchdog@fffffe40 {
				status = "okay";
			};

			shdwc@fffffe10 {
				atmel,wakeup-mode = "low";
			};

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

		usb0: ohci@00600000 {
			status = "okay";
			num-ports = <2>;
			atmel,vbus-gpio = <
					   &pioB 12 GPIO_ACTIVE_HIGH
					   &pioA 31 GPIO_ACTIVE_HIGH
					  >;
			atmel,oc-gpio = <&pioB 13 GPIO_ACTIVE_LOW>;
		};

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

		nand0: nand@40000000 {
			nand-bus-width = <8>;
			nand-ecc-mode = "hw";
			atmel,has-pmecc;	/* Enable PMECC */
			atmel,pmecc-cap = <4>;
			atmel,pmecc-sector-size = <512>;
			nand-on-flash-bbt;
			status = "okay";

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

			uboot@20000 {
				label = "u-boot";
				reg = <0x20000 0x80000>;
			};

			ubootenv@a0000 {
				label = "u-boot-env";
				reg = <0xa0000 0x20000>;
			};

			ubootenv@c0000 {
				label = "redund-env";
				reg = <0xc0000 0x20000>;
			};

			kernel-a@e0000 {
				label = "kernel-a";
				reg = <0xe0000 0x280000>;
			};

			kernel-b@360000 {
				label = "kernel-b";
				reg = <0x360000 0x280000>;
			};

			rootfs-a@5e0000 {
				label = "rootfs-a";
				reg = <0x5e0000 0x2600000>;
			};

			rootfs-b@2be0000 {
				label = "rootfs-b";
				reg = <0x2be0000 0x2600000>;
			};

			user@51e0000 {
				label = "user";
				reg = <0x51e0000 0x2dc0000>;
			};

			logs@7fa0000 {
				label = "logs";
				reg = <0x7fa0000 0x60000>;
			};
		};
	};

	atheros {
		compatible = "atheros,ath6kl";
		atheros,board-id = "SD32";
	};

	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		irqbtn@pb18 {
			label = "IRQBTN";
			linux,code = <99>;
			gpios = <&pioB 18 GPIO_ACTIVE_LOW>;
			gpio-key,wakeup = <1>;
		};
	};
};
