Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/media/dvb-frontends/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 6 kB image not shown  

Quelle  m88ds3103_priv.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Montage Technology M88DS3103/M88RS6000 demodulator driver
 *
 * Copyright (C) 2013 Antti Palosaari <crope@iki.fi>
 */


#ifndef M88DS3103_PRIV_H
#define M88DS3103_PRIV_H

#include <media/dvb_frontend.h>
#include "m88ds3103.h"
#include <linux/int_log.h>
#include <linux/firmware.h>
#include <linux/i2c-mux.h>
#include <linux/regmap.h>
#include <linux/math64.h>

#define M88DS3103B_FIRMWARE "dvb-demod-m88ds3103b.fw"
#define M88DS3103_FIRMWARE  "dvb-demod-m88ds3103.fw"
#define M88RS6000_FIRMWARE  "dvb-demod-m88rs6000.fw"

#define M88RS6000_CHIP_ID 0x74
#define M88DS3103_CHIP_ID 0x70

#define M88DS3103_CHIPTYPE_3103   0
#define M88DS3103_CHIPTYPE_RS6000 1
#define M88DS3103_CHIPTYPE_3103B  2

struct m88ds3103_dev {
 struct i2c_client *client;
 struct i2c_client *dt_client;
 struct regmap_config regmap_config;
 struct regmap *regmap;
 struct m88ds3103_config config;
 const struct m88ds3103_config *cfg;
 struct dvb_frontend fe;
 enum fe_delivery_system delivery_system;
 enum fe_status fe_status;
 u32 dvbv3_ber; /* for old DVBv3 API read_ber */
 bool warm; /* FW running */
 struct i2c_mux_core *muxc;
 /* auto detect chip id to do different config */
 u8 chip_id;
 /* chip type to differentiate m88rs6000 from m88ds3103b */
 u8 chiptype;
 /* main mclk is calculated for M88RS6000 dynamically */
 s32 mclk;
 u64 post_bit_error;
 u64 post_bit_count;
 u8 dt_addr;
};

struct m88ds3103_reg_val {
 u8 reg;
 u8 val;
};

static const struct m88ds3103_reg_val m88ds3103_dvbs_init_reg_vals[] = {
 {0x23, 0x07},
 {0x08, 0x03},
 {0x0c, 0x02},
 {0x21, 0x54},
 {0x25, 0x8a},
 {0x27, 0x31},
 {0x30, 0x08},
 {0x31, 0x40},
 {0x32, 0x32},
 {0x35, 0xff},
 {0x3a, 0x00},
 {0x37, 0x10},
 {0x38, 0x10},
 {0x39, 0x02},
 {0x42, 0x60},
 {0x4a, 0x80},
 {0x4b, 0x04},
 {0x4d, 0x91},
 {0x5d, 0xc8},
 {0x50, 0x36},
 {0x51, 0x36},
 {0x52, 0x36},
 {0x53, 0x36},
 {0x56, 0x01},
 {0x63, 0x0f},
 {0x64, 0x30},
 {0x65, 0x40},
 {0x68, 0x26},
 {0x69, 0x4c},
 {0x70, 0x20},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x40},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x60},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x80},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0xa0},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x1f},
 {0x76, 0x38},
 {0x77, 0xa6},
 {0x78, 0x0c},
 {0x79, 0x80},
 {0x7f, 0x14},
 {0x7c, 0x00},
 {0xae, 0x82},
 {0x80, 0x64},
 {0x81, 0x66},
 {0x82, 0x44},
 {0x85, 0x04},
 {0xcd, 0xf4},
 {0x90, 0x33},
 {0xa0, 0x44},
 {0xc0, 0x08},
 {0xc3, 0x10},
 {0xc4, 0x08},
 {0xc5, 0xf0},
 {0xc6, 0xff},
 {0xc7, 0x00},
 {0xc8, 0x1a},
 {0xc9, 0x80},
 {0xe0, 0xf8},
 {0xe6, 0x8b},
 {0xd0, 0x40},
 {0xf8, 0x20},
 {0xfa, 0x0f},
 {0x00, 0x00},
 {0xbd, 0x01},
 {0xb8, 0x00},
};

static const struct m88ds3103_reg_val m88ds3103_dvbs2_init_reg_vals[] = {
 {0x23, 0x07},
 {0x08, 0x07},
 {0x0c, 0x02},
 {0x21, 0x54},
 {0x25, 0x8a},
 {0x27, 0x31},
 {0x30, 0x08},
 {0x32, 0x32},
 {0x35, 0xff},
 {0x3a, 0x00},
 {0x37, 0x10},
 {0x38, 0x10},
 {0x39, 0x02},
 {0x42, 0x60},
 {0x4a, 0x80},
 {0x4b, 0x04},
 {0x4d, 0x91},
 {0x5d, 0xc8},
 {0x50, 0x36},
 {0x51, 0x36},
 {0x52, 0x36},
 {0x53, 0x36},
 {0x56, 0x01},
 {0x63, 0x0f},
 {0x64, 0x10},
 {0x65, 0x20},
 {0x68, 0x46},
 {0x69, 0xcd},
 {0x70, 0x20},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x40},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x60},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x80},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0xa0},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x1f},
 {0x76, 0x38},
 {0x77, 0xa6},
 {0x78, 0x0c},
 {0x79, 0x80},
 {0x7f, 0x14},
 {0x85, 0x08},
 {0xcd, 0xf4},
 {0x90, 0x33},
 {0x86, 0x00},
 {0x87, 0x0f},
 {0x89, 0x00},
 {0x8b, 0x44},
 {0x8c, 0x66},
 {0x9d, 0xc1},
 {0x8a, 0x10},
 {0xad, 0x40},
 {0xa0, 0x44},
 {0xc0, 0x08},
 {0xc1, 0x10},
 {0xc2, 0x08},
 {0xc3, 0x10},
 {0xc4, 0x08},
 {0xc5, 0xf0},
 {0xc6, 0xff},
 {0xc7, 0x00},
 {0xc8, 0x1a},
 {0xc9, 0x80},
 {0xca, 0x23},
 {0xcb, 0x24},
 {0xcc, 0xf4},
 {0xce, 0x74},
 {0x00, 0x00},
 {0xbd, 0x01},
 {0xb8, 0x00},
};

static const struct m88ds3103_reg_val m88rs6000_dvbs_init_reg_vals[] = {
 {0x23, 0x07},
 {0x08, 0x03},
 {0x0c, 0x02},
 {0x20, 0x00},
 {0x21, 0x54},
 {0x25, 0x82},
 {0x27, 0x31},
 {0x30, 0x08},
 {0x31, 0x40},
 {0x32, 0x32},
 {0x33, 0x35},
 {0x35, 0xff},
 {0x3a, 0x00},
 {0x37, 0x10},
 {0x38, 0x10},
 {0x39, 0x02},
 {0x42, 0x60},
 {0x4a, 0x80},
 {0x4b, 0x04},
 {0x4d, 0x91},
 {0x5d, 0xc8},
 {0x50, 0x36},
 {0x51, 0x36},
 {0x52, 0x36},
 {0x53, 0x36},
 {0x63, 0x0f},
 {0x64, 0x30},
 {0x65, 0x40},
 {0x68, 0x26},
 {0x69, 0x4c},
 {0x70, 0x20},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x40},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x60},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x80},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0xa0},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x1f},
 {0x76, 0x38},
 {0x77, 0xa6},
 {0x78, 0x0c},
 {0x79, 0x80},
 {0x7f, 0x14},
 {0x7c, 0x00},
 {0xae, 0x82},
 {0x80, 0x64},
 {0x81, 0x66},
 {0x82, 0x44},
 {0x85, 0x04},
 {0xcd, 0xf4},
 {0x90, 0x33},
 {0xa0, 0x44},
 {0xbe, 0x00},
 {0xc0, 0x08},
 {0xc3, 0x10},
 {0xc4, 0x08},
 {0xc5, 0xf0},
 {0xc6, 0xff},
 {0xc7, 0x00},
 {0xc8, 0x1a},
 {0xc9, 0x80},
 {0xe0, 0xf8},
 {0xe6, 0x8b},
 {0xd0, 0x40},
 {0xf8, 0x20},
 {0xfa, 0x0f},
 {0x00, 0x00},
 {0xbd, 0x01},
 {0xb8, 0x00},
 {0x29, 0x11},
};

static const struct m88ds3103_reg_val m88rs6000_dvbs2_init_reg_vals[] = {
 {0x23, 0x07},
 {0x08, 0x07},
 {0x0c, 0x02},
 {0x20, 0x00},
 {0x21, 0x54},
 {0x25, 0x82},
 {0x27, 0x31},
 {0x30, 0x08},
 {0x32, 0x32},
 {0x33, 0x35},
 {0x35, 0xff},
 {0x3a, 0x00},
 {0x37, 0x10},
 {0x38, 0x10},
 {0x39, 0x02},
 {0x42, 0x60},
 {0x4a, 0x80},
 {0x4b, 0x04},
 {0x4d, 0x91},
 {0x5d, 0xc8},
 {0x50, 0x36},
 {0x51, 0x36},
 {0x52, 0x36},
 {0x53, 0x36},
 {0x63, 0x0f},
 {0x64, 0x10},
 {0x65, 0x20},
 {0x68, 0x46},
 {0x69, 0xcd},
 {0x70, 0x20},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x40},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x60},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x80},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0xa0},
 {0x71, 0x70},
 {0x72, 0x04},
 {0x73, 0x00},
 {0x70, 0x1f},
 {0x76, 0x38},
 {0x77, 0xa6},
 {0x78, 0x0c},
 {0x79, 0x80},
 {0x7f, 0x14},
 {0x85, 0x08},
 {0xcd, 0xf4},
 {0x90, 0x33},
 {0x86, 0x00},
 {0x87, 0x0f},
 {0x89, 0x00},
 {0x8b, 0x44},
 {0x8c, 0x66},
 {0x9d, 0xc1},
 {0x8a, 0x10},
 {0xad, 0x40},
 {0xa0, 0x44},
 {0xbe, 0x00},
 {0xc0, 0x08},
 {0xc1, 0x10},
 {0xc2, 0x08},
 {0xc3, 0x10},
 {0xc4, 0x08},
 {0xc5, 0xf0},
 {0xc6, 0xff},
 {0xc7, 0x00},
 {0xc8, 0x1a},
 {0xc9, 0x80},
 {0xca, 0x23},
 {0xcb, 0x24},
 {0xcc, 0xf4},
 {0xce, 0x74},
 {0x00, 0x00},
 {0xbd, 0x01},
 {0xb8, 0x00},
 {0x29, 0x01},
};
#endif

Messung V0.5
C=99 H=100 G=99

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.