What the module does :-

Defines the GPIO pins as :-
GPIO 18 (I2S PCM)
GPIO 19 (I2S LRCK)
GPIO 20 (I2S Din)
GPIO 21 (I2s Dout)
GPIO 05 (used as an output to control HiFiBerry crystal selection)
GPIO 06 (used as an output to control HiFiBerry crystal selection)

Creates A I2S Sound audio device and uses DMA for background sound transfer.

Enables hifiberry cards DMA tranfers or disables the DMA (audio on /off)

You can select between the I2S audio and the standard output device using
the sound configuration module in !boot.

HiFiBerry Dac & Digi Card Setup
I have left the setup of the various cards as seperate BASIC programs
so people can write there own drivers for different cards and still 
use the I2S module to enable the audio transfer, the supplied programs are:-

!Dac+Light    (IC ES9023 )  uses PI I2S clk for sound generation
!Dac+Standard (IC PCM5122)  uses PI I2S clk for sound generation
!Dac_Plus     (IC PCM5122)  uses its own dual board crystal osc
!Digi_B+      (IC WM8804G)  uses its own single on board crystal osc clk
!Digi_Pro     (IC WM8804G)  uses its own dual board crystal osc

These Programs each load the module from the !module Directory
and selects the I2S audio device to be the default controller.

Please note:-  
DAC or Digi Board based on the same ICs should work.
The main difference between the lower quality and higher quality boards
is the way the clock for audio is derived in the lower quality boards
they use the PIs I2S clock as a master which drives the HiFiberry board
in the higher quality boards the PI I2S clock becomes a slave which is driven
from the HiFiberry Boards.

Known Problems:-
When using a PI3 sound interference can be heard, reading on the internet
Raspbian also had problems and made changes to the kernel to cure it.





