diff --git a/firmware/target/arm/i2s-pp.c b/firmware/target/arm/i2s-pp.c index 0c33fbce28..38a3f9837e 100644 --- a/firmware/target/arm/i2s-pp.c +++ b/firmware/target/arm/i2s-pp.c @@ -70,7 +70,8 @@ void i2s_reset(void) IISCLK = (IISCLK & ~0x1ff) | 33; IISDIV = 7; IISCONFIG = ((IISCONFIG & ~IIS_FIFO_FORMAT_MASK) | IIS_FIFO_FORMAT_LE16); -#elif defined (IRIVER_H10) || defined (IRIVER_H10_5GB) +#elif defined (IRIVER_H10) || defined (IRIVER_H10_5GB) || defined(IPOD_NANO) + /* Nano works fine with IIS_FIFO_FORMAT_LE16 as well */ IISCONFIG = ((IISCONFIG & ~IIS_FIFO_FORMAT_MASK) | IIS_FIFO_FORMAT_LE16_2); #else IISCONFIG = ((IISCONFIG & ~IIS_FIFO_FORMAT_MASK) | IIS_FIFO_FORMAT_LE32); diff --git a/firmware/target/arm/pcm-pp.c b/firmware/target/arm/pcm-pp.c index ba2b6e5ada..ab785a933b 100644 --- a/firmware/target/arm/pcm-pp.c +++ b/firmware/target/arm/pcm-pp.c @@ -30,7 +30,7 @@ and codec setup using "arithmetic" the hardware supports like halfword swapping. Try to use 32-bit packed in IIS modes if possible. */ #if defined(SANSA_C200) || defined(SANSA_E200) \ - || defined(IRIVER_H10) || defined(IRIVER_H10_5GB) + || defined(IRIVER_H10) || defined(IRIVER_H10_5GB) || defined(IPOD_NANO) /* 16-bit, L-R packed into 32 bits with left in the least significant halfword */ #define SAMPLE_SIZE 16 #define TRANSFER_SIZE 32