Message ID | 20230222163826.73354-1-macroalpha82@gmail.com |
---|---|
State | New |
Headers | show |
Series | ucm2: Rockchip: rk817: Add ALSA UCM support | expand |
On 22. 02. 23 17:38, Chris Morgan wrote: > From: Chris Morgan <macromorgan@hotmail.com> > > Add ALSA-UCM support for the Rockchip RK817 audio codec. This codec > is typically configured either with an internal or external amplifier > as reflected by the longname. This configuration has been tested on > the Anbernic RG353P (rk817_ext) and the Odroid Go Advance (rk817_int). Thank you for your contribution. > Signed-off-by: Chris Morgan <macromorgan@hotmail.com> > --- > ucm2/Rockchip/rk817-sound/HiFi.conf | 66 ++++++++++++++++++++++ > ucm2/Rockchip/rk817-sound/rk817-sound.conf | 7 +++ > ucm2/conf.d/simple-card/rk817_ext.conf | 1 + > ucm2/conf.d/simple-card/rk817_int.conf | 1 + > 4 files changed, 75 insertions(+) > create mode 100644 ucm2/Rockchip/rk817-sound/HiFi.conf > create mode 100644 ucm2/Rockchip/rk817-sound/rk817-sound.conf > create mode 120000 ucm2/conf.d/simple-card/rk817_ext.conf > create mode 120000 ucm2/conf.d/simple-card/rk817_int.conf > > diff --git a/ucm2/Rockchip/rk817-sound/HiFi.conf b/ucm2/Rockchip/rk817-sound/HiFi.conf > new file mode 100644 > index 0000000..e285db7 > --- /dev/null > +++ b/ucm2/Rockchip/rk817-sound/HiFi.conf > @@ -0,0 +1,66 @@ > +If.1 { > + Condition { > + Type ControlExists > + Control "name='Internal Speakers Switch'" > + } > + > + True { > + SectionDevice."Speaker".EnableSequence [ > + cset "name='Playback Mux' HP" > + cset "name='Internal Speakers Switch' on" > + ] It would be better to use variable (Define) to set the "Playback Mux", because the [] arrays are stacked after evaluation in this case like: SectionDevice."Speaker".EnableSequence [ cset "name='Playback Mux' SPK" cset "name='Playback Mux' HP" cset "name='Internal Speakers Switch' on" ] so Define.pbk_mux "SPK" .... If.1.True { Define.pbk_mux "HP" } .... SectionDevice."Speaker".EnableSequence [ cset "name='Playback Mux' ${var:pbk_mux}" ] Otherwise a nice clean config. Thanks, Jaroslav
diff --git a/ucm2/Rockchip/rk817-sound/HiFi.conf b/ucm2/Rockchip/rk817-sound/HiFi.conf new file mode 100644 index 0000000..e285db7 --- /dev/null +++ b/ucm2/Rockchip/rk817-sound/HiFi.conf @@ -0,0 +1,66 @@ +If.1 { + Condition { + Type ControlExists + Control "name='Internal Speakers Switch'" + } + + True { + SectionDevice."Speaker".EnableSequence [ + cset "name='Playback Mux' HP" + cset "name='Internal Speakers Switch' on" + ] + + SectionDevice."Speaker".DisableSequence [ + cset "name='Internal Speakers Switch' off" + ] + } +} + +SectionDevice."Speaker" { + Comment "Internal Speaker" + + EnableSequence [ + cset "name='Playback Mux' SPK" + ] + + Value { + PlaybackMasterElem "Master Playback Volume" + PlaybackPriority 100 + PlaybackPCM "hw:${CardId}" + } + + ConflictingDevice [ + "Headphones" + ] +} + +SectionDevice."Mic" { + Comment "Microphone" + + Value { + CapturePriority 100 + CapturePCM "hw:${CardId}" + CaptureMixerElem "Mic Capture Gain" + CaptureMasterElem "Master Capture Volume" + } +} + +SectionDevice."Headphones" { + Comment "Headphones" + + EnableSequence [ + cset "name='Playback Mux' HP" + ] + + Value { + PlaybackMasterElem "Master Playback Volume" + PlaybackPriority 200 + PlaybackPCM "hw:${CardId}" + JackControl "Headphones Jack" + JackHWMute "Speaker" + } + + ConflictingDevice [ + "Speaker" + ] +} diff --git a/ucm2/Rockchip/rk817-sound/rk817-sound.conf b/ucm2/Rockchip/rk817-sound/rk817-sound.conf new file mode 100644 index 0000000..6e326af --- /dev/null +++ b/ucm2/Rockchip/rk817-sound/rk817-sound.conf @@ -0,0 +1,7 @@ +Syntax 4 + +SectionUseCase."HiFi" { + File "/Rockchip/rk817-sound/HiFi.conf" + Comment "Play HiFi quality music" +} + diff --git a/ucm2/conf.d/simple-card/rk817_ext.conf b/ucm2/conf.d/simple-card/rk817_ext.conf new file mode 120000 index 0000000..6fa8db7 --- /dev/null +++ b/ucm2/conf.d/simple-card/rk817_ext.conf @@ -0,0 +1 @@ +../../Rockchip/rk817-sound/rk817-sound.conf \ No newline at end of file diff --git a/ucm2/conf.d/simple-card/rk817_int.conf b/ucm2/conf.d/simple-card/rk817_int.conf new file mode 120000 index 0000000..6fa8db7 --- /dev/null +++ b/ucm2/conf.d/simple-card/rk817_int.conf @@ -0,0 +1 @@ +../../Rockchip/rk817-sound/rk817-sound.conf \ No newline at end of file