Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 65911
b: refs/heads/master
c: 857e594
h: refs/heads/master
i:
  65909: 27a52c8
  65907: de97c9a
  65903: 400b4a6
v: v3
  • Loading branch information
Trent Piepho authored and Mauro Carvalho Chehab committed Oct 10, 2007
1 parent c9bcdfc commit 1d6a141
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4753647e6422341a091e729b9d81a9a5e7fe6179
refs/heads/master: 857e594ad5662349d95ad33f987cbf55cc356a90
21 changes: 12 additions & 9 deletions trunk/drivers/media/radio/radio-gemtek.c
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,14 @@ module_param(radio_nr, int, 0444);
#define GEMTEK_LOWFREQ (87*16000)
#define GEMTEK_HIGHFREQ (108*16000)

/*
* Frequency calculation constants. Intermediate frequency 10.52 MHz (nominal
* value 10.7 MHz), reference divisor 6.39 kHz (nominal 6.25 kHz).
*/
#define FSCALE 8
#define IF_OFFSET ((unsigned int)(10.52 * 16000 * (1<<FSCALE)))
#define REF_FREQ ((unsigned int)(6.39 * 16 * (1<<FSCALE)))

#define GEMTEK_CK 0x01 /* Clock signal */
#define GEMTEK_DA 0x02 /* Serial data */
#define GEMTEK_CE 0x04 /* Chip enable */
Expand Down Expand Up @@ -219,14 +227,11 @@ static void gemtek_bu2614_transmit(struct gemtek_device *dev)
}

/*
* Convert FM-frequency for BU2614FS (3.125 KHz STDF expected).
* Calculate divisor from FM-frequency for BU2614FS (3.125 KHz STDF expected).
*/
static inline void gemtek_convfreq(unsigned long *freq)
static unsigned long gemtek_convfreq(unsigned long freq)
{
(*freq) /= 160;
(*freq) += 1052; /* FMIN, 10.52 MHz */
(*freq) *= 1565; /* STDF, 1 / 156.5 = 0.00639 */
(*freq) /= 1000;
return ((freq<<FSCALE) + IF_OFFSET + REF_FREQ/2) / REF_FREQ;
}

/*
Expand All @@ -253,10 +258,8 @@ static void gemtek_setfreq(struct gemtek_device *dev, unsigned long freq)
gemtek_bu2614_set(dev, BU2614_FMUN, 1); /* GT bit set */
gemtek_bu2614_set(dev, BU2614_TEST, 0);

gemtek_convfreq(&freq);

gemtek_bu2614_set(dev, BU2614_STDF, GEMTEK_STDF_3_125_KHZ);
gemtek_bu2614_set(dev, BU2614_FREQ, freq);
gemtek_bu2614_set(dev, BU2614_FREQ, gemtek_convfreq(freq));

gemtek_bu2614_transmit(dev);
}
Expand Down

0 comments on commit 1d6a141

Please sign in to comment.