diff options
author | Ben Whitten <ben.whitten@gmail.com> | 2016-06-10 20:07:32 +0100 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2017-10-15 00:24:21 +0200 |
commit | 86d037e4a27fcf8f465fb1e79db727995ad5c684 (patch) | |
tree | 281bf815693ce01a1b75ed576146db18d6b51ce0 | |
parent | 618ed77a17422a9e167aed1eeec23a70235d0048 (diff) | |
download | upstream-86d037e4a27fcf8f465fb1e79db727995ad5c684.tar.gz upstream-86d037e4a27fcf8f465fb1e79db727995ad5c684.tar.bz2 upstream-86d037e4a27fcf8f465fb1e79db727995ad5c684.zip |
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>
-rw-r--r-- | target/linux/at91/files/arch/arm/boot/dts/wb45n.dts | 220 | ||||
-rw-r--r-- | target/linux/at91/image/Makefile | 6 | ||||
-rw-r--r-- | target/linux/at91/image/legacy.mk | 15 | ||||
-rw-r--r-- | target/linux/at91/patches-4.4/102-ARM-at91-build-dtb-for-wb45n.patch | 12 |
4 files changed, 253 insertions, 0 deletions
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 index 0000000000..2d1fe0c083 --- /dev/null +++ b/target/linux/at91/files/arch/arm/boot/dts/wb45n.dts @@ -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>; + }; + }; +}; diff --git a/target/linux/at91/image/Makefile b/target/linux/at91/image/Makefile index db480ac754..fedefe4287 100644 --- a/target/linux/at91/image/Makefile +++ b/target/linux/at91/image/Makefile @@ -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 diff --git a/target/linux/at91/image/legacy.mk b/target/linux/at91/image/legacy.mk index be8c2db21c..c6d9ed8108 100644 --- a/target/linux/at91/image/legacy.mk +++ b/target/linux/at91/image/legacy.mk @@ -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 index 0000000000..b7486626ab --- /dev/null +++ b/target/linux/at91/patches-4.4/102-ARM-at91-build-dtb-for-wb45n.patch @@ -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 \ |