diff options
author | Szymon Dziok <b0hoon@o2.pl> | 2016-01-12 00:03:22 +0100 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2024-06-23 20:11:59 -0400 |
commit | f7a3b4dfa32f008ba25a84e332eeace8d35cff42 (patch) | |
tree | f0f72b360ee454e7f1fb72b9447e49059194e031 /firmware | |
parent | 8f75b29aed8eeb901244a715595c93656dc18b72 (diff) | |
download | rockbox-f7a3b4dfa32f008ba25a84e332eeace8d35cff42.tar.gz rockbox-f7a3b4dfa32f008ba25a84e332eeace8d35cff42.zip |
Radio support and detection for Samsung YH92X [FOR TESTING].
Status:
- tested on:
Samsung YH920 - it uses this detection too, it always should have
the radio.
Samsung YH925 with the radio.
- untested on:
Samsung YH925 without the radio.
Change-Id: I68b39c09d6b7e26a4c373fbd8bf9401a97e86123
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/SOURCES | 1 | ||||
-rw-r--r-- | firmware/drivers/tuner/tea5767.c | 15 | ||||
-rw-r--r-- | firmware/export/config/samsungyh925.h | 9 |
3 files changed, 21 insertions, 4 deletions
diff --git a/firmware/SOURCES b/firmware/SOURCES index 87cadfd55f..e827f964f5 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES | |||
@@ -1799,6 +1799,7 @@ target/arm/samsung/yh925/backlight-yh925.c | |||
1799 | target/arm/samsung/yh925/lcd-yh925.c | 1799 | target/arm/samsung/yh925/lcd-yh925.c |
1800 | target/arm/samsung/yh925/lcd-as-yh925.S | 1800 | target/arm/samsung/yh925/lcd-as-yh925.S |
1801 | target/arm/samsung/yh925/powermgmt-yh925.c | 1801 | target/arm/samsung/yh925/powermgmt-yh925.c |
1802 | target/arm/samsung/fmradio-yh92x.c | ||
1802 | #endif /* SAMSUNG_YH925 */ | 1803 | #endif /* SAMSUNG_YH925 */ |
1803 | 1804 | ||
1804 | #ifdef SAMSUNG_YPS3 | 1805 | #ifdef SAMSUNG_YPS3 |
diff --git a/firmware/drivers/tuner/tea5767.c b/firmware/drivers/tuner/tea5767.c index a502e79802..143cb0576b 100644 --- a/firmware/drivers/tuner/tea5767.c +++ b/firmware/drivers/tuner/tea5767.c | |||
@@ -171,17 +171,26 @@ int tea5767_get(int setting) | |||
171 | void tea5767_init(void) | 171 | void tea5767_init(void) |
172 | { | 172 | { |
173 | /* save binsize by only detecting presence for targets where it may be absent */ | 173 | /* save binsize by only detecting presence for targets where it may be absent */ |
174 | #if defined(PHILIPS_HDD1630) || defined(PHILIPS_HDD6330) | 174 | #if defined(PHILIPS_HDD1630) || defined(PHILIPS_HDD6330) ||\ |
175 | defined(SAMSUNG_YH920) || defined(SAMSUNG_YH925) | ||
175 | unsigned char buf[5]; | 176 | unsigned char buf[5]; |
176 | unsigned char chipid; | 177 | unsigned char chipid; |
177 | 178 | ||
178 | /* init chipid register with 0xFF in case fmradio_i2c_read fails silently */ | ||
179 | buf[3] = 0xFF; | ||
180 | tuner_power(true); | 179 | tuner_power(true); |
181 | 180 | ||
182 | #if defined(CONFIG_TUNER_3WIRE) | 181 | #if defined(CONFIG_TUNER_3WIRE) |
182 | /* We don't have any control over the bus protocol, the only way to detect | ||
183 | presence of the tuner is to write something to it and then read bytes */ | ||
184 | tea5767_set(RADIO_MUTE, 1); | ||
183 | int res = fmradio_3wire_read(buf); | 185 | int res = fmradio_3wire_read(buf); |
186 | res = ((buf[0] == 0) && (buf[1] == 0) && (buf[2] == 0) && (buf[3] == 0) | ||
187 | && (buf[4] == 0) && (buf[5] == 0)) ? -1 : 1; | ||
188 | /* clear chipid byte - we don't use it here for detection, so it should be */ | ||
189 | /* set to zero, to fulfill the condition in "else" block */ | ||
190 | buf[3] = 0; | ||
184 | #else | 191 | #else |
192 | /* init chipid register with 0xFF in case fmradio_i2c_read fails silently */ | ||
193 | buf[3] = 0xFF; | ||
185 | int res = fmradio_i2c_read(I2C_ADR, buf, sizeof(buf)); | 194 | int res = fmradio_i2c_read(I2C_ADR, buf, sizeof(buf)); |
186 | #endif | 195 | #endif |
187 | 196 | ||
diff --git a/firmware/export/config/samsungyh925.h b/firmware/export/config/samsungyh925.h index cb6f185014..45bae720f1 100644 --- a/firmware/export/config/samsungyh925.h +++ b/firmware/export/config/samsungyh925.h | |||
@@ -11,7 +11,8 @@ | |||
11 | 11 | ||
12 | /* Define bitmask of input sources - recordable bitmask can be defined | 12 | /* Define bitmask of input sources - recordable bitmask can be defined |
13 | explicitly if different */ | 13 | explicitly if different */ |
14 | #define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN ) | 14 | #define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN | SRC_CAP_FMRADIO) |
15 | |||
15 | 16 | ||
16 | /* define the bitmask of hardware sample rates */ | 17 | /* define the bitmask of hardware sample rates */ |
17 | #define HW_SAMPR_CAPS (SAMPR_CAP_48 | SAMPR_CAP_44 | SAMPR_CAP_32 | \ | 18 | #define HW_SAMPR_CAPS (SAMPR_CAP_48 | SAMPR_CAP_44 | SAMPR_CAP_32 | \ |
@@ -133,6 +134,12 @@ | |||
133 | /* AK4537 has no tone controls, so we use the software ones */ | 134 | /* AK4537 has no tone controls, so we use the software ones */ |
134 | #define HAVE_SW_TONE_CONTROLS | 135 | #define HAVE_SW_TONE_CONTROLS |
135 | 136 | ||
137 | /* FM Tuner */ | ||
138 | #define CONFIG_TUNER TEA5767 | ||
139 | #define CONFIG_TUNER_XTAL 32768 | ||
140 | /* Define this if the tuner uses 3-wire bus instead of classic i2c */ | ||
141 | #define CONFIG_TUNER_3WIRE | ||
142 | |||
136 | #define AB_REPEAT_ENABLE | 143 | #define AB_REPEAT_ENABLE |
137 | 144 | ||
138 | #define BATTERY_CAPACITY_DEFAULT 900 /* default battery capacity */ | 145 | #define BATTERY_CAPACITY_DEFAULT 900 /* default battery capacity */ |