ar71xx: add support for OpenEmbed SOM9331
This patch adds the target profile SOM9331 and configures hardware functionality for the 3x Eth Ports & corresponding LED's, the USB Host, the USART to USB bridge and the System LED. Signed-off-by: Allan Nick Pedrana <nik9993@gmail.com>
This commit is contained in:
		 Allan Nick Pedrana
					Allan Nick Pedrana
				
			
				
					committed by
					
						 Jo-Philipp Wich
						Jo-Philipp Wich
					
				
			
			
				
	
			
			
			 Jo-Philipp Wich
						Jo-Philipp Wich
					
				
			
						parent
						
							69b45d2223
						
					
				
				
					commit
					e61fe4e4d7
				
			| @@ -426,6 +426,14 @@ smart-300) | |||||||
| 	ucidef_set_led_wlan "wlan" "WLAN" "nc-link:green:wlan" "phy0tpt" | 	ucidef_set_led_wlan "wlan" "WLAN" "nc-link:green:wlan" "phy0tpt" | ||||||
| 	;; | 	;; | ||||||
|  |  | ||||||
|  | som9331) | ||||||
|  | 	ucidef_set_led_netdev "wan" "WAN" "som9331:orange:wan" "eth1" | ||||||
|  | 	ucidef_set_led_switch "lan1" "LAN1" "som9331:orange:lan1" "switch0" "0x08" | ||||||
|  | 	ucidef_set_led_switch "lan2" "LAN2" "som9331:orange:lan2" "switch0" "0x02" | ||||||
|  | 	ucidef_set_led_wlan "wlan" "WLAN" "som9331:red:wlan" "phy0tpt" | ||||||
|  | 	ucidef_set_led_usbdev "usb" "USB" "som9331:green:system" "1-1" | ||||||
|  | 	;; | ||||||
|  |  | ||||||
| tellstick-znet-lite) | tellstick-znet-lite) | ||||||
| 	ucidef_set_led_netdev "lan_act" "LANACT" "tellstick:green:lan" "eth0" "tx rx" | 	ucidef_set_led_netdev "lan_act" "LANACT" "tellstick:green:lan" "eth0" "tx rx" | ||||||
| 	ucidef_set_led_netdev "lan_link" "LANLINK" "tellstick:orange:lan" "eth0" "link" | 	ucidef_set_led_netdev "lan_link" "LANLINK" "tellstick:orange:lan" "eth0" "link" | ||||||
|   | |||||||
| @@ -452,6 +452,7 @@ oolite |\ | |||||||
| qihoo-c301 |\ | qihoo-c301 |\ | ||||||
| rb-750 |\ | rb-750 |\ | ||||||
| rb-751 |\ | rb-751 |\ | ||||||
|  | som9331 |\ | ||||||
| tew-632brp |\ | tew-632brp |\ | ||||||
| tew-712br |\ | tew-712br |\ | ||||||
| tew-732br |\ | tew-732br |\ | ||||||
|   | |||||||
| @@ -278,6 +278,9 @@ get_status_led() { | |||||||
| 	tellstick-znet-lite) | 	tellstick-znet-lite) | ||||||
| 		status_led="tellstick:white:system" | 		status_led="tellstick:white:system" | ||||||
| 		;; | 		;; | ||||||
|  | 	som9331) | ||||||
|  | 		status_led="som9331:green:system" | ||||||
|  | 		;; | ||||||
| 	tew-632brp) | 	tew-632brp) | ||||||
| 		status_led="tew-632brp:green:status" | 		status_led="tew-632brp:green:status" | ||||||
| 		;; | 		;; | ||||||
|   | |||||||
| @@ -794,6 +794,9 @@ ar71xx_board_detect() { | |||||||
| 	*"Telldus TellStick ZNet Lite") | 	*"Telldus TellStick ZNet Lite") | ||||||
| 		name="tellstick-znet-lite" | 		name="tellstick-znet-lite" | ||||||
| 		;; | 		;; | ||||||
|  | 	*SOM9331) | ||||||
|  | 		name="som9331" | ||||||
|  | 		;; | ||||||
| 	*TEW-632BRP) | 	*TEW-632BRP) | ||||||
| 		name="tew-632brp" | 		name="tew-632brp" | ||||||
| 		;; | 		;; | ||||||
|   | |||||||
| @@ -350,6 +350,7 @@ platform_check_image() { | |||||||
| 	onion-omega | \ | 	onion-omega | \ | ||||||
| 	oolite | \ | 	oolite | \ | ||||||
| 	smart-300 | \ | 	smart-300 | \ | ||||||
|  | 	som9331 | \ | ||||||
| 	tellstick-znet-lite | \ | 	tellstick-znet-lite | \ | ||||||
| 	tl-mr10u | \ | 	tl-mr10u | \ | ||||||
| 	tl-mr11u | \ | 	tl-mr11u | \ | ||||||
|   | |||||||
| @@ -131,6 +131,7 @@ CONFIG_ATH79_MACH_R6100=y | |||||||
| # CONFIG_ATH79_MACH_RBSXTLITE is not set | # CONFIG_ATH79_MACH_RBSXTLITE is not set | ||||||
| CONFIG_ATH79_MACH_RW2458N=y | CONFIG_ATH79_MACH_RW2458N=y | ||||||
| CONFIG_ATH79_MACH_SMART_300=y | CONFIG_ATH79_MACH_SMART_300=y | ||||||
|  | CONFIG_ATH79_MACH_SOM9331=y | ||||||
| CONFIG_ATH79_MACH_TELLSTICK_ZNET_LITE=y | CONFIG_ATH79_MACH_TELLSTICK_ZNET_LITE=y | ||||||
| CONFIG_ATH79_MACH_TEW_632BRP=y | CONFIG_ATH79_MACH_TEW_632BRP=y | ||||||
| CONFIG_ATH79_MACH_TEW_673GRU=y | CONFIG_ATH79_MACH_TEW_673GRU=y | ||||||
|   | |||||||
| @@ -249,6 +249,16 @@ config ATH79_MACH_ESR1750 | |||||||
| 	select ATH79_DEV_USB | 	select ATH79_DEV_USB | ||||||
| 	select ATH79_DEV_WMAC | 	select ATH79_DEV_WMAC | ||||||
|  |  | ||||||
|  | config ATH79_MACH_SOM9331 | ||||||
|  | 	bool "SOM9331 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_WHR_HP_G300N | config ATH79_MACH_WHR_HP_G300N | ||||||
| 	bool "Buffalo WHR-HP-G300N board support" | 	bool "Buffalo WHR-HP-G300N board support" | ||||||
| 	select SOC_AR724X | 	select SOC_AR724X | ||||||
|   | |||||||
| @@ -135,6 +135,7 @@ obj-$(CONFIG_ATH79_MACH_RB2011)		+= mach-rb2011.o | |||||||
| obj-$(CONFIG_ATH79_MACH_RBSXTLITE)	+= mach-rbsxtlite.o | obj-$(CONFIG_ATH79_MACH_RBSXTLITE)	+= mach-rbsxtlite.o | ||||||
| obj-$(CONFIG_ATH79_MACH_RW2458N)	+= mach-rw2458n.o | obj-$(CONFIG_ATH79_MACH_RW2458N)	+= mach-rw2458n.o | ||||||
| obj-$(CONFIG_ATH79_MACH_SMART_300)	+= mach-smart-300.o | obj-$(CONFIG_ATH79_MACH_SMART_300)	+= mach-smart-300.o | ||||||
|  | obj-$(CONFIG_ATH79_MACH_SOM9331)	+= mach-som9331.o | ||||||
| obj-$(CONFIG_ATH79_MACH_TELLSTICK_ZNET_LITE)	+= mach-tellstick-znet-lite.o | obj-$(CONFIG_ATH79_MACH_TELLSTICK_ZNET_LITE)	+= mach-tellstick-znet-lite.o | ||||||
| obj-$(CONFIG_ATH79_MACH_TEW_632BRP)	+= mach-tew-632brp.o | obj-$(CONFIG_ATH79_MACH_TEW_632BRP)	+= mach-tew-632brp.o | ||||||
| obj-$(CONFIG_ATH79_MACH_TEW_673GRU)	+= mach-tew-673gru.o | obj-$(CONFIG_ATH79_MACH_TEW_673GRU)	+= mach-tew-673gru.o | ||||||
|   | |||||||
							
								
								
									
										125
									
								
								target/linux/ar71xx/files/arch/mips/ath79/mach-som9331.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								target/linux/ar71xx/files/arch/mips/ath79/mach-som9331.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,125 @@ | |||||||
|  | /* | ||||||
|  |  *  OpenEmbed SOM9331 board support | ||||||
|  |  * | ||||||
|  |  *  Copyright (C) 2011 dongyuqi <729650915@qq.com> | ||||||
|  |  *  Copyright (C) 2011-2012 Gabor Juhos <juhosg@openwrt.org> | ||||||
|  |  * | ||||||
|  |  *  5/27/2016 - Modified by Allan Nick Pedrana <nik9993@gmail.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 <linux/gpio.h> | ||||||
|  |  | ||||||
|  | #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-usb.h" | ||||||
|  | #include "dev-wmac.h" | ||||||
|  | #include "machtypes.h" | ||||||
|  |  | ||||||
|  | #define SOM9331_GPIO_LED_WLAN   27 | ||||||
|  | #define SOM9331_GPIO_LED_SYSTEM 0 | ||||||
|  | #define SOM9331_GPIO_LED_2  13 | ||||||
|  | #define SOM9331_GPIO_LED_3  14 | ||||||
|  | #define SOM9331_GPIO_LED_5  16 | ||||||
|  | #define SOM9331_GPIO_LED_WAN    SOM9331_GPIO_LED_2 | ||||||
|  | #define SOM9331_GPIO_LED_LAN1   SOM9331_GPIO_LED_3 | ||||||
|  | #define SOM9331_GPIO_LED_LAN2   SOM9331_GPIO_LED_5 | ||||||
|  | #define SOM9331_GPIO_BTN_RESET  11 | ||||||
|  |  | ||||||
|  | #define SOM9331_KEYS_POLL_INTERVAL  20  /* msecs */ | ||||||
|  | #define SOM9331_KEYS_DEBOUNCE_INTERVAL  (3 * SOM9331_KEYS_POLL_INTERVAL) | ||||||
|  |  | ||||||
|  | static const char *som9331_part_probes[] = { | ||||||
|  |     "tp-link", | ||||||
|  |     NULL, | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | static struct flash_platform_data som9331_flash_data = { | ||||||
|  |     .part_probes    = som9331_part_probes, | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | static struct gpio_led som9331_leds_gpio[] __initdata = { | ||||||
|  |     { | ||||||
|  |         .name       = "som9331:red:wlan", | ||||||
|  |         .gpio       = SOM9331_GPIO_LED_WLAN, | ||||||
|  |         .active_low = 1, | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         .name       = "som9331:orange:wan", | ||||||
|  |         .gpio       = SOM9331_GPIO_LED_WAN, | ||||||
|  |         .active_low = 0, | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         .name       = "som9331:orange:lan1", | ||||||
|  |         .gpio       = SOM9331_GPIO_LED_LAN1, | ||||||
|  |         .active_low = 0, | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         .name       = "som9331:orange:lan2", | ||||||
|  |         .gpio       = SOM9331_GPIO_LED_LAN2, | ||||||
|  |         .active_low = 0, | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         .name       = "som9331:blue:system", | ||||||
|  |         .gpio       = SOM9331_GPIO_LED_SYSTEM, | ||||||
|  |         .active_low = 0, | ||||||
|  |     }, | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | static struct gpio_keys_button som9331_gpio_keys[] __initdata = { | ||||||
|  |     { | ||||||
|  |         .desc       = "reset", | ||||||
|  |         .type       = EV_KEY, | ||||||
|  |         .code       = KEY_RESTART, | ||||||
|  |         .debounce_interval = SOM9331_KEYS_DEBOUNCE_INTERVAL, | ||||||
|  |         .gpio       = SOM9331_GPIO_BTN_RESET, | ||||||
|  |         .active_low = 0, | ||||||
|  |     } | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | static void __init som9331_setup(void) | ||||||
|  | { | ||||||
|  |     u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); | ||||||
|  |     u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); | ||||||
|  |  | ||||||
|  |     ath79_setup_ar933x_phy4_switch(true, true); | ||||||
|  |  | ||||||
|  |     ath79_gpio_function_disable(AR933X_GPIO_FUNC_ETH_SWITCH_LED0_EN | | ||||||
|  |                     AR933X_GPIO_FUNC_ETH_SWITCH_LED1_EN | | ||||||
|  |                     AR933X_GPIO_FUNC_ETH_SWITCH_LED2_EN | | ||||||
|  |                     AR933X_GPIO_FUNC_ETH_SWITCH_LED3_EN | | ||||||
|  |                     AR933X_GPIO_FUNC_ETH_SWITCH_LED4_EN); | ||||||
|  |  | ||||||
|  |     ath79_register_m25p80(&som9331_flash_data); | ||||||
|  |     ath79_register_leds_gpio(-1, ARRAY_SIZE(som9331_leds_gpio), | ||||||
|  |                  som9331_leds_gpio); | ||||||
|  |     ath79_register_gpio_keys_polled(-1, SOM9331_KEYS_POLL_INTERVAL, | ||||||
|  |                     ARRAY_SIZE(som9331_gpio_keys), | ||||||
|  |                     som9331_gpio_keys); | ||||||
|  |  | ||||||
|  |     ath79_register_usb(); | ||||||
|  |  | ||||||
|  |     ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); | ||||||
|  |     ath79_init_mac(ath79_eth1_data.mac_addr, mac, -1); | ||||||
|  |  | ||||||
|  |     ath79_register_mdio(0, 0x0); | ||||||
|  |  | ||||||
|  |     /* LAN ports */ | ||||||
|  |     ath79_register_eth(1); | ||||||
|  |  | ||||||
|  |     /* WAN port */ | ||||||
|  |     ath79_register_eth(0); | ||||||
|  |  | ||||||
|  |     ath79_register_wmac(ee, mac); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | MIPS_MACHINE(ATH79_MACH_SOM9331, "SOM9331", "OpenEmbed SOM9331", som9331_setup); | ||||||
| @@ -153,6 +153,7 @@ enum ath79_mach_type { | |||||||
| 	ATH79_MACH_RB_SXTLITE5ND,	/* Mikrotik RouterBOARD SXT Lite 5nD */ | 	ATH79_MACH_RB_SXTLITE5ND,	/* Mikrotik RouterBOARD SXT Lite 5nD */ | ||||||
| 	ATH79_MACH_RW2458N,		/* Redwave RW2458N */ | 	ATH79_MACH_RW2458N,		/* Redwave RW2458N */ | ||||||
| 	ATH79_MACH_SMART_300,		/* NC-LINK SMART-300 */ | 	ATH79_MACH_SMART_300,		/* NC-LINK SMART-300 */ | ||||||
|  | 	ATH79_MACH_SOM9331,		/* OpenEmbed SOM9331 */ | ||||||
| 	ATH79_MACH_TELLSTICK_ZNET_LITE,	/* TellStick ZNet Lite */ | 	ATH79_MACH_TELLSTICK_ZNET_LITE,	/* TellStick ZNet Lite */ | ||||||
| 	ATH79_MACH_TEW_632BRP,		/* TRENDnet TEW-632BRP */ | 	ATH79_MACH_TEW_632BRP,		/* TRENDnet TEW-632BRP */ | ||||||
| 	ATH79_MACH_TEW_673GRU,		/* TRENDnet TEW-673GRU */ | 	ATH79_MACH_TEW_673GRU,		/* TRENDnet TEW-673GRU */ | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								target/linux/ar71xx/generic/profiles/openembed.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								target/linux/ar71xx/generic/profiles/openembed.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | # This is free software, licensed under the GNU General Public License v2. | ||||||
|  | # See /LICENSE for more information. | ||||||
|  |  | ||||||
|  | define Profile/SOM9331 | ||||||
|  |    NAME:=OpenEmbed SOM9331 | ||||||
|  |    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/SOM9331/Description | ||||||
|  |    Package set optimized for the OpenEmbed SOM9331. | ||||||
|  | endef | ||||||
|  | $(eval $(call Profile,SOM9331)) | ||||||
|  |  | ||||||
| @@ -271,6 +271,15 @@ define Device/smart-300 | |||||||
| endef | endef | ||||||
| TARGET_DEVICES += smart-300 | TARGET_DEVICES += smart-300 | ||||||
|  |  | ||||||
|  | define Device/som9331 | ||||||
|  |     $(Device/tplink-8mlzma) | ||||||
|  |     BOARDNAME := SOM9331 | ||||||
|  |     DEVICE_PROFILE := SOM9331 | ||||||
|  |     TPLINK_HWID := 0x04800054 | ||||||
|  |     CONSOLE := ttyATH0,115200 | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += som9331 | ||||||
|  |  | ||||||
| define Device/tellstick-znet-lite | define Device/tellstick-znet-lite | ||||||
|     $(Device/tplink-16mlzma) |     $(Device/tplink-16mlzma) | ||||||
|     BOARDNAME := TELLSTICK-ZNET-LITE |     BOARDNAME := TELLSTICK-ZNET-LITE | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user