|
@@ -23,6 +23,7 @@
|
|
|
|
|
|
#include "cx18-driver.h"
|
|
#include "cx18-driver.h"
|
|
#include "cx18-cards.h"
|
|
#include "cx18-cards.h"
|
|
|
|
+#include "cx18-av-core.h"
|
|
#include "cx18-i2c.h"
|
|
#include "cx18-i2c.h"
|
|
#include <media/cs5345.h>
|
|
#include <media/cs5345.h>
|
|
|
|
|
|
@@ -54,22 +55,22 @@ static const struct cx18_card cx18_card_hvr1600_esmt = {
|
|
.hw_all = CX18_HW_TVEEPROM | CX18_HW_TUNER |
|
|
.hw_all = CX18_HW_TVEEPROM | CX18_HW_TUNER |
|
|
CX18_HW_CS5345 | CX18_HW_DVB,
|
|
CX18_HW_CS5345 | CX18_HW_DVB,
|
|
.video_inputs = {
|
|
.video_inputs = {
|
|
- { CX18_CARD_INPUT_VID_TUNER, 0, CX23418_COMPOSITE7 },
|
|
|
|
- { CX18_CARD_INPUT_SVIDEO1, 1, CX23418_SVIDEO1 },
|
|
|
|
- { CX18_CARD_INPUT_COMPOSITE1, 1, CX23418_COMPOSITE3 },
|
|
|
|
- { CX18_CARD_INPUT_SVIDEO2, 2, CX23418_SVIDEO2 },
|
|
|
|
- { CX18_CARD_INPUT_COMPOSITE2, 2, CX23418_COMPOSITE4 },
|
|
|
|
|
|
+ { CX18_CARD_INPUT_VID_TUNER, 0, CX18_AV_COMPOSITE7 },
|
|
|
|
+ { CX18_CARD_INPUT_SVIDEO1, 1, CX18_AV_SVIDEO1 },
|
|
|
|
+ { CX18_CARD_INPUT_COMPOSITE1, 1, CX18_AV_COMPOSITE3 },
|
|
|
|
+ { CX18_CARD_INPUT_SVIDEO2, 2, CX18_AV_SVIDEO2 },
|
|
|
|
+ { CX18_CARD_INPUT_COMPOSITE2, 2, CX18_AV_COMPOSITE4 },
|
|
},
|
|
},
|
|
.audio_inputs = {
|
|
.audio_inputs = {
|
|
{ CX18_CARD_INPUT_AUD_TUNER,
|
|
{ CX18_CARD_INPUT_AUD_TUNER,
|
|
- CX23418_AUDIO8, CS5345_IN_1 | CS5345_MCLK_1_5 },
|
|
|
|
|
|
+ CX18_AV_AUDIO8, CS5345_IN_1 | CS5345_MCLK_1_5 },
|
|
{ CX18_CARD_INPUT_LINE_IN1,
|
|
{ CX18_CARD_INPUT_LINE_IN1,
|
|
- CX23418_AUDIO_SERIAL, CS5345_IN_2 },
|
|
|
|
|
|
+ CX18_AV_AUDIO_SERIAL, CS5345_IN_2 },
|
|
{ CX18_CARD_INPUT_LINE_IN2,
|
|
{ CX18_CARD_INPUT_LINE_IN2,
|
|
- CX23418_AUDIO_SERIAL, CS5345_IN_2 },
|
|
|
|
|
|
+ CX18_AV_AUDIO_SERIAL, CS5345_IN_3 },
|
|
},
|
|
},
|
|
.radio_input = { CX18_CARD_INPUT_AUD_TUNER,
|
|
.radio_input = { CX18_CARD_INPUT_AUD_TUNER,
|
|
- CX23418_AUDIO_SERIAL, 0 },
|
|
|
|
|
|
+ CX18_AV_AUDIO_SERIAL, CS5345_IN_4 },
|
|
.ddr = {
|
|
.ddr = {
|
|
/* ESMT M13S128324A-5B memory */
|
|
/* ESMT M13S128324A-5B memory */
|
|
.chip_config = 0x003,
|
|
.chip_config = 0x003,
|
|
@@ -81,6 +82,11 @@ static const struct cx18_card cx18_card_hvr1600_esmt = {
|
|
},
|
|
},
|
|
.gpio_init.initial_value = 0x3001,
|
|
.gpio_init.initial_value = 0x3001,
|
|
.gpio_init.direction = 0x3001,
|
|
.gpio_init.direction = 0x3001,
|
|
|
|
+ .gpio_i2c_slave_reset = {
|
|
|
|
+ .active_lo_mask = 0x3001,
|
|
|
|
+ .msecs_asserted = 10,
|
|
|
|
+ .msecs_recovery = 40,
|
|
|
|
+ },
|
|
.i2c = &cx18_i2c_std,
|
|
.i2c = &cx18_i2c_std,
|
|
};
|
|
};
|
|
|
|
|
|
@@ -94,22 +100,22 @@ static const struct cx18_card cx18_card_hvr1600_samsung = {
|
|
.hw_all = CX18_HW_TVEEPROM | CX18_HW_TUNER |
|
|
.hw_all = CX18_HW_TVEEPROM | CX18_HW_TUNER |
|
|
CX18_HW_CS5345 | CX18_HW_DVB,
|
|
CX18_HW_CS5345 | CX18_HW_DVB,
|
|
.video_inputs = {
|
|
.video_inputs = {
|
|
- { CX18_CARD_INPUT_VID_TUNER, 0, CX23418_COMPOSITE7 },
|
|
|
|
- { CX18_CARD_INPUT_SVIDEO1, 1, CX23418_SVIDEO1 },
|
|
|
|
- { CX18_CARD_INPUT_COMPOSITE1, 1, CX23418_COMPOSITE3 },
|
|
|
|
- { CX18_CARD_INPUT_SVIDEO2, 2, CX23418_SVIDEO2 },
|
|
|
|
- { CX18_CARD_INPUT_COMPOSITE2, 2, CX23418_COMPOSITE4 },
|
|
|
|
|
|
+ { CX18_CARD_INPUT_VID_TUNER, 0, CX18_AV_COMPOSITE7 },
|
|
|
|
+ { CX18_CARD_INPUT_SVIDEO1, 1, CX18_AV_SVIDEO1 },
|
|
|
|
+ { CX18_CARD_INPUT_COMPOSITE1, 1, CX18_AV_COMPOSITE3 },
|
|
|
|
+ { CX18_CARD_INPUT_SVIDEO2, 2, CX18_AV_SVIDEO2 },
|
|
|
|
+ { CX18_CARD_INPUT_COMPOSITE2, 2, CX18_AV_COMPOSITE4 },
|
|
},
|
|
},
|
|
.audio_inputs = {
|
|
.audio_inputs = {
|
|
{ CX18_CARD_INPUT_AUD_TUNER,
|
|
{ CX18_CARD_INPUT_AUD_TUNER,
|
|
- CX23418_AUDIO8, CS5345_IN_1 | CS5345_MCLK_1_5 },
|
|
|
|
|
|
+ CX18_AV_AUDIO8, CS5345_IN_1 | CS5345_MCLK_1_5 },
|
|
{ CX18_CARD_INPUT_LINE_IN1,
|
|
{ CX18_CARD_INPUT_LINE_IN1,
|
|
- CX23418_AUDIO_SERIAL, CS5345_IN_2 },
|
|
|
|
|
|
+ CX18_AV_AUDIO_SERIAL, CS5345_IN_2 },
|
|
{ CX18_CARD_INPUT_LINE_IN2,
|
|
{ CX18_CARD_INPUT_LINE_IN2,
|
|
- CX23418_AUDIO_SERIAL, CS5345_IN_2 },
|
|
|
|
|
|
+ CX18_AV_AUDIO_SERIAL, CS5345_IN_3 },
|
|
},
|
|
},
|
|
.radio_input = { CX18_CARD_INPUT_AUD_TUNER,
|
|
.radio_input = { CX18_CARD_INPUT_AUD_TUNER,
|
|
- CX23418_AUDIO_SERIAL, 0 },
|
|
|
|
|
|
+ CX18_AV_AUDIO_SERIAL, CS5345_IN_4 },
|
|
.ddr = {
|
|
.ddr = {
|
|
/* Samsung K4D263238G-VC33 memory */
|
|
/* Samsung K4D263238G-VC33 memory */
|
|
.chip_config = 0x003,
|
|
.chip_config = 0x003,
|
|
@@ -121,6 +127,11 @@ static const struct cx18_card cx18_card_hvr1600_samsung = {
|
|
},
|
|
},
|
|
.gpio_init.initial_value = 0x3001,
|
|
.gpio_init.initial_value = 0x3001,
|
|
.gpio_init.direction = 0x3001,
|
|
.gpio_init.direction = 0x3001,
|
|
|
|
+ .gpio_i2c_slave_reset = {
|
|
|
|
+ .active_lo_mask = 0x3001,
|
|
|
|
+ .msecs_asserted = 10,
|
|
|
|
+ .msecs_recovery = 40,
|
|
|
|
+ },
|
|
.i2c = &cx18_i2c_std,
|
|
.i2c = &cx18_i2c_std,
|
|
};
|
|
};
|
|
|
|
|
|
@@ -141,19 +152,19 @@ static const struct cx18_card cx18_card_h900 = {
|
|
.hw_audio_ctrl = CX18_HW_CX23418,
|
|
.hw_audio_ctrl = CX18_HW_CX23418,
|
|
.hw_all = CX18_HW_TUNER,
|
|
.hw_all = CX18_HW_TUNER,
|
|
.video_inputs = {
|
|
.video_inputs = {
|
|
- { CX18_CARD_INPUT_VID_TUNER, 0, CX23418_COMPOSITE2 },
|
|
|
|
|
|
+ { CX18_CARD_INPUT_VID_TUNER, 0, CX18_AV_COMPOSITE2 },
|
|
{ CX18_CARD_INPUT_SVIDEO1, 1,
|
|
{ CX18_CARD_INPUT_SVIDEO1, 1,
|
|
- CX23418_SVIDEO_LUMA3 | CX23418_SVIDEO_CHROMA4 },
|
|
|
|
- { CX18_CARD_INPUT_COMPOSITE1, 1, CX23418_COMPOSITE1 },
|
|
|
|
|
|
+ CX18_AV_SVIDEO_LUMA3 | CX18_AV_SVIDEO_CHROMA4 },
|
|
|
|
+ { CX18_CARD_INPUT_COMPOSITE1, 1, CX18_AV_COMPOSITE1 },
|
|
},
|
|
},
|
|
.audio_inputs = {
|
|
.audio_inputs = {
|
|
{ CX18_CARD_INPUT_AUD_TUNER,
|
|
{ CX18_CARD_INPUT_AUD_TUNER,
|
|
- CX23418_AUDIO8, 0 },
|
|
|
|
|
|
+ CX18_AV_AUDIO8, 0 },
|
|
{ CX18_CARD_INPUT_LINE_IN1,
|
|
{ CX18_CARD_INPUT_LINE_IN1,
|
|
- CX23418_AUDIO_SERIAL, 0 },
|
|
|
|
|
|
+ CX18_AV_AUDIO_SERIAL, 0 },
|
|
},
|
|
},
|
|
.radio_input = { CX18_CARD_INPUT_AUD_TUNER,
|
|
.radio_input = { CX18_CARD_INPUT_AUD_TUNER,
|
|
- CX23418_AUDIO_SERIAL, 0 },
|
|
|
|
|
|
+ CX18_AV_AUDIO_SERIAL, 0 },
|
|
.tuners = {
|
|
.tuners = {
|
|
{ .std = V4L2_STD_ALL, .tuner = TUNER_XC2028 },
|
|
{ .std = V4L2_STD_ALL, .tuner = TUNER_XC2028 },
|
|
},
|
|
},
|
|
@@ -183,23 +194,26 @@ static const struct cx18_card_pci_info cx18_pci_mpc718[] = {
|
|
static const struct cx18_card cx18_card_mpc718 = {
|
|
static const struct cx18_card cx18_card_mpc718 = {
|
|
.type = CX18_CARD_YUAN_MPC718,
|
|
.type = CX18_CARD_YUAN_MPC718,
|
|
.name = "Yuan MPC718",
|
|
.name = "Yuan MPC718",
|
|
- .comment = "Not yet supported!\n",
|
|
|
|
- .v4l2_capabilities = 0,
|
|
|
|
|
|
+ .comment = "Some Composite and S-Video inputs are currently working.\n",
|
|
|
|
+ .v4l2_capabilities = CX18_CAP_ENCODER,
|
|
.hw_audio_ctrl = CX18_HW_CX23418,
|
|
.hw_audio_ctrl = CX18_HW_CX23418,
|
|
.hw_all = CX18_HW_TUNER,
|
|
.hw_all = CX18_HW_TUNER,
|
|
.video_inputs = {
|
|
.video_inputs = {
|
|
- { CX18_CARD_INPUT_VID_TUNER, 0, CX23418_COMPOSITE7 },
|
|
|
|
- { CX18_CARD_INPUT_SVIDEO1, 1, CX23418_SVIDEO1 },
|
|
|
|
- { CX18_CARD_INPUT_COMPOSITE1, 1, CX23418_COMPOSITE3 },
|
|
|
|
|
|
+ { CX18_CARD_INPUT_VID_TUNER, 0, CX18_AV_COMPOSITE2 },
|
|
|
|
+ { CX18_CARD_INPUT_SVIDEO1, 1,
|
|
|
|
+ CX18_AV_SVIDEO_LUMA3 | CX18_AV_SVIDEO_CHROMA4 },
|
|
|
|
+ { CX18_CARD_INPUT_COMPOSITE1, 1, CX18_AV_COMPOSITE1 },
|
|
|
|
+ { CX18_CARD_INPUT_SVIDEO2, 2,
|
|
|
|
+ CX18_AV_SVIDEO_LUMA7 | CX18_AV_SVIDEO_CHROMA8 },
|
|
|
|
+ { CX18_CARD_INPUT_COMPOSITE2, 2, CX18_AV_COMPOSITE6 },
|
|
|
|
+ { CX18_CARD_INPUT_COMPOSITE3, 2, CX18_AV_COMPOSITE3 },
|
|
},
|
|
},
|
|
.audio_inputs = {
|
|
.audio_inputs = {
|
|
- { CX18_CARD_INPUT_AUD_TUNER,
|
|
|
|
- CX23418_AUDIO8, 0 },
|
|
|
|
- { CX18_CARD_INPUT_LINE_IN1,
|
|
|
|
- CX23418_AUDIO_SERIAL, 0 },
|
|
|
|
|
|
+ { CX18_CARD_INPUT_AUD_TUNER, CX18_AV_AUDIO5, 0 },
|
|
|
|
+ { CX18_CARD_INPUT_LINE_IN1, CX18_AV_AUDIO_SERIAL, 0 },
|
|
|
|
+ { CX18_CARD_INPUT_LINE_IN2, CX18_AV_AUDIO_SERIAL, 0 },
|
|
},
|
|
},
|
|
- .radio_input = { CX18_CARD_INPUT_AUD_TUNER,
|
|
|
|
- CX23418_AUDIO_SERIAL, 0 },
|
|
|
|
|
|
+ .radio_input = { CX18_CARD_INPUT_AUD_TUNER, CX18_AV_AUDIO_SERIAL, 0 },
|
|
.tuners = {
|
|
.tuners = {
|
|
/* XC3028 tuner */
|
|
/* XC3028 tuner */
|
|
{ .std = V4L2_STD_ALL, .tuner = TUNER_XC2028 },
|
|
{ .std = V4L2_STD_ALL, .tuner = TUNER_XC2028 },
|