Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ OBJ=\
mt7610.o \
mt7620.o \
mt7628.o \
mt7662.o \
mt7663.o \
mtkeepmgr.o \
rt5592.o \
Expand Down
74 changes: 71 additions & 3 deletions mt7610.c
Original file line number Diff line number Diff line change
Expand Up @@ -287,18 +287,29 @@ static void mt7610_dump_rate_power(struct main_ctx *mc)
}
}

static void mt7610_read_tssi_tcomp_tbl(struct main_ctx *mc,
unsigned off, int8_t *tbl)
static void mt7610_read_eeprom_to_tbl(struct main_ctx *mc,
unsigned off, unsigned size, int8_t *tbl)
{
uint16_t val;
int i;

/* Read data from eeprom */
for (i = 0; i < E_TSSI_TCOMP_N / 2; ++i) {
for (i = 0; i < size / 2; ++i) {
val = eep_read_word(mc, off + 2 * i);
tbl[2 * i + 0] = (val >> 8) & 0xff;
tbl[2 * i + 1] = (val >> 0) & 0xff;
}
if (size % 2) {
val = eep_read_word(mc, off + size - 2);
tbl[size - 1] = (val >> 0) & 0xff;
}
}


static void mt7610_read_tssi_tcomp_tbl(struct main_ctx *mc,
unsigned off, int8_t *tbl)
{
mt7610_read_eeprom_to_tbl(mc, off, E_TSSI_TCOMP_N, tbl);

/* Place neutral element in the middle of the table */
memmove(&tbl[E_TSSI_TCOMP_N / 2 + 1], &tbl[E_TSSI_TCOMP_N / 2],
Expand Down Expand Up @@ -343,6 +354,51 @@ static const char *mt7610_dump_tssi_tcomp(struct main_ctx *mc, unsigned off)
return mt7610_dump_tssi_tcomp_tbl(tbl);
}

static const char *mt7610_dump_generic_tbl(int8_t *tbl, unsigned size)
{
static char buf[0x100];
char *p = buf, *e = buf + sizeof(buf);
unsigned i;

for (i = 0; i < size; ++i)
p += snprintf(p, e - p, " %+4d", tbl[i]);

return &buf[1];
}

static const char *mt7610_dump_itxbf_tank_tbl(int8_t *tbl, unsigned size)
{
static char buf[0x100];
char *p = buf, *e = buf + sizeof(buf);
unsigned i;

for (i = 0; i < size / 2; ++i)
p += snprintf(p, e - p, " %+4d/%d", tbl[2*i], tbl[2*i + 1]);

return &buf[1];
}

static const char *mt7610_dump_itxbf_tank(struct main_ctx *mc, unsigned off)
{
int8_t tbl[E_ITXBF_CAL_TANK_N];
mt7610_read_eeprom_to_tbl(mc, off, E_ITXBF_CAL_TANK_N, tbl);
return mt7610_dump_itxbf_tank_tbl(tbl, E_ITXBF_CAL_TANK_N);
}

static const char *mt7610_dump_itxbf_divphase(struct main_ctx *mc, unsigned off)
{
int8_t tbl[E_ITXBF_CAL_DIV_N];
mt7610_read_eeprom_to_tbl(mc, off, E_ITXBF_CAL_DIV_N, tbl);
return mt7610_dump_generic_tbl(tbl, E_ITXBF_CAL_DIV_N);
}

static const char *mt7610_dump_itxbf_resphase(struct main_ctx *mc, unsigned off)
{
int8_t tbl[E_ITXBF_CAL_RES_N];
mt7610_read_eeprom_to_tbl(mc, off, E_ITXBF_CAL_RES_N, tbl);
return mt7610_dump_generic_tbl(tbl, E_ITXBF_CAL_RES_N);
}

static int mt7610_eep_parse(struct main_ctx *mc)
{
static const char *ant_div_str[] = {
Expand Down Expand Up @@ -492,7 +548,19 @@ static int mt7610_eep_parse(struct main_ctx *mc)
mt7610_dump_tssi_tcomp(mc, E_TSSI_TCOMP_5G_2_BASE));
printf("\n");

printf("[Implicit TX beamforming parameters]\n");
printf(" CAL tank rep/iqm : {%s}\n",
mt7610_dump_itxbf_tank(mc, E_ITXBF_CAL_TANK));
printf(" CAL divphase : {%s}\n",
mt7610_dump_itxbf_divphase(mc, E_ITXBF_CAL_DIVPHASE));

printf(" CAL rephase init : {%s}\n",
mt7610_dump_itxbf_resphase(mc, E_ITXBF_CAL_RESPHASE));
printf(" CAL rephase error : {%s}\n",
mt7610_dump_itxbf_resphase(mc, E_ITXBF_CAL_RESPHASE_ERR));
return 0;
}

CHIP(MT7610, 0x7610, mt7610_eep_parse);
CHIP(MT7612, 0x7612, mt7610_eep_parse);
CHIP(MT7662, 0x7662, mt7610_eep_parse);
10 changes: 10 additions & 0 deletions mt7610.h
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,17 @@
#define E_TX_AGC_STEP_VAL 0x00ff /* Tx AGC step value, 1/2 dBm */
#define E_TX_AGC_STEP_VAL_S 0

#define E_ITXBF_CAL 0x00c0 // LNA parameters
#define E_ITXBF_CAL_TANK 0x0180 // tank code
#define E_ITXBF_CAL_DIVPHASE 0x018A // divider phase
#define E_ITXBF_CAL_RESPHASE 0x0190 // phase
#define E_ITXBF_CAL_RESPHASE_ERR 0x019E // phase error
#define E_ITXBF_CAL_TANK_N (E_ITXBF_CAL_DIVPHASE - E_ITXBF_CAL_TANK)
#define E_ITXBF_CAL_DIV_N (E_ITXBF_CAL_RESPHASE - E_ITXBF_CAL_DIVPHASE)
#define E_ITXBF_CAL_RES_N (E_ITXBF_CAL_RESPHASE_ERR - E_ITXBF_CAL_RESPHASE)

#define E_USB_VID 0x01c2
#define E_USB_PID 0x01c4


#endif /* !_MT7610_H_ */
38 changes: 0 additions & 38 deletions mt7662.c

This file was deleted.

28 changes: 0 additions & 28 deletions mt7662.h

This file was deleted.