Samsung YP-R1 Port Page
This port is intended to make rockbox work as an "hybrid" application, that runs on linux, but must control lot's of HW parameters by itself
Do NOT think as this port being something like an application for Android. It's the only application running on the device at a time...
Basically I will resume my port to YP-R0 to R1, since basic hardware is the same (CPU; linux environment...)
- CPU: IMX37 532 MHz
- 3 RTC (why the hell): S-35392A - MX37 integrated - Bluetooth
- Power management: MAX8819 & MAX17040
- Audio codec: WM1808
- Radio SI4709
- LCD: 400x240 16 bit [Two possible LCD types: /* 0=> casio, 1=> SMD */]
- TV output [needs to be switched with a gpio, uses imx37 tv out capability]
- Bluetooth / Other stuff: BCM2070CB0KUFBXG?
- Input: 3 buttons (VolUP?/VolDown/PowerOn) + touch screen (capacitive) + reset button
- Touchscreen controller: Melpas MCS5000
- Traces of USB otg (indeed CPU has full support, but on R0 some tests by VanniX failed. Needs care)
To enter the recovery mode, press and hold the RESET button, insert the USB cable and then hold the power button while releasing the reset hole. You will see the IMX37 Blank SE Marley device. http://pastebin.com/Zpn5iEUh
Sometimes it's difficult to get it right, so the only option is to try a few times....
Once in this mode the player can be recovered using the official (leaked) recovery tool in a similar way that it is done on YP-R0 (actually the 2 programs are quite identical). You can find the recovery tool and a tutorial here: http://www.anythingbutipod.com/forum/showthread.php?t=70224
Pins and I/O
See gpio-ypr1.h to have a complete list of important pins that are used.
The YP-R1 port is currently available as a patch http://gerrit.rockbox.org/r/#/c/395/
which has not been merged yet.
- Backlight - LCD
- Charger detection
- Hardware buttons
- Headphone detection
- Battery voltage reading (percentage)
- WM1808 driver -> volume control
- Audio playback
- TV out
- Radio audio (the rest is fine, even RDS works!)
- Most of the plugins aren't yet configured (keycodes)
|| Standard Linux framebuffer device. ~900 FPS fullscreen, which seems a little lower in respect to R0...
|| Works fine so far. Check limits and why in OF there is a different limit/starting point for the two different LCD
|| Keymap needs some love, but is largely OK. Multiple keypresses through GPIO module are working fine.
|| Basics are working, initial calibration too but there is still space for improvements (slightly to be moved to the right along x-axis
|| Playback seems to work rather flawlessy audio-driver wise (using standard alsalib). Volume handling is seperately implemented since alsalib doesnt offer this. For this we directly communicate with the wm1808 audio codec. Take care of frequencies (check)
| FM Radio
|| FM Radio is supported using a custom kernel module. RDS works too. Re-using R0's module. Still no audio (modify audio path to pick from AUX)
|| It is possible to record. Need to write down the ALSA recording wrapper.
| Power Management
|| Charging, voltage readout and charger status are working. We save power by using the ondemand cpu governor the Linux kernel provides. Runtime is about 12 hrs which is pretty low. Need to turn off touchscreen while backlight is off + other possible improvements
|| We provide a early/safe USB mode in the patched firmware so the OF isn't needed. However there's no USB cable detection in Rockbox yet. Also, doing USB from within Rockbox is desirable to avoid reboots. Special care is needed to close open files before we make a connection, since the USB device cannot be exposed with open handles.
|| Storage handled by Linux. No microSD to bother about!
|| Key mappings added, plugins are indeed to be tested but they're fairly working fine
|| Read and Set time/date works flawlessy, 1 hr difference to be adjusted with respect to OF. Explore the possibility of alarm wake up (if available at all)
Compile Official Kernel
It seems that they forgot to make a decent .tar archive, i.e. symbolik links are broken. What to do?
Simply get the YP-R0 official package, extract it correctly and then do a recursive copy of the /include directory from R0's tree to R1's one. That's it!
- 16 Jan 2013
Copyright © by the contributing authors.