示例#1
0
static int do_trigger(int argc, char *argv[])
{
	struct led *led;
	int i, opt, ret = 0;
	int cmd = LED_COMMAND_SHOW_INFO;
	unsigned long trigger = 0;

	while((opt = getopt(argc, argv, "t:d:")) > 0) {
		switch(opt) {
		case 't':
			trigger = simple_strtoul(optarg, NULL, 0);
			cmd = LED_COMMAND_SET_TRIGGER;
			break;
		case 'd':
			trigger = simple_strtoul(optarg, NULL, 0);
			cmd = LED_COMMAND_DISABLE_TRIGGER;
		}
	}

	switch (cmd) {
	case LED_COMMAND_SHOW_INFO:
		for (i = 0; i < LED_TRIGGER_MAX; i++) {
			int led = led_get_trigger(i);
			printf("%d: %s", i, trigger_names[i]);
			if (led >= 0)
				printf(" (led %d)", led);
			printf("\n");
		}
		break;

	case LED_COMMAND_DISABLE_TRIGGER:
		ret = led_set_trigger(trigger, NULL);
		break;

	case LED_COMMAND_SET_TRIGGER:
		if (argc - optind != 1)
			return COMMAND_ERROR_USAGE;
		led = led_by_name_or_number(argv[optind]);

		if (!led) {
			printf("no such led: %s\n", argv[optind]);
			return 1;
		}

		ret = led_set_trigger(trigger, led);
		break;
	}

	if (ret)
		printf("trigger failed: %s\n", strerror(-ret));
	return ret ? 1 : 0;
}
示例#2
0
int main(int argc, char **argv)
{
	FILE *fp;
	char path[256];

	if (argc == 3)
		return main_led(argc, argv);

	if (argc < 7)
		return -1;

	daemon(0, 0);
	snprintf(path, sizeof(path), "/tmp/apcli-%s.pid", argv[2]);
	fp = fopen(path, "w+");
	if (fp) {
		fprintf(fp, "%d", getpid());
		fclose(fp);
	}

	setbuf(stdout, NULL);
	openlog("ap_client", 0, 0);
	if (argc > 7)
		led_name = argv[7];

	led_set_trigger(1);

	assoc_loop(argv[1], argv[2], argv[3], argv[4], argv[5], argv[6]);

	return 0;
}
示例#3
0
static void ek_device_add_leds(void)
{
	int i;

	for (i = 0; i < ARRAY_SIZE(ek_leds); i++) {
		at91_set_gpio_output(ek_leds[i].gpio, ek_leds[i].active_low);
		led_gpio_register(&ek_leds[i]);
	}
	led_set_trigger(LED_TRIGGER_HEARTBEAT, &ek_leds[1].led);
}
示例#4
0
static void __init ek_add_led(void)
{
	int i;

	for (i = 0; i < ARRAY_SIZE(leds); i++) {
		at91_set_gpio_output(leds[i].gpio, leds[i].active_low);
		led_gpio_register(&leds[i]);
	}
	led_set_trigger(LED_TRIGGER_HEARTBEAT, &leds[0].led);
}
示例#5
0
static void assoc_loop(char *ifname, char *staname, char *essid, char *pass, char *bssid, char *beacon)
{
	static int try_count = 0;
	static int assoc_count = 0;

	while (1) {
		if (!check_assoc(staname)) {
			struct survey_table *c;

			led_set_trigger(1);
			iwpriv("ra0", "Beacon", "0");
			syslog(LOG_INFO, "%s is not associated\n", staname);
			syslog(LOG_INFO, "Scanning for networks...\n");
			wifi_site_survey(ifname, 0);
			c = wifi_find_ap(essid, bssid);
			try_count++;
			assoc_count = 0;
			if (c) {
				syslog(LOG_INFO, "Found network, trying to associate (essid: %s, bssid: %s, channel: %s, enc: %s, crypto: %s)\n",
					essid, c->bssid, c->channel, c->security, c->crypto);
				wifi_repeater_start(ifname, staname, c->channel, essid, bssid, pass, c->security, c->crypto);
			} else {
				syslog(LOG_INFO, "No signal found to connect to\n");
				try_count = 0;
			}
		} else {
			if (assoc_count == 0) {
				iwpriv("ra0", "Beacon", beacon);
				syslog(LOG_INFO, "%s is associated\n", staname);
				led_set_trigger(0);
			}

			assoc_count++;
			if (assoc_count > 1)
				try_count = 0;
/*			if ((assoc_count % 4) == 0)
				syslog(LOG_INFO, "%s is still associated\n", staname);*/
		}
		sleep(10);
	}
}
示例#6
0
static void __init ek_add_led(void)
{
	int i;

#ifdef CONFIG_AT91_HAVE_2MMC
	leds[0].gpio = AT91_PIN_PB8;
	leds[1].gpio = AT91_PIN_PB9;
#endif

	for (i = 0; i < ARRAY_SIZE(leds); i++) {
		at91_set_gpio_output(leds[i].gpio, leds[i].active_low);
		led_gpio_register(&leds[i]);
	}
	led_set_trigger(LED_TRIGGER_HEARTBEAT, &leds[1].led);
}
示例#7
0
void rpi_add_led(void)
{
	int i;
	struct gpio_led *l;

	for (i = 0; i < ARRAY_SIZE(rpi_leds); i++) {
		l = &rpi_leds[i];

		if (gpio_is_valid(l->gpio))
			led_gpio_register(l);
	}

	l = &rpi_leds[0];
	if (gpio_is_valid(l->gpio))
		led_set_trigger(LED_TRIGGER_HEARTBEAT, &l->led);
}
static int imx23_olinuxino_devices_init(void)
{
	armlinux_set_architecture(MACH_TYPE_IMX233_OLINUXINO);
	defaultenv_append_directory(defaultenv_imx233_olinuxino);

	led_gpio_register(&led1);
	led_set_trigger(LED_TRIGGER_HEARTBEAT, &led1.led);

	add_generic_device("mxs_mci", DEVICE_ID_DYNAMIC, NULL, IMX_SSP1_BASE,
					0x8000, IORESOURCE_MEM, &mci_pdata);

	olinuxino_init_usb();

	default_environment_path_set("/dev/disk0.1");

	return 0;
}
示例#9
0
static int tiny210_devices_init(void)
{
	int i;
	for (i = 0; i < ARRAY_SIZE(pin_usage); i++)
		s3c_gpio_mode(pin_usage[i]);

	for (i = 0; i < ARRAY_SIZE(leds); i++) {
		leds[i].active_low = 1;
		gpio_direction_output(leds[i].gpio, leds[i].active_low);
		led_gpio_register(&leds[i]);
	}

	led_set_trigger(LED_TRIGGER_HEARTBEAT, &leds[0].led);

	armlinux_set_architecture(MACH_TYPE_MINI210);

	return 0;
}
示例#10
0
static int efikamx_late_init(void)
{
	int i;

	if (!of_machine_is_compatible("genesi,imx51-sb"))
		return 0;

	defaultenv_append_directory(defaultenv_efikasb);

	for (i = 0; i < ARRAY_SIZE(leds); i++)
		led_gpio_register(&leds[i]);

	led_set_trigger(LED_TRIGGER_HEARTBEAT, &leds[0].led);

	writew(0x0, MX51_WDOG_BASE_ADDR + 0x8);

	imx51_bbu_internal_mmc_register_handler("mmc", "/dev/mmc1",
			BBU_HANDLER_FLAG_DEFAULT);

	armlinux_set_architecture(2370);
	armlinux_set_revision(0x5100 | imx_silicon_revision());

	return 0;
}
示例#11
0
static void panda_led_init(void)
{
	led_gpio_register(&panda_leds[0]);
	led_set_trigger(LED_TRIGGER_HEARTBEAT, &panda_leds[0].led);
}