From 310a5e0f05f57e591ba9700f44989b6223df1d1f Mon Sep 17 00:00:00 2001 From: rjkm Date: Fri, 16 Oct 2020 14:33:27 +0200 Subject: [PATCH] add some symbol rate modes --- ddbridge/ddbridge-modulator.c | 38 +++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/ddbridge/ddbridge-modulator.c b/ddbridge/ddbridge-modulator.c index e532bd5..cf12a8a 100644 --- a/ddbridge/ddbridge-modulator.c +++ b/ddbridge/ddbridge-modulator.c @@ -1516,12 +1516,12 @@ static int mod3_set_ari(struct ddb_mod *mod, u32 rate) static int mod3_set_sample_rate(struct ddb_mod *mod, u32 rate) { - u32 cic, inc; - + u32 cic, inc, bypass = 0; + switch (rate) { /* 2^31 * freq*4*cic / 245.76Mhz */ case SYS_DVBT_6: - inc = 1917396114; + inc = 0x72492492; cic = 8; break; case SYS_DVBT_7: @@ -1533,19 +1533,45 @@ static int mod3_set_sample_rate(struct ddb_mod *mod, u32 rate) inc = 1917396114; cic = 6; break; + case SYS_DVBC_6900: + inc = 0x73000000; //1929379840; + cic = 8; + break; + case 9: + inc = 0x47e00000; //1929379840; + cic = 10; + bypass = 2; + break; + + case SYS_J83B_64_6: /* 5056941 */ + inc = 0x695a5a1d; + cic = 10; + break; + case SYS_J83B_256_6: /* 5360537 */ + inc = 0x6fad87da; + cic = 10; + break; + case SYS_ISDBT_6: - inc = 1988410754; + inc = 0x7684BD82; //1988410754; cic = 7; break; case SYS_DVBS2_22: - inc = 1922389333; + inc = 0x72955555; // 1922389333; cic = 5; + bypass = 2; + break; + case SYS_DVBS2_24: + inc = 0x7d000000; + cic = 5; + bypass = 2; break; default: return -EINVAL; } ddbwritel(mod->port->dev, inc, SDR_CHANNEL_ARICW(mod->port->nr)); - ddbwritel(mod->port->dev, cic << 8, SDR_CHANNEL_CONFIG(mod->port->nr)); + ddbwritel(mod->port->dev, (cic << 8) | (bypass << 4), + SDR_CHANNEL_CONFIG(mod->port->nr)); return 0; }