diff --git a/config/boards/nanopct4.conf b/config/boards/nanopct4.conf index de76e83c2f..5936df3de8 100644 --- a/config/boards/nanopct4.conf +++ b/config/boards/nanopct4.conf @@ -4,3 +4,4 @@ BOARDFAMILY="rk3399" BOOTCONFIG="nanopc-t4-rk3399_defconfig" KERNEL_TARGET="legacy,current,dev" FULL_DESKTOP="yes" +ASOUND_STATE="asound.state.rt5651" diff --git a/config/boards/nanopim4.conf b/config/boards/nanopim4.conf index 77d96ef072..d9ba80cfc8 100644 --- a/config/boards/nanopim4.conf +++ b/config/boards/nanopim4.conf @@ -4,3 +4,4 @@ BOARDFAMILY="rk3399" BOOTCONFIG="nanopi-m4-rk3399_defconfig" KERNEL_TARGET="legacy,current,dev" FULL_DESKTOP="yes" +ASOUND_STATE="asound.state.rt5651" diff --git a/config/boards/nanopim4v2.conf b/config/boards/nanopim4v2.conf index 2428c894ef..da317bcd5c 100644 --- a/config/boards/nanopim4v2.conf +++ b/config/boards/nanopim4v2.conf @@ -4,3 +4,4 @@ BOARDFAMILY="rk3399" BOOTCONFIG="nanopi-m4v2-rk3399_defconfig" KERNEL_TARGET="legacy,current,dev" FULL_DESKTOP="yes" +ASOUND_STATE="asound.state.rt5651" diff --git a/config/boards/orangepi4.wip b/config/boards/orangepi4.wip index 7633d0a78f..8d892f3126 100644 --- a/config/boards/orangepi4.wip +++ b/config/boards/orangepi4.wip @@ -4,3 +4,4 @@ BOARDFAMILY="rk3399" BOOTCONFIG="orangepi-4-rk3399_defconfig" KERNEL_TARGET="legacy,current,dev" FULL_DESKTOP="yes" +ASOUND_STATE="asound.state.rt5651" diff --git a/packages/blobs/asound.state/asound.state.rt5651 b/packages/blobs/asound.state/asound.state.rt5651 new file mode 100644 index 0000000000..6b8b9c452d --- /dev/null +++ b/packages/blobs/asound.state/asound.state.rt5651 @@ -0,0 +1,978 @@ +state.realtekrt5651co { + control.1 { + iface CARD + name 'Headphones Jack' + value false + comment { + access read + type BOOLEAN + count 1 + } + } + control.2 { + iface MIXER + name 'HP Playback Volume' + value.0 31 + value.1 31 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 39' + dbmin -4650 + dbmax 1200 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.3 { + iface MIXER + name 'OUT Playback Volume' + value.0 31 + value.1 31 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 39' + dbmin -4650 + dbmax 1200 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.4 { + iface MIXER + name 'DAC2 Playback Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.5 { + iface MIXER + name 'DAC1 Playback Volume' + value.0 175 + value.1 175 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 175' + dbmin -65625 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.6 { + iface MIXER + name 'Mono DAC Playback Volume' + value.0 175 + value.1 175 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 175' + dbmin -65625 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.7 { + iface MIXER + name 'IN1 Boost' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 8' + dbmin 0 + dbmax 5200 + dbvalue.0 0 + } + } + control.8 { + iface MIXER + name 'IN2 Boost' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 8' + dbmin 0 + dbmax 5200 + dbvalue.0 0 + } + } + control.9 { + iface MIXER + name 'IN3 Boost' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 8' + dbmin 0 + dbmax 5200 + dbvalue.0 0 + } + } + control.10 { + iface MIXER + name 'IN Capture Volume' + value.0 23 + value.1 23 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + dbmin -3450 + dbmax 1200 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.11 { + iface MIXER + name 'ADC Capture Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.12 { + iface MIXER + name 'ADC Capture Volume' + value.0 47 + value.1 47 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -17625 + dbmax 30000 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.13 { + iface MIXER + name 'Mono ADC Capture Volume' + value.0 47 + value.1 47 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -17625 + dbmax 30000 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.14 { + iface MIXER + name 'ADC Boost Gain' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 3' + dbmin 0 + dbmax 3600 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.15 { + iface MIXER + name 'IF1 ASRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.16 { + iface MIXER + name 'IF2 ASRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.17 { + iface MIXER + name 'DMIC ASRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.18 { + iface MIXER + name 'ADC IF2 Data Switch' + value Normal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Normal + item.1 Swap + item.2 'left copy to right' + item.3 'right copy to left' + } + } + control.19 { + iface MIXER + name 'DAC IF2 Data Switch' + value Normal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Normal + item.1 Swap + item.2 'left copy to right' + item.3 'right copy to left' + } + } + control.20 { + iface MIXER + name 'RECMIXL INL1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.21 { + iface MIXER + name 'RECMIXL BST3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.22 { + iface MIXER + name 'RECMIXL BST2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.23 { + iface MIXER + name 'RECMIXL BST1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.24 { + iface MIXER + name 'RECMIXR INR1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.25 { + iface MIXER + name 'RECMIXR BST3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'RECMIXR BST2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.27 { + iface MIXER + name 'RECMIXR BST1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.28 { + iface MIXER + name 'Stereo1 ADC L2 Mux' + value 'DD MIX' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DMIC + item.1 'DD MIX' + } + } + control.29 { + iface MIXER + name 'Stereo1 ADC R2 Mux' + value 'DD MIX' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DMIC + item.1 'DD MIX' + } + } + control.30 { + iface MIXER + name 'Stereo1 ADC L1 Mux' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'DD MIX' + item.1 ADC + } + } + control.31 { + iface MIXER + name 'Stereo1 ADC R1 Mux' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'DD MIX' + item.1 ADC + } + } + control.32 { + iface MIXER + name 'Stereo2 ADC L2 Mux' + value 'DD MIXL' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'DMIC L' + item.1 'DD MIXL' + } + } + control.33 { + iface MIXER + name 'Stereo2 ADC L1 Mux' + value ADCL + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'DD MIXL' + item.1 ADCL + } + } + control.34 { + iface MIXER + name 'Stereo2 ADC R1 Mux' + value 'DD MIXR' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'DD MIXR' + item.1 ADCR + } + } + control.35 { + iface MIXER + name 'Stereo2 ADC R2 Mux' + value 'DMIC R' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'DMIC R' + item.1 'DD MIXR' + } + } + control.36 { + iface MIXER + name 'Stereo1 ADC MIXL ADC1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.37 { + iface MIXER + name 'Stereo1 ADC MIXL ADC2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.38 { + iface MIXER + name 'Stereo1 ADC MIXR ADC1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.39 { + iface MIXER + name 'Stereo1 ADC MIXR ADC2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.40 { + iface MIXER + name 'Stereo2 ADC MIXL ADC1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.41 { + iface MIXER + name 'Stereo2 ADC MIXL ADC2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.42 { + iface MIXER + name 'Stereo2 ADC MIXR ADC1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.43 { + iface MIXER + name 'Stereo2 ADC MIXR ADC2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.44 { + iface MIXER + name 'IF2 ADC' + value 'IF1 ADC1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'IF1 ADC1' + item.1 'IF1 ADC2' + } + } + control.45 { + iface MIXER + name 'PDM L Mux' + value 'DD MIX' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'DD MIX' + item.1 'Stereo DAC MIX' + } + } + control.46 { + iface MIXER + name 'PDM R Mux' + value 'DD MIX' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'DD MIX' + item.1 'Stereo DAC MIX' + } + } + control.47 { + iface MIXER + name 'DAC MIXL Stereo ADC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.48 { + iface MIXER + name 'DAC MIXL INF1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'DAC MIXR Stereo ADC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.50 { + iface MIXER + name 'DAC MIXR INF1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'DAC L2 Mux' + value IF2 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IF1 + item.1 IF2 + } + } + control.52 { + iface MIXER + name 'DAC R2 Mux' + value IF2 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IF1 + item.1 IF2 + } + } + control.53 { + iface MIXER + name 'Stereo DAC MIXL DAC L1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.54 { + iface MIXER + name 'Stereo DAC MIXL DAC L2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.55 { + iface MIXER + name 'Stereo DAC MIXL DAC R1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.56 { + iface MIXER + name 'Stereo DAC MIXR DAC R1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.57 { + iface MIXER + name 'Stereo DAC MIXR DAC R2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.58 { + iface MIXER + name 'Stereo DAC MIXR DAC L1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.59 { + iface MIXER + name 'DD MIXL DAC L1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.60 { + iface MIXER + name 'DD MIXL DAC L2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.61 { + iface MIXER + name 'DD MIXL DAC R2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.62 { + iface MIXER + name 'DD MIXR DAC R1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.63 { + iface MIXER + name 'DD MIXR DAC R2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.64 { + iface MIXER + name 'DD MIXR DAC L2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.65 { + iface MIXER + name 'OUT MIXL BST1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.66 { + iface MIXER + name 'OUT MIXL BST2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.67 { + iface MIXER + name 'OUT MIXL INL1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.68 { + iface MIXER + name 'OUT MIXL REC MIXL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.69 { + iface MIXER + name 'OUT MIXL DAC L1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.70 { + iface MIXER + name 'OUT MIXR BST2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.71 { + iface MIXER + name 'OUT MIXR BST1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.72 { + iface MIXER + name 'OUT MIXR INR1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.73 { + iface MIXER + name 'OUT MIXR REC MIXR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.74 { + iface MIXER + name 'OUT MIXR DAC R1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.75 { + iface MIXER + name 'OUTVOL L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.76 { + iface MIXER + name 'OUTVOL R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.77 { + iface MIXER + name 'HPOVOL L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.78 { + iface MIXER + name 'HPOVOL R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.79 { + iface MIXER + name 'HPO MIX DAC1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.80 { + iface MIXER + name 'HPO MIX HPVOL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.81 { + iface MIXER + name 'LOUT MIX DAC L1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.82 { + iface MIXER + name 'LOUT MIX DAC R1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.83 { + iface MIXER + name 'LOUT MIX OUTVOL L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.84 { + iface MIXER + name 'LOUT MIX OUTVOL R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.85 { + iface MIXER + name 'HPO L Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.86 { + iface MIXER + name 'HPO R Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.87 { + iface MIXER + name 'LOUT L Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.88 { + iface MIXER + name 'LOUT R Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } +} diff --git a/patch/kernel/rockchip64-current/add-board-orangepi-4.patch b/patch/kernel/rockchip64-current/add-board-orangepi-4.patch index 8cc45a04ee..ea886eb38b 100644 --- a/patch/kernel/rockchip64-current/add-board-orangepi-4.patch +++ b/patch/kernel/rockchip64-current/add-board-orangepi-4.patch @@ -744,7 +744,7 @@ index 000000000..1e1747ceb + + rt5651: rt5651@1a { + #sound-dai-cells = <0>; -+ compatible = "rockchip,rt5651"; ++ compatible = "realtek,rt5651"; + reg = <0x1a>; + clocks = <&cru SCLK_I2S_8CH_OUT>; + clock-names = "mclk"; diff --git a/patch/kernel/rockchip64-current/board-nanopi-m4v2-dts-add-sound-card.patch b/patch/kernel/rockchip64-current/board-nanopi-m4v2-dts-add-sound-card.patch index 066ee7f760..6f5c6c62a6 100644 --- a/patch/kernel/rockchip64-current/board-nanopi-m4v2-dts-add-sound-card.patch +++ b/patch/kernel/rockchip64-current/board-nanopi-m4v2-dts-add-sound-card.patch @@ -46,7 +46,7 @@ diff -u a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi b/arch/arm64/boot/dts status = "okay"; + + rt5651: rt5651@1a { -+ compatible = "rockchip,rt5651"; ++ compatible = "realtek,rt5651"; + reg = <0x1a>; + clocks = <&cru SCLK_I2S_8CH_OUT>; + clock-names = "mclk"; diff --git a/patch/kernel/rockchip64-dev/add-board-orangepi-4.patch b/patch/kernel/rockchip64-dev/add-board-orangepi-4.patch index 8cc45a04ee..ea886eb38b 100644 --- a/patch/kernel/rockchip64-dev/add-board-orangepi-4.patch +++ b/patch/kernel/rockchip64-dev/add-board-orangepi-4.patch @@ -744,7 +744,7 @@ index 000000000..1e1747ceb + + rt5651: rt5651@1a { + #sound-dai-cells = <0>; -+ compatible = "rockchip,rt5651"; ++ compatible = "realtek,rt5651"; + reg = <0x1a>; + clocks = <&cru SCLK_I2S_8CH_OUT>; + clock-names = "mclk"; diff --git a/patch/kernel/rockchip64-dev/board-nanopi-m4v2-dts-add-sound-card.patch b/patch/kernel/rockchip64-dev/board-nanopi-m4v2-dts-add-sound-card.patch index 066ee7f760..6f5c6c62a6 100644 --- a/patch/kernel/rockchip64-dev/board-nanopi-m4v2-dts-add-sound-card.patch +++ b/patch/kernel/rockchip64-dev/board-nanopi-m4v2-dts-add-sound-card.patch @@ -46,7 +46,7 @@ diff -u a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi b/arch/arm64/boot/dts status = "okay"; + + rt5651: rt5651@1a { -+ compatible = "rockchip,rt5651"; ++ compatible = "realtek,rt5651"; + reg = <0x1a>; + clocks = <&cru SCLK_I2S_8CH_OUT>; + clock-names = "mclk";