Exemplo n.º 1
0
void 
LED_CONTROL(int gpio_led, int flag)
{
	int front_led_x = 1;

	switch (gpio_led)
	{
#if defined (BOARD_GPIO_LED_WAN)
	case BOARD_GPIO_LED_WAN:
		front_led_x = nvram_get_int("front_led_wan");
		break;
#endif
#if defined (BOARD_GPIO_LED_LAN)
	case BOARD_GPIO_LED_LAN:
		front_led_x = nvram_get_int("front_led_lan");
		break;
#endif
#if defined (BOARD_GPIO_LED_WIFI)
	case BOARD_GPIO_LED_WIFI:
		front_led_x = nvram_get_int("front_led_wif");
		break;
#endif
#if defined (BOARD_GPIO_LED_USB)
	case BOARD_GPIO_LED_USB:
#if (BOARD_NUM_USB_PORTS > 0)
		front_led_x = nvram_get_int("front_led_usb");
#else
		front_led_x = 0;
#endif
		break;
#endif
#if defined (BOARD_GPIO_LED_POWER)
	case BOARD_GPIO_LED_POWER:
		front_led_x = nvram_get_int("front_led_pwr");
		break;
#endif
#if defined (BOARD_GPIO_LED_ALL)
	case BOARD_GPIO_LED_ALL:
		front_led_x = nvram_get_int("front_led_all");
		break;
#endif
	default:
		return;
	}

	if (front_led_x == 0)
		flag = LED_OFF;

#if !defined (BOARD_GPIO_LED_ALL)
	if (nvram_get_int("front_led_all") == 0
#if defined (BOARD_GPIO_LED_POWER)
	    && gpio_led != BOARD_GPIO_LED_POWER
#endif
	)
		flag = LED_OFF;
#endif

#if defined (BOARD_GPIO_LED_WIFI) && defined (CONFIG_RALINK_MT7620) && (BOARD_GPIO_LED_WIFI == 72)
	if (gpio_led == BOARD_GPIO_LED_WIFI) {
		cpu_gpio_mode_set_bit(13, (flag == LED_OFF) ? 1 : 0); // change GPIO Mode for WLED
		cpu_gpio_set_pin(gpio_led, LED_OFF); // always set GPIO to high
	}
	else
#endif
		cpu_gpio_set_pin(gpio_led, flag);
}
Exemplo n.º 2
0
Arquivo: rc.c Projeto: ff94315/rt-n56u
void 
LED_CONTROL(int gpio_led, int flag)
{
	int front_led_x = 1;
	int is_soft_blink = 0;

	switch (gpio_led)
	{
#if defined (BOARD_GPIO_LED_ROUTER)
	case BOARD_GPIO_LED_ROUTER:
		break;
#endif
#if defined (BOARD_GPIO_LED_WAN)
	case BOARD_GPIO_LED_WAN:
		front_led_x = nvram_get_int("front_led_wan");
		break;
#endif
#if defined (BOARD_GPIO_LED_LAN)
	case BOARD_GPIO_LED_LAN:
		front_led_x = nvram_get_int("front_led_lan");
		break;
#endif
#if defined (BOARD_GPIO_LED_WIFI)
	case BOARD_GPIO_LED_WIFI:
		front_led_x = nvram_get_int("front_led_wif");
		break;
#endif
#if defined (BOARD_GPIO_LED_SW2G)
	case BOARD_GPIO_LED_SW2G:
		is_soft_blink = 1;
		front_led_x = nvram_get_int("front_led_wif");
		if (front_led_x) {
#if defined (BOARD_GPIO_LED_SW5G) && (BOARD_GPIO_LED_SW5G == BOARD_GPIO_LED_SW2G)
			flag = (is_radio_on_rt() || is_radio_on_wl()) ? LED_ON : LED_OFF;
#else
			flag = (is_radio_on_rt()) ? LED_ON : LED_OFF;
#endif
		}
		break;
#endif
#if defined (BOARD_GPIO_LED_SW5G) && (!defined (BOARD_GPIO_LED_SW2G) || (BOARD_GPIO_LED_SW5G != BOARD_GPIO_LED_SW2G))
	case BOARD_GPIO_LED_SW5G:
		is_soft_blink = 1;
		front_led_x = nvram_get_int("front_led_wif");
		if (front_led_x) {
			flag = (is_radio_on_wl()) ? LED_ON : LED_OFF;
		}
		break;
#endif
#if defined (BOARD_GPIO_LED_USB)
	case BOARD_GPIO_LED_USB:
#if (BOARD_NUM_USB_PORTS > 0)
		front_led_x = nvram_get_int("front_led_usb");
#else
		front_led_x = 0;
#endif
		break;
#endif
#if defined (BOARD_GPIO_LED_POWER)
	case BOARD_GPIO_LED_POWER:
		front_led_x = nvram_get_int("front_led_pwr");
		break;
#endif
#if defined (BOARD_GPIO_LED_ALL)
	case BOARD_GPIO_LED_ALL:
		front_led_x = nvram_get_int("front_led_all");
		break;
#endif
	default:
		return;
	}

	if (front_led_x == 0)
		flag = LED_OFF;

#if !defined (BOARD_GPIO_LED_ALL)
	if (nvram_get_int("front_led_all") == 0
#if defined (BOARD_GPIO_LED_POWER)
	    && gpio_led != BOARD_GPIO_LED_POWER
#endif
	)
		flag = LED_OFF;
#endif

#if defined (BOARD_GPIO_LED_WIFI) && defined (CONFIG_RALINK_MT7620) && (BOARD_GPIO_LED_WIFI == 72)
	if (gpio_led == BOARD_GPIO_LED_WIFI) {
		cpu_gpio_mode_set_bit(13, (flag == LED_OFF) ? 1 : 0); // change GPIO Mode for WLED
		cpu_gpio_set_pin(gpio_led, LED_OFF); // always set GPIO to high
	} else
#endif
	{
		if (is_soft_blink)
			cpu_gpio_led_enabled(gpio_led, (flag == LED_OFF) ? 0 : 1);
		
		cpu_gpio_set_pin(gpio_led, flag);
	}
}