diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index c7dad66b1a..08412d376d 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -12735,3 +12735,37 @@
quickscreen: "Set as Top Quickscreen Item"
+
+ id: LANG_FM_ITALY
+ desc: fm region Italy
+ user: core
+
+ *: none
+ radio: "Italy"
+
+
+ *: none
+ radio: "Italy"
+
+
+ *: none
+ radio: "Italy"
+
+
+
+ id: LANG_FM_OTHER
+ desc: Catch-all FM region. Select if none of the others work
+ user: core
+
+ *: none
+ radio: "Other"
+
+
+ *: none
+ radio: "Other"
+
+
+ *: none
+ radio: "Other"
+
+
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 5da15a11a9..2a7bf9658f 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -1376,9 +1376,10 @@ const struct settings_list settings[] = {
#endif
#if CONFIG_TUNER
CHOICE_SETTING(0, fm_region, LANG_FM_REGION, 0,
- "fm_region", "eu,us,jp,kr", set_radio_region, 4,
+ "fm_region", "eu,us,jp,kr,it,wo", set_radio_region, 6,
ID2P(LANG_FM_EUROPE), ID2P(LANG_FM_US),
- ID2P(LANG_FM_JAPAN), ID2P(LANG_FM_KOREA)),
+ ID2P(LANG_FM_JAPAN), ID2P(LANG_FM_KOREA),
+ ID2P(LANG_FM_ITALY), ID2P(LANG_FM_OTHER)),
#endif
OFFON_SETTING(F_BANFROMQS, audioscrobbler, LANG_AUDIOSCROBBLER, false,
diff --git a/firmware/export/tuner.h b/firmware/export/tuner.h
index f92e94269c..b27e660667 100644
--- a/firmware/export/tuner.h
+++ b/firmware/export/tuner.h
@@ -58,6 +58,8 @@ enum
REGION_US_CANADA,
REGION_JAPAN,
REGION_KOREA,
+ REGION_ITALY,
+ REGION_OTHER,
/* Add new regions above this line */
TUNER_NUM_REGIONS
diff --git a/firmware/tuner.c b/firmware/tuner.c
index a471c4e970..5fd7fa1f38 100644
--- a/firmware/tuner.c
+++ b/firmware/tuner.c
@@ -28,10 +28,12 @@
/* General region information */
const struct fm_region_data fm_region_data[TUNER_NUM_REGIONS] =
{
- [REGION_EUROPE] = { 87500000, 108000000, 50000 },
+ [REGION_EUROPE] = { 87500000, 108000000, 100000 },
[REGION_US_CANADA] = { 87900000, 107900000, 200000 },
[REGION_JAPAN] = { 76000000, 90000000, 100000 },
- [REGION_KOREA] = { 87500000, 108000000, 100000 }
+ [REGION_KOREA] = { 87500000, 108000000, 200000 },
+ [REGION_ITALY] = { 87500000, 108000000, 50000 },
+ [REGION_OTHER] = { 87500000, 108000000, 50000 }
};
#ifndef SIMULATOR
@@ -46,6 +48,8 @@ const unsigned char lv24020lp_region_data[TUNER_NUM_REGIONS] =
[REGION_US_CANADA] = 1, /* 75uS */
[REGION_JAPAN] = 0, /* 50uS */
[REGION_KOREA] = 0, /* 50uS */
+ [REGION_ITALY] = 0, /* 50uS */
+ [REGION_OTHER] = 0, /* 50uS */
};
#endif /* (CONFIG_TUNER & LV24020LP) */
@@ -56,6 +60,8 @@ const struct tea5760_region_data tea5760_region_data[TUNER_NUM_REGIONS] =
[REGION_US_CANADA] = { 0, 0 }, /* 75uS, US/Europe band */
[REGION_JAPAN] = { 1, 1 }, /* 50uS, Japanese band */
[REGION_KOREA] = { 1, 0 }, /* 50uS, US/Europe band */
+ [REGION_ITALY] = { 1, 0 }, /* 50uS, US/Europe band */
+ [REGION_OTHER] = { 1, 0 }, /* 50uS, US/Europe band */
};
#endif /* (CONFIG_TUNER & TEA5760) */
@@ -66,16 +72,20 @@ const struct tea5767_region_data tea5767_region_data[TUNER_NUM_REGIONS] =
[REGION_US_CANADA] = { 1, 0 }, /* 75uS, US/Europe band */
[REGION_JAPAN] = { 0, 1 }, /* 50uS, Japanese band */
[REGION_KOREA] = { 0, 0 }, /* 50uS, US/Europe band */
+ [REGION_ITALY] = { 0, 0 }, /* 50uS, US/Europe band */
+ [REGION_OTHER] = { 0, 0 }, /* 50uS, US/Europe band */
};
#endif /* (CONFIG_TUNER & TEA5767) */
#if (CONFIG_TUNER & SI4700)
const struct si4700_region_data si4700_region_data[TUNER_NUM_REGIONS] =
{
- [REGION_EUROPE] = { 1, 0, 2 }, /* 50uS, US/Europe band, 50kHz spacing */
+ [REGION_EUROPE] = { 1, 0, 1 }, /* 50uS, US/Europe band, 100kHz spacing */
[REGION_US_CANADA] = { 0, 0, 0 }, /* 75uS, US/Europe band, 200kHz spacing */
[REGION_JAPAN] = { 1, 2, 1 }, /* 50uS, Japanese band, 100kHz spacing */
- [REGION_KOREA] = { 1, 0, 1 }, /* 50uS, US/Europe band, 100kHz spacing */
+ [REGION_KOREA] = { 1, 0, 0 }, /* 50uS, US/Europe band, 200kHz spacing */
+ [REGION_ITALY] = { 1, 0, 2 }, /* 50uS, US/Europe band, 50kHz spacing */
+ [REGION_OTHER] = { 1, 0, 2 }, /* 50uS, US/Europe band, 50kHz spacing */
};
#endif /* (CONFIG_TUNER & SI4700) */