Add support for ZSUN WiFi SD Card Reader

zsun
Andrzej Surowiec 2015-11-08 19:31:38 +01:00
parent 483dac8217
commit 3bd9e3db72
12 changed files with 189 additions and 7 deletions

View File

@ -345,6 +345,9 @@ get_status_led() {
wlr8100)
status_led="sitecom:amber:status"
;;
zsun-sdreader)
status_led="zsunsdreader:green:system"
;;
esac
}

View File

@ -361,6 +361,7 @@ tl-wr703n |\
tube2h |\
wndap360 |\
mynet-rext |\
zsun-sdreader |\
wp543)
ucidef_set_interface_lan "eth0"
;;

View File

@ -0,0 +1,7 @@
#!/bin/sh
uci set wireless.@wifi-device[0].disabled=0
uci commit wireless
wifi
exit 0

View File

@ -925,6 +925,9 @@ ar71xx_board_detect() {
*"HiWiFi HC6361")
name="hiwifi-hc6361"
;;
*"ZSUN WiFi SD Card Reader")
name="zsun-sdreader"
;;
esac
[ -z "$AR71XX_MODEL" ] && [ "${machine:0:8}" = 'TP-LINK ' ] && \

View File

@ -0,0 +1,11 @@
#!/bin/sh
failsafe_wipe() {
echo "Doing a factory reset."
mount_root
firstboot -y
sleep 10
reboot -f
}
boot_hook_add failsafe failsafe_wipe

View File

@ -188,7 +188,8 @@ platform_check_image() {
mr16 | \
wpj558 | \
zcn-1523h-2 | \
zcn-1523h-5)
zcn-1523h-5 | \
zsun-sdreader)
[ "$magic_long" != "68737173" -a "$magic_long" != "19852003" ] && {
echo "Invalid image type."
return 1

View File

@ -156,6 +156,7 @@ CONFIG_ATH79_MACH_WZR_HP_G300NH=y
CONFIG_ATH79_MACH_WZR_HP_G300NH2=y
CONFIG_ATH79_MACH_WZR_HP_G450H=y
CONFIG_ATH79_MACH_ZCN_1523H=y
CONFIG_ATH79_MACH_ZSUN_SDREADER=y
CONFIG_ATH79_NVRAM=y
CONFIG_ATH79_PCI_ATH9K_FIXUP=y
# CONFIG_ATH79_ROUTERBOOT is not set

View File

@ -0,0 +1,96 @@
/*
* ZSUN WiFi SD Card Reader support
*
* Copyright (C) 2015 by Andrzej Surowiec <emeryth@hackerspace.pl>
* Based on mach-carambola2.c copyright (C) 2013 Darius Augulis <darius@8devices.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published
* by the Free Software Foundation.
*/
#include <asm/mach-ath79/ath79.h>
#include <asm/mach-ath79/ar71xx_regs.h>
#include "common.h"
#include "dev-eth.h"
#include "dev-gpio-buttons.h"
#include "dev-leds-gpio.h"
#include "dev-m25p80.h"
#include "dev-spi.h"
#include "dev-usb.h"
#include "dev-wmac.h"
#include "machtypes.h"
#define ZSUN_SDREADER_GPIO_LED_SYSTEM 0
#define ZSUN_SDREADER_GPIO_SW_SD 22
#define ZSUN_SDREADER_MAC0_OFFSET 0x0000
#define ZSUN_SDREADER_MAC1_OFFSET 0x0006
#define ZSUN_SDREADER_CALDATA_OFFSET 0x1000
#define ZSUN_SDREADER_WMAC_MAC_OFFSET 0x1002
#define ZSUN_SDREADER_KEYS_POLL_INTERVAL 20 /* msecs */
#define ZSUN_SDREADER_KEYS_DEBOUNCE_INTERVAL (3 * ZSUN_SDREADER_KEYS_POLL_INTERVAL)
static struct gpio_led zsun_sdreader_leds_gpio[] __initdata = {
{
.name = "zsunsdreader:green:system",
.gpio = ZSUN_SDREADER_GPIO_LED_SYSTEM,
.active_low = 0,
}
};
static struct gpio_keys_button zsun_sdreader_gpio_keys[] __initdata = {
{
.desc = "SD Card insert switch",
.type = EV_KEY,
.code = BTN_1,
.debounce_interval = ZSUN_SDREADER_KEYS_DEBOUNCE_INTERVAL,
.gpio = ZSUN_SDREADER_GPIO_SW_SD,
.active_low = 1,
}
};
static void __init zsun_sdreader_common_setup(void)
{
u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
ath79_register_m25p80(NULL);
ath79_register_wmac(art + ZSUN_SDREADER_CALDATA_OFFSET,
art + ZSUN_SDREADER_WMAC_MAC_OFFSET);
ath79_setup_ar933x_phy4_switch(true, true);
//ath79_init_mac(ath79_eth0_data.mac_addr, art + ZSUN_SDREADER_MAC0_OFFSET, 0);
ath79_init_mac(ath79_eth1_data.mac_addr, art + ZSUN_SDREADER_MAC1_OFFSET, 0);
ath79_register_mdio(0, 0x0);
//ath79_register_eth(0);
ath79_register_eth(1);
}
static void __init zsun_sdreader_setup(void)
{
zsun_sdreader_common_setup();
ath79_gpio_function_disable(AR724X_GPIO_FUNC_ETH_SWITCH_LED0_EN |
AR724X_GPIO_FUNC_ETH_SWITCH_LED1_EN |
AR724X_GPIO_FUNC_ETH_SWITCH_LED2_EN |
AR724X_GPIO_FUNC_ETH_SWITCH_LED3_EN |
AR724X_GPIO_FUNC_ETH_SWITCH_LED4_EN);
ath79_register_leds_gpio(-1, ARRAY_SIZE(zsun_sdreader_leds_gpio),
zsun_sdreader_leds_gpio);
ath79_register_gpio_keys_polled(-1, ZSUN_SDREADER_KEYS_POLL_INTERVAL,
ARRAY_SIZE(zsun_sdreader_gpio_keys),
zsun_sdreader_gpio_keys);
ath79_register_usb();
}
MIPS_MACHINE(ATH79_MACH_ZSUN_SDREADER, "ZSUN-SDREADER", "ZSUN WiFi SD Card Reader",
zsun_sdreader_setup);

View File

@ -0,0 +1,17 @@
#
# Copyright (C) 2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/ZSUNSDREADER
NAME:=ZSUN WiFi SD Card reader
PACKAGES:=kmod-usb-core kmod-usb2 kmod-usb-storage
endef
define Profile/ZSUNSDREADER/Description
Package set optimized for the ZSUN WiFi SD Card Reader.
endef
$(eval $(call Profile,ZSUNSDREADER))

View File

@ -661,6 +661,12 @@ define Device/oolite
endef
TARGET_DEVICES += oolite
define Device/zsun-sdreader
BOARDNAME := ZSUN-SDREADER
CONSOLE = ttyATH0,115200
endef
TARGET_DEVICES += zsun-sdreader
rootfs_type=$(patsubst jffs2-%,jffs2,$(patsubst squashfs-%,squashfs,$(1)))
# $(1): rootfs type.
@ -988,7 +994,7 @@ mynet_n600_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdat
mynet_rext_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,7808k(firmware),64k(nvram)ro,64k(ART)ro
zyx_nbg6716_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(env)ro,64k(RFdata)ro,-(nbu);ar934x-nfc:2048k(zyxel_rfsd),2048k(romd),1024k(header),2048k(kernel),-(ubi)
qihoo_c301_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(devdata),64k(devconf),15744k(firmware),64k(warm_start),64k(action_image_config),64k(radiocfg)ro;spi0.1:15360k(upgrade2),1024k(privatedata)
zsun_sdreader_mtdlayout=mtdparts=spi0.0:64k(u-boot)ro,64k(u-boot-env)ro,14912k(rootfs),1216k(kernel),64k(nvram),64k(art),16128k@0x20000(firmware)
define Image/BuildKernel
cp $(KDIR)/vmlinux.elf $(VMLINUX).elf
@ -1866,6 +1872,8 @@ $(eval $(call SingleProfile,AthLzma,64k,WLR8100,wlr8100,WLR8100,ttyS0,115200,$$(
$(eval $(call SingleProfile,AthLzma,64k,WPJ344_16M,wpj344-16M,WPJ344,ttyS0,115200,$$(wpj344_mtdlayout_16M),KRuImage,65536))
$(eval $(call SingleProfile,AthLzma,64k,WPJ531_16M,wpj531-16M,WPJ531,ttyS0,115200,$$(wpj531_mtdlayout_16M),KRuImage,65536))
$(eval $(call SingleProfile,AthLzma,64k,WPJ558_16M,wpj558-16M,WPJ558,ttyS0,115200,$$(wpj558_mtdlayout_16M),KRuImage,65536))
$(eval $(call SingleProfile,AthLzma,64k,ZSUNSDREADER,zsun-sdreader,ZSUN-SDREADER,ttyATH0,115200,$$(zsun_sdreader_mtdlayout),RKuImage))
$(eval $(call SingleProfile,Belkin,64k,F9K1115V2,f9k1115v2,F9K1115V2,ttyS0,115200,$$(f9k1115v2_mtdlayout),BR-6679BAC))

View File

@ -0,0 +1,21 @@
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -312,7 +312,7 @@ static const struct spi_device_id m25p_i
{"w25x10"}, {"w25x20"}, {"w25x40"}, {"w25x80"},
{"w25x16"}, {"w25x32"}, {"w25q32"}, {"w25q32dw"},
{"w25x64"}, {"w25q64"}, {"w25q80"}, {"w25q80bl"},
- {"w25q128"}, {"w25q256"}, {"cat25c11"},
+ {"w25q128"}, {"w25q128fw"}, {"w25q256"}, {"cat25c11"},
{"cat25c03"}, {"cat25c09"}, {"cat25c17"}, {"cat25128"},
{ },
};
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -634,6 +634,7 @@ static const struct spi_device_id spi_no
{ "w25q80", INFO(0xef5014, 0, 64 * 1024, 16, SECT_4K) },
{ "w25q80bl", INFO(0xef4014, 0, 64 * 1024, 16, SECT_4K) },
{ "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, SECT_4K) },
+ { "w25q128fw", INFO(0xef6018, 0, 64 * 1024, 256, SECT_4K) },
{ "w25q256", INFO(0xef4019, 0, 64 * 1024, 512, SECT_4K) },
/* Catalyst / On Semiconductor -- non-JEDEC */

View File

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
@@ -16,22 +16,195 @@
@@ -16,22 +16,196 @@
enum ath79_mach_type {
ATH79_MACH_GENERIC = 0,
@ -193,6 +193,7 @@
+ ATH79_MACH_WZR_450HP2, /* Buffalo WZR-450HP2 */
+ ATH79_MACH_ZCN_1523H_2, /* Zcomax ZCN-1523H-2-xx */
+ ATH79_MACH_ZCN_1523H_5, /* Zcomax ZCN-1523H-5-xx */
+ ATH79_MACH_ZSUN_SDREADER, /* Zsun WiFi SD Card Reader */
};
#endif /* _ATH79_MACHTYPE_H */
@ -1328,7 +1329,7 @@
config ATH79_MACH_UBNT_XM
bool "Ubiquiti Networks XM/UniFi boards"
@@ -83,6 +1115,97 @@ config ATH79_MACH_UBNT_XM
@@ -83,6 +1115,107 @@ config ATH79_MACH_UBNT_XM
Say 'Y' here if you want your kernel to support the
Ubiquiti Networks XM (rev 1.0) board.
@ -1422,11 +1423,21 @@
+ select ATH79_DEV_WMAC
+ select ATH79_DEV_USB
+ select ATH79_NVRAM
+
+config ATH79_MACH_ZSUN_SDREADER
+ bool "ZSUN WiFi SD Card Reader"
+ select SOC_AR933X
+ select ATH79_DEV_ETH
+ select ATH79_DEV_GPIO_BUTTONS
+ select ATH79_DEV_LEDS_GPIO
+ select ATH79_DEV_M25P80
+ select ATH79_DEV_USB
+ select ATH79_DEV_WMAC
+
endmenu
config SOC_AR71XX
@@ -124,7 +1247,10 @@ config ATH79_DEV_DSA
@@ -124,7 +1257,10 @@ config ATH79_DEV_DSA
config ATH79_DEV_ETH
def_bool n
@ -1438,7 +1449,7 @@
def_bool n
config ATH79_DEV_GPIO_BUTTONS
@@ -154,6 +1280,11 @@ config ATH79_PCI_ATH9K_FIXUP
@@ -154,6 +1290,11 @@ config ATH79_PCI_ATH9K_FIXUP
def_bool n
config ATH79_ROUTERBOOT
@ -1452,7 +1463,7 @@
endif
--- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile
@@ -38,9 +38,124 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route
@@ -38,9 +38,126 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route
#
# Machines
#
@ -1577,6 +1588,8 @@
+obj-$(CONFIG_ATH79_MACH_ZCN_1523H) += mach-zcn-1523h.o
+obj-$(CONFIG_ATH79_MACH_CARAMBOLA2) += mach-carambola2.o
+obj-$(CONFIG_ATH79_MACH_NBG6716) += mach-nbg6716.o
+obj-$(CONFIG_ATH79_MACH_ZSUN_SDREADER) += mach-zsun-sdreader.o
+
--- a/arch/mips/ath79/prom.c
+++ b/arch/mips/ath79/prom.c
@@ -180,6 +180,12 @@ void __init prom_init(void)