This v3 patch set completes the missing changes from previous v2 patch set.
Only stereo S32_LE 48 kHz capture is supported due to hard wiring of DMIC and DMA parameters. Configurable format will be introduced later.
The used SOF kernel driver and topology were test versions. Patches will be upstreamed separately later.
This patch version was tested with the UP2 board on top of SOF git master 1e231b9dd297bc88c324502a561be67007604b16. Since there was no DMIC exHAT board connected the capture only produced the DC compensation ramp shape when the HW tries to compensate the max. full scale DC signal caused by the non-toggling PDM data line. Ramp shape looked correct and there were no discontinuities in PCM samples.
The CNL version has not been tested on a device.
Patch was also tested on a BYT device without DMIC capability where DAI/SSP feature functioned OK.
Seppo Ingalsuo (7): [v3]DMIC: Add PDM microphones (DMIC) support to DAI [v3]DMIC: Add configure command switch to disable DMIC [v3]DMIC: DMIC: Add dmic.c to drivers Makefile.am [v3]DMIC: Changes to APL platform [v3]DMIC: Changes to CNL platform [v3]DMIC: Add for format.h conversion from fractional to float [v3]DMIC: Move ceil_divide from numbers.c to numbers.h as static inline
configure.ac | 6 + src/drivers/Makefile.am | 6 +- src/drivers/dmic.c | 1361 +++++++++++++++++++++ src/include/sof/audio/format.h | 3 + src/include/sof/math/numbers.h | 15 +- src/math/numbers.c | 14 - src/platform/apollolake/dai.c | 59 + src/platform/apollolake/include/platform/memory.h | 5 + src/platform/apollolake/platform.c | 12 + src/platform/cannonlake/dai.c | 57 + src/platform/cannonlake/include/platform/memory.h | 8 +- src/platform/cannonlake/platform.c | 11 + 12 files changed, 1537 insertions(+), 20 deletions(-) create mode 100644 src/drivers/dmic.c