add all project files
This commit is contained in:
parent
d8bb6220a3
commit
57b9cc640c
|
@ -0,0 +1,11 @@
|
|||
obj-m := wm8960.o
|
||||
|
||||
all:
|
||||
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
|
||||
|
||||
clean:
|
||||
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
|
||||
|
||||
install:
|
||||
sudo cp wm8960.ko /lib/modules/$(shell uname -r)
|
||||
sudo depmod -a
|
|
@ -0,0 +1,758 @@
|
|||
state.ALSA {
|
||||
control.1 {
|
||||
iface MIXER
|
||||
name 'PCM Playback Volume'
|
||||
value -2000
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '-10239 - 400'
|
||||
dbmin -9999999
|
||||
dbmax 400
|
||||
dbvalue.0 -2000
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface MIXER
|
||||
name 'PCM Playback Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface MIXER
|
||||
name 'PCM Playback Route'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 2'
|
||||
}
|
||||
}
|
||||
control.4 {
|
||||
iface PCM
|
||||
name 'IEC958 Playback Default'
|
||||
value '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||
comment {
|
||||
access 'read write'
|
||||
type IEC958
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.5 {
|
||||
iface PCM
|
||||
name 'IEC958 Playback Con Mask'
|
||||
value '0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||
comment {
|
||||
access read
|
||||
type IEC958
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.6 {
|
||||
iface PCM
|
||||
name 'IEC958 Playback PCM Stream'
|
||||
value '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||
comment {
|
||||
access 'read write inactive'
|
||||
type IEC958
|
||||
count 1
|
||||
}
|
||||
}
|
||||
}
|
||||
state.seeedvoicecard {
|
||||
control.1 {
|
||||
iface MIXER
|
||||
name 'Capture Volume'
|
||||
value.0 58
|
||||
value.1 58
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 63'
|
||||
dbmin -1725
|
||||
dbmax 3000
|
||||
dbvalue.0 2625
|
||||
dbvalue.1 2625
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface MIXER
|
||||
name 'Capture Volume ZC Switch'
|
||||
value.0 0
|
||||
value.1 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 1'
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface MIXER
|
||||
name 'Capture Switch'
|
||||
value.0 true
|
||||
value.1 true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.4 {
|
||||
iface MIXER
|
||||
name 'Left Input Boost Mixer LINPUT3 Volume'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
dbmin -9999999
|
||||
dbmax 600
|
||||
dbvalue.0 -9999999
|
||||
}
|
||||
}
|
||||
control.5 {
|
||||
iface MIXER
|
||||
name 'Left Input Boost Mixer LINPUT2 Volume'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
dbmin -9999999
|
||||
dbmax 600
|
||||
dbvalue.0 -9999999
|
||||
}
|
||||
}
|
||||
control.6 {
|
||||
iface MIXER
|
||||
name 'Right Input Boost Mixer RINPUT3 Volume'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
dbmin -9999999
|
||||
dbmax 600
|
||||
dbvalue.0 -9999999
|
||||
}
|
||||
}
|
||||
control.7 {
|
||||
iface MIXER
|
||||
name 'Right Input Boost Mixer RINPUT2 Volume'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
dbmin -9999999
|
||||
dbmax 600
|
||||
dbvalue.0 -9999999
|
||||
}
|
||||
}
|
||||
control.8 {
|
||||
iface MIXER
|
||||
name 'Right Input Boost Mixer RINPUT1 Volume'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 3'
|
||||
dbmin 0
|
||||
dbmax 2900
|
||||
dbvalue.0 0
|
||||
}
|
||||
}
|
||||
control.9 {
|
||||
iface MIXER
|
||||
name 'Left Input Boost Mixer LINPUT1 Volume'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 3'
|
||||
dbmin 0
|
||||
dbmax 2900
|
||||
dbvalue.0 0
|
||||
}
|
||||
}
|
||||
control.10 {
|
||||
iface MIXER
|
||||
name 'Playback Volume'
|
||||
value.0 255
|
||||
value.1 255
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 255'
|
||||
dbmin -9999999
|
||||
dbmax 0
|
||||
dbvalue.0 0
|
||||
dbvalue.1 0
|
||||
}
|
||||
}
|
||||
control.11 {
|
||||
iface MIXER
|
||||
name 'Headphone Playback Volume'
|
||||
value.0 103
|
||||
value.1 103
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 127'
|
||||
dbmin -9999999
|
||||
dbmax 600
|
||||
dbvalue.0 -1800
|
||||
dbvalue.1 -1800
|
||||
}
|
||||
}
|
||||
control.12 {
|
||||
iface MIXER
|
||||
name 'Headphone Playback ZC Switch'
|
||||
value.0 false
|
||||
value.1 false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.13 {
|
||||
iface MIXER
|
||||
name 'Speaker Playback Volume'
|
||||
value.0 127
|
||||
value.1 127
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 127'
|
||||
dbmin -9999999
|
||||
dbmax 600
|
||||
dbvalue.0 600
|
||||
dbvalue.1 600
|
||||
}
|
||||
}
|
||||
control.14 {
|
||||
iface MIXER
|
||||
name 'Speaker Playback ZC Switch'
|
||||
value.0 false
|
||||
value.1 false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.15 {
|
||||
iface MIXER
|
||||
name 'Speaker DC Volume'
|
||||
value 4
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 5'
|
||||
}
|
||||
}
|
||||
control.16 {
|
||||
iface MIXER
|
||||
name 'Speaker AC Volume'
|
||||
value 5
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 5'
|
||||
}
|
||||
}
|
||||
control.17 {
|
||||
iface MIXER
|
||||
name 'PCM Playback -6dB Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.18 {
|
||||
iface MIXER
|
||||
name 'ADC Polarity'
|
||||
value 'No Inversion'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 'No Inversion'
|
||||
item.1 'Left Inverted'
|
||||
item.2 'Right Inverted'
|
||||
item.3 'Stereo Inversion'
|
||||
}
|
||||
}
|
||||
control.19 {
|
||||
iface MIXER
|
||||
name 'ADC High Pass Filter Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.20 {
|
||||
iface MIXER
|
||||
name 'DAC Polarity'
|
||||
value 'No Inversion'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 'No Inversion'
|
||||
item.1 'Left Inverted'
|
||||
item.2 'Right Inverted'
|
||||
item.3 'Stereo Inversion'
|
||||
}
|
||||
}
|
||||
control.21 {
|
||||
iface MIXER
|
||||
name 'DAC Deemphasis Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.22 {
|
||||
iface MIXER
|
||||
name '3D Filter Upper Cut-Off'
|
||||
value High
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 High
|
||||
item.1 Low
|
||||
}
|
||||
}
|
||||
control.23 {
|
||||
iface MIXER
|
||||
name '3D Filter Lower Cut-Off'
|
||||
value Low
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 Low
|
||||
item.1 High
|
||||
}
|
||||
}
|
||||
control.24 {
|
||||
iface MIXER
|
||||
name '3D Volume'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 15'
|
||||
}
|
||||
}
|
||||
control.25 {
|
||||
iface MIXER
|
||||
name '3D Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.26 {
|
||||
iface MIXER
|
||||
name 'ALC Function'
|
||||
value Off
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 Off
|
||||
item.1 Right
|
||||
item.2 Left
|
||||
item.3 Stereo
|
||||
}
|
||||
}
|
||||
control.27 {
|
||||
iface MIXER
|
||||
name 'ALC Max Gain'
|
||||
value 7
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
}
|
||||
}
|
||||
control.28 {
|
||||
iface MIXER
|
||||
name 'ALC Target'
|
||||
value 4
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 15'
|
||||
}
|
||||
}
|
||||
control.29 {
|
||||
iface MIXER
|
||||
name 'ALC Min Gain'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
}
|
||||
}
|
||||
control.30 {
|
||||
iface MIXER
|
||||
name 'ALC Hold Time'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 15'
|
||||
}
|
||||
}
|
||||
control.31 {
|
||||
iface MIXER
|
||||
name 'ALC Mode'
|
||||
value ALC
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 ALC
|
||||
item.1 Limiter
|
||||
}
|
||||
}
|
||||
control.32 {
|
||||
iface MIXER
|
||||
name 'ALC Decay'
|
||||
value 3
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 15'
|
||||
}
|
||||
}
|
||||
control.33 {
|
||||
iface MIXER
|
||||
name 'ALC Attack'
|
||||
value 2
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 15'
|
||||
}
|
||||
}
|
||||
control.34 {
|
||||
iface MIXER
|
||||
name 'Noise Gate Threshold'
|
||||
value 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 31'
|
||||
}
|
||||
}
|
||||
control.35 {
|
||||
iface MIXER
|
||||
name 'Noise Gate Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.36 {
|
||||
iface MIXER
|
||||
name 'ADC PCM Capture Volume'
|
||||
value.0 195
|
||||
value.1 195
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 255'
|
||||
dbmin -9999999
|
||||
dbmax 3000
|
||||
dbvalue.0 0
|
||||
dbvalue.1 0
|
||||
}
|
||||
}
|
||||
control.37 {
|
||||
iface MIXER
|
||||
name 'Left Output Mixer Boost Bypass Volume'
|
||||
value 2
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
dbmin -2100
|
||||
dbmax 0
|
||||
dbvalue.0 -1500
|
||||
}
|
||||
}
|
||||
control.38 {
|
||||
iface MIXER
|
||||
name 'Left Output Mixer LINPUT3 Volume'
|
||||
value 2
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
dbmin -2100
|
||||
dbmax 0
|
||||
dbvalue.0 -1500
|
||||
}
|
||||
}
|
||||
control.39 {
|
||||
iface MIXER
|
||||
name 'Right Output Mixer Boost Bypass Volume'
|
||||
value 5
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
dbmin -2100
|
||||
dbmax 0
|
||||
dbvalue.0 -600
|
||||
}
|
||||
}
|
||||
control.40 {
|
||||
iface MIXER
|
||||
name 'Right Output Mixer RINPUT3 Volume'
|
||||
value 2
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 7'
|
||||
dbmin -2100
|
||||
dbmax 0
|
||||
dbvalue.0 -1500
|
||||
}
|
||||
}
|
||||
control.41 {
|
||||
iface MIXER
|
||||
name 'ADC Data Output Select'
|
||||
value 'Left Data = Left ADC; Right Data = Right ADC'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 'Left Data = Left ADC; Right Data = Right ADC'
|
||||
item.1 'Left Data = Left ADC; Right Data = Left ADC'
|
||||
item.2 'Left Data = Right ADC; Right Data = Right ADC'
|
||||
item.3 'Left Data = Right ADC; Right Data = Left ADC'
|
||||
}
|
||||
}
|
||||
control.42 {
|
||||
iface MIXER
|
||||
name 'DAC Mono Mix'
|
||||
value Stereo
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 Stereo
|
||||
item.1 Mono
|
||||
}
|
||||
}
|
||||
control.43 {
|
||||
iface MIXER
|
||||
name 'Left Boost Mixer LINPUT2 Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.44 {
|
||||
iface MIXER
|
||||
name 'Left Boost Mixer LINPUT3 Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.45 {
|
||||
iface MIXER
|
||||
name 'Left Boost Mixer LINPUT1 Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.46 {
|
||||
iface MIXER
|
||||
name 'Right Boost Mixer RINPUT2 Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.47 {
|
||||
iface MIXER
|
||||
name 'Right Boost Mixer RINPUT3 Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.48 {
|
||||
iface MIXER
|
||||
name 'Right Boost Mixer RINPUT1 Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.49 {
|
||||
iface MIXER
|
||||
name 'Left Input Mixer Boost Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.50 {
|
||||
iface MIXER
|
||||
name 'Right Input Mixer Boost Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.51 {
|
||||
iface MIXER
|
||||
name 'Left Output Mixer PCM Playback Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.52 {
|
||||
iface MIXER
|
||||
name 'Left Output Mixer LINPUT3 Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.53 {
|
||||
iface MIXER
|
||||
name 'Left Output Mixer Boost Bypass Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.54 {
|
||||
iface MIXER
|
||||
name 'Right Output Mixer PCM Playback Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.55 {
|
||||
iface MIXER
|
||||
name 'Right Output Mixer RINPUT3 Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.56 {
|
||||
iface MIXER
|
||||
name 'Right Output Mixer Boost Bypass Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.57 {
|
||||
iface MIXER
|
||||
name 'Mono Output Mixer Left Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.58 {
|
||||
iface MIXER
|
||||
name 'Mono Output Mixer Right Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
dtoverlay -r seeed-voicecard
|
||||
dtc -@ -I dts -O dtb -o seeed-voicecard.dtbo seeed-voicecard-overlay.dts
|
||||
cp seeed-voicecard.dtbo /boot/overlays
|
||||
dtoverlay seeed-voicecard
|
|
@ -0,0 +1,123 @@
|
|||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
fragment@1 {
|
||||
target-path="/";
|
||||
__overlay__ {
|
||||
wm8960_mclk: wm8960_mclk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <12288000>;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
fragment@2 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
wm8960: wm8960{
|
||||
compatible = "wlf,wm8960";
|
||||
reg = <0x1a>;
|
||||
#sound-dai-cells = <0>;
|
||||
AVDD-supply = <&vdd_5v0_reg>;
|
||||
DVDD-supply = <&vdd_3v3_reg>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&sound>;
|
||||
master_overlay: __dormant__ {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,format = "i2s";
|
||||
simple-audio-card,name = "seeed-voicecard";
|
||||
simple-audio-card,bitclock-master = <&dailink0_master>;
|
||||
simple-audio-card,frame-master = <&dailink0_master>;
|
||||
status = "okay";
|
||||
simple-audio-card,widgets =
|
||||
"Microphone", "Mic Jack",
|
||||
"Line", "Line In",
|
||||
"Line", "Line Out",
|
||||
"Speaker", "Speaker",
|
||||
"Headphone", "Headphone Jack";
|
||||
simple-audio-card,routing =
|
||||
"Headphone Jack", "HP_L",
|
||||
"Headphone Jack", "HP_R",
|
||||
"Speaker", "SPK_LP",
|
||||
"Speaker", "SPK_LN",
|
||||
"LINPUT1", "Mic Jack",
|
||||
"LINPUT3", "Mic Jack",
|
||||
"RINPUT1", "Mic Jack",
|
||||
"RINPUT2", "Mic Jack";
|
||||
|
||||
|
||||
simple-audio-card,cpu {
|
||||
sound-dai = <&i2s>;
|
||||
};
|
||||
dailink0_master: simple-audio-card,codec {
|
||||
sound-dai = <&wm8960>;
|
||||
clocks = <&wm8960_mclk>;
|
||||
clock-names = "mclk";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&sound>;
|
||||
slave_overlay: __overlay__ {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,format = "i2s";
|
||||
simple-audio-card,name = "seeed-voicecard";
|
||||
status = "okay";
|
||||
simple-audio-card,widgets =
|
||||
"Microphone", "Mic Jack",
|
||||
"Line", "Line In",
|
||||
"Line", "Line Out",
|
||||
"Speaker", "Speaker",
|
||||
"Headphone", "Headphone Jack";
|
||||
simple-audio-card,routing =
|
||||
"Headphone Jack", "HP_L",
|
||||
"Headphone Jack", "HP_R",
|
||||
"Speaker", "SPK_LP",
|
||||
"Speaker", "SPK_LN",
|
||||
"LINPUT1", "Mic Jack",
|
||||
"LINPUT3", "Mic Jack",
|
||||
"RINPUT1", "Mic Jack",
|
||||
"RINPUT2", "Mic Jack";
|
||||
|
||||
|
||||
|
||||
|
||||
simple-audio-card,cpu {
|
||||
sound-dai = <&i2s>;
|
||||
};
|
||||
dailink0_slave: simple-audio-card,codec {
|
||||
sound-dai = <&wm8960>;
|
||||
clocks = <&wm8960_mclk>;
|
||||
clock-names = "mclk";
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
alsaname = <&master_overlay>,"simple-audio-card,name",
|
||||
<&slave_overlay>,"simple-audio-card,name";
|
||||
compatible = <&wm8960>,"compatible";
|
||||
master = <0>,"=2!3";
|
||||
};
|
||||
};
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue