rockbox/firmware/target/arm
Dana Conrad 9ce66e088e Add USB Audio 1.0 support
Original commit credit to Amaury Pouly, Moshe Piekarski
Pushed across the finish line by Dana Conrad

To enable, see setting under General Settings --> System --> USB-DAC.
On devices with few endpoints, this may not work while HID and/or
mass storage is enabled.

Adds new dedicated mixer channel.

setting usb-dac can have values:
- never (0)
- always (1)
- while_charge_only (2)
- while_mass_storage (3)

Relevant devices are DWC2 and ARC usb controller devices. That being:
x1000 Native targets (m3k, erosqnative, q1, others...?),
sansac200, creativezenxfi2, vibe500, ipodmini2g,
ipod4g, creativezenxfi, creativezenxfi3, sansaview, ipodcolor,
creativezenxfistyle, samsungypz5, sansafuzeplus, iriverh10_5gb,
tatungtpj1022, gigabeats, faketarget, samsungyh820, gogearhdd1630, samsungyh925, ipodmini1g, ipodvideo, creativezenmozaic, sonynwze370, creativezen, gogearsa9200, gogearhdd6330, sonynwze360, sansae200, mrobe100, iriverh10, creativezenv, ipodnano1g, samsungyh920

USB Driver-wise, it should be noted that this patch requires some
slight changes:
- proper blocking on control OUT transfers, to make sure the data is
  received *before* using it, the usb_core should probably use that too
- drivers can now support interface alternate settings
- drivers can be notified of completion by a new fast handler, which
  is called directly from the driver; this is is necessary for
  isochronous transfers because going through the usb queue is way too
  slow

Designware changes:

- enable for USBOTG_DESIGNWARE
- set maxpacketsize to 1023 for ISO endpoints

Change-Id: I570871884a4e4820b4312b203b07701f06ecacc6
2025-11-15 07:30:15 -05:00
..
as3525 as3525: Fix build warning with newer toolchains 2025-09-09 10:03:22 -04:00
at91sam Get rid of stupid _backlight_* function names 2015-01-12 11:09:27 +01:00
cortex-m arm: add ARM Cortex-M register definitions 2025-04-20 20:19:10 -04:00
imx31 gigabeats: Fix compilation with -fno-common 2025-08-05 07:25:23 -04:00
imx233 STMP37xx/iMX233: reduce popping noise on power on/off (Version 1) 2025-11-12 16:07:23 -05:00
ipod ipod: Small cleanup of piezo code on PP502x-based iPods 2025-10-01 20:46:43 -04:00
iriver Remove BATTERY_TYPES 2025-03-11 02:26:38 -04:00
olympus Remove BATTERY_TYPES 2025-03-11 02:26:38 -04:00
pbell Remove BATTERY_TYPES 2025-03-11 02:26:38 -04:00
philips Remove BATTERY_TYPES 2025-03-11 02:26:38 -04:00
pp IAP: First steps towards true multiport state 2025-08-20 07:56:43 -04:00
rk27xx misc: Ensure stacks are always aligned with the native pointer size. 2025-09-05 19:43:11 -04:00
s3c2440 arm: split ARM cache maintenance functions to separate header 2025-04-21 12:39:47 -04:00
s5l8700 IAP: First steps towards true multiport state 2025-08-20 07:56:43 -04:00
s5l8702 ipod6g: Improve power management with CE-ATA devices 2025-09-17 08:23:41 -04:00
samsung Remove BATTERY_TYPES 2025-03-11 02:26:38 -04:00
sandisk Remove BATTERY_TYPES 2025-03-11 02:26:38 -04:00
stm32 echoplayer: fix incorrect button reporting 2025-10-01 18:28:12 +01:00
tcc780x arm: split ARM cache maintenance functions to separate header 2025-04-21 12:39:47 -04:00
tms320dm320 misc: Fix some build warnings with gcc9 2025-09-21 00:18:28 -04:00
ata-as-arm.S arm: Use -masm-syntax-unified when compiling with gcc8 or newer 2024-05-08 21:45:42 -04:00
ata-nand-telechips.c storage: 64-bit sector offsets 2024-08-12 14:23:44 -04:00
bits-armv4.S Make atomic bit modification functions return previous value. 2017-10-30 21:43:15 -04:00
bits-armv6.S Make atomic bit modification functions return previous value. 2017-10-30 21:43:15 -04:00
cpucache-arm.h arm: split ARM cache maintenance functions to separate header 2025-04-21 12:39:47 -04:00
cpucache-armv7m.c arm: implement cache maintenance ops for ARMv7-M 2025-04-21 13:07:38 -04:00
cpucache-armv7m.h arm: implement cache maintenance ops for ARMv7-M 2025-04-21 13:07:38 -04:00
crt0.S Add boot data to MOST AS3525 Devices 2017-10-29 17:52:40 +01:00
i2c-telechips.c Remove bad mutex_* calls in telechips i2c driver 2017-08-10 21:53:55 -04:00
lcd-c200_c200v2.c Revert "Remove YUV blitting functions and LCD modes" 2022-10-13 11:08:06 -04:00
lcd-ssd1815.c Lcd save function pointer to frame buffer get_address_fn before loops 2022-03-21 23:53:48 -04:00
mmu-arm.h arm: split ARM cache maintenance functions to separate header 2025-04-21 12:39:47 -04:00
mmu-arm.S imx233: define HAVE_TEST_AND_CLEAN_CACHE 2012-06-07 14:48:43 +02:00
mmu-armv6.S S5L8720: Add support for TTB and MMU 2024-12-06 22:00:04 +02:00
nvic-arm.h arm: add NVIC utility functions 2025-04-21 13:07:38 -04:00
pcm-telechips.c Fix unified syntax in ARM inline assembly 2023-03-23 18:16:33 +00:00
powermgmt-ascodec.c ascodec (sansas) add a 10 minute delay before re-enabling charge 2024-12-19 12:11:38 -05:00
system-arm-classic.c arm: add initial ARM Cortex-M support 2025-04-18 13:19:42 -04:00
system-arm-classic.h arm: add initial ARM Cortex-M support 2025-04-18 13:19:42 -04:00
system-arm-micro.c New WIP port: Echo R1 2025-04-22 20:08:08 -04:00
system-arm-micro.h arm: add initial ARM Cortex-M support 2025-04-18 13:19:42 -04:00
system-arm.h arm: add initial ARM Cortex-M support 2025-04-18 13:19:42 -04:00
uc87xx.c Rename UC870x to UC87xx 2024-11-21 20:07:50 -05:00
usb-drv-arc.c Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
usb-s3c6400x.c usb: introduce new control request API 2021-10-16 15:58:43 -04:00
usb-tcc.c usb: introduce new control request API 2021-10-16 15:58:43 -04:00
vectors-arm-micro.S arm: add initial ARM Cortex-M support 2025-04-18 13:19:42 -04:00
wmcodec-telechips.c Nuke all TCC77x targets: iAudio 7, Sansa C100, M200(v1-3), Logik DAX 2021-04-26 07:41:51 -04:00