This adds some confirmed and some to-be-confirmed (TBC) registers for Samsung S5L8720, which is used in iPod Nano 4G, iPod Touch 2G and the 920-0614-03 development/prototype board.
All credit goes to Cástor Muñoz <cmvidal@gmail.com>
Change-Id: I9fe5052fe9f05cd33f34de4e228cdb291944aa11
* Make the partial sector logic a little clearer (no functional change)
* Corrections for debugging messages
* Also use MAX_VIRT_SECTOR_SIZE in BOUNCE_BUFFER calculations
Change-Id: I89363824b092b2e3bddd5e0f75bf81200c9bc513
The s5l8702's ATA controller can only DMA in/out of cacheline-
aligned buffers. The more general buffering code already ensures
its buffers are aligned, but this covers the rest of the
users of the general I/O path.
Change-Id: Iae54d98797efb61756cb73e3901308775a0c5e52
* if MAX_VARIABLE_LOG_SECTOR is defined, use that
* if MAX_PHYS_SECTOR_SIZE is defined, use that
* use SECTOR_SIZE
Change-Id: Ia314f590fdb300e99df2c60587657c9563b9ce80
since we now have the length of tag names thru the param_pos var
we can simplify the find tag function to skip if the length doesn't match
this allows us to no longer make a string copy in order to terminate
the buffer
move some of the more frequently encountered tags to the top of the
lookup list
only SKIN_TOKEN_UNKNOWN position matters as its empty string is used
as the sentinel
Change-Id: Ib82d081a9ebedc228768845ae54a3d9466faaef1
* If the device returns a valid upper limit (word 47) use that.
* If the current limit (word 59) is valid, use that.
* Fall back to 1 as a default, not 16!
Note this is only used for PIO transfers!
Change-Id: I269b751466242bbcce91ee991d9ade449cc84b6b
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 reverts commit 4ec34f6986.
Reason for revert:
-fshort-enums makes them smaller if the explicitrly enumerated values will fit in a smaller type
Change-Id: I834dfd2b2039eda91bc02c9cf95a0f9dfc5783f6
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
This is a preparation for merging both files to a new header named s5l87xx.h. Also removed unused register types.
Change-Id: I6aa231064d6a7c734aa297e68b899d6988a88bdc
IMPORTANT: There is no guarantee this will compile cleanly much less
_work_ on any given target. This is purely to enable future hackery.
Change-Id: Ib58f21b717719fd4325622b446a60779406ae035
This reverts commit dcec6828a3.
This did not solve the reported problem, and it turns out that the original
code did the right thing with respect to the device's logical sector size.
Change-Id: I5bed2520ba8f5ca01df0ddd71588d3ed69c1d77c
The file I/O code operates in terms of the FILESYSTEM sector size, which
may be much larger than the underlying device's logical sector size. So
the disk cache buffers need to be the the larger of:
* Max allowed filesystem sector size (MAX_VIRT_SECTOR_SIZE) (if defined)
* Max allowed logical sector size (MAX_VARIABLE_LOG_SECTOR) (if defined)
* Fixed logical size (SECTOR_SIZE)
Change-Id: Ica0ec36d113406f24c12c696317a8d3520e7852c
* volume_partition() wasn't defined for hosted targets
* wrap the "special" volume stuff in HAVE_MULTIDRIVE
Change-Id: Icbea256ab6438e1f7e45d361ed61724feec7ef0b
This is an example of what could happen:
HD1: Not present
ouping Not present
ouping Not present
ouping Not present
We have up to 4 fixed volume slots (==partitions) per drive, but
shouldn't display an entry if the slot isn't used, ie the normal case.
Instead, we _were_ displaying a partially-unitialized entry!
There is a special case for targets that support multiple *drives*, in
that we want to show 'not present' for the first volume slot of the
2nd drive.
Change-Id: I717edd305cd654ff4e13ba9ffb57e7a4c9935c17
skin_tags have name and sometimes valid parameters
storing a pointer results in a lot of wasted space
instead record size of name and write the parameter string just after
Change-Id: Ied32f9e820deec9092dc6b97a93e2660d7abc8b2
- NOR flash size is 1MB, not 10MB
- BOOTFILE_EXT2 is not used, the Rockbox binary is always unencrypted on iPod 6G. This looks like a leftover from ipodnano2g config
Change-Id: Iea76c1e87f27e25b3d59924ef02e22d91448e39d
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
Currently only S5L8701 (Nano 2G) and S5L8702 (Classic/6G, Nano 3G) are defined. This change adds the remaining to CONFIG_CPU, as a preparation for porting to these platforms. It also defines the RTC types for Nano 3G and Nano 4G.
New CONFIG_CPU options:
S5L8720 - iPod Nano 4G
S5L8730 - iPod Nano 5G
S5L8723 - iPod Nano 6G
S5L8760 - iPod Nano 7G
Change-Id: I4e9e00163c0d0d5a5303f9eee428f9be47a48359
instead of checking for menu callback use an empty callback instead
this code is a bit strange in that a prior valid callback might be returned
so I left the behavior but I question if thats really needed..
Change-Id: Id0c4eb208b33a6fffdbdffc63ea9cc928bba1a6d
vp->width may exceed the actual available screen area which
prevents the sim from clipping properly
'
Change-Id: I487761b3e656d4a066960fb8dc7477cceb30aa57
replace with simplelist_reset_lines(void)
there was one user saving one short string
remove the feature to simplify list code
fix scrolling in dircache debug item
Change-Id: I71f933f224c2de5f7a68feab904a2fe0b81e1362
add simplelist_setline() to allow literal strings or owner buffer
to be shown in the simplelist
this makes simplelist more versatile by allowing static strings
to be added directly instead of copying into the simplelist buffer
(ie not consuming the simplelist text buffer)
add bounds checking to simplelist_setline/addline
No one has more than SIMPLELIST_MAX_LINES.. right?
-- there are actually a few places this isn't checked..
use new setline function in debug menu
share the simplelist buffer with the list_draw fn for gui_synclist
since they shouldn't be in-use simultaneously we can save some stack
Change-Id: I4a1e64d3a621d326ff094241da55452c0ff746ba