at91: add support for the WB45N module from Laird
authorBen Whitten <ben.whitten@gmail.com>
Fri, 10 Jun 2016 19:07:32 +0000 (20:07 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 14 Oct 2017 22:24:21 +0000 (00:24 +0200)
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>
target/linux/at91/files/arch/arm/boot/dts/wb45n.dts [new file with mode: 0644]
target/linux/at91/image/Makefile
target/linux/at91/image/legacy.mk
target/linux/at91/patches-4.4/102-ARM-at91-build-dtb-for-wb45n.patch [new file with mode: 0644]

diff --git a/target/linux/at91/files/arch/arm/boot/dts/wb45n.dts b/target/linux/at91/files/arch/arm/boot/dts/wb45n.dts
new file mode 100644 (file)
index 0000000..2d1fe0c
--- /dev/null
@@ -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>;
+               };
+       };
+};
index db480ac754506cbaed6be4cf628a7757b6c800f1..fedefe428786ba687d5e7b64519db6b8bf5d51cb 100644 (file)
@@ -51,6 +51,12 @@ define Device/evaluation-dtb
   IMAGE/dtb := install-dtb
 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
   UBINIZE_OPTS := -E 5
   IMAGES := factory.bin
index be8c2db21cd2108e241f662f1e166c932307fc46..c6d9ed810826a01da93ec1935f5d6fe2bc1d3473 100644 (file)
@@ -116,3 +116,18 @@ define Device/at91-q5xr5
   KERNEL_SIZE := 2048k
 endef
 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
+
diff --git a/target/linux/at91/patches-4.4/102-ARM-at91-build-dtb-for-wb45n.patch b/target/linux/at91/patches-4.4/102-ARM-at91-build-dtb-for-wb45n.patch
new file mode 100644 (file)
index 0000000..b748662
--- /dev/null
@@ -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 \