rockbox/apps
Marcin Bukat a35f344eef YP-CP3: WM8750 audio
The YP-CP3 uses Wolfson WM8750. Headphones are wired on OUT2 and
a headphone amplifier enabled by GPIO F2, active high -
all RE from the original firmware.

The original firmware runs the codec as I2S master in its 12 MHz "USB
mode", fed a fixed 12 MHz MCLK, which puts 44.1 kHz at 44.118. Rockbox
instead makes the rk27xx the master and clocks the codec from the codec
PLL at exactly 256 fs (CODEC_SLAVE, as every other rk27xx target with an
external codec), so the codec's CLOCKING register is its normal-mode
256 fs setting at every rate. 96 kHz is left out: the WM8750 cannot take
it at 256 fs.

- config: HAVE_WM8750, CODEC_SLAVE, rates 8-48 kHz; the WM8750 has
  hardware tone controls, so HAVE_SW_TONE_CONTROLS goes
- ypcp3/wmcodec-ypcp3.c: register writes over the rk27xx I2C driver
- wm8751.c: on the YP-CP3, power on and drive OUT2 instead of OUT1, set
  the volume there, and switch the amplifier with the outputs
- english.lang: the YP-CP3 gets the bass/treble cutoff settings the
  WM8750 brings

Tested on a YP-CP3: playback at 44.1 and 48 kHz on headphones, pitch and
volume correct.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Change-Id: I870038fb6a21a9c26b025e3df7c220fd925f49f6
2026-09-29 09:34:02 +02:00
..
bitmaps ap80max: New hosted port 2026-08-13 17:55:06 -07:00
gui Add "rbfs" prefix to native filesystem functions 2026-09-17 16:22:31 -04:00
hosted/android chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
iap iap: Improve IAPGeneralCommandID_RequestIPodName 2026-08-07 08:48:05 -04:00
keymaps ibasso dx50/dx90: Fix physical buttons on yes/no screens 2026-09-19 07:29:10 -05:00
lang YP-CP3: WM8750 audio 2026-09-29 09:34:02 +02:00
menus touchscreen: Add flick gesture support in list and WPS 2026-09-07 08:56:38 -04:00
plugins jpeg: fix decoding of grayscale images with 2x2 sampling 2026-09-28 22:38:41 -04:00
radio [Bugfix] Autoscan when radio off hangs player, record static 2026-06-20 11:43:02 -04:00
recorder jpeg: fix decoding of grayscale images with 2x2 sampling 2026-09-28 22:38:41 -04:00
abrepeat.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
abrepeat.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
action.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
action.h touchscreen: Fix seeking to end of track in WPS 2025-12-04 19:36:19 -05:00
alarm_menu.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
alarm_menu.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
appevents.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
applimits.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
apps.make chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
audio_path.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
audio_thread.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
audio_thread.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
beep.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
bookmark.c Add "rbfs" prefix to native filesystem functions 2026-09-17 16:22:31 -04:00
bookmark.h Fix return to root after selecting items from playlist viewer 2022-11-19 10:01:23 +01:00
buffering.c Add "rbfs" prefix to native filesystem functions 2026-09-17 16:22:31 -04:00
buffering.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
codec_thread.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
codec_thread.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
codecs.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
core_asmdefs.c
core_keymap.c Add "rbfs" prefix to native filesystem functions 2026-09-17 16:22:31 -04:00
core_keymap.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
cuesheet.c FS13892: Voice feedback in Cuesheet browser 2026-08-25 07:54:03 -04:00
cuesheet.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
debug_menu.c debug_menu: exclude HIBY RAM info from simulators 2026-09-02 09:00:59 -04:00
debug_menu.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
enc_config.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
enc_config.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
features.txt lang: Restrict LANG_COMPOSITE_VIDEO_OUTPUT to devices that have it 2026-09-07 09:27:20 -04:00
fileop.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
fileop.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
filetree.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
filetree.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
filetypes.c Add "rbfs" prefix to native filesystem functions 2026-09-17 16:22:31 -04:00
filetypes.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
fracmul.h
gesture.c touchscreen: Add flick gesture detector 2026-08-13 08:03:37 -04:00
gesture.h touchscreen: Add flick gesture detector 2026-08-13 08:03:37 -04:00
keyboard.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
language.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
language.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
logfdisp.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
logfdisp.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
main.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
menu.c quickscreen: prevent out-of-bounds viewports 2026-09-02 14:03:17 -04:00
menu.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
misc.c ipod6g: Add inline earphone remote support 2026-08-05 08:40:24 -04:00
misc.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
onplay.c onplay wps context menu plugin item rework namebuf 2026-06-11 09:52:09 -04:00
onplay.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
open_plugin.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
open_plugin.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
pcmbuf.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
pcmbuf.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
playback.c FS#13996: Have audio_hard_stop() kill the PCM output path entirely 2026-09-25 16:03:03 -04:00
playback.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
playlist.c Add "rbfs" prefix to native filesystem functions 2026-09-17 16:22:31 -04:00
playlist.h skin: add %pX tag for time-based playlist progress 2026-06-27 12:29:31 -04:00
playlist_catalog.c Add "rbfs" prefix to native filesystem functions 2026-09-17 16:22:31 -04:00
playlist_catalog.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
playlist_menu.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
playlist_viewer.c quickscreen: always refresh SBS when leaving 2026-09-02 23:07:58 +02:00
playlist_viewer.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
plugin.c fix red in c6abf3382a -- iriver h1xx/h3xx simulator 2026-09-23 14:17:24 -04:00
plugin.h fix red in c6abf3382a -- iriver h1xx/h3xx simulator 2026-09-23 14:17:24 -04:00
rbcodec_helpers.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
rbcodecconfig.h usbaudio: send through dsp (new) 2025-11-15 07:38:19 -05:00
rbcodecplatform.h
README
root_menu.c tagtree: warn if tagnavi.config is missing instead of freezing 2026-09-16 07:55:47 -04:00
root_menu.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
screen_access.c FS#13944 - FONT_UI loads the last loaded font not global_status.font_id 2026-06-30 13:29:23 -04:00
screen_access.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
screens.c allow softlock in additional screens 2026-07-05 12:59:27 +02:00
screens.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
settings.c ipod6g: add composite output setting 2026-09-07 08:55:22 -04:00
settings.h touchscreen: Add flick gesture support in list and WPS 2026-09-07 08:56:38 -04:00
settings_list.c ipodnano3g: power, RTC, backlight, battery and audio 2026-09-20 08:53:53 -04:00
settings_list.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
shortcuts.c shortcuts: go to WPS for ACTION_TREE_WPS 2026-07-05 06:58:44 -04:00
shortcuts.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
sound_menu.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
SOURCES 3ds: Port refactor. 2026-09-01 08:39:07 -04:00
status.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
status.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
tagcache.c Add "rbfs" prefix to native filesystem functions 2026-09-17 16:22:31 -04:00
tagcache.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
tagnavi.config tagnavi.config: Add "Album Artists by First Letter" 2025-02-08 12:14:32 -05:00
tagtree.c tagtree: warn if tagnavi.config is missing instead of freezing 2026-09-16 07:55:47 -04:00
tagtree.h tagtree: warn if tagnavi.config is missing instead of freezing 2026-09-16 07:55:47 -04:00
talk.c Add "rbfs" prefix to native filesystem functions 2026-09-17 16:22:31 -04:00
talk.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
tree.c tree: skip redundant SBS refresh after Quickscreen 2026-09-03 01:32:17 +02:00
tree.h 3ds: Port refactor. 2026-09-01 08:39:07 -04:00
usb_keymaps.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
usb_keymaps.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
voice_thread.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
voice_thread.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00

For general information see: docs/README
For API information see: docs/API