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 --- |