Hi,
Fighting for over a week try to get the headphone sound working on a orange-pi
4b (rk3399 + rt5651-codec)
as simple-card setup. So far I got all clocks working on the i2s1 bus and use
alsamixer set Dac1 mix to HPO_L/R.
Jack plugin gpio is working correct and I see the status change in the
/sys/kernel/debug/sound/card1/Headphones Jack/status
All I got is a 'knack-noise' when starting/stopping the stream.
More details below.
Please, someone spot the missing link?
I have no idea what is going wrong.
Thanks!
Chris
To have the clocks running, there are two simple codes applied to the 6.12 kernel.
rk3399-cru.h: add
#define SCLK_I2SOUT_SRC 64
clk_rk3399.c : patch clk_i2sout_src
MUX(SCLK_I2SOUT_SRC, "clk_i2sout_src", mux_i2sch_p, CLK_SET_RATE_PARENT,
RK3399_CLKSEL_CON(31), 0, 2, MFLAGS),
COMPOSITE_NODIV(SCLK_I2S_8CH_OUT, "clk_i2sout", mux_i2sout_p,
CLK_SET_RATE_PARENT,
RK3399_CLKSEL_CON(31), 2, 1, MFLAGS,
RK3399_CLKGATE_CON(8), 12, GFLAGS),
dts:
rt5651_card: rt5651-sound {
status = "okay";
compatible = "simple-audio-card";
pinctrl-names = "default";
pinctrl-0 = <&hp_det>;
//simple-audio-card,name = "realtek,rt5651-codec";
simple-audio-card,name = "rt5651codec";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,hp-det-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
simple-audio-card,widgets =
"Microphone", "Mic Jack",
"Headphone", "Headphones";
simple-audio-card,routing =
"Mic Jack", "micbias1",
"IN2P", "Mic Jack",
"IN2N", "Mic Jack",
"Headphones", "HPOL",
"Headphones", "HPOR";
simple-audio-card,cpu {
sound-dai = <&i2s1>;
};
simple-audio-card,codec {
sound-dai = <&rt5651>;
// system-clock-frequency = <11289600>;
};
};
&i2s1 {
status = "okay";
pinctrl-names = "mclkpins", "i2sbuspins";
pinctrl-0 = <&i2s_8ch_mclk>;
pinctrl-1 = <&i2s1_2ch_bus>;
rockchip,capture-channels = <2>;
rockchip,playback-channels = <2>;
assigned-clocks = <&cru SCLK_I2SOUT_SRC>;
assigned-clock-parents = <&cru SCLK_I2S1_8CH>;
};
orangepi# cat /sys/kernel/debug/clk/clk_i2sout_src/clk_parent
clk_i2s1
orangepi@joyai3:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: hdmisound [hdmi-sound], device 0: ff8a0000.i2s-i2s-hifi i2s-hifi-0
[ff8a0000.i2s-i2s-hifi i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: rt5651codec [rt5651codec], device 0: ff890000.i2s-rt5651-aif1
rt5651-aif1-0 [ff890000.i2s-rt5651-aif1 rt5651-aif1-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
aplay -D sysdefault:CARD=rt5651codec -f cd -c2 StarWars60.wav
Playing WAVE 'StarWars60.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono
[ 46.759884] rt5651 1-001a: Sysclk is 5644800Hz and clock id is 0
[ 46.760590] rt5651 1-001a: bclk is 705600Hz and lrck is 22050Hz
[ 46.761111] rt5651 1-001a: bclk_ms is 0 and pre_div is 0 for iis 0
and
Playing WAVE 'sample-6s.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
[ 65.825775] rt5651 1-001a: Sysclk is 11289600Hz and clock id is 0
[ 65.826491] rt5651 1-001a: bclk is 1411200Hz and lrck is 44100Hz
[ 65.827020] rt5651 1-001a: bclk_ms is 0 and pre_div is 0 for iis 0
root@joyai3:/home/orangepi# cat /sys/kernel/debug/clk/clk_summary | grep i2s
hclk_i2s2 1 2 0 100000000 0
0 50000 Y ff8a0000.i2s i2s_hclk
i2s@ff8a0000
no_connection_id
hclk_i2s1 2 2 0 100000000 0
0 50000 Y ff890000.i2s i2s_hclk
i2s@ff890000
no_connection_id
hclk_i2s0 0 0 0 100000000 0
0 50000 N deviceless
no_connection_id
clk_i2s2_div 0 1 0 800000000 0
0 50000 N deviceless
no_connection_id
clk_i2s2_frac 0 1 0 11289600 0
0 50000 N deviceless
no_connection_id
clk_i2s2_mux 0 1 0 11289600 0
0 50000 Y deviceless
no_connection_id
clk_i2s2 0 1 0 11289600 0
0 50000 N i2s@ff8a0000
no_connection_id
ff8a0000.i2s
i2s_clk
i2s@ff8a0000
no_connection_id
clk_i2s1_div 1 1 0 800000000 0
0 50000 Y deviceless
no_connection_id
clk_i2s1_frac 1 1 0 11289600 0
0 50000 Y deviceless
no_connection_id
clk_i2s1_mux 1 1 0 11289600 0
0 50000 Y deviceless
no_connection_id
clk_i2s1 2 2 0 11289600 0
0 50000 Y i2s@ff890000
no_connection_id
ff890000.i2s
i2s_clk
i2s@ff890000
no_connection_id
clk_i2sout_src 0 0 0 11289600 0
0 50000 Y deviceless
no_connection_id
clk_i2sout 0 0 0 11289600 0
0 50000 N audio-codec@1a
no_connection_id
clk_i2s0_div 0 0 0 800000000 0
0 50000 N deviceless
no_connection_id
clk_i2s0_frac 0 0 0 40000000 0
0 50000 N deviceless
no_connection_id
clk_i2s0_mux 0 0 0 0 0
0 50000 Y deviceless no_connection_id
clk_i2s0 0 0 0 0 0
0 50000 N deviceless no_connection_id
orangepi@joyai3:~$ amixer -c1 | grep -3 HP
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'HP',0
Capabilities: pvolume
Playback channels: Front Left - Front Right
Limits: Playback 0 - 39
Mono:
Front Left: Playback 33 [85%] [3.00dB]
Front Right: Playback 33 [85%] [3.00dB]
Simple mixer control 'HPO L',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'HPO MIX DAC1',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'HPO MIX HPVOL',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'HPO R',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'HPOVOL L',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'HPOVOL R',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
[Index of Archives]
[Pulseaudio]
[Linux Audio Users]
[ALSA Devel]
[Fedora Desktop]
[Fedora SELinux]
[Big List of Linux Books]
[Yosemite News]
[KDE Users]