Tested on Linux, MacOS, and Windows.
On MacOS and Windows, we constrain the window's aspect
ratio by adjusting the size when responding to resize
events.
On Linux, I've not found a way to do so, that doesn't
result in fairly stuttery behavior and weird jumpy
behavior of the resize handle, possibly depending
on your window manager. So, black bars are displayed
around the content.
Maybe someone, at some point, finds a way.
(SDL3 seems to have SDL_SetWindowAspectRatio)
When the window is in fullscreen, black bars are
display necessarily, of course, on all systems,
unless the player GUI has exactly the same aspect
ratio as the screen...
Change-Id: I535e6617497611ea57a4c19e08e552f990859cfe
This makes it possible to reuse the SysCfg reading logic in other places.
Tested on ipod6g (normal + bootloader).
Change-Id: Iae6de2ee671bce4edb0153d26c57579ad47d0335
Comments and notes are converted to UTF-8. Already broken multibyte characters are fixed using common sense.
This patch contains no code changes.
Change-Id: Ia511ab84936cb2495ac17309493a9b98727a7902
This driver decouples the LCD interface from the target-specific LCD parameters. It makes it possible to reuse most of the ipod6g driver code on ipodnano3g and ipodnano4g.
No difference in the produced binaries for ipodnano2g (normal and bootloader).
Tested on ipod6g (normal and bootloader).
This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
Change-Id: I7ce198ed3d5a8b58759951e2d67788cbf9781dc8
No difference in the produced binaries for ipod6g (normal and bootloader)
This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
Change-Id: Ib79c5539a317aae350d661ab23c181471ee38abb
No difference in the produced binaries for ipod6g (normal and bootloader)
This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
Change-Id: I82943e91ba7e6764428f853f84799f0d54b700a6
Tested on ipod6g (normal + bootloader).
No functional change, no binary size change, the only difference is using r3 instead of r1 for the WDT_BASE address value.
Change-Id: I2ce2b7d987671cb4fcbbcdde574437b21a534da0
Tested on ipod6g (normal + bootloader).
This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: I5b56eaaa8a5621f4293c00c53e50e5ca39831eb6
Tested on ipod6g (normal + bootloader).
This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: I64beed48e3d88436b9082d4ae387f39843ab2e20
Also adds support for S5L8720 initialization.
This currently changes only the bootloader code for ipod6g. Tested on target.
This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: Ib4b5f12b701058940c1c5bd686d8ac346ae14e12
No difference in the produced binaries for ipod6g (normal and bootloader)
This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: I660f446924d07a07842e57acb3f2d1af362ac15c
Also adds support for IM3 functions and SHA-1 on S5L8720.
Tested on ipod6g (normal and bootloader builds)
This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: Ic5e6f5a3321d4b1ec4efd753a4c30e29d83fd7c2
Tested on ipod6g (normal and bootloader builds)
This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: I7c21ce2ecb6f94c0b8af4b7b16b3b77c39c6a0a4
No difference in the produced binaries for ipodnano2g and ipod6g (normal and bootloader)
This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: Ia6a2d2b220d36a56f81fc7c8d05f7c025e2ee766
SDL_AUDIO_ALLOW_SAMPLES_CHANGE was added in 2.0.6, just
ignore it if we're compiling against an old version
Change-Id: Ia317fe9780b9e39b9fa1f882ada845011d4e8e60
This lets us _demand_ a sane audio configuration that doesn't require
us to convert sample formats.
(Windows always seems to want us to supply 32-bit floating point)
Change-Id: I19113363b33ae99be33afceec50a319c182e9b29
Tested on ipod6g (normal and bootloader builds)
This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: I712c1b0cf2d595b1b78caf1d86ce298017dfe7e5
Turns out they did not swap the stereo switch lines on us,
so this setting isn't really useful. Repurpose it to allow
the user to force the device into headphone or line output mode.
Note that settings other than "Automatic" will cause jack detection
to not work.
Default Automatic.
Change-Id: If94499fbb8f0d92111811fe51f6107ce213b66ad
Since the SPI NOR flash is only used for the bootloader, rename the files accordingly, This is a preparation for the nandboot driver will be introduced, since S5L8720+ don't have an SPI NOR flash anymore.
This is a part of the large iPod Nano 4G and iPod Touch 2G support patch.
Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: Iea835fd2029470bfe9f813631ad4f3db711facc3
This also includes a small SPI driver rework for ipod6g. Only the NOR flash currently uses SPI. Tested on target using View SysCfg in Debug menu.
This is a part of the large iPod Nano 4G and iPod Touch 2G support patch.
Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: If2b91c1088034dd606abc6dd0b6ad73dea0152a4
This is a part of the large iPod Nano 4G and iPod Touch 2G support patch.
Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: Ica1e2b8e82ea162ebab01cf119f5da2f8877bc05
Check for the ES9018K2M dac in the bootloader for
hw1/hw2 devices. Assume that all devices newer than
hw2 have ES9018K2M DAC unconditionally.
All devices will now report the correct hw revision
in the debug menu under Device Data.
Add devicedata.version field, current version 0.
Rename device_data.lcd_version to device_data.hw_rev.
hw2 devices with older bootloaders which ID as hw1 are special-
cased to keep using hwvol on them. They should still upgrade though.
Change-Id: If0fd5ce3bc6e85e511047721ec18e42fb89312e7
Event handling must happen on the main
thread for MacOS.
Not sure if button_queue_wait is the
best place for doing the SDL event
polling, but seems to work ok.
Change-Id: If928282df84bdd74e24a48afd7dbc4c4bfcc49e2
Tested on MacOS Sequoia (Apple Silicon) with the
latest Xcode command line tools, gcc 14
(Homebrew GCC 14.2.0_1) and sdl2 (Homebrew 2.30.9)
Make sure 'gcc' (and 'gcc-ar') is in your PATH
ahead of the Xcode-provided "gcc"(clang). E.g.
by setting up symlinks in /usr/local/bin that
point to gcc-14 and gcc-ar-14.
Notes:
- The appropriate bmp from uisimulator/bitmaps
has to be manually copied to your build folder
and renamed to UI256.bmp, if you want the sim
background to be displayed
Change-Id: I559f33d2165065f913f30c016b85906af380fb81
This is a part of the large iPod Nano 3G/4G support patch.
Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: I577eef01f42e8752ad9b2ee64e2b30ad0a9e55be
This allows to reuse a register definition across similar SoCs that have the same layout of registers (same offsets), but are using a different base address for the peripheral. The include guard was also fixed to reflect the new file name of the header.
Some registers were renamed in order to match the datasheet and for consistency with the other register numbering.
Change-Id: I0192e227a3c467504b8fcd1eb684a7fc861f7896
This is part of the preparation to add support for iPod Nano 3G and Nano 4G. There are some optimisations left, like merging similar blocks of registers that share the same layout, but the base address have changed between SoC generations.
Change-Id: I4f06727b4061977141b65d39ae19591bd5b29680
* volume_partition() wasn't defined for hosted targets
* wrap the "special" volume stuff in HAVE_MULTIDRIVE
Change-Id: Icbea256ab6438e1f7e45d361ed61724feec7ef0b
Support hw4 units with AXP2101 PMU
Bootloader successfully compiles and loads onto device.
The LCD appears to be identical to hw3 units.
Scroll wheel and buttons work
Audio output works, including volume.
HP/LO detect works
Rockbox build is generic
GPIO gating logic seems to be working as intended now.
- Added new GPIO definitions - some significant overlaps with pins
from previous hardware revisions...
- Added some GPIO definitions for older players we didn't know about
- Add register definitions for AXP2101 from datasheet
(these are very different from AXP192!)
- Add AXP2101 regulator definitions, need to support multiple step
sizes per regulator.
- Verify AXP2101 voltage set multi-range logic
- Verify AXP2101 voltage get multi-range logic
- Make AXP2101 its own driver
- AXP2101 driver should be "minimally viable", though I think
there is some extra functionality that could be implemented.
- Disabling the coulomb counter stuff - we could maybe make
the E-Gauge work for the same purpose, but it only appears to
be used on the debug screen at the moment so it doesn't seem
like it's worth the effort.
- Found new button GPIOs
- Found error in my GPIO setting logic, blue light works now!
- Set LDO/DCDC output voltages to OF's settings, as far as
I can tell.
- Determined we probably want TCS1421_CFG1:0 to be 0x00,
for UFP behavior
- Tested this rb build with both old and new bootloaders on hw1.5,
hw2, hw4 in as many configurations as I can think of, works across
the board.
- Bootloader can install itself on hw4, so nand chip isn't novel
- Uninstallation file can be made by patcher script, works on hw4
- Installation file can be made by patcher script, works on hw4
- Added HW4 to rbutil, manual
Change-Id: I5b75782273e81c2c6f2b9c79501c8b7cbf88391f
Due to its similarity with S5L8702, clickwheel support and sleep can be used as-is on S5L8720. DRAM and IRAM are also configured.
Change-Id: I52f8a3417e6a25c7360b1cae2fb5eed621e2e0db
This is a driver for the UART controller on the S5L87xx series of SoCs, which is named after the SoC family.
Since S5L8720 is confirmed to have the same interface and the newer models probably also have it, the driver is renamed to reflect this.
Change-Id: I974c002924372e860db0e49235d108dab87f8831
No functional change.
We always have it turned in for ipod6g, but this makes some of the
flow/logic easier to follow.
Change-Id: I3abeace4f70afb197e819e0944e0e76f4edc4800
Basically this requires un-hardcoding SECTOR_SIZE everywhere, in
favor of using a variable containing what was reported in IDENTIFY INFO.
Note that the rest of the storage subsystem still needs to be fixed up!
Change-Id: I7f2dbd54ff2bc16b15010721e011949cbf308e12
This lets us *natively* handle varying physical sector sizes
without playing games and lying about the logical sector size.
(The original drives use 4K _physical_ sectors with 512B logical
sectors, but you have to access everything in 4K blocks...)
Achieve this by splitting the MAX_PHYS_SECTOR_SIZE code out
of the main ATA driver and re-using it.
Change-Id: I0bc615ab4562f1e3e83171a8633c74fb60c7da1f