Esempio n. 1
0
int sms_board_event(struct smscore_device_t *coredev,
		enum SMS_BOARD_EVENTS gevent) {
	struct smscore_gpio_config MyGpioConfig;

	sms_gpio_assign_11xx_default_led_config(&MyGpioConfig);

	switch (gevent) {
	case BOARD_EVENT_POWER_INIT: /* including hotplug */
		break; /* BOARD_EVENT_BIND */

	case BOARD_EVENT_POWER_SUSPEND:
		break; /* BOARD_EVENT_POWER_SUSPEND */

	case BOARD_EVENT_POWER_RESUME:
		break; /* BOARD_EVENT_POWER_RESUME */

	case BOARD_EVENT_BIND:
		break; /* BOARD_EVENT_BIND */

	case BOARD_EVENT_SCAN_PROG:
		break; /* BOARD_EVENT_SCAN_PROG */
	case BOARD_EVENT_SCAN_COMP:
		break; /* BOARD_EVENT_SCAN_COMP */
	case BOARD_EVENT_EMERGENCY_WARNING_SIGNAL:
		break; /* BOARD_EVENT_EMERGENCY_WARNING_SIGNAL */
	case BOARD_EVENT_FE_LOCK:
		break; /* BOARD_EVENT_FE_LOCK */
	case BOARD_EVENT_FE_UNLOCK:
		break; /* BOARD_EVENT_FE_UNLOCK */
	case BOARD_EVENT_DEMOD_LOCK:
		break; /* BOARD_EVENT_DEMOD_LOCK */
	case BOARD_EVENT_DEMOD_UNLOCK:
		break; /* BOARD_EVENT_DEMOD_UNLOCK */
	case BOARD_EVENT_RECEPTION_MAX_4:
		break; /* BOARD_EVENT_RECEPTION_MAX_4 */
	case BOARD_EVENT_RECEPTION_3:
		break; /* BOARD_EVENT_RECEPTION_3 */
	case BOARD_EVENT_RECEPTION_2:
		break; /* BOARD_EVENT_RECEPTION_2 */
	case BOARD_EVENT_RECEPTION_1:
		break; /* BOARD_EVENT_RECEPTION_1 */
	case BOARD_EVENT_RECEPTION_LOST_0:
		break; /* BOARD_EVENT_RECEPTION_LOST_0 */
	case BOARD_EVENT_MULTIPLEX_OK:
		break; /* BOARD_EVENT_MULTIPLEX_OK */
	case BOARD_EVENT_MULTIPLEX_ERRORS:
		break; /* BOARD_EVENT_MULTIPLEX_ERRORS */

	default:
		sms_err("Unknown SMS board event");
		break;
	}
	return 0;
}
Esempio n. 2
0
int sms_board_event(struct smscore_device_t *coredev,
		enum SMS_BOARD_EVENTS gevent) {
	int board_id = smscore_get_board_id(coredev);
	struct sms_board *board = sms_get_board(board_id);
	struct smscore_gpio_config MyGpioConfig;

	sms_gpio_assign_11xx_default_led_config(&MyGpioConfig);

	switch (gevent) {
	case BOARD_EVENT_POWER_INIT: /* including hotplug */
		switch (board_id) {
		case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
			/* set I/O and turn off all LEDs */
			smscore_gpio_configure(coredev,
					board->board_cfg.leds_power,
					&MyGpioConfig);
			smscore_gpio_set_level(coredev,
					board->board_cfg.leds_power, 0);
			smscore_gpio_configure(coredev, board->board_cfg.led0,
					&MyGpioConfig);
			smscore_gpio_set_level(coredev,
					board->board_cfg.led0, 0);
			smscore_gpio_configure(coredev, board->board_cfg.led1,
					&MyGpioConfig);
			smscore_gpio_set_level(coredev,
					board->board_cfg.led1, 0);
			break;
		case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
		case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
			/* set I/O and turn off LNA */
			smscore_gpio_configure(coredev,
					board->board_cfg.foreign_lna0_ctrl,
					&MyGpioConfig);
			smscore_gpio_set_level(coredev,
					board->board_cfg.foreign_lna0_ctrl,
					0);
			break;
		}
		break; /* BOARD_EVENT_BIND */

	case BOARD_EVENT_POWER_SUSPEND:
		switch (board_id) {
		case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
			smscore_gpio_set_level(coredev,
						board->board_cfg.leds_power, 0);
			smscore_gpio_set_level(coredev,
						board->board_cfg.led0, 0);
			smscore_gpio_set_level(coredev,
						board->board_cfg.led1, 0);
			break;
		case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
		case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
			smscore_gpio_set_level(coredev,
					board->board_cfg.foreign_lna0_ctrl,
					0);
			break;
		}
		break; /* BOARD_EVENT_POWER_SUSPEND */

	case BOARD_EVENT_POWER_RESUME:
		switch (board_id) {
		case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
			smscore_gpio_set_level(coredev,
						board->board_cfg.leds_power, 1);
			smscore_gpio_set_level(coredev,
						board->board_cfg.led0, 1);
			smscore_gpio_set_level(coredev,
						board->board_cfg.led1, 0);
			break;
		case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
		case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
			smscore_gpio_set_level(coredev,
					board->board_cfg.foreign_lna0_ctrl,
					1);
			break;
		}
		break; /* BOARD_EVENT_POWER_RESUME */

	case BOARD_EVENT_BIND:
		switch (board_id) {
		case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
			smscore_gpio_set_level(coredev,
				board->board_cfg.leds_power, 1);
			smscore_gpio_set_level(coredev,
				board->board_cfg.led0, 1);
			smscore_gpio_set_level(coredev,
				board->board_cfg.led1, 0);
			break;
		case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
		case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
			smscore_gpio_set_level(coredev,
					board->board_cfg.foreign_lna0_ctrl,
					1);
			break;
		}
		break; /* BOARD_EVENT_BIND */

	case BOARD_EVENT_SCAN_PROG:
		break; /* BOARD_EVENT_SCAN_PROG */
	case BOARD_EVENT_SCAN_COMP:
		break; /* BOARD_EVENT_SCAN_COMP */
	case BOARD_EVENT_EMERGENCY_WARNING_SIGNAL:
		break; /* BOARD_EVENT_EMERGENCY_WARNING_SIGNAL */
	case BOARD_EVENT_FE_LOCK:
		switch (board_id) {
		case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
			smscore_gpio_set_level(coredev,
			board->board_cfg.led1, 1);
			break;
		}
		break; /* BOARD_EVENT_FE_LOCK */
	case BOARD_EVENT_FE_UNLOCK:
		switch (board_id) {
		case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
			smscore_gpio_set_level(coredev,
						board->board_cfg.led1, 0);
			break;
		}
		break; /* BOARD_EVENT_FE_UNLOCK */
	case BOARD_EVENT_DEMOD_LOCK:
		break; /* BOARD_EVENT_DEMOD_LOCK */
	case BOARD_EVENT_DEMOD_UNLOCK:
		break; /* BOARD_EVENT_DEMOD_UNLOCK */
	case BOARD_EVENT_RECEPTION_MAX_4:
		break; /* BOARD_EVENT_RECEPTION_MAX_4 */
	case BOARD_EVENT_RECEPTION_3:
		break; /* BOARD_EVENT_RECEPTION_3 */
	case BOARD_EVENT_RECEPTION_2:
		break; /* BOARD_EVENT_RECEPTION_2 */
	case BOARD_EVENT_RECEPTION_1:
		break; /* BOARD_EVENT_RECEPTION_1 */
	case BOARD_EVENT_RECEPTION_LOST_0:
		break; /* BOARD_EVENT_RECEPTION_LOST_0 */
	case BOARD_EVENT_MULTIPLEX_OK:
		switch (board_id) {
		case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
			smscore_gpio_set_level(coredev,
						board->board_cfg.led1, 1);
			break;
		}
		break; /* BOARD_EVENT_MULTIPLEX_OK */
	case BOARD_EVENT_MULTIPLEX_ERRORS:
		switch (board_id) {
		case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
			smscore_gpio_set_level(coredev,
						board->board_cfg.led1, 0);
			break;
		}
		break; /* BOARD_EVENT_MULTIPLEX_ERRORS */

	default:
		sms_err("Unknown SMS board event");
		break;
	}
	return 0;
}