# Android ALSA configuration file for RK29/RK28 reference platform using the rt5625(codec) ASoC audio. ## ## Mixer Devices ## ctl.AndroidOut{ type hw card 0 } ctl.AndroidIn{ type hw card 0 } ctl.AndroidPlayback { type hw } ctl.AndroidRecord { type hw } pcm.AndroidPlayback { type hw } ## ## # Speaker ## pcm.AndroidPlayback_Speaker_normal { type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Playback Switch' value on } { name 'HPOUT Playback Switch' value.0 off value.1 off } { name 'Left HP Mixer DAC Playback Switch' value off } { name 'Right HP Mixer DAC Playback Switch' value off } { name 'SPKOUT Playback Switch' value.0 off value.1 off } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } # I2S IN -> DAC -> spk mixer -> SPKOUT { name 'DAC fun Mux' value 'Stereo DAC' } { name 'SPK Mixer DAC Mixer Playback Switch' value on } { name 'SPK Vol Input Mux' value 'SPK Mixer' } #-----------add by sxj------------------------- #max volume 63 { name 'PCM Playback Volume' value.0 50 value.1 50 } #---------------end---------------------------- #max volume 31 { name 'SPKOUT Playback Volume' value.0 31 value.1 31 } { name 'SPKOUT Playback Switch' value.0 on value.1 on } # VoIP & AEC on: # startup AEC { name 'VoIP Check' value on } { name 'VoDSP AEC' value 'Enable' } { name 'RxDP Enable Switch' value off } # downstream: I2S IN -> SRC1 -> RxDP MUX -> VODSP { name 'SRC1 Enable Switch' value on } { name 'RxDP src select Mux' value 'SRC1 Output' } # upstream MIC1 -> ADC_R -> PDM -> VODSP -> TxDP -> SRC2 -> IIS MUX -> I2S OUT { name 'ADCR fun select Control' value 'PDM Slave' } { name 'SRC2 Enable Switch' value on } { name 'SRC2 src select Mux' value 'TxDP' } { name 'IIS src select Mux' value 'SRC2 Output' } { name 'VoIP Switch' value on } ] } } pcm.AndroidPlayback_Speaker_voip { type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Playback Switch' value on } { name 'HPOUT Playback Switch' value.0 off value.1 off } { name 'Left HP Mixer DAC Playback Switch' value off } { name 'Right HP Mixer DAC Playback Switch' value off } { name 'SPKOUT Playback Switch' value.0 off value.1 off } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } # I2S IN -> DAC -> spk mixer -> SPKOUT { name 'DAC fun Mux' value 'Stereo DAC' } { name 'SPK Mixer DAC Mixer Playback Switch' value on } { name 'SPK Vol Input Mux' value 'SPK Mixer' } #-----------add by sxj------------------------- #max volume 63 { name 'PCM Playback Volume' value.0 50 value.1 50 } #---------------end---------------------------- #max volume 31 { name 'SPKOUT Playback Volume' value.0 31 value.1 31 } { name 'SPKOUT Playback Switch' value.0 on value.1 on } # VoIP & AEC on: # startup AEC { name 'VoIP Check' value on } { name 'VoDSP AEC' value 'Enable' } { name 'RxDP Enable Switch' value off } # downstream: I2S IN -> SRC1 -> RxDP MUX -> VODSP { name 'SRC1 Enable Switch' value on } { name 'RxDP src select Mux' value 'SRC1 Output' } # upstream MIC1 -> ADC_R -> PDM -> VODSP -> TxDP -> SRC2 -> IIS MUX -> I2S OUT { name 'ADCR fun select Control' value 'PDM Slave' } { name 'SRC2 Enable Switch' value on } { name 'SRC2 src select Mux' value 'TxDP' } { name 'IIS src select Mux' value 'SRC2 Output' } { name 'VoIP Switch' value on } ] } } pcm.AndroidPlayback_Speaker_incall{ type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ { name 'HPOUT Playback Switch' value.0 off value.1 off } { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPKOUT Playback Switch' value.0 off value.1 off } { name 'AUXOUT Playback Switch' value.0 off value.1 off } { name 'PLL Switch' value '11.2896->22.5792' } { name 'Phone Differential Input Control' value 'Enable' } { name 'AUXOUT mode switch' value 'Differential mode' } { name 'MIC1 Differential Input Control' value 'Enable' } # boost 0db max value 3 { name 'MIC1 Boost' value 0 } # gain 9db max volume 31 { name 'PCM Capture Volume' value.0 17 value.1 17 } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } # 3G Switch { name '3G Switch' value on } # startup AEC { name 'VoDSP AEC' value 'Enable' } # phone in -> spk mixer-> SPKOUT { name 'SPK Mixer Phone Playback Switch' value on } { name 'SPK Vol Input Mux' value 'SPK Mixer' } { name 'SPKOUT Playback Switch' value.0 on value.1 on } #-----------add by sxj------------------------- #max volume 31 { name 'Phone Playback Volume' value 25 } #---------------end---------------------------- #max volume 31 { name 'SPKOUT Playback Volume' value.0 31 value.1 31 } # phone in -> Left rec mixer -> ADC_L -> RxDP MUX -> RxDP -> VoDSP { name 'Left Rec Mixer Phone Capture Switch' value on } { name 'ADCL fun select Control' value 'VoDSP' } { name 'RxDP src select Mux' value 'ADCL to VoDSP' } { name 'RxDP Enable Switch' value on } # mic1 -> Right rec mixer -> ADC_R -> PDM -> vodsp -> TxDP -> VDAC MUX -> VDAC -> mono mixer -> auxout { name 'Right Rec Mixer Mic1 Capture Switch' value on } { name 'ADCR fun select Control' value 'PDM Slave' } { name 'VDAC src Mux' value 'TxDP' } { name 'Mono Mixer Mic2 Playback Switch' value off } { name 'Mono Mixer Voice DAC Playback Switch' value on } { name 'AUX Vol Input Mux' value 'Mono Mixer' } #-----------add by sxj------------------------- #max volume 31 { name 'Mic1 Playback Volume' value 23 } #---------------end---------------------------- #max volume 31 { name 'AUXOUT Playback Volume' value.0 29 value.1 29 } { name 'AUXOUT Playback Switch' value.0 on value.1 on } # Close VoIP & BT { name 'SRC1 Enable Switch' value off } { name 'SRC2 Enable Switch' value off } { name 'Right Rec Mixer Phone Capture Switch' value off } { name 'ADC Switch' value off } { name 'DAC Switch' value off } { name 'PCM src select Mux' value 'TxDP' } ] } } pcm.AndroidPlayback_Speaker_ringtone{ type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } #HP close { name 'HPOUT Playback Switch' value.0 off value.1 off } # I2S IN -> DAC -> spk mixer -> SPKOUT { name 'DAC fun Mux' value 'Stereo DAC' } { name 'SPK Mixer DAC Mixer Playback Switch' value on } { name 'SPK Vol Input Mux' value 'SPK Mixer' } #-----------add by sxj------------------------- #max volume 63 { name 'PCM Playback Volume' value.0 63 value.1 63 } #---------------end---------------------------- #max volume 31 { name 'SPKOUT Playback Volume' value.0 31 value.1 31 } { name 'SPKOUT Playback Switch' value.0 on value.1 on } ] } } ## ## # Earpiece(SPK) ## pcm.AndroidPlayback_Earpiece_normal{ type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } # close Earpiece_incall { name '3G Switch' value off } { name 'VoDSP AEC' value 'Disable' } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Mono Mixer Voice DAC Playback Switch' value off } # close Bluetooth_incall { name 'BT Switch' value off } { name 'Right Rec Mixer Phone Capture Switch' value off } ] } } pcm.AndroidPlayback_Earpiece_voip{ type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } # close Earpiece_incall { name '3G Switch' value off } { name 'VoDSP AEC' value 'Disable' } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Mono Mixer Voice DAC Playback Switch' value off } # close Bluetooth_incall { name 'BT Switch' value off } { name 'Right Rec Mixer Phone Capture Switch' value off } ] } } pcm.AndroidPlayback_Earpiece_incall{ type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ { name 'HPOUT Playback Switch' value.0 off value.1 off } { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPKOUT Playback Switch' value.0 off value.1 off } { name 'AUXOUT Playback Switch' value.0 off value.1 off } { name 'PLL Switch' value '11.2896->22.5792' } { name 'Phone Differential Input Control' value 'Enable' } { name 'AUXOUT mode switch' value 'Differential mode' } { name 'MIC1 Differential Input Control' value 'Enable' } # boost 0db max value 3 { name 'MIC1 Boost' value 0 } # gain 9db max volume 31 { name 'PCM Capture Volume' value.0 17 value.1 17 } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } # 3G Switch { name '3G Switch' value on } # startup AEC { name 'VoDSP AEC' value 'Enable' } # phone in -> spk mixer-> SPKOUT { name 'SPK Mixer Phone Playback Switch' value on } { name 'SPK Vol Input Mux' value 'SPK Mixer' } { name 'SPKOUT Playback Switch' value.0 on value.1 on } #-----------add by sxj------------------------- #max volume 31 { name 'Phone Playback Volume' value 25 } #---------------end---------------------------- #max volume 31 { name 'SPKOUT Playback Volume' value.0 31 value.1 31 } # phone in -> Left rec mixer -> ADC_L -> RxDP MUX -> RxDP -> VoDSP { name 'Left Rec Mixer Phone Capture Switch' value on } { name 'ADCL fun select Control' value 'VoDSP' } { name 'RxDP src select Mux' value 'ADCL to VoDSP' } { name 'RxDP Enable Switch' value on } # mic1 -> Right rec mixer -> ADC_R -> PDM -> vodsp -> TxDP -> VDAC MUX -> VDAC -> mono mixer -> auxout { name 'Right Rec Mixer Mic1 Capture Switch' value on } { name 'ADCR fun select Control' value 'PDM Slave' } { name 'VDAC src Mux' value 'TxDP' } { name 'Mono Mixer Mic2 Playback Switch' value off } { name 'Mono Mixer Voice DAC Playback Switch' value on } { name 'AUX Vol Input Mux' value 'Mono Mixer' } #-----------add by sxj------------------------- #max volume 31 { name 'Mic1 Playback Volume' value 23 } #---------------end---------------------------- #max volume 31 { name 'AUXOUT Playback Volume' value.0 29 value.1 29 } { name 'AUXOUT Playback Switch' value.0 on value.1 on } # Close VoIP & BT { name 'SRC1 Enable Switch' value off } { name 'SRC2 Enable Switch' value off } { name 'Right Rec Mixer Phone Capture Switch' value off } { name 'ADC Switch' value off } { name 'DAC Switch' value off } { name 'PCM src select Mux' value 'TxDP' } ] } } pcm.AndroidPlayback_Earpiece_ringtone{ type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } #HP close { name 'HPOUT Playback Switch' value.0 off value.1 off } # I2S IN -> DAC -> spk mixer -> SPKOUT { name 'DAC fun Mux' value 'Stereo DAC' } { name 'SPK Mixer DAC Mixer Playback Switch' value on } { name 'SPK Vol Input Mux' value 'SPK Mixer' } #-----------add by sxj------------------------- #max volume 63 { name 'PCM Playback Volume' value.0 63 value.1 63 } #---------------end---------------------------- #max volume 31 { name 'SPKOUT Playback Volume' value.0 31 value.1 31 } { name 'SPKOUT Playback Switch' value.0 on value.1 on } ] } } ## ## # Headphone ## pcm.AndroidPlayback_Headphone_normal { type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Playback Switch' value on } { name 'SPKOUT Playback Switch' value.0 off value.1 off } { name 'SPK Mixer DAC Mixer Playback Switch' value off } { name 'HPOUT Playback Switch' value.0 off value.1 off } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } # I2S IN -> DAC -> hp mixer -> HPOUT { name 'DAC fun Mux' value 'Stereo DAC' } { name 'Left HP Mixer DAC Playback Switch' value on } { name 'Right HP Mixer DAC Playback Switch' value on } { name 'HPL Vol Input Mux' value 'HP Mixer' } { name 'HPR Vol Input Mux' value 'HP Mixer' } #-----------add by sxj------------------------- #max volume 63 { name 'PCM Playback Volume' value.0 50 value.1 50 } #---------------end---------------------------- #max volume 31 { name 'HPOUT Playback Volume' value.0 27 value.1 27 } { name 'HPOUT Playback Switch' value.0 on value.1 on } # VoIP: { name 'Headset VoIP Check' value on } { name 'VoDSP AEC' value 'Disable' } # check VoIP { name 'RxDP Enable Switch' value off } { name 'ADCR fun select Control' value 'Stereo ADC' } { name 'IIS src select Mux' value 'ADC' } { name 'Headset VoIP Switch' value on } # close Headset_incall { name 'Headset 3G Switch' value off } { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'Mono Mixer Mic2 Playback Switch' value off } ] } } pcm.AndroidPlayback_Headphone_voip { type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Playback Switch' value on } { name 'SPKOUT Playback Switch' value.0 off value.1 off } { name 'SPK Mixer DAC Mixer Playback Switch' value off } { name 'HPOUT Playback Switch' value.0 off value.1 off } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } # I2S IN -> DAC -> hp mixer -> HPOUT { name 'DAC fun Mux' value 'Stereo DAC' } { name 'Left HP Mixer DAC Playback Switch' value on } { name 'Right HP Mixer DAC Playback Switch' value on } { name 'HPL Vol Input Mux' value 'HP Mixer' } { name 'HPR Vol Input Mux' value 'HP Mixer' } #-----------add by sxj------------------------- #max volume 63 { name 'PCM Playback Volume' value.0 50 value.1 50 } #---------------end---------------------------- #max volume 31 { name 'HPOUT Playback Volume' value.0 27 value.1 27 } { name 'HPOUT Playback Switch' value.0 on value.1 on } # VoIP: { name 'Headset VoIP Check' value on } { name 'VoDSP AEC' value 'Disable' } # check VoIP { name 'RxDP Enable Switch' value off } { name 'ADCR fun select Control' value 'Stereo ADC' } { name 'IIS src select Mux' value 'ADC' } { name 'Headset VoIP Switch' value on } # close Headset_incall { name 'Headset 3G Switch' value off } { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'Mono Mixer Mic2 Playback Switch' value off } ] } } pcm.AndroidPlayback_Headphone_incall{ type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } # 3G Switch { name 'Headset 3G Switch' value on } { name 'SPKOUT Playback Switch' value.0 off value.1 off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'HPOUT Playback Switch' value.0 off value.1 off } { name 'AUXOUT Playback Switch' value.0 off value.1 off } { name 'Phone Differential Input Control' value 'Enable' } { name 'AUXOUT mode switch' value 'Differential mode' } { name 'MIC1 Differential Input Control' value 'Enable' } #boost 30db max value 3 { name 'MIC1 Boost' value 2 } { name 'VoDSP AEC' value 'Disable' } # Disable 3G AEC { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'RxDP Enable Switch' value off } { name 'VDAC src Mux' value 'TxDC' } # phone in -> hp mixer-> HPOUT { name 'Mono HP Mixer Phone Playback Switch' value on } { name 'HPL Vol Input Mux' value 'HP Mixer' } { name 'HPR Vol Input Mux' value 'HP Mixer' } #-----------add by sxj------------------------- #max volume 31 { name 'Phone Playback Volume' value 23 } #---------------end---------------------------- #max volume 31 { name 'HPOUT Playback Volume' value.0 23 value.1 23 } { name 'HPOUT Playback Switch' value.0 on value.1 on } # mic1 -> mono mixer -> auxout { name 'Mono Mixer Voice DAC Playback Switch' value off } { name 'Mono Mixer Mic1 Playback Switch' value on } { name 'AUX Vol Input Mux' value 'Mono Mixer' } #-----------add by sxj------------------------- #max volume 31 { name 'Mic1 Playback Volume' value 23 } #---------------end---------------------------- #max volume 31 { name 'AUXOUT Playback Volume' value.0 29 value.1 29 } { name 'AUXOUT Playback Switch' value.0 on value.1 on } # Close VoIP & BT { name 'SRC1 Enable Switch' value off } { name 'SRC2 Enable Switch' value off } { name 'Right Rec Mixer Phone Capture Switch' value off } { name 'ADC Switch' value off } { name 'DAC Switch' value off } { name 'PCM src select Mux' value 'TxDP' } ] } } pcm.AndroidPlayback_Speaker_Headphone_normal{ type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Playback Switch' value on } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } #-----------add by sxj------------------------- #max volume 63 { name 'PCM Playback Volume' value.0 63 value.1 63 } #---------------end---------------------------- # I2S IN -> DAC -> hp mixer -> HPOUT { name 'DAC fun Mux' value 'Stereo DAC' } { name 'Left HP Mixer DAC Playback Switch' value on } { name 'Right HP Mixer DAC Playback Switch' value on } { name 'HPL Vol Input Mux' value 'HP Mixer' } { name 'HPR Vol Input Mux' value 'HP Mixer' } #max volume 31 { name 'HPOUT Playback Volume' value.0 23 value.1 23 } { name 'HPOUT Playback Switch' value.0 on value.1 on } # I2S IN -> DAC -> spk mixer -> SPKOUT { name 'SPK Mixer DAC Mixer Playback Switch' value on } { name 'SPK Vol Input Mux' value 'SPK Mixer' } #max volume 31 { name 'SPKOUT Playback Volume' value.0 31 value.1 31 } { name 'SPKOUT Playback Switch' value.0 on value.1 on } #close VoIP: { name 'Headset VoIP Check' value off } { name 'VoDSP AEC' value 'Disable' } { name 'RxDP Enable Switch' value off } { name 'Headset VoIP Switch' value off } ] } } pcm.AndroidPlayback_Speaker_Headphone_ringtone{ type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Playback Switch' value on } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } #-----------add by sxj------------------------- #max volume 63 { name 'PCM Playback Volume' value.0 63 value.1 63 } #---------------end---------------------------- # I2S IN -> DAC -> hp mixer -> HPOUT { name 'DAC fun Mux' value 'Stereo DAC' } { name 'Left HP Mixer DAC Playback Switch' value on } { name 'Right HP Mixer DAC Playback Switch' value on } { name 'HPL Vol Input Mux' value 'HP Mixer' } { name 'HPR Vol Input Mux' value 'HP Mixer' } #max volume 31 { name 'HPOUT Playback Volume' value.0 23 value.1 23 } { name 'HPOUT Playback Switch' value.0 on value.1 on } # I2S IN -> DAC -> spk mixer -> SPKOUT { name 'SPK Mixer DAC Mixer Playback Switch' value on } { name 'SPK Vol Input Mux' value 'SPK Mixer' } #max volume 31 { name 'SPKOUT Playback Volume' value.0 31 value.1 31 } { name 'SPKOUT Playback Switch' value.0 on value.1 on } #close VoIP: { name 'Headset VoIP Check' value off } { name 'VoDSP AEC' value 'Disable' } { name 'RxDP Enable Switch' value off } { name 'Headset VoIP Switch' value off } ] } } ## ## # Headset ## pcm.AndroidPlayback_Headset_normal { type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Playback Switch' value on } { name 'SPKOUT Playback Switch' value.0 off value.1 off } { name 'SPK Mixer DAC Mixer Playback Switch' value off } { name 'HPOUT Playback Switch' value.0 off value.1 off } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } # I2S IN -> DAC -> hp mixer -> HPOUT { name 'DAC fun Mux' value 'Stereo DAC' } { name 'Left HP Mixer DAC Playback Switch' value on } { name 'Right HP Mixer DAC Playback Switch' value on } { name 'HPL Vol Input Mux' value 'HP Mixer' } { name 'HPR Vol Input Mux' value 'HP Mixer' } #-----------add by sxj------------------------- #max volume 63 { name 'PCM Playback Volume' value.0 50 value.1 50 } #---------------end---------------------------- #max volume 31 { name 'HPOUT Playback Volume' value.0 27 value.1 27 } { name 'HPOUT Playback Switch' value.0 on value.1 on } # VoIP: { name 'Headset VoIP Check' value on } { name 'VoDSP AEC' value 'Disable' } # check VoIP { name 'RxDP Enable Switch' value off } { name 'ADCR fun select Control' value 'Stereo ADC' } { name 'IIS src select Mux' value 'ADC' } { name 'Headset VoIP Switch' value on } # close Headset_incall { name 'Headset 3G Switch' value off } { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'Mono Mixer Mic2 Playback Switch' value off } ] } } pcm.AndroidPlayback_Headset_voip { type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Playback Switch' value on } { name 'SPKOUT Playback Switch' value.0 off value.1 off } { name 'SPK Mixer DAC Mixer Playback Switch' value off } { name 'HPOUT Playback Switch' value.0 off value.1 off } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } # I2S IN -> DAC -> hp mixer -> HPOUT { name 'DAC fun Mux' value 'Stereo DAC' } { name 'Left HP Mixer DAC Playback Switch' value on } { name 'Right HP Mixer DAC Playback Switch' value on } { name 'HPL Vol Input Mux' value 'HP Mixer' } { name 'HPR Vol Input Mux' value 'HP Mixer' } #-----------add by sxj------------------------- #max volume 63 { name 'PCM Playback Volume' value.0 50 value.1 50 } #---------------end---------------------------- #max volume 31 { name 'HPOUT Playback Volume' value.0 27 value.1 27 } { name 'HPOUT Playback Switch' value.0 on value.1 on } # VoIP: { name 'Headset VoIP Check' value on } { name 'VoDSP AEC' value 'Disable' } # check VoIP { name 'RxDP Enable Switch' value off } { name 'ADCR fun select Control' value 'Stereo ADC' } { name 'IIS src select Mux' value 'ADC' } { name 'Headset VoIP Switch' value on } # close Headset_incall { name 'Headset 3G Switch' value off } { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'Mono Mixer Mic2 Playback Switch' value off } ] } } pcm.AndroidPlayback_Headset_incall{ type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } # 3G Switch { name 'Headset 3G Switch' value on } { name 'SPKOUT Playback Switch' value.0 off value.1 off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'HPOUT Playback Switch' value.0 off value.1 off } { name 'AUXOUT Playback Switch' value.0 off value.1 off } { name 'Phone Differential Input Control' value 'Enable' } { name 'AUXOUT mode switch' value 'Differential mode' } #-----------add by sxj------------------------- { name 'MIC2 Differential Input Control' value 'Enable' } #---------------end---------------------------- #boost 30db max value 3 { name 'MIC2 Boost' value 2 } { name 'VoDSP AEC' value 'Disable' } # Disable 3G AEC { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'RxDP Enable Switch' value off } { name 'VDAC src Mux' value 'TxDC' } # phone in -> hp mixer-> HPOUT { name 'Mono HP Mixer Phone Playback Switch' value on } { name 'HPL Vol Input Mux' value 'HP Mixer' } { name 'HPR Vol Input Mux' value 'HP Mixer' } #-----------add by sxj------------------------- #max volume 31 { name 'Phone Playback Volume' value 23 } #---------------end---------------------------- #max volume 31 { name 'HPOUT Playback Volume' value.0 23 value.1 23 } { name 'HPOUT Playback Switch' value.0 on value.1 on } # mic2 -> mono mixer -> auxout { name 'Mono Mixer Voice DAC Playback Switch' value off } { name 'Mono Mixer Mic2 Playback Switch' value on } { name 'AUX Vol Input Mux' value 'Mono Mixer' } #-----------add by sxj------------------------- #max volume 31 { name 'Mic2 Playback Volume' value 23 } #---------------end---------------------------- #max volume 31 { name 'AUXOUT Playback Volume' value.0 29 value.1 29 } { name 'AUXOUT Playback Switch' value.0 on value.1 on } # Close VoIP & BT { name 'SRC1 Enable Switch' value off } { name 'SRC2 Enable Switch' value off } { name 'Right Rec Mixer Phone Capture Switch' value off } { name 'ADC Switch' value off } { name 'DAC Switch' value off } { name 'PCM src select Mux' value 'TxDP' } ] } } pcm.AndroidPlayback_Speaker_Headset_normal{ type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Playback Switch' value on } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } #-----------add by sxj------------------------- #max volume 63 { name 'PCM Playback Volume' value.0 63 value.1 63 } #---------------end---------------------------- # I2S IN -> DAC -> hp mixer -> HPOUT { name 'DAC fun Mux' value 'Stereo DAC' } { name 'Left HP Mixer DAC Playback Switch' value on } { name 'Right HP Mixer DAC Playback Switch' value on } { name 'HPL Vol Input Mux' value 'HP Mixer' } { name 'HPR Vol Input Mux' value 'HP Mixer' } #max volume 31 { name 'HPOUT Playback Volume' value.0 23 value.1 23 } { name 'HPOUT Playback Switch' value.0 on value.1 on } # I2S IN -> DAC -> spk mixer -> SPKOUT { name 'SPK Mixer DAC Mixer Playback Switch' value on } { name 'SPK Vol Input Mux' value 'SPK Mixer' } #max volume 31 { name 'SPKOUT Playback Volume' value.0 31 value.1 31 } { name 'SPKOUT Playback Switch' value.0 on value.1 on } #close VoIP: { name 'Headset VoIP Check' value off } { name 'VoDSP AEC' value 'Disable' } { name 'RxDP Enable Switch' value off } { name 'Headset VoIP Switch' value off } ] } } pcm.AndroidPlayback_Speaker_Headset_ringtone{ type hooks slave.pcm { type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ #close phone in { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'Playback Switch' value on } { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } #-----------add by sxj------------------------- #max volume 63 { name 'PCM Playback Volume' value.0 63 value.1 63 } #---------------end---------------------------- # I2S IN -> DAC -> hp mixer -> HPOUT { name 'DAC fun Mux' value 'Stereo DAC' } { name 'Left HP Mixer DAC Playback Switch' value on } { name 'Right HP Mixer DAC Playback Switch' value on } { name 'HPL Vol Input Mux' value 'HP Mixer' } { name 'HPR Vol Input Mux' value 'HP Mixer' } #max volume 31 { name 'HPOUT Playback Volume' value.0 23 value.1 23 } { name 'HPOUT Playback Switch' value.0 on value.1 on } # I2S IN -> DAC -> spk mixer -> SPKOUT { name 'SPK Mixer DAC Mixer Playback Switch' value on } { name 'SPK Vol Input Mux' value 'SPK Mixer' } #max volume 31 { name 'SPKOUT Playback Volume' value.0 31 value.1 31 } { name 'SPKOUT Playback Switch' value.0 on value.1 on } #close VoIP: { name 'Headset VoIP Check' value off } { name 'VoDSP AEC' value 'Disable' } { name 'RxDP Enable Switch' value off } { name 'Headset VoIP Switch' value off } ] } } ## ## # AndroidCapture ## pcm.AndroidCapture { type hooks slave.pcm default hooks.0 { type ctl_elems hook_args [ { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } { name 'Record Switch' value on } # MIC1 & MIC2 -> ADC rec mixer -> ADCL/R -> IIS MUX -> I2S OUT { name 'MIC1 Differential Input Control' value 'Enable' } # boost 20db { name 'MIC1 Boost' value 1 } { name 'MIC2 Boost' value 1 } # gain 19.5db max value 31 { name 'PCM Capture Volume' value.0 24 value.1 24 } { name 'Left Rec Mixer Mic1 Capture Switch' value on } { name 'Right Rec Mixer Mic1 Capture Switch' value on } { name 'Left Rec Mixer Mic2 Capture Switch' value on } { name 'Right Rec Mixer Mic2 Capture Switch' value on } { name 'ADCL fun select Control' value 'Stereo ADC' } { name 'ADCR fun select Control' value 'Stereo ADC' } { name 'IIS src select Mux' value 'ADC' } # VoIP: # check VoIP { name 'Capture VoIP Check' value on } # upstream MIC1 -> ADC_R -> PDM -> VODSP -> TxDP -> SRC2 -> IIS MUX -> I2S OUT { name 'ADCR fun select Control' value 'PDM Slave' } #johnny-3-9 { name 'SRC2 Enable Switch' value on } { name 'SRC2 src select Mux' value 'TxDP' } { name 'IIS src select Mux' value 'SRC2 Output' } # VoIP switch { name 'Capture VoIP Switch' value on } ] } } ## ## # BT ## pcm.AndroidPlayback_Bluetooth_incall { type hooks slave { pcm{ type hw card 0 device 1 } #rate 8000 } hooks.0 { type ctl_elems hook_args [ { name 'Mono Mixer ADCL Playback Switch' value off } { name 'Mono Mixer ADCR Playback Switch' value off } { name 'Left HP Mixer ADC Playback Switch' value off } { name 'Right HP Mixer ADC Playback Switch' value off } # BT Switch { name 'BT Switch' value on } { name 'HPOUT Playback Switch' value.0 off value.1 off } { name 'AUXOUT Playback Switch' value.0 off value.1 off } { name 'Phone Differential Input Control' value 'Enable' } # 0db { name 'PCM Capture Volume' value.0 11 value.1 11 } # stop AEC { name 'VoDSP AEC' value 'Disable' } # phone in -> Right rec mixer -> ADC_R -> PCM MUX -> PCM { name 'ADC Switch' value on } { name 'Right Rec Mixer Phone Capture Switch' value on } { name 'ADCR fun select Control' value 'Voice ADC' } { name 'PCM src select Mux' value 'ADCR' } # PCM -> VDAC MUX -> VDAC -> mono mixer -> auxout { name 'DAC Switch' value on } { name 'VDAC src Mux' value 'Voice PCM' } { name 'Mono Mixer Voice DAC Playback Switch' value on } { name 'AUX Vol Input Mux' value 'Mono Mixer' } { name 'AUXOUT Playback Volume' value.0 29 value.1 29 } { name 'AUXOUT Playback Switch' value.0 on value.1 on } # Close VoIP & 3G { name 'SRC1 Enable Switch' value off } { name 'SRC2 Enable Switch' value off } { name 'Left Rec Mixer Phone Capture Switch' value off } { name 'RxDP Enable Switch' value off } { name 'SPK Mixer Phone Playback Switch' value off } { name 'Mono HP Mixer Phone Playback Switch' value off } { name 'Mono Mixer Mic2 Playback Switch' value off } { name 'ADCL fun select Control' value 'Stereo ADC' } ] } } pcm.AndroidPlayback_Bluetooth_normal { type hooks slave { pcm{ type hw card 0 device 1 } } hooks.0 { type ctl_elems hook_args [ ] } } ## ## # HDMI ## pcm.AndroidPlayback_Speaker_HDMI_normal{ type hooks slave.pcm{ type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ { name 'Ext Spk Switch' value false} { name 'Headphone Jack Switch' value false} ] } } pcm.AndroidPlayback_HDMI_normal{ type hooks slave.pcm{ type hw card 0 device 0 } hooks.0 { type ctl_elems hook_args [ { name 'Ext Spk Switch' value false} { name 'Headphone Jack Switch' value false} ] } }