Commit graph

57 commits

Author SHA1 Message Date
Amaury Pouly
b55adf1ca2 as3514: document hardware setting based on as3514.c
Change-Id: Ifc3c4cf75f7091da0b4c4ce5b0c291b373cf9a3a
2016-12-12 13:10:52 +01:00
Mihail Zenkov
a24abd2a47 Fix NUM_ADC_CHANNELS for AS3525v2
Change-Id: If523d9fe24711ffe571623aae54f141f00b0ee41
2016-03-18 20:24:40 +01:00
Amaury Pouly
6f54a86360 as3514: fix bug in volume management on AS3543 targets which are not AS3525v2
Some old code made the assumption that CONFIG_CPU == AS3525v2 if and only if
HAVE_AS3543, which is not true on targets like the Samsung YP-R0. This fixes
several issues on such targets like a huge volume gap between -39dB and -40dB
and a volume artificially capped at -72dB instead of -82dB.

Change-Id: Ib1c883ac593c0c3ce5e2bf4eb408924ce5f5ad93
2016-02-12 23:04:33 +00:00
Michael Sevakis
e61e9c61d0 Do some cleanup, adjustment and a couple fixes to recent sound changes.
* SOUND_x enum can be generated by audiohw_settings.h along with settings
entries and sound_val2phys.

* VOLUME_MIN and VOLUME_MAX are no longer necessary within sound.c. If
you need them, they are for target-defined purposes.

* Fix up SDL volume implementation in sdl.c. Move sim volume calculation
code to pcm-sdl.c.

* Min trigger tresholds were based upon VOLUME_MIN for some reason.
These setting have nothing to do with playback volume. Since it is no
longer present, set these at -89dB which is the minimum peak meter
sensitivity setting.

* Fix an oversight in wm8758.c. I forgot to add the dB->register
conversion to audiohw_set_volume.

Change-Id: Ie1df33f1793eee75e6793f16bc7bddd16edb7f75
2013-04-22 20:38:17 -04:00
Michael Sevakis
0c7b787398 Straighten out the mad twisted state of sound.c and related areas.
This is going right in since it's long overdue. If anything is goofed,
drop me a line or just tweak it yourself if you know what's wrong. :-)

Make HW/SW codec interface more uniform when emulating HW functionality
on SWCODEC for functions such as "audiohw_set_pitch". The firmware-to-
DSP plumbing is in firmware/drivers/audiohw-swcodec.c. "sound_XXX"
APIs are all in sound.c with none in DSP code any longer.

Reduce number of settings definitions needed by each codec by providing
defaults for common ones like balance, channels and SW tone controls.

Remove need for separate SIM code and tables and add virtual codec header
for hosted targets.

Change-Id: I3f23702bca054fc9bda40f49824ce681bb7f777b
2013-04-15 12:02:05 -04:00
Bertrik Sikken
f6e17e86fe AMSv2: add proper definitions for charge current
Change-Id: I6a14570e94df1be62ae46816d2ff4e3f2b7bc21a
2012-03-04 12:23:05 +01:00
Thomas Martitz
1dcc834e59 ypr0: Remove last #ifdef in as3514.
It's now using completely the same driver as Sansa daps.
This also increases the volume range.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31428 a1c6a512-1295-4272-9138-f99709370657
2011-12-25 18:23:10 +00:00
Thomas Martitz
249bba03f1 Initial commit of the Samsung YP-R0 port.
This port is a hybrid native/RaaA port. It runs on a embedded linux system,
but is the only application. It therefore can implement lots of stuff that
native targets also implement, while leveraging the underlying linux kernel.

The port is quite advanced. User interface, audio playback, plugins work
mostly fine. Missing is e.g. power mangement and USB (see SamsungYPR0 wiki page).

Included in utils/ypr0tools are scripts and programs required to generate
a patched firmware. The patched firmware has the rootfs modified to load
Rockbox. It includes a early/safe USB mode.

This port needs a new toolchain, one that includes glibc headers and libraries.
rockboxdev.sh can generate it, but e.g. codesourcey and distro packages may
also work.

Most of the initial effort is done by Lorenzo Miori and others (on ABI),
including reverse engineering and patching of the original firmware,
initial drivers, and more. Big thanks to you.

Flyspray: FS#12348
Author: Lorenzo Miori, myself

Merry christmas to ypr0 owners! :)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31415 a1c6a512-1295-4272-9138-f99709370657
2011-12-24 11:56:46 +00:00
Bertrik Sikken
b1298c2c44 Sansa AMS/AMSv2: analog front-end register CVDD/DCDC3 doesn't exist in AMSv2, so don't modify it
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30579 a1c6a512-1295-4272-9138-f99709370657
2011-09-21 21:48:19 +00:00
Michael Giacomelli
c27ea297a3 Commit FS#12111 by Stephan Grossklass. Disables output mixer auto gain control on AMSv2. Should fix occasional distortion reported when running the player at very high output levels (e.g. at or above 0dB).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30208 a1c6a512-1295-4272-9138-f99709370657
2011-07-24 21:56:24 +00:00
Rafaël Carré
336cec2e1f Fix set_serial_descriptor() for targets with as3543
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28013 a1c6a512-1295-4272-9138-f99709370657
2010-09-06 18:26:17 +00:00
Michael Sevakis
b15a523870 e200v1/c200v1: Implement limited samplerate switching. Rates 24kHz and below are being a bear as far as minor crackling at higher amplitude-- leave them out for the time being since no solution is currently evident. 48, 44, 32 (rec rates 24, 22, 16) seem perfectly fine. I'm betting c200 is ok to include because it uses the same setup as e200.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27139 a1c6a512-1295-4272-9138-f99709370657
2010-06-26 10:07:17 +00:00
Michael Giacomelli
103eabd31f Commit FS#11364 by me. Increases the A3525v2 volume range by 7.5dB. Each volume setting gets 7.5dB louder (if you listened before at 0dB, you would have to set it to about -7.5dB to get the same volume). As a result, the new 0dB actually is pretty close to max line level for a full scale voltage, so positive dB may clip, whereas before they did not because the scale was off. Thanks to dfkt and Tim Graf for help figuring this out.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27101 a1c6a512-1295-4272-9138-f99709370657
2010-06-24 01:11:51 +00:00
Rafaël Carré
172fc967b0 as3525v2: RTC alarm
A specific poweroff function needs to be used for wake-up to work
Disable RTC in bootloaders for consistency with other Sansas

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26243 a1c6a512-1295-4272-9138-f99709370657
2010-05-22 00:28:03 +00:00
Rafaël Carré
9c774b3849 as3514.c: clean up
- enhance registers description in header file with respect to the as3543
registers: point which one are present or not in the as3543, which bits
change (i didn't detail all registers)
- cache less registers, only up to the ones which are written to
  multiple times
- use ascodec_readbytes() to cache all needed registers in a row
- separate the as3543 bits from as3514/as3515 in audiohw_preinit()
- comment out unused audiohw_set_lineout_vol
- some cosmetics

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26174 a1c6a512-1295-4272-9138-f99709370657
2010-05-19 17:30:38 +00:00
Rafaël Carré
88c55d7290 as3514/as3543 fixes
- Enable end of charge monitoring once, it doesn't need to be disabled
- Acknowledge the first (wrong) end of charge interrupt on charger enable
  (this had been broken in r25299)
- Centralize reads to ENRD* registers and cache the results when needed
    - on PP it is not needed because reads are atomic, we only check for
      end of charge when the charging, and for charger presence when
      discharging

as3525v2 (using as3543) specifics
- I got the datasheet today from AMS, thanks to them for being so fast
  and not require me to sign tons of papers!
- USB detection now works on as3525v2 using the as3543. Clip+ won't
  reboot to OF yet, it needs mkamsboot support first (usbstack disabled)
- Charging should work, the CHARGER register is at a different place, it
  is an extended PMU register -> use ascodec_read/write_charger() to
  access it
- real interrupts are not used yet for ENRD, we get thousands of
  interrupts per second, apparently only limited by the i2c clock.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26116 a1c6a512-1295-4272-9138-f99709370657
2010-05-17 20:53:25 +00:00
Rafaël Carré
b9beeccbcf as3525v1 use an as3515 audio codec/PMU, not an as3517 as previously thought
-> Change references to as3517 into as3515

there is a reference to the as3515 in the public as3525 datasheet to
support this fact

as3517 is used in the as3527 SoC, the (public) as3527 datasheet has
detailed information on its registers
the audio codec/PMU used in as3525v2 (thought to be as3543) appears to be
compatible (identical?) with as3517

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26075 a1c6a512-1295-4272-9138-f99709370657
2010-05-16 09:22:02 +00:00
Rafaël Carré
7831a23376 as3525v2: make sure volume is normal by writing Audioset2 register
If the bit 6 is set volume is much lower, without writing it explicitely
it is undefined.
According to linux sources this bit is related to mixer.

Initialize Audioset2 with low power 'hph' (probably headphones) quality,
as I couldn't make a difference with 'high quality' setting.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25890 a1c6a512-1295-4272-9138-f99709370657
2010-05-07 20:58:43 +00:00
Rafaël Carré
5e88c4b4de as3525v2: fix volume setting (can now go very low)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25732 a1c6a512-1295-4272-9138-f99709370657
2010-04-26 23:42:12 +00:00
Rafaël Carré
be177138d3 as3514: detail bit of AS3543_DAC_IF
it lets you select internal PLL or external MCLK and is not related to mute

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25731 a1c6a512-1295-4272-9138-f99709370657
2010-04-26 23:26:08 +00:00
Rafaël Carré
ed0c5edd62 as3525v2 : recording (FM only, no microphone yet)
Add HAVE_AS3543 config define to differentiate the bits changed since as3514/as3517
Enable recording on Fuzev2/Clipv2/Clip+, although it was tested on Clip+ only

Note: storage is still read-only so I tested by listening to headphones loopback and watching the recording level in recscreen

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25390 a1c6a512-1295-4272-9138-f99709370657
2010-03-29 22:26:58 +00:00
Rafaël Carré
17eca7bfa0 as3525v2: FM playback (only tested on Clip+)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25383 a1c6a512-1295-4272-9138-f99709370657
2010-03-29 19:48:18 +00:00
Rafaël Carré
1bfffbcaaa as3543: name 0x1b & 0x1c registers
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25379 a1c6a512-1295-4272-9138-f99709370657
2010-03-29 12:54:07 +00:00
Tobias Diedrich
47ab95904e Add handler for audio irq.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25299 a1c6a512-1295-4272-9138-f99709370657
2010-03-23 05:02:37 +00:00
Rafaël Carré
7042c96b4a Clip+: enable sound on "as3514" (as3543 in fact)
as3525 comes with a as3517, as3525v2 with a as3543, rename specific
registers accordingly

Existing problems: FM (line out) doesn't work, volume can't go below a
certain point

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25260 a1c6a512-1295-4272-9138-f99709370657
2010-03-20 17:09:44 +00:00
Bertrik Sikken
ea7f143096 FS#9611 - Sansa Clip radio code. Commit final part which enables the LINE2 input that carries the analog radio signal on ams sansas.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19927 a1c6a512-1295-4272-9138-f99709370657
2009-02-05 19:57:18 +00:00
Christian Gmeiner
ad6b6d764b cleanup audiohw_set_frequency by adding it to audiohw.h and removing it from all driver .h files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19806 a1c6a512-1295-4272-9138-f99709370657
2009-01-20 22:55:10 +00:00
Michael Sevakis
7d7969114d c200v1/e200v1: Add battery charging. This should be usable on v2 players but those should be evaluated for current, endpoint voltage and whether or not accurate battery readings may always be obtained (which determines algorithm setup and behavior).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19748 a1c6a512-1295-4272-9138-f99709370657
2009-01-11 10:07:22 +00:00
Michael Sevakis
e69d567d9e Bring consistency to pcm implementation and samplerate handling. Less low-level duplication. A small test_sampr fix so it works on coldfire again.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19400 a1c6a512-1295-4272-9138-f99709370657
2008-12-12 11:01:07 +00:00
Michael Sevakis
3511d94031 Add register bit defines for as3514 and clean stuff up. Reduce poppiness at startup and shutdown (and even powerup for e200). Really, I can't honestly say it will help anything but an e200v1 but I'm sick of the noises. ;)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19214 a1c6a512-1295-4272-9138-f99709370657
2008-11-25 16:16:06 +00:00
Dave Chapman
11b5d5a37e Remove some unneeded #includes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19105 a1c6a512-1295-4272-9138-f99709370657
2008-11-14 22:14:40 +00:00
Dave Chapman
c8d0a6522e Assume that AS3514_I2C_ADDR is not target-specific. If it turns out to be different to 0x46 in a future target, then perhaps move this definition into the ascodec-target.h files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19100 a1c6a512-1295-4272-9138-f99709370657
2008-11-12 11:23:44 +00:00
Rafaël Carré
527a1dbc70 Fix red: e200/c200 use ADC_UNREG_POWER define (for compatibility)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19080 a1c6a512-1295-4272-9138-f99709370657
2008-11-10 21:40:30 +00:00
Rafaël Carré
79e56a7410 as3514: do not error out if included by files which don't use AS3514_I2C_ADDR
If the model is unknown and try to use it, the build will fail anyway
because it will not be defined

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19079 a1c6a512-1295-4272-9138-f99709370657
2008-11-10 21:10:27 +00:00
Rafaël Carré
02dfae031a Sansa AMS: use the AS3514 ADC driver
Move the ADC defines to as3514.h, and make adc-target.h only include as3514.h
Implement the missing API (ascodec_readbytes, ascodec_(un)lock)

Revert the changes to the PP-specific arm/ascodec-target.h in r19073,
use a AS3525 specific ascodec-target.h while moving the AS3514 specific
code in export/as3514.h

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19076 a1c6a512-1295-4272-9138-f99709370657
2008-11-10 20:55:56 +00:00
Rafaël Carré
22c450a7f4 Merge target/arm/as3525/as3525-codec.h into target/arm/ascodec-target.h
The AMS Sansa use the same AS3514 registers (except USB_UTIL which was added)
Use the register defines in AMS Sansa code instead of hardcoded values

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19073 a1c6a512-1295-4272-9138-f99709370657
2008-11-10 19:53:12 +00:00
Dave Chapman
42f77d4eb0 Abstract the PortalPlayer AS3514 handling with an "ascodec" API - inspired by the wmcodec API used with the Wolfson codecs. The intention is to implement this API for the AS3525 and then share code with the Sansa V2 ports.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18940 a1c6a512-1295-4272-9138-f99709370657
2008-10-31 00:16:42 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Mark Arigo
b4275d4941 Philips GoGear SA9200 port. Working bootloader and normal builds, including sound. No touchpad now, buttons limited to using vol+/vol-/power for up/down/select. Rockbox USB is enabled since the OF is MTP only...read the warnings on the PortalPlayerUsb wiki page.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17591 a1c6a512-1295-4272-9138-f99709370657
2008-05-21 03:55:17 +00:00
Bertrik Sikken
a24f4b7a80 FS#8898 - Prefix AS3514 registers with AS3514_
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17130 a1c6a512-1295-4272-9138-f99709370657
2008-04-15 21:33:32 +00:00
Barry Wardell
0449c0ef5d Second part of FS#8272 - include charger status in Sansa debug menu.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16513 a1c6a512-1295-4272-9138-f99709370657
2008-03-04 14:31:14 +00:00
Christian Gmeiner
06971be8cd Return value of audiohw_set_xxx_vol is never used and most of the time we have a return 0; --> kick it
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16300 a1c6a512-1295-4272-9138-f99709370657
2008-02-13 11:19:23 +00:00
Christian Gmeiner
c6e9b8b7e1 move audiohw_enable_output to audiohw.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16251 a1c6a512-1295-4272-9138-f99709370657
2008-02-09 14:43:36 +00:00
Christian Gmeiner
41a67a7e90 get rid of audiohw_reset
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15720 a1c6a512-1295-4272-9138-f99709370657
2007-11-20 10:28:53 +00:00
Christian Gmeiner
c583f3c8d1 introduce general audiohw api for recording
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15687 a1c6a512-1295-4272-9138-f99709370657
2007-11-19 15:50:52 +00:00
Barry Wardell
007563c93d FS#8023: Use of AS3514 #defines instead of magic values.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15297 a1c6a512-1295-4272-9138-f99709370657
2007-10-25 09:03:47 +00:00
Mark Arigo
dbc6b4e39a Sansa c200 port. Rockbox works with sound. Several features are disabled including some lcd options, FM radio, recording, and all plugins. Loading the OF from the Rockbox bootloader does not work.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14625 a1c6a512-1295-4272-9138-f99709370657
2007-09-06 03:28:58 +00:00
Christian Gmeiner
d1178d2d76 * changed pararmeter of audiohw_mute from int to bool
* unification of init and close
  NOTE: audiohw_init is a void function now, because it never (can) fail
        okay  from JdGordon@irc



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13622 a1c6a512-1295-4272-9138-f99709370657
2007-06-13 06:33:40 +00:00
Christian Gmeiner
23279cd43a some little more work on audio codec driver unification - more will follow
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13620 a1c6a512-1295-4272-9138-f99709370657
2007-06-11 23:39:07 +00:00
Marcoen Hirschberg
10e21d19bf make audiohw.h include the DAC header files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13473 a1c6a512-1295-4272-9138-f99709370657
2007-05-22 20:17:35 +00:00