From b52eb4bd173cc92338a09240ebea8fcf4989e758 Mon Sep 17 00:00:00 2001 From: Ralph Metzler Date: Mon, 13 Aug 2018 15:05:43 +0200 Subject: [PATCH] add ids and structs for Octopus GT Mini --- ddbridge/ddbridge-core.c | 4 +++- ddbridge/ddbridge-hw.c | 50 ++++++++++++++++++++++++++++++++++++++++ ddbridge/ddbridge-main.c | 1 + 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/ddbridge/ddbridge-core.c b/ddbridge/ddbridge-core.c index 92f253a..b537137 100644 --- a/ddbridge/ddbridge-core.c +++ b/ddbridge/ddbridge-core.c @@ -4337,8 +4337,10 @@ static int ddb_gtl_init_link(struct ddb *dev, u32 l) if (1 & ddbreadl(dev, regs)) break; } - if (c == 5) + if (c == 5) { + ddbwritel(dev, 8, regs); return -1; + } } id = ddbreadl(dev, DDB_LINK_TAG(l) | 8); subid = ddbreadl(dev, DDB_LINK_TAG(l) | 12); diff --git a/ddbridge/ddbridge-hw.c b/ddbridge/ddbridge-hw.c index 34abc2c..bdb5e5d 100644 --- a/ddbridge/ddbridge-hw.c +++ b/ddbridge/ddbridge-hw.c @@ -181,6 +181,33 @@ static const struct ddb_regset octopro_gtl = { /****************************************************************************/ /****************************************************************************/ +static const struct ddb_regset gtl_mini_input = { + .base = 0x400, + .num = 0x14, + .size = 0x10, +}; + +static const struct ddb_regset gtl_mini_idma = { + .base = 0x800, + .num = 0x40, + .size = 0x10, +}; + +static const struct ddb_regset gtl_mini_idma_buf = { + .base = 0x4000, + .num = 0x40, + .size = 0x100, +}; + +static const struct ddb_regset gtl_mini_gtl = { + .base = 0xe00, + .num = 0x03, + .size = 0x40, +}; + +/****************************************************************************/ +/****************************************************************************/ + static const struct ddb_regmap octopus_map = { .irq_version = 1, .irq_base_i2c = 0, @@ -193,6 +220,7 @@ static const struct ddb_regmap octopus_map = { .odma = &octopus_odma, .odma_buf = &octopus_odma_buf, .input = &octopus_input, + .output = &octopus_output, }; @@ -258,6 +286,18 @@ static const struct ddb_regmap octopus_sdr_map = { .channel = &octopus_mod_2_channel, }; +static const struct ddb_regmap gtl_mini = { + .irq_version = 2, + .irq_base_i2c = 32, + .irq_base_idma = 64, + .irq_base_odma = 128, + .irq_base_gtl = 8, + .idma = >l_mini_idma, + .idma_buf = >l_mini_idma_buf, + .input = >l_mini_input, + .gtl = >l_mini_gtl, +}; + /****************************************************************************/ /****************************************************************************/ @@ -599,6 +639,15 @@ static const struct ddb_info ddb_m4 = { .temp_num = 1, }; +static const struct ddb_info ddb_gtl_mini = { + .type = DDB_OCTONET, + .name = "Digital Devices Octopus GT Mini", + .regmap = >l_mini, + .port_num = 0, + .i2c_mask = 0x00, + .ns_num = 0, +}; + /****************************************************************************/ /****************************************************************************/ @@ -717,6 +766,7 @@ static const struct ddb_device_id ddb_device_ids[] = { DDB_DEVID(0x0012, 0x0042, ddb_ci), DDB_DEVID(0x0013, 0x0043, ddb_ci_s2_pro), DDB_DEVID(0x0013, 0x0044, ddb_ci_s2_pro_a), + DDB_DEVID(0x0020, 0x0012, ddb_gtl_mini), /* Modulators */ DDB_DEVID(0x0201, 0x0001, ddb_mod), diff --git a/ddbridge/ddbridge-main.c b/ddbridge/ddbridge-main.c index e15f48b..92bcbb5 100644 --- a/ddbridge/ddbridge-main.c +++ b/ddbridge/ddbridge-main.c @@ -419,6 +419,7 @@ static const struct pci_device_id ddb_id_table[] __devinitconst = { DDB_DEVICE_ANY(0x0011), DDB_DEVICE_ANY(0x0012), DDB_DEVICE_ANY(0x0013), + DDB_DEVICE_ANY(0x0020), DDB_DEVICE_ANY(0x0201), DDB_DEVICE_ANY(0x0203), DDB_DEVICE_ANY(0x0210),