em28xx-cards.c (58f7553fa424fd0fd74e8b796d50c66014cebebe) em28xx-cards.c (2e74a01fb073900c8cc5df6b5e4bcbf575ac6c26)
1// SPDX-License-Identifier: GPL-2.0+
2//
3// em28xx-cards.c - driver for Empia EM2800/EM2820/2840 USB
4// video capture devices
5//
6// Copyright (C) 2005 Ludovico Cavedon <cavedon@sssup.it>
7// Markus Rechberger <mrechberger@gmail.com>
8// Mauro Carvalho Chehab <mchehab@kernel.org>

--- 535 unchanged lines hidden (view full) ---

544 {EM2874_R80_GPIO_P0_CTRL, 0xdf, 0xff, 100}, /* demod 2 reset */
545 {EM2874_R80_GPIO_P0_CTRL, 0xff, 0xff, 100},
546 {EM2874_R5F_TS_ENABLE, 0x00, 0xff, 50}, /* disable TS filters */
547 {EM2874_R5D_TS1_PKT_SIZE, 0x05, 0xff, 50},
548 {EM2874_R5E_TS2_PKT_SIZE, 0x05, 0xff, 50},
549 {-1, -1, -1, -1},
550};
551
1// SPDX-License-Identifier: GPL-2.0+
2//
3// em28xx-cards.c - driver for Empia EM2800/EM2820/2840 USB
4// video capture devices
5//
6// Copyright (C) 2005 Ludovico Cavedon <cavedon@sssup.it>
7// Markus Rechberger <mrechberger@gmail.com>
8// Mauro Carvalho Chehab <mchehab@kernel.org>

--- 535 unchanged lines hidden (view full) ---

544 {EM2874_R80_GPIO_P0_CTRL, 0xdf, 0xff, 100}, /* demod 2 reset */
545 {EM2874_R80_GPIO_P0_CTRL, 0xff, 0xff, 100},
546 {EM2874_R5F_TS_ENABLE, 0x00, 0xff, 50}, /* disable TS filters */
547 {EM2874_R5D_TS1_PKT_SIZE, 0x05, 0xff, 50},
548 {EM2874_R5E_TS2_PKT_SIZE, 0x05, 0xff, 50},
549 {-1, -1, -1, -1},
550};
551
552/* Hauppauge USB QuadHD */
553static struct em28xx_reg_seq hauppauge_usb_quadhd_atsc_reg_seq[] = {
554 {EM2874_R80_GPIO_P0_CTRL, 0xff, 0xff, 0},
555 {0x0d, 0xff, 0xff, 200},
556 {0x50, 0x04, 0xff, 300},
557 {EM2874_R80_GPIO_P0_CTRL, 0xb0, 0xf0, 100}, /* demod 1 reset */
558 {EM2874_R80_GPIO_P0_CTRL, 0xf0, 0xf0, 100},
559 {EM2874_R80_GPIO_P0_CTRL, 0xd0, 0xf0, 100}, /* demod 2 reset */
560 {EM2874_R80_GPIO_P0_CTRL, 0xf0, 0xf0, 100},
561 {EM2874_R5F_TS_ENABLE, 0x44, 0xff, 50},
562 {EM2874_R5D_TS1_PKT_SIZE, 0x05, 0xff, 50},
563 {EM2874_R5E_TS2_PKT_SIZE, 0x05, 0xff, 50},
564 {-1, -1, -1, -1},
565};
566
552/*
553 * Button definitions
554 */
555static const struct em28xx_button std_snapshot_button[] = {
556 {
557 .role = EM28XX_BUTTON_SNAPSHOT,
558 .reg_r = EM28XX_R0C_USBSUSP,
559 .reg_clearing = EM28XX_R0C_USBSUSP,

--- 79 unchanged lines hidden (view full) ---

639 .role = EM28XX_LED_DIGITAL_CAPTURING_TS2,
640 .gpio_reg = EM2874_R80_GPIO_P0_CTRL,
641 .gpio_mask = EM_GPIO_3,
642 .inverted = 1,
643 },
644 {-1, 0, 0, 0},
645};
646
567/*
568 * Button definitions
569 */
570static const struct em28xx_button std_snapshot_button[] = {
571 {
572 .role = EM28XX_BUTTON_SNAPSHOT,
573 .reg_r = EM28XX_R0C_USBSUSP,
574 .reg_clearing = EM28XX_R0C_USBSUSP,

--- 79 unchanged lines hidden (view full) ---

654 .role = EM28XX_LED_DIGITAL_CAPTURING_TS2,
655 .gpio_reg = EM2874_R80_GPIO_P0_CTRL,
656 .gpio_mask = EM_GPIO_3,
657 .inverted = 1,
658 },
659 {-1, 0, 0, 0},
660};
661
662static struct em28xx_led hauppauge_usb_quadhd_leds[] = {
663 {
664 .role = EM28XX_LED_DIGITAL_CAPTURING,
665 .gpio_reg = EM2874_R80_GPIO_P0_CTRL,
666 .gpio_mask = EM_GPIO_2,
667 .inverted = 1,
668 },
669 {
670 .role = EM28XX_LED_DIGITAL_CAPTURING_TS2,
671 .gpio_reg = EM2874_R80_GPIO_P0_CTRL,
672 .gpio_mask = EM_GPIO_0,
673 .inverted = 1,
674 },
675 {-1, 0, 0, 0},
676};
677
647/*
648 * Board definitions
649 */
650const struct em28xx_board em28xx_boards[] = {
651 [EM2750_BOARD_UNKNOWN] = {
652 .name = "EM2710/EM2750/EM2751 webcam grabber",
653 .xclk = EM28XX_XCLK_FREQUENCY_20MHZ,
654 .tuner_type = TUNER_ABSENT,

--- 1879 unchanged lines hidden (view full) ---

2534 .vmux = SAA7115_COMPOSITE0,
2535 .amux = EM28XX_AMUX_LINE_IN,
2536 }, {
2537 .type = EM28XX_VMUX_SVIDEO,
2538 .vmux = SAA7115_SVIDEO3,
2539 .amux = EM28XX_AMUX_LINE_IN,
2540 } },
2541 },
678/*
679 * Board definitions
680 */
681const struct em28xx_board em28xx_boards[] = {
682 [EM2750_BOARD_UNKNOWN] = {
683 .name = "EM2710/EM2750/EM2751 webcam grabber",
684 .xclk = EM28XX_XCLK_FREQUENCY_20MHZ,
685 .tuner_type = TUNER_ABSENT,

--- 1879 unchanged lines hidden (view full) ---

2565 .vmux = SAA7115_COMPOSITE0,
2566 .amux = EM28XX_AMUX_LINE_IN,
2567 }, {
2568 .type = EM28XX_VMUX_SVIDEO,
2569 .vmux = SAA7115_SVIDEO3,
2570 .amux = EM28XX_AMUX_LINE_IN,
2571 } },
2572 },
2573 /* 2040:826d Hauppauge USB QuadHD
2574 * Empia 28274, Max Linear 692 ATSC combo demod/tuner
2575 */
2576 [EM2874_BOARD_HAUPPAUGE_USB_QUADHD] = {
2577 .name = "Hauppauge USB QuadHD ATSC",
2578 .def_i2c_bus = 1,
2579 .has_dual_ts = 1,
2580 .has_dvb = 1,
2581 .i2c_speed = EM28XX_I2C_CLK_WAIT_ENABLE | EM28XX_I2C_FREQ_100_KHZ,
2582 .tuner_type = TUNER_ABSENT,
2583 .tuner_gpio = hauppauge_usb_quadhd_atsc_reg_seq,
2584 .leds = hauppauge_usb_quadhd_leds,
2585 },
2542};
2543EXPORT_SYMBOL_GPL(em28xx_boards);
2544
2545static const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards);
2546
2547/* table of devices that work with this driver */
2548struct usb_device_id em28xx_id_table[] = {
2549 { USB_DEVICE(0xeb1a, 0x2750),

--- 117 unchanged lines hidden (view full) ---

2667 { USB_DEVICE(0x2040, 0x0265),
2668 .driver_info = EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_DVB },
2669 { USB_DEVICE(0x2040, 0x8265),
2670 .driver_info = EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_DVB },
2671 { USB_DEVICE(0x2040, 0x026d),
2672 .driver_info = EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_01595 },
2673 { USB_DEVICE(0x2040, 0x826d),
2674 .driver_info = EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_01595 },
2586};
2587EXPORT_SYMBOL_GPL(em28xx_boards);
2588
2589static const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards);
2590
2591/* table of devices that work with this driver */
2592struct usb_device_id em28xx_id_table[] = {
2593 { USB_DEVICE(0xeb1a, 0x2750),

--- 117 unchanged lines hidden (view full) ---

2711 { USB_DEVICE(0x2040, 0x0265),
2712 .driver_info = EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_DVB },
2713 { USB_DEVICE(0x2040, 0x8265),
2714 .driver_info = EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_DVB },
2715 { USB_DEVICE(0x2040, 0x026d),
2716 .driver_info = EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_01595 },
2717 { USB_DEVICE(0x2040, 0x826d),
2718 .driver_info = EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_01595 },
2719 { USB_DEVICE(0x2040, 0x846d),
2720 .driver_info = EM2874_BOARD_HAUPPAUGE_USB_QUADHD },
2675 { USB_DEVICE(0x0438, 0xb002),
2676 .driver_info = EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600 },
2677 { USB_DEVICE(0x2001, 0xf112),
2678 .driver_info = EM2820_BOARD_DLINK_USB_TV },
2679 { USB_DEVICE(0x2304, 0x0207),
2680 .driver_info = EM2820_BOARD_PINNACLE_DVC_90 },
2681 { USB_DEVICE(0x2304, 0x0208),
2682 .driver_info = EM2820_BOARD_PINNACLE_USB_2 },

--- 1454 unchanged lines hidden ---
2721 { USB_DEVICE(0x0438, 0xb002),
2722 .driver_info = EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600 },
2723 { USB_DEVICE(0x2001, 0xf112),
2724 .driver_info = EM2820_BOARD_DLINK_USB_TV },
2725 { USB_DEVICE(0x2304, 0x0207),
2726 .driver_info = EM2820_BOARD_PINNACLE_DVC_90 },
2727 { USB_DEVICE(0x2304, 0x0208),
2728 .driver_info = EM2820_BOARD_PINNACLE_USB_2 },

--- 1454 unchanged lines hidden ---