// SPDX-License-Identifier: GPL-2.0
/*
 * at91-wb45n.dtsi - Device Tree file for WB45NBT board
 *
 *  Copyright (C) 2018 Laird
 *
 */

#include "at91sam9g25.dtsi"

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

	chosen {
		bootargs = "ubi.mtd=6 root=ubi0:rootfs rootfstype=ubifs rw";
		stdout-path = "serial0:115200n8";
	};

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

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

&reset_controller {
	compatible = "atmel,sama5d3-rstc";
};

&shutdown_controller {
	atmel,wakeup-mode = "low";
};

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

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

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

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

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

			};
		};
	};
};

&usb0 {
	num-ports = <2>;
	atmel,vbus-gpio = <
		&pioB 12 GPIO_ACTIVE_HIGH
		&pioA 31 GPIO_ACTIVE_HIGH
		>;
	atmel,oc-gpio = <&pioB 13 GPIO_ACTIVE_LOW>;
};

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

&spi0 {
	cs-gpios = <&pioA 14 0>, <&pioA 7 0>, <0>, <0>;
};

&usb2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_board_usb2>;
	atmel,vbus-gpio = <&pioB 11 GPIO_ACTIVE_HIGH>;
};

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

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

