ar71xx: add support for Onion Omega

This patch adds support for the Onion Omega.

https://onion.io/omega

Signed-off-by: L. D. Pinney <ldpinney@gmail.com>
Acked-by: Boken Lin <bl@onion.io>
Tested-by: Jacky Huang <huangfangcheng@163.com>

SVN-Revision: 46458
This commit is contained in:
John Crispin 2015-07-24 09:09:49 +00:00
parent b98205c946
commit 5cd49bb067
10 changed files with 145 additions and 6 deletions

View file

@ -176,6 +176,9 @@ get_status_led() {
om5p-an) om5p-an)
status_led="om5p:blue:power" status_led="om5p:blue:power"
;; ;;
onion-omega)
status_led="onion:amber:system"
;;
pb44) pb44)
status_led="pb44:amber:jump1" status_led="pb44:amber:jump1"
;; ;;

View file

@ -284,6 +284,10 @@ mynet-n750)
[ -n "$mac" ] && ucidef_set_interface_macaddr "wan" "$mac" [ -n "$mac" ] && ucidef_set_interface_macaddr "wan" "$mac"
;; ;;
onion-omega)
ucidef_set_interface_lan "wlan0"
;;
dhp-1565-a1 |\ dhp-1565-a1 |\
dir-835-a1 |\ dir-835-a1 |\
wndr3700v4 | \ wndr3700v4 | \

View file

@ -559,6 +559,9 @@ ar71xx_board_detect() {
*"OM5P AN") *"OM5P AN")
name="om5p-an" name="om5p-an"
;; ;;
*"Onion Omega")
name="onion-omega"
;;
*PB42) *PB42)
name="pb42" name="pb42"
;; ;;

View file

@ -313,6 +313,7 @@ platform_check_image() {
el-mini | \ el-mini | \
gl-inet | \ gl-inet | \
mc-mac1200r | \ mc-mac1200r | \
onion-omega | \
oolite | \ oolite | \
smart-300 | \ smart-300 | \
tl-mr10u | \ tl-mr10u | \

View file

@ -91,6 +91,7 @@ CONFIG_ATH79_MACH_NBG460N=y
CONFIG_ATH79_MACH_NBG6716=y CONFIG_ATH79_MACH_NBG6716=y
CONFIG_ATH79_MACH_OM2P=y CONFIG_ATH79_MACH_OM2P=y
CONFIG_ATH79_MACH_OM5P=y CONFIG_ATH79_MACH_OM5P=y
CONFIG_ATH79_MACH_ONION_OMEGA=y
CONFIG_ATH79_MACH_PB42=y CONFIG_ATH79_MACH_PB42=y
CONFIG_ATH79_MACH_PB44=y CONFIG_ATH79_MACH_PB44=y
CONFIG_ATH79_MACH_PB92=y CONFIG_ATH79_MACH_PB92=y

View file

@ -0,0 +1,84 @@
/*
* Onion Omega board support
*
* Copyright (C) 2015 Boken Lin <bl@onion.io>
*
* 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 <linux/gpio.h>
#include <asm/mach-ath79/ath79.h>
#include "dev-eth.h"
#include "dev-gpio-buttons.h"
#include "dev-leds-gpio.h"
#include "dev-m25p80.h"
#include "dev-usb.h"
#include "dev-wmac.h"
#include "machtypes.h"
#define OMEGA_GPIO_LED_SYSTEM 27
#define OMEGA_GPIO_BTN_RESET 11
#define OMEGA_GPIO_USB_POWER 8
#define OMEGA_KEYS_POLL_INTERVAL 20 /* msecs */
#define OMEGA_KEYS_DEBOUNCE_INTERVAL (3 * OMEGA_KEYS_POLL_INTERVAL)
static const char *omega_part_probes[] = {
"tp-link",
NULL,
};
static struct flash_platform_data omega_flash_data = {
.part_probes = omega_part_probes,
};
static struct gpio_led omega_leds_gpio[] __initdata = {
{
.name = "onion:amber:system",
.gpio = OMEGA_GPIO_LED_SYSTEM,
.active_low = 1,
},
};
static struct gpio_keys_button omega_gpio_keys[] __initdata = {
{
.desc = "reset",
.type = EV_KEY,
.code = KEY_RESTART,
.debounce_interval = OMEGA_KEYS_DEBOUNCE_INTERVAL,
.gpio = OMEGA_GPIO_BTN_RESET,
.active_low = 0,
}
};
static void __init onion_omega_setup(void)
{
u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
ath79_register_m25p80(&omega_flash_data);
ath79_register_leds_gpio(-1, ARRAY_SIZE(omega_leds_gpio),
omega_leds_gpio);
ath79_register_gpio_keys_polled(-1, OMEGA_KEYS_POLL_INTERVAL,
ARRAY_SIZE(omega_gpio_keys),
omega_gpio_keys);
gpio_request_one(OMEGA_GPIO_USB_POWER,
GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED,
"USB power");
ath79_register_usb();
ath79_init_mac(ath79_eth0_data.mac_addr, mac, -1);
ath79_register_mdio(0, 0x0);
ath79_register_eth(0);
ath79_register_wmac(ee, mac);
}
MIPS_MACHINE(ATH79_MACH_ONION_OMEGA, "ONION-OMEGA", "Onion Omega", onion_omega_setup);

View file

@ -0,0 +1,16 @@
#
# Copyright (C) 2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/OMEGA
NAME:=Onion Omega
PACKAGES:=kmod-usb-core kmod-usb2 kmod-usb-storage kmod-i2c-core kmod-i2c-gpio-custom kmod-spi-bitbang kmod-spi-dev kmod-spi-gpio kmod-spi-gpio-custom kmod-usb-serial
endef
define Profile/OMEGA/Description
Package set optimized for the Onion Omega development platform.
endef
$(eval $(call Profile,OMEGA))

View file

@ -388,6 +388,15 @@ define Device/mc-mac1200r
endef endef
TARGET_DEVICES += mc-mac1200r TARGET_DEVICES += mc-mac1200r
define Device/onion-omega
$(Device/tplink-16mlzma)
BOARDNAME := ONION-OMEGA
DEVICE_PROFILE := OMEGA
TPLINK_HWID := 0x04700001
CONSOLE := ttyATH0,115200
endef
TARGET_DEVICES += onion-omega
define Device/tl-mr10u-v1 define Device/tl-mr10u-v1
$(Device/tplink-4mlzma) $(Device/tplink-4mlzma)
BOARDNAME := TL-MR10U BOARDNAME := TL-MR10U

View file

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/machtypes.h --- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h
@@ -16,24 +16,206 @@ @@ -16,24 +16,207 @@
enum ath79_mach_type { enum ath79_mach_type {
ATH79_MACH_GENERIC = 0, ATH79_MACH_GENERIC = 0,
@ -82,6 +82,7 @@
+ ATH79_MACH_OM2P, /* OpenMesh OM2P */ + ATH79_MACH_OM2P, /* OpenMesh OM2P */
+ ATH79_MACH_OM5P_AN, /* OpenMesh OM5P-AN */ + ATH79_MACH_OM5P_AN, /* OpenMesh OM5P-AN */
+ ATH79_MACH_OM5P, /* OpenMesh OM5P */ + ATH79_MACH_OM5P, /* OpenMesh OM5P */
+ ATH79_MACH_ONION_OMEGA, /* ONION OMEGA */
+ ATH79_MACH_PB42, /* Atheros PB42 */ + ATH79_MACH_PB42, /* Atheros PB42 */
+ ATH79_MACH_PB92, /* Atheros PB92 */ + ATH79_MACH_PB92, /* Atheros PB92 */
+ ATH79_MACH_QIHOO_C301, /* Qihoo 360 C301 */ + ATH79_MACH_QIHOO_C301, /* Qihoo 360 C301 */
@ -300,7 +301,7 @@
config ATH79_MACH_AP121 config ATH79_MACH_AP121
bool "Atheros AP121 reference board" bool "Atheros AP121 reference board"
select SOC_AR933X select SOC_AR933X
@@ -11,62 +95,1097 @@ config ATH79_MACH_AP121 @@ -11,62 +95,1107 @@ config ATH79_MACH_AP121
select ATH79_DEV_M25P80 select ATH79_DEV_M25P80
select ATH79_DEV_USB select ATH79_DEV_USB
select ATH79_DEV_WMAC select ATH79_DEV_WMAC
@ -1006,6 +1007,16 @@
+ select ATH79_DEV_M25P80 + select ATH79_DEV_M25P80
+ select ATH79_DEV_WMAC + select ATH79_DEV_WMAC
+ +
+config ATH79_MACH_ONION_OMEGA
+ bool "ONION OMEGA support"
+ 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
+
+config ATH79_MACH_MR12 +config ATH79_MACH_MR12
+ bool "Meraki MR12 board support" + bool "Meraki MR12 board support"
+ select SOC_AR724X + select SOC_AR724X
@ -1426,7 +1437,7 @@
config ATH79_MACH_UBNT_XM config ATH79_MACH_UBNT_XM
bool "Ubiquiti Networks XM/UniFi boards" bool "Ubiquiti Networks XM/UniFi boards"
@@ -83,6 +1202,97 @@ config ATH79_MACH_UBNT_XM @@ -83,6 +1212,97 @@ config ATH79_MACH_UBNT_XM
Say 'Y' here if you want your kernel to support the Say 'Y' here if you want your kernel to support the
Ubiquiti Networks XM (rev 1.0) board. Ubiquiti Networks XM (rev 1.0) board.
@ -1524,7 +1535,7 @@
endmenu endmenu
config SOC_AR71XX config SOC_AR71XX
@@ -134,7 +1344,10 @@ config ATH79_DEV_DSA @@ -134,7 +1354,10 @@ config ATH79_DEV_DSA
config ATH79_DEV_ETH config ATH79_DEV_ETH
def_bool n def_bool n
@ -1536,7 +1547,7 @@
def_bool n def_bool n
config ATH79_DEV_GPIO_BUTTONS config ATH79_DEV_GPIO_BUTTONS
@@ -164,6 +1377,11 @@ config ATH79_PCI_ATH9K_FIXUP @@ -164,6 +1387,11 @@ config ATH79_PCI_ATH9K_FIXUP
def_bool n def_bool n
config ATH79_ROUTERBOOT config ATH79_ROUTERBOOT
@ -1550,7 +1561,7 @@
endif endif
--- a/arch/mips/ath79/Makefile --- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile
@@ -38,9 +38,132 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route @@ -38,9 +38,133 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route
# #
# Machines # Machines
# #
@ -1613,6 +1624,7 @@
+obj-$(CONFIG_ATH79_MACH_NBG460N) += mach-nbg460n.o +obj-$(CONFIG_ATH79_MACH_NBG460N) += mach-nbg460n.o
+obj-$(CONFIG_ATH79_MACH_OM2P) += mach-om2p.o +obj-$(CONFIG_ATH79_MACH_OM2P) += mach-om2p.o
+obj-$(CONFIG_ATH79_MACH_OM5P) += mach-om5p.o +obj-$(CONFIG_ATH79_MACH_OM5P) += mach-om5p.o
+obj-$(CONFIG_ATH79_MACH_ONION_OMEGA) += mach-onion-omega.o
+obj-$(CONFIG_ATH79_MACH_PB42) += mach-pb42.o +obj-$(CONFIG_ATH79_MACH_PB42) += mach-pb42.o
obj-$(CONFIG_ATH79_MACH_PB44) += mach-pb44.o obj-$(CONFIG_ATH79_MACH_PB44) += mach-pb44.o
+obj-$(CONFIG_ATH79_MACH_PB92) += mach-pb92.o +obj-$(CONFIG_ATH79_MACH_PB92) += mach-pb92.o

View file

@ -34,6 +34,7 @@
#define HWID_ANTMINER_S3 0x04440003 #define HWID_ANTMINER_S3 0x04440003
#define HWID_GL_INET_V1 0x08000001 #define HWID_GL_INET_V1 0x08000001
#define HWID_GS_OOLITE_V1 0x3C000101 #define HWID_GS_OOLITE_V1 0x3C000101
#define HWID_ONION_OMEGA 0x04700001
#define HWID_TL_MR10U_V1 0x00100101 #define HWID_TL_MR10U_V1 0x00100101
#define HWID_TL_MR13U_V1 0x00130101 #define HWID_TL_MR13U_V1 0x00130101
#define HWID_TL_MR3020_V1 0x30200001 #define HWID_TL_MR3020_V1 0x30200001
@ -419,6 +420,11 @@ static struct board_info boards[] = {
.hw_id = HWID_GS_OOLITE_V1, .hw_id = HWID_GS_OOLITE_V1,
.hw_rev = 1, .hw_rev = 1,
.layout_id = "16Mlzma", .layout_id = "16Mlzma",
}, {
.id = "ONION-OMEGA",
.hw_id = HWID_ONION_OMEGA,
.hw_rev = 1,
.layout_id = "16Mlzma",
}, { }, {
.id = "ANTMINER-S1", .id = "ANTMINER-S1",
.hw_id = HWID_ANTMINER_S1, .hw_id = HWID_ANTMINER_S1,