sound: Add new driver for GPIO based PDM output

This is a new driver for outputting PDM data via two GPIOs,
supporting mono and stereo PDM formats.

The driver does not attempt to anything special with timing,
it just sends the data as fast as the GPIO interface for whatever
system is being used will support.  This may need to be tweaked
in the future but for now the current platform this is used on
the GPIO interface is the bottleneck and there is not need to
try and modulate the output stream.

It has a facility to start the PDM clock before sending data in
case the codec that it is talking to needs the PDM clock active
for its own internal clocking before it can handle data.

BUG=chrome-os-partner:42283
BRANCH=none
TEST=test audio beep on glados

Change-Id: I8b6c149d324153a03c5b56b36e872bddaf06945e
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/301384
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
4 files changed