V4L/DVB (9735): sms1xxx: turn off LEDs after initialization of Hauppauge WinTV MiniStick
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
3f7d99f65a
commit
250fa674fd
|
@ -106,11 +106,21 @@ static struct sms_board sms_boards[] = {
|
|||
.name = "Hauppauge WinTV MiniStick",
|
||||
.type = SMS_NOVA_B0,
|
||||
.fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw",
|
||||
.led_power = 26,
|
||||
.led_lo = 27,
|
||||
.led_hi = 28,
|
||||
},
|
||||
[SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD] = {
|
||||
.name = "Hauppauge WinTV MiniCard",
|
||||
.type = SMS_NOVA_B0,
|
||||
.fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw",
|
||||
.lna_ctrl = 29,
|
||||
},
|
||||
[SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2] = {
|
||||
.name = "Hauppauge WinTV MiniCard",
|
||||
.type = SMS_NOVA_B0,
|
||||
.fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw",
|
||||
.lna_ctrl = 1,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -121,3 +131,40 @@ struct sms_board *sms_get_board(int id)
|
|||
return &sms_boards[id];
|
||||
}
|
||||
|
||||
static int sms_set_gpio(struct smscore_device_t *coredev, u32 pin, int enable)
|
||||
{
|
||||
int ret;
|
||||
struct smscore_gpio_config gpioconfig = {
|
||||
.direction = SMS_GPIO_DIRECTION_OUTPUT,
|
||||
.pullupdown = SMS_GPIO_PULLUPDOWN_NONE,
|
||||
.inputcharacteristics = SMS_GPIO_INPUTCHARACTERISTICS_NORMAL,
|
||||
.outputslewrate = SMS_GPIO_OUTPUTSLEWRATE_FAST,
|
||||
.outputdriving = SMS_GPIO_OUTPUTDRIVING_4mA,
|
||||
};
|
||||
|
||||
if (pin == 0)
|
||||
return -EINVAL;
|
||||
|
||||
ret = smscore_configure_gpio(coredev, pin, &gpioconfig);
|
||||
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
return smscore_set_gpio(coredev, pin, enable);
|
||||
}
|
||||
|
||||
int sms_board_setup(struct smscore_device_t *coredev)
|
||||
{
|
||||
int board_id = smscore_get_board_id(coredev);
|
||||
struct sms_board *board = sms_get_board(board_id);
|
||||
|
||||
switch (board_id) {
|
||||
case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
|
||||
/* turn off all LEDs */
|
||||
sms_set_gpio(coredev, board->led_power, 0);
|
||||
sms_set_gpio(coredev, board->led_hi, 0);
|
||||
sms_set_gpio(coredev, board->led_lo, 0);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -37,10 +37,15 @@
|
|||
struct sms_board {
|
||||
enum sms_device_type_st type;
|
||||
char *name, *fw[DEVICE_MODE_MAX];
|
||||
|
||||
/* gpios */
|
||||
int led_power, led_hi, led_lo;
|
||||
};
|
||||
|
||||
struct sms_board *sms_get_board(int id);
|
||||
|
||||
int sms_board_setup(struct smscore_device_t *coredev);
|
||||
|
||||
extern struct usb_device_id smsusb_id_table[];
|
||||
|
||||
#endif /* __SMS_CARDS_H__ */
|
||||
|
|
|
@ -402,6 +402,8 @@ static int smsdvb_hotplug(struct smscore_device_t *coredev,
|
|||
|
||||
sms_info("success");
|
||||
|
||||
sms_board_setup(coredev);
|
||||
|
||||
return 0;
|
||||
|
||||
client_error:
|
||||
|
|
Loading…
Reference in New Issue