summaryrefslogtreecommitdiff
path: root/backend/genesys/tables_frontend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backend/genesys/tables_frontend.cpp')
-rw-r--r--backend/genesys/tables_frontend.cpp148
1 files changed, 121 insertions, 27 deletions
diff --git a/backend/genesys/tables_frontend.cpp b/backend/genesys/tables_frontend.cpp
index 1edf32f..5eb6e3c 100644
--- a/backend/genesys/tables_frontend.cpp
+++ b/backend/genesys/tables_frontend.cpp
@@ -60,7 +60,8 @@ void genesys_init_frontend_tables()
GenesysFrontendLayout analog_devices;
analog_devices.type = FrontendType::ANALOG_DEVICES;
-
+ analog_devices.offset_addr = { 0x05, 0x06, 0x07 };
+ analog_devices.gain_addr = { 0x02, 0x03, 0x04 };
Genesys_Frontend fe;
fe.id = AdcId::WOLFSON_UMAX;
@@ -198,6 +199,7 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
fe.id = AdcId::CANON_LIDE_35;
fe.layout = wolfson_layout;
+ fe.layout.type = FrontendType::WOLFSON_GL841;
fe.regs = {
{ 0x00, 0x00 },
{ 0x01, 0x3d },
@@ -218,6 +220,30 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
+ fe.id = AdcId::CANON_LIDE_90;
+ fe.layout = wolfson_layout;
+ fe.layout.type = FrontendType::WOLFSON;
+ fe.regs = {
+ { 0x01, 0x23 },
+ { 0x02, 0x07 },
+ { 0x03, 0x29 },
+ { 0x06, 0x0d },
+ { 0x08, 0x00 },
+ { 0x09, 0x16 },
+ { 0x20, 0x4d },
+ { 0x21, 0x4d },
+ { 0x22, 0x4d },
+ { 0x23, 0x4d },
+ { 0x28, 0x14 },
+ { 0x29, 0x14 },
+ { 0x2a, 0x14 },
+ { 0x2b, 0x14 },
+ };
+ fe.reg2 = {0x00, 0x00, 0x00};
+ s_frontends->push_back(fe);
+
+
+ fe = Genesys_Frontend();
fe.id = AdcId::AD_XP200;
fe.layout = wolfson_layout;
fe.regs = {
@@ -242,6 +268,7 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
fe.id = AdcId::WOLFSON_XP300;
fe.layout = wolfson_layout;
+ fe.layout.type = FrontendType::WOLFSON_GL841;
fe.regs = {
{ 0x00, 0x00 },
{ 0x01, 0x35 },
@@ -286,6 +313,7 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
fe.id = AdcId::WOLFSON_DSM600;
fe.layout = wolfson_layout;
+ fe.layout.type = FrontendType::WOLFSON_GL841;
fe.regs = {
{ 0x00, 0x00 },
{ 0x01, 0x35 },
@@ -307,45 +335,35 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
fe.id = AdcId::CANON_LIDE_200;
- fe.layout = wolfson_layout;
+ fe.layout = analog_devices;
+ fe.layout.type = FrontendType::ANALOG_DEVICES_GL847;
fe.regs = {
{ 0x00, 0x9d },
{ 0x01, 0x91 },
- { 0x02, 0x00 },
- { 0x03, 0x00 },
- { 0x20, 0x00 },
- { 0x21, 0x3f },
- { 0x22, 0x00 },
- { 0x24, 0x00 },
- { 0x25, 0x00 },
- { 0x26, 0x00 },
- { 0x28, 0x32 },
- { 0x29, 0x04 },
- { 0x2a, 0x00 },
+ { 0x02, 0x32 },
+ { 0x03, 0x04 },
+ { 0x04, 0x00 },
+ { 0x05, 0x00 },
+ { 0x06, 0x3f },
+ { 0x07, 0x00 },
};
- fe.reg2 = {0x00, 0x00, 0x00};
s_frontends->push_back(fe);
fe = Genesys_Frontend();
fe.id = AdcId::CANON_LIDE_700F;
- fe.layout = wolfson_layout;
+ fe.layout = analog_devices;
+ fe.layout.type = FrontendType::ANALOG_DEVICES_GL847;
fe.regs = {
{ 0x00, 0x9d },
{ 0x01, 0x9e },
- { 0x02, 0x00 },
- { 0x03, 0x00 },
- { 0x20, 0x00 },
- { 0x21, 0x3f },
- { 0x22, 0x00 },
- { 0x24, 0x00 },
- { 0x25, 0x00 },
- { 0x26, 0x00 },
- { 0x28, 0x2f },
- { 0x29, 0x04 },
- { 0x2a, 0x00 },
+ { 0x02, 0x2f },
+ { 0x03, 0x04 },
+ { 0x04, 0x00 },
+ { 0x05, 0x00 },
+ { 0x06, 0x3f },
+ { 0x07, 0x00 },
};
- fe.reg2 = {0x00, 0x00, 0x00};
s_frontends->push_back(fe);
@@ -396,6 +414,7 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
fe.id = AdcId::CANON_LIDE_110;
fe.layout = wolfson_layout;
+ fe.layout.type = FrontendType::WOLFSON_GL124;
fe.regs = {
{ 0x00, 0x80 },
{ 0x01, 0x8a },
@@ -422,6 +441,7 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
fe.id = AdcId::CANON_LIDE_120;
fe.layout = wolfson_layout;
+ fe.layout.type = FrontendType::WOLFSON_GL124;
fe.regs = {
{ 0x00, 0x80 },
{ 0x01, 0xa3 },
@@ -464,6 +484,23 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
+ fe.id = AdcId::PLUSTEK_OPTICFILM_7200;
+ fe.layout = analog_devices;
+ fe.regs = {
+ { 0x00, 0xf8 },
+ { 0x01, 0x80 },
+ { 0x02, 0x2e },
+ { 0x03, 0x17 },
+ { 0x04, 0x20 },
+ { 0x05, 0x0109 },
+ { 0x06, 0x01 },
+ { 0x07, 0x0104 },
+ };
+ fe.reg2 = {0x00, 0x00, 0x00};
+ s_frontends->push_back(fe);
+
+
+ fe = Genesys_Frontend();
fe.id = AdcId::PLUSTEK_OPTICFILM_7200I;
fe.layout = analog_devices;
fe.regs = {
@@ -498,6 +535,23 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
+ fe.id = AdcId::PLUSTEK_OPTICFILM_7400;
+ fe.layout = analog_devices;
+ fe.regs = {
+ { 0x00, 0xf8 },
+ { 0x01, 0x80 },
+ { 0x02, 0x1f },
+ { 0x03, 0x14 },
+ { 0x04, 0x19 },
+ { 0x05, 0x1b },
+ { 0x06, 0x1e },
+ { 0x07, 0x0e },
+ };
+ fe.reg2 = {0x00, 0x00, 0x00};
+ s_frontends->push_back(fe);
+
+
+ fe = Genesys_Frontend();
fe.id = AdcId::PLUSTEK_OPTICFILM_7500I;
fe.layout = analog_devices;
fe.regs = {
@@ -515,6 +569,23 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
+ fe.id = AdcId::PLUSTEK_OPTICFILM_8200I;
+ fe.layout = analog_devices;
+ fe.regs = {
+ { 0x00, 0xf8 },
+ { 0x01, 0x80 },
+ { 0x02, 0x28 },
+ { 0x03, 0x20 },
+ { 0x04, 0x28 },
+ { 0x05, 0x2f },
+ { 0x06, 0x2d },
+ { 0x07, 0x23 },
+ };
+ fe.reg2 = {0x00, 0x00, 0x00};
+ s_frontends->push_back(fe);
+
+
+ fe = Genesys_Frontend();
fe.id = AdcId::CANON_4400F;
fe.layout = wolfson_layout;
fe.regs = {
@@ -537,6 +608,26 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
+ fe.id = AdcId::CANON_5600F;
+ fe.layout = wolfson_layout;
+ fe.regs = {
+ { 0x01, 0x23 },
+ { 0x02, 0x24 },
+ { 0x03, 0x2f },
+ { 0x06, 0x00 },
+ { 0x08, 0x00 },
+ { 0x09, 0x00 },
+ { 0x20, 0x60 },
+ { 0x21, 0x60 },
+ { 0x22, 0x60 },
+ { 0x28, 0x77 },
+ { 0x29, 0x77 },
+ { 0x2a, 0x77 },
+ };
+ s_frontends->push_back(fe);
+
+
+ fe = Genesys_Frontend();
fe.id = AdcId::CANON_8400F;
fe.layout = wolfson_layout;
fe.regs = {
@@ -583,6 +674,7 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
fe.id = AdcId::IMG101;
fe.layout = wolfson_layout;
+ fe.layout.type = FrontendType::WOLFSON_GL846;
fe.regs = {
{ 0x00, 0x78 },
{ 0x01, 0xf0 },
@@ -605,6 +697,7 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
fe.id = AdcId::PLUSTEK_OPTICBOOK_3800;
fe.layout = wolfson_layout;
+ fe.layout.type = FrontendType::WOLFSON_GL846;
fe.regs = {
{ 0x00, 0x78 },
{ 0x01, 0xf0 },
@@ -631,6 +724,7 @@ void genesys_init_frontend_tables()
fe = Genesys_Frontend();
fe.id = AdcId::CANON_LIDE_80;
fe.layout = wolfson_layout;
+ fe.layout.type = FrontendType::CANON_LIDE_80;
fe.regs = {
{ 0x00, 0x70 },
{ 0x01, 0x16 },