From adc472bec522e5b8bd34302cb3267cfb9a12d12c Mon Sep 17 00:00:00 2001 From: Bertrik Sikken Date: Mon, 26 Jul 2010 20:15:16 +0000 Subject: FM tuner region code cleanup - FS #11492 by me. This removes the tuner-specific region structs and makes each driver use the common one (which is now extended with a deemphasis field) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27579 a1c6a512-1295-4272-9138-f99709370657 --- firmware/drivers/tuner/si4700.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'firmware/drivers/tuner/si4700.c') diff --git a/firmware/drivers/tuner/si4700.c b/firmware/drivers/tuner/si4700.c index f9b26be6f8..ea88dc9835 100644 --- a/firmware/drivers/tuner/si4700.c +++ b/firmware/drivers/tuner/si4700.c @@ -400,14 +400,17 @@ static int si4700_tuned(void) static void si4700_set_region(int region) { - const struct si4700_region_data *rd = &si4700_region_data[region]; - uint16_t bandspacing = SYSCONFIG2_BANDw(rd->band) | - SYSCONFIG2_SPACEw(rd->spacing); + const struct fm_region_data *rd = &fm_region_data[region]; + + int band = (rd->freq_min == 76000000) ? 2 : 0; + int spacing = (100000 / rd->freq_step); + int deemphasis = (rd->deemphasis == 50) ? SYSCONFIG1_DE : 0; + + uint16_t bandspacing = SYSCONFIG2_BANDw(band) | + SYSCONFIG2_SPACEw(spacing); uint16_t oldbs = cache[SYSCONFIG2] & (SYSCONFIG2_BAND | SYSCONFIG2_SPACE); - si4700_write_masked(SYSCONFIG1, - rd->deemphasis ? SYSCONFIG1_DE : 0, - SYSCONFIG1_DE); + si4700_write_masked(SYSCONFIG1, deemphasis, SYSCONFIG1_DE); si4700_write_masked(SYSCONFIG2, bandspacing, SYSCONFIG2_BAND | SYSCONFIG2_SPACE); -- cgit v1.2.3