at91: add support for the WB45N module from Laird

This module from Laird includes the following:
  - CPU Atmel SoC ARM926EJS
  - Wifi AR6003
  - Bluetooth CSR8510
  - RAM 64MB LPDDR
  - FLASH 128MB

The flash is a dual image layout, kernel a/b, rootfs a/b, and a user
partition.

Signed-off-by: Ben Whitten <ben.whitten@gmail.com>
This commit is contained in:
Ben Whitten 2016-06-10 20:07:32 +01:00 committed by Hauke Mehrtens
parent 618ed77a17
commit 86d037e4a2
4 changed files with 253 additions and 0 deletions

View file

@ -0,0 +1,220 @@
/*
* 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>;
};
};
};

View file

@ -51,6 +51,12 @@ define Device/evaluation-dtb
IMAGE/dtb := install-dtb IMAGE/dtb := install-dtb
endef endef
define Device/evaluation-fit
$(Device/evaluation)
KERNEL_SUFFIX := -fit-uImage.itb
KERNEL := kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb
endef
define Device/production define Device/production
UBINIZE_OPTS := -E 5 UBINIZE_OPTS := -E 5
IMAGES := factory.bin IMAGES := factory.bin

View file

@ -116,3 +116,18 @@ define Device/at91-q5xr5
KERNEL_SIZE := 2048k KERNEL_SIZE := 2048k
endef endef
TARGET_DEVICES += at91-q5xr5 TARGET_DEVICES += at91-q5xr5
define Device/wb45n
$(Device/evaluation-fit)
DEVICE_TITLE := Laird WB45N
DEVICE_PACKAGES := \
kmod-mmc-at91 kmod-ath6kl-sdio ath6k-firmware \
kmod-usb-storage kmod-fs-vfat kmod-fs-msdos \
kmod-leds-gpio
BLOCKSIZE := 128k
PAGESIZE := 2048
SUBPAGESIZE := 2048
MKUBIFS_OPTS := -m $$(PAGESIZE) -e 124KiB -c 955
endef
TARGET_DEVICES += wb45n

View file

@ -0,0 +1,12 @@
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -40,7 +40,8 @@ dtb-$(CONFIG_SOC_SAM_V4_V5) += \
at91sam9g25ek.dtb \
at91sam9g35ek.dtb \
at91sam9x25ek.dtb \
- at91sam9x35ek.dtb
+ at91sam9x35ek.dtb \
+ wb45n.dtb
dtb-$(CONFIG_SOC_SAM_V7) += \
at91-kizbox2.dtb \
at91-sama5d2_xplained.dtb \