[source] at91: add support for the WB50N module from Laird

LEDE Commits lede-commits at lists.infradead.org
Sat Oct 14 16:11:52 PDT 2017


hauke pushed a commit to source.git, branch master:
https://git.lede-project.org/f81b353c9f33f5afa32eebe0ee1dc290e927e5ee

commit f81b353c9f33f5afa32eebe0ee1dc290e927e5ee
Author: Ben Whitten <ben.whitten at gmail.com>
AuthorDate: Wed Jun 28 11:28:12 2017 +0100

    at91: add support for the WB50N module from Laird
    
    This module from Laird includes the following:
      - CPU Atmel SoC SAMA5D31
      - Wifi QCA6004
      - Bluetooth CSR8811
      - 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 at gmail.com>
---
 .../linux/at91/files/arch/arm/boot/dts/wb50n.dts   | 117 ++++++++++++
 .../linux/at91/files/arch/arm/boot/dts/wb50n.dtsi  | 205 +++++++++++++++++++++
 target/linux/at91/image/sama5.mk                   |  14 ++
 .../103-ARM-at91-build-dtb-for-wb50n.patch         |  12 ++
 4 files changed, 348 insertions(+)

diff --git a/target/linux/at91/files/arch/arm/boot/dts/wb50n.dts b/target/linux/at91/files/arch/arm/boot/dts/wb50n.dts
new file mode 100644
index 0000000..9c28a21
--- /dev/null
+++ b/target/linux/at91/files/arch/arm/boot/dts/wb50n.dts
@@ -0,0 +1,117 @@
+/*
+ * wb50n.dts - Device Tree file for wb50n board
+ *
+ *  Copyright (C) 2015 Laird
+ *
+ * Licensed under GPLv2 or later.
+ */
+/dts-v1/;
+#include "wb50n.dtsi"
+
+/ {
+	model = "Laird Workgroup Bridge 50N - Atmel SAMA5D";
+	compatible = "laird,wb50n", "atmel,sama5d31ek", "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
+
+	chosen {
+		bootargs = "console=ttyS0,115200 earlyprintk loglevel=4 mem=64M";
+	};
+
+	ahb {
+
+		apb {
+			mmc0: mmc at f0000000 {
+				status = "okay";
+			};
+
+			macb1: ethernet at f802c000 {
+				status = "okay";
+			};
+
+			dbgu: serial at ffffee00 {
+				status = "okay";
+			};
+
+			/* On BB40 this port is labeled UART1 */
+			usart0: serial at f001c000 {
+				status = "okay";
+			};
+
+			/* On BB40 this port is labeled UART0 */
+			usart1: serial at f0020000 {
+				status = "okay";
+			};
+
+			i2c0: i2c at f0014000 {
+				status = "okay";
+			};
+
+			spi1: spi at f8008000 {
+				status = "okay";
+
+			        spidev at 0 {
+				          compatible = "spidev";
+				          reg = <0>;
+				          spi-max-frequency = <8000000>;
+			         };
+			};
+
+			watchdog at fffffe40 {
+				status = "okay";
+			};
+		};
+
+		usb0: gadget at 00500000 {
+			status = "okay";
+		};
+
+		usb1: ohci at 00600000 {
+			status = "okay";
+		};
+
+		usb2: ehci at 00700000 {
+			status = "okay";
+		};
+
+	};
+
+	gpio_keys {
+		compatible = "gpio-keys";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		btn0 at pa10 {
+			label = "BTNESC";
+			linux,code = <1>; /* ESC button */
+			gpios = <&pioA 10 GPIO_ACTIVE_LOW>;
+			gpio-key,wakeup = <1>;
+		};
+
+		irqbtn at pe31 {
+			label = "IRQBTN";
+			linux,code = <99>; /* SysReq button */
+			gpios = <&pioE 31 GPIO_ACTIVE_LOW>;
+			gpio-key,wakeup = <1>;
+		};
+	};
+
+    leds {
+        compatible = "gpio-leds";
+
+        led0 {
+            label = "wb50n:blue:led0";
+            gpios = <&pioA 12 GPIO_ACTIVE_LOW>;
+            default-state = "off";
+        };
+
+        led1 {
+            label = "wb50n:green:led1";
+            gpios = <&pioA 24 GPIO_ACTIVE_LOW>;
+            default-state = "off";
+        };
+
+        led2 {
+            label = "wb50n:red:led2";
+            gpios = <&pioA 26 GPIO_ACTIVE_LOW>;
+            default-state = "off";
+        };
+    };
+};
diff --git a/target/linux/at91/files/arch/arm/boot/dts/wb50n.dtsi b/target/linux/at91/files/arch/arm/boot/dts/wb50n.dtsi
new file mode 100644
index 0000000..8d30424
--- /dev/null
+++ b/target/linux/at91/files/arch/arm/boot/dts/wb50n.dtsi
@@ -0,0 +1,205 @@
+/*
+ * wb50n.dts - Device Tree file for wb50n board
+ *
+ *  Copyright (C) 2015 Laird
+ *
+ * Licensed under GPLv2 or later.
+ */
+#include "sama5d31.dtsi"
+
+/ {
+	model = "Laird Workgroup Bridge 50N - Atmel SAMA5D";
+	compatible = "laird,wb50n", "atmel,sama5d31ek", "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
+
+	chosen {
+		bootargs = "console=ttyS0,115200 earlyprintk loglevel=4 mem=64M";
+	};
+
+	memory {
+		reg = <0x20000000 0x4000000>;
+	};
+
+	clocks {
+		slow_xtal {
+			clock-frequency = <32768>;
+		};
+
+		main_xtal {
+			clock-frequency = <12000000>;
+		};
+	};
+
+	ahb {
+
+		apb {
+			pmc: pmc at fffffc00 {
+				main: mainck {
+					clock-frequency = <12000000>;
+				};
+
+				periphck {
+					usart1_clk: usart1_clk {
+						#clock-cells = <0>;
+						reg = <13>;
+						atmel,clk-output-range = <0 132000000>;
+					};
+				};
+			};
+
+			pinctrl at fffff200 {
+				board {
+					pinctrl_mmc0_cd: mmc0_cd {
+						atmel,pins =
+							<AT91_PIOC 26 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PC26 GPIO with pullup deglitch */
+					};
+
+					pinctrl_usba_vbus: usba_vbus {
+						atmel,pins =
+							<AT91_PIOB 13 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PB13 GPIO with deglitch */
+					};
+				};
+			};
+
+			mmc0: mmc at f0000000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
+				cd-gpios = <&pioC 26 GPIO_ACTIVE_LOW>;
+				slot at 0 {
+					reg = <0>;
+					bus-width = <4>;
+				};
+			};
+
+			mmc1: mmc at f8000000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3>;
+				status = "okay";
+				slot at 0 {
+					reg = <0>;
+					bus-width = <4>;
+				};
+			};
+
+			macb1: ethernet at f802c000 {
+				phy-mode = "rmii";
+			};
+
+
+			dbgu: serial at ffffee00 {
+				dmas = <0>, <0>;	/*  Do not use DMA for dbgu */
+			};
+
+			/* On BB40 this port is labeled UART1 */
+			usart0: serial at f001c000 {
+				atmel,use-dma-rx;
+				atmel,use-dma-tx;
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_usart0 &pinctrl_usart0_rts_cts>;
+			};
+
+			/* On BB40 this port is labeled UART0 */
+			usart1: serial at f0020000 {
+				atmel,use-dma-rx;
+				atmel,use-dma-tx;
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
+				dtr-gpios = <&pioD 13 GPIO_ACTIVE_LOW>;
+				dsr-gpios = <&pioD 11 GPIO_ACTIVE_LOW>;
+				dcd-gpios = <&pioD 7 GPIO_ACTIVE_LOW>;
+				rng-gpios = <&pioD 8 GPIO_ACTIVE_LOW>;
+			};
+
+			/* USART3 is direct-connect to the Bluetooth UART on the radio SIP */
+			usart3: serial at f8024000 {
+				atmel,use-dma-rx;
+				atmel,use-dma-tx;
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_usart3 &pinctrl_usart3_rts_cts>;
+				status = "okay";
+			};
+
+			spi1: spi at f8008000 {
+				cs-gpios = <&pioC 25 0>, <0>, <0>, <0>;
+			};
+
+			sckc at fffffe50 {
+				slow_osc: slow_osc {
+					atmel,osc-bypass;
+				};
+			};
+		};
+
+		nand0: nand at 60000000 {
+			nand-bus-width = <8>;
+			nand-ecc-mode = "hw";
+			atmel,has-pmecc;
+			atmel,pmecc-cap = <8>;
+			atmel,pmecc-sector-size = <512>;
+			nand-on-flash-bbt;
+			status = "okay";
+
+			at91bootstrap at 0 {
+				label = "at91bs";
+				reg = <0x0 0x20000>;
+			};
+
+			uboot at 20000 {
+				label = "u-boot";
+				reg = <0x20000 0x80000>;
+			};
+
+			ubootenv at a0000 {
+				label = "u-boot-env";
+				reg = <0xa0000 0x20000>;
+			};
+
+			ubootenv at c0000 {
+				label = "u-boot-env";
+				reg = <0xc0000 0x20000>;
+			};
+
+			kernel-a at e0000 {
+				label = "kernel-a";
+				reg = <0xe0000 0x500000>;
+			};
+
+			kernel-b at 5e0000 {
+				label = "kernel-b";
+				reg = <0x5e0000 0x500000>;
+			};
+
+			rootfs-a at ae0000 {
+				label = "rootfs-a";
+				reg = <0xae0000 0x3000000>;
+			};
+
+			rootfs-b at 3ae0000 {
+				label = "rootfs-b";
+				reg = <0x3ae0000 0x3000000>;
+			};
+
+			user at 6ae0000 {
+				label = "user";
+				reg = <0x6ae0000 0x14e0000>;
+			};
+
+		};
+
+		usb0: gadget at 00500000 {
+			atmel,vbus-gpio = <&pioB 13 GPIO_ACTIVE_LOW>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_usba_vbus>;
+		};
+
+		usb1: ohci at 00600000 {
+			num-ports = <3>;
+			atmel,vbus-gpio = <&pioA 2 GPIO_ACTIVE_LOW>;
+			atmel,oc-gpio = <&pioA 4 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	atheros {
+		compatible = "atheros,ath6kl";
+		atheros,board-id = "SD32";
+ 	};
+};
diff --git a/target/linux/at91/image/sama5.mk b/target/linux/at91/image/sama5.mk
index 1c779ca..b26715b 100644
--- a/target/linux/at91/image/sama5.mk
+++ b/target/linux/at91/image/sama5.mk
@@ -29,3 +29,17 @@ define Device/at91-sama5d4_xplained
   MKUBIFS_OPTS := -m $$(PAGESIZE) -e 248KiB -c 2082 -x lzo
 endef
 TARGET_DEVICES += at91-sama5d4_xplained
+
+define Device/wb50n
+  $(Device/evaluation-fit)
+  DEVICE_TITLE := Laird WB50N
+  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 += wb50n
diff --git a/target/linux/at91/patches-4.4/103-ARM-at91-build-dtb-for-wb50n.patch b/target/linux/at91/patches-4.4/103-ARM-at91-build-dtb-for-wb50n.patch
new file mode 100644
index 0000000..00ffe09
--- /dev/null
+++ b/target/linux/at91/patches-4.4/103-ARM-at91-build-dtb-for-wb50n.patch
@@ -0,0 +1,12 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -52,7 +52,8 @@ dtb-$(CONFIG_SOC_SAM_V7) += \
+ 	sama5d35ek.dtb \
+ 	sama5d36ek.dtb \
+ 	at91-sama5d4_xplained.dtb \
+-	at91-sama5d4ek.dtb
++	at91-sama5d4ek.dtb \
++	wb50n.dtb
+ dtb-$(CONFIG_ARCH_ATLAS6) += \
+ 	atlas6-evb.dtb
+ dtb-$(CONFIG_ARCH_ATLAS7) += \



More information about the lede-commits mailing list