* [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 @ 2019-09-07 17:48 Katsuhiro Suzuki 2019-10-04 17:26 ` Katsuhiro Suzuki 2019-11-11 0:17 ` Vasily Khoruzhick 0 siblings, 2 replies; 14+ messages in thread From: Katsuhiro Suzuki @ 2019-09-07 17:48 UTC (permalink / raw) To: Heiko Stuebner Cc: linux-rockchip, linux-arm-kernel, linux-kernel, Katsuhiro Suzuki This patch adds audio codec (Everest ES8316) and I2S audio nodes for RK3399 RockPro64. Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> --- .../boot/dts/rockchip/rk3399-rockpro64.dts | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts index 0401d4ec1f45..8b1e6382b140 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts @@ -81,6 +81,12 @@ reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; }; + sound { + compatible = "audio-graph-card"; + label = "rockchip,rk3399"; + dais = <&i2s1_p0>; + }; + vcc12v_dcin: vcc12v-dcin { compatible = "regulator-fixed"; regulator-name = "vcc12v_dcin"; @@ -470,6 +476,20 @@ i2c-scl-rising-time-ns = <300>; i2c-scl-falling-time-ns = <15>; status = "okay"; + + es8316: codec@11 { + compatible = "everest,es8316"; + reg = <0x11>; + clocks = <&cru SCLK_I2S_8CH_OUT>; + clock-names = "mclk"; + #sound-dai-cells = <0>; + + port { + es8316_p0_0: endpoint { + remote-endpoint = <&i2s1_p0_0>; + }; + }; + }; }; &i2c3 { @@ -505,6 +525,14 @@ rockchip,playback-channels = <2>; rockchip,capture-channels = <2>; status = "okay"; + + i2s1_p0: port { + i2s1_p0_0: endpoint { + dai-format = "i2s"; + mclk-fs = <256>; + remote-endpoint = <&es8316_p0_0>; + }; + }; }; &i2s2 { -- 2.23.0.rc1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 2019-09-07 17:48 [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 Katsuhiro Suzuki @ 2019-10-04 17:26 ` Katsuhiro Suzuki 2019-10-04 19:54 ` Heiko Stuebner 2019-11-11 0:17 ` Vasily Khoruzhick 1 sibling, 1 reply; 14+ messages in thread From: Katsuhiro Suzuki @ 2019-10-04 17:26 UTC (permalink / raw) To: Heiko Stuebner; +Cc: linux-rockchip, linux-kernel, linux-arm-kernel Past about 1 month, so I send a ping... On 2019/09/08 2:48, Katsuhiro Suzuki wrote: > This patch adds audio codec (Everest ES8316) and I2S audio nodes for > RK3399 RockPro64. > > Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> > --- > .../boot/dts/rockchip/rk3399-rockpro64.dts | 28 +++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > index 0401d4ec1f45..8b1e6382b140 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > @@ -81,6 +81,12 @@ > reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; > }; > > + sound { > + compatible = "audio-graph-card"; > + label = "rockchip,rk3399"; > + dais = <&i2s1_p0>; > + }; > + > vcc12v_dcin: vcc12v-dcin { > compatible = "regulator-fixed"; > regulator-name = "vcc12v_dcin"; > @@ -470,6 +476,20 @@ > i2c-scl-rising-time-ns = <300>; > i2c-scl-falling-time-ns = <15>; > status = "okay"; > + > + es8316: codec@11 { > + compatible = "everest,es8316"; > + reg = <0x11>; > + clocks = <&cru SCLK_I2S_8CH_OUT>; > + clock-names = "mclk"; > + #sound-dai-cells = <0>; > + > + port { > + es8316_p0_0: endpoint { > + remote-endpoint = <&i2s1_p0_0>; > + }; > + }; > + }; > }; > > &i2c3 { > @@ -505,6 +525,14 @@ > rockchip,playback-channels = <2>; > rockchip,capture-channels = <2>; > status = "okay"; > + > + i2s1_p0: port { > + i2s1_p0_0: endpoint { > + dai-format = "i2s"; > + mclk-fs = <256>; > + remote-endpoint = <&es8316_p0_0>; > + }; > + }; > }; > > &i2s2 { > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 2019-10-04 17:26 ` Katsuhiro Suzuki @ 2019-10-04 19:54 ` Heiko Stuebner 0 siblings, 0 replies; 14+ messages in thread From: Heiko Stuebner @ 2019-10-04 19:54 UTC (permalink / raw) To: Katsuhiro Suzuki; +Cc: linux-rockchip, linux-kernel, linux-arm-kernel Hi Katsuhiro, Am Freitag, 4. Oktober 2019, 19:26:00 CEST schrieb Katsuhiro Suzuki: > Past about 1 month, so I send a ping... > > On 2019/09/08 2:48, Katsuhiro Suzuki wrote: > > This patch adds audio codec (Everest ES8316) and I2S audio nodes for > > RK3399 RockPro64. > > > > Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> thanks for the reminder, applied for 5.5 Heiko ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 2019-09-07 17:48 [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 Katsuhiro Suzuki 2019-10-04 17:26 ` Katsuhiro Suzuki @ 2019-11-11 0:17 ` Vasily Khoruzhick 2019-11-11 3:30 ` Katsuhiro Suzuki 1 sibling, 1 reply; 14+ messages in thread From: Vasily Khoruzhick @ 2019-11-11 0:17 UTC (permalink / raw) To: Katsuhiro Suzuki; +Cc: Heiko Stuebner, linux-rockchip, linux-kernel, arm-linux On Sat, Sep 7, 2019 at 10:48 AM Katsuhiro Suzuki <katsuhiro@katsuster.net> wrote: > > This patch adds audio codec (Everest ES8316) and I2S audio nodes for > RK3399 RockPro64. Hi Katsuhiro, I tested your patch with my rockpro64 on 5.4-rc6 which has your other patches to es8316 driver, but apparently it doesn't work. 'alsamixer' complains 'cannot load mixer controls: No such device or address' and if I try to play audio with mpg123 it pretends that it plays something but there's no sound. Any idea what can be wrong? Regards, Vasily > Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> > --- > .../boot/dts/rockchip/rk3399-rockpro64.dts | 28 +++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > index 0401d4ec1f45..8b1e6382b140 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > @@ -81,6 +81,12 @@ > reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; > }; > > + sound { > + compatible = "audio-graph-card"; > + label = "rockchip,rk3399"; > + dais = <&i2s1_p0>; > + }; > + > vcc12v_dcin: vcc12v-dcin { > compatible = "regulator-fixed"; > regulator-name = "vcc12v_dcin"; > @@ -470,6 +476,20 @@ > i2c-scl-rising-time-ns = <300>; > i2c-scl-falling-time-ns = <15>; > status = "okay"; > + > + es8316: codec@11 { > + compatible = "everest,es8316"; > + reg = <0x11>; > + clocks = <&cru SCLK_I2S_8CH_OUT>; > + clock-names = "mclk"; > + #sound-dai-cells = <0>; > + > + port { > + es8316_p0_0: endpoint { > + remote-endpoint = <&i2s1_p0_0>; > + }; > + }; > + }; > }; > > &i2c3 { > @@ -505,6 +525,14 @@ > rockchip,playback-channels = <2>; > rockchip,capture-channels = <2>; > status = "okay"; > + > + i2s1_p0: port { > + i2s1_p0_0: endpoint { > + dai-format = "i2s"; > + mclk-fs = <256>; > + remote-endpoint = <&es8316_p0_0>; > + }; > + }; > }; > > &i2s2 { > -- > 2.23.0.rc1 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 2019-11-11 0:17 ` Vasily Khoruzhick @ 2019-11-11 3:30 ` Katsuhiro Suzuki 2019-11-11 5:40 ` Vasily Khoruzhick 0 siblings, 1 reply; 14+ messages in thread From: Katsuhiro Suzuki @ 2019-11-11 3:30 UTC (permalink / raw) To: Vasily Khoruzhick; +Cc: Heiko Stuebner, linux-rockchip, linux-kernel, arm-linux Hello Vasily, Thank you for reporting. On 2019/11/11 9:17, Vasily Khoruzhick wrote: > On Sat, Sep 7, 2019 at 10:48 AM Katsuhiro Suzuki > <katsuhiro@katsuster.net> wrote: >> >> This patch adds audio codec (Everest ES8316) and I2S audio nodes for >> RK3399 RockPro64. > > Hi Katsuhiro, > > I tested your patch with my rockpro64 on 5.4-rc6 which has your other > patches to es8316 driver, but apparently it doesn't work. > > 'alsamixer' complains 'cannot load mixer controls: No such device or > address' and if I try to play audio with mpg123 it pretends that it > plays something but there's no sound. > > Any idea what can be wrong? > Do you use defconfig? If so I guess we need turn on more configs: - simple-graph-card driver (CONFIG_SND_AUDIO_GRAPH_CARD) - ES8316 (SND_SOC_ES8316) FYI) ASoC related status or logs in my environment as follows: root@rockpro64:~# uname -a Linux rockpro64 5.4.0-rc6-next-20191108 #169 SMP PREEMPT Mon Nov 11 12:21:44 JST 2019 aarch64 GNU/Linux root@rockpro64:~# dmesg | grep -i asoc [ 21.509903] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok [ 21.510550] asoc-simple-card hdmi-sound: ASoC: no DMI vendor name! [ 21.567906] asoc-audio-graph-card sound: ES8316 HiFi <-> ff890000.i2s mapping ok [ 21.568565] asoc-audio-graph-card sound: ASoC: no DMI vendor name! root@rockpro64:~# cat /proc/asound/pcm 00-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi i2s-hifi-0 : playback 1 01-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : playback 1 : capture 1 root@rockpro64:~# cat /sys/kernel/debug/asoc/components hdmi-audio-codec.3.auto ff8a0000.i2s ff8a0000.i2s ff890000.i2s ff890000.i2s ff880000.i2s ff880000.i2s es8316.1-0011 snd-soc-dummy snd-soc-dummy root@rockpro64:~# cat /sys/kernel/debug/asoc/dais i2s-hifi ff8a0000.i2s ff890000.i2s ff880000.i2s ES8316 HiFi snd-soc-dummy-dai Best Regards, Katsuhiro Suzuki > Regards, > Vasily > >> Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> >> --- >> .../boot/dts/rockchip/rk3399-rockpro64.dts | 28 +++++++++++++++++++ >> 1 file changed, 28 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >> index 0401d4ec1f45..8b1e6382b140 100644 >> --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >> @@ -81,6 +81,12 @@ >> reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; >> }; >> >> + sound { >> + compatible = "audio-graph-card"; >> + label = "rockchip,rk3399"; >> + dais = <&i2s1_p0>; >> + }; >> + >> vcc12v_dcin: vcc12v-dcin { >> compatible = "regulator-fixed"; >> regulator-name = "vcc12v_dcin"; >> @@ -470,6 +476,20 @@ >> i2c-scl-rising-time-ns = <300>; >> i2c-scl-falling-time-ns = <15>; >> status = "okay"; >> + >> + es8316: codec@11 { >> + compatible = "everest,es8316"; >> + reg = <0x11>; >> + clocks = <&cru SCLK_I2S_8CH_OUT>; >> + clock-names = "mclk"; >> + #sound-dai-cells = <0>; >> + >> + port { >> + es8316_p0_0: endpoint { >> + remote-endpoint = <&i2s1_p0_0>; >> + }; >> + }; >> + }; >> }; >> >> &i2c3 { >> @@ -505,6 +525,14 @@ >> rockchip,playback-channels = <2>; >> rockchip,capture-channels = <2>; >> status = "okay"; >> + >> + i2s1_p0: port { >> + i2s1_p0_0: endpoint { >> + dai-format = "i2s"; >> + mclk-fs = <256>; >> + remote-endpoint = <&es8316_p0_0>; >> + }; >> + }; >> }; >> >> &i2s2 { >> -- >> 2.23.0.rc1 >> >> >> _______________________________________________ >> linux-arm-kernel mailing list >> linux-arm-kernel@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 2019-11-11 3:30 ` Katsuhiro Suzuki @ 2019-11-11 5:40 ` Vasily Khoruzhick 2019-11-11 19:25 ` Vasily Khoruzhick 0 siblings, 1 reply; 14+ messages in thread From: Vasily Khoruzhick @ 2019-11-11 5:40 UTC (permalink / raw) To: Katsuhiro Suzuki; +Cc: Heiko Stuebner, linux-rockchip, linux-kernel, arm-linux On Sun, Nov 10, 2019 at 7:30 PM Katsuhiro Suzuki <katsuhiro@katsuster.net> wrote: > > Hello Vasily, Hi Katsuhiro, Thanks for response! > Thank you for reporting. > > On 2019/11/11 9:17, Vasily Khoruzhick wrote: > > On Sat, Sep 7, 2019 at 10:48 AM Katsuhiro Suzuki > > <katsuhiro@katsuster.net> wrote: > >> > >> This patch adds audio codec (Everest ES8316) and I2S audio nodes for > >> RK3399 RockPro64. > > > > Hi Katsuhiro, > > > > I tested your patch with my rockpro64 on 5.4-rc6 which has your other > > patches to es8316 driver, but apparently it doesn't work. > > > > 'alsamixer' complains 'cannot load mixer controls: No such device or > > address' and if I try to play audio with mpg123 it pretends that it > > plays something but there's no sound. > > > > Any idea what can be wrong? > > > > Do you use defconfig? If so I guess we need turn on more configs: > > - simple-graph-card driver (CONFIG_SND_AUDIO_GRAPH_CARD) > - ES8316 (SND_SOC_ES8316) I have these enabled, card is present in /proc/asound/cards, but alsamixer doesn't work with it. > FYI) ASoC related status or logs in my environment as follows: > > root@rockpro64:~# uname -a > Linux rockpro64 5.4.0-rc6-next-20191108 #169 SMP PREEMPT Mon Nov 11 12:21:44 JST 2019 aarch64 GNU/Linux I'm running 5.4.0-rc6 (commit 00aff6836241ae5654895dcea10e6d4fc5878ca6) with your patch "arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64" on top of it. > root@rockpro64:~# dmesg | grep -i asoc > [ 21.509903] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok > [ 21.510550] asoc-simple-card hdmi-sound: ASoC: no DMI vendor name! > [ 21.567906] asoc-audio-graph-card sound: ES8316 HiFi <-> ff890000.i2s mapping ok > [ 21.568565] asoc-audio-graph-card sound: ASoC: no DMI vendor name! Similar here: [vasilykh@rockpro64 ~]$ dmesg | grep -i asoc [ 15.627685] asoc-audio-graph-card sound: ES8316 HiFi <-> ff890000.i2s mapping ok [ 16.250196] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok > root@rockpro64:~# cat /proc/asound/pcm > 00-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi i2s-hifi-0 : playback 1 > 01-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : playback 1 : capture 1 Same here: [vasilykh@rockpro64 ~]$ cat /proc/asound/pcm 00-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : playback 1 : capture 1 01-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi i2s-hifi-0 : playback > root@rockpro64:~# cat /sys/kernel/debug/asoc/components > hdmi-audio-codec.3.auto > ff8a0000.i2s > ff8a0000.i2s > ff890000.i2s > ff890000.i2s > ff880000.i2s > ff880000.i2s > es8316.1-0011 > snd-soc-dummy > snd-soc-dummy Same here. > root@rockpro64:~# cat /sys/kernel/debug/asoc/dais > i2s-hifi > ff8a0000.i2s > ff890000.i2s > ff880000.i2s > ES8316 HiFi > snd-soc-dummy-dai Same here. Yet alsamixer doesn't work for me. It terminates with 'cannot load mixer controls: No such device or address'. Strace shows that fails here: openat(AT_FDCWD, "/dev/snd/controlC0", O_RDWR|O_CLOEXEC) = 3 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 ioctl(3, SNDRV_CTL_IOCTL_PVERSION, 0xfffffd3ad04c) = 0 fcntl(3, F_GETFL) = 0x20002 (flags O_RDWR|O_LARGEFILE) fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0 ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 ioctl(3, SNDRV_CTL_IOCTL_ELEM_INFO, 0xfffffd3ace38) = 0 ioctl(3, SNDRV_CTL_IOCTL_ELEM_READ, 0xfffffd3ac160) = -1 ENXIO (No such device or address) Looks like it fails to talk to the codec? mpg123 thinks that it's playing audio, but my headphones connected to 3.5mm output are silent. Regards, Vasily > Best Regards, > Katsuhiro Suzuki > > > > Regards, > > Vasily > > > >> Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> > >> --- > >> .../boot/dts/rockchip/rk3399-rockpro64.dts | 28 +++++++++++++++++++ > >> 1 file changed, 28 insertions(+) > >> > >> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > >> index 0401d4ec1f45..8b1e6382b140 100644 > >> --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > >> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > >> @@ -81,6 +81,12 @@ > >> reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; > >> }; > >> > >> + sound { > >> + compatible = "audio-graph-card"; > >> + label = "rockchip,rk3399"; > >> + dais = <&i2s1_p0>; > >> + }; > >> + > >> vcc12v_dcin: vcc12v-dcin { > >> compatible = "regulator-fixed"; > >> regulator-name = "vcc12v_dcin"; > >> @@ -470,6 +476,20 @@ > >> i2c-scl-rising-time-ns = <300>; > >> i2c-scl-falling-time-ns = <15>; > >> status = "okay"; > >> + > >> + es8316: codec@11 { > >> + compatible = "everest,es8316"; > >> + reg = <0x11>; > >> + clocks = <&cru SCLK_I2S_8CH_OUT>; > >> + clock-names = "mclk"; > >> + #sound-dai-cells = <0>; > >> + > >> + port { > >> + es8316_p0_0: endpoint { > >> + remote-endpoint = <&i2s1_p0_0>; > >> + }; > >> + }; > >> + }; > >> }; > >> > >> &i2c3 { > >> @@ -505,6 +525,14 @@ > >> rockchip,playback-channels = <2>; > >> rockchip,capture-channels = <2>; > >> status = "okay"; > >> + > >> + i2s1_p0: port { > >> + i2s1_p0_0: endpoint { > >> + dai-format = "i2s"; > >> + mclk-fs = <256>; > >> + remote-endpoint = <&es8316_p0_0>; > >> + }; > >> + }; > >> }; > >> > >> &i2s2 { > >> -- > >> 2.23.0.rc1 > >> > >> > >> _______________________________________________ > >> linux-arm-kernel mailing list > >> linux-arm-kernel@lists.infradead.org > >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > > > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 2019-11-11 5:40 ` Vasily Khoruzhick @ 2019-11-11 19:25 ` Vasily Khoruzhick 2019-11-12 5:34 ` Katsuhiro Suzuki 0 siblings, 1 reply; 14+ messages in thread From: Vasily Khoruzhick @ 2019-11-11 19:25 UTC (permalink / raw) To: Katsuhiro Suzuki; +Cc: Heiko Stuebner, linux-rockchip, linux-kernel, arm-linux On Sun, Nov 10, 2019 at 9:40 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: > > On Sun, Nov 10, 2019 at 7:30 PM Katsuhiro Suzuki > <katsuhiro@katsuster.net> wrote: > > > > Hello Vasily, > > Hi Katsuhiro, > > Thanks for response! Looks like on my board codec sits at address 0x10, and according to schematics that's what its address is supposed to be. See http://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf Codec address is selected by pin CE of ES8316, and on rockpro64 it goes to GND through R226. So address should be 0x10. > > Thank you for reporting. > > > > On 2019/11/11 9:17, Vasily Khoruzhick wrote: > > > On Sat, Sep 7, 2019 at 10:48 AM Katsuhiro Suzuki > > > <katsuhiro@katsuster.net> wrote: > > >> > > >> This patch adds audio codec (Everest ES8316) and I2S audio nodes for > > >> RK3399 RockPro64. > > > > > > Hi Katsuhiro, > > > > > > I tested your patch with my rockpro64 on 5.4-rc6 which has your other > > > patches to es8316 driver, but apparently it doesn't work. > > > > > > 'alsamixer' complains 'cannot load mixer controls: No such device or > > > address' and if I try to play audio with mpg123 it pretends that it > > > plays something but there's no sound. > > > > > > Any idea what can be wrong? > > > > > > > Do you use defconfig? If so I guess we need turn on more configs: > > > > - simple-graph-card driver (CONFIG_SND_AUDIO_GRAPH_CARD) > > - ES8316 (SND_SOC_ES8316) > > I have these enabled, card is present in /proc/asound/cards, but > alsamixer doesn't work with it. > > > FYI) ASoC related status or logs in my environment as follows: > > > > root@rockpro64:~# uname -a > > Linux rockpro64 5.4.0-rc6-next-20191108 #169 SMP PREEMPT Mon Nov 11 12:21:44 JST 2019 aarch64 GNU/Linux > > I'm running 5.4.0-rc6 (commit > 00aff6836241ae5654895dcea10e6d4fc5878ca6) with your patch "arm64: dts: > rockchip: add analog audio nodes on rk3399-rockpro64" on top of it. > > > root@rockpro64:~# dmesg | grep -i asoc > > [ 21.509903] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok > > [ 21.510550] asoc-simple-card hdmi-sound: ASoC: no DMI vendor name! > > [ 21.567906] asoc-audio-graph-card sound: ES8316 HiFi <-> ff890000.i2s mapping ok > > [ 21.568565] asoc-audio-graph-card sound: ASoC: no DMI vendor name! > > Similar here: > > [vasilykh@rockpro64 ~]$ dmesg | grep -i asoc > [ 15.627685] asoc-audio-graph-card sound: ES8316 HiFi <-> > ff890000.i2s mapping ok > [ 16.250196] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok > > > root@rockpro64:~# cat /proc/asound/pcm > > 00-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi i2s-hifi-0 : playback 1 > > 01-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : playback 1 : capture 1 > > Same here: > > [vasilykh@rockpro64 ~]$ cat /proc/asound/pcm > 00-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 > HiFi ES8316 HiFi-0 : playback 1 : capture 1 > 01-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi > i2s-hifi-0 : playback > > > root@rockpro64:~# cat /sys/kernel/debug/asoc/components > > hdmi-audio-codec.3.auto > > ff8a0000.i2s > > ff8a0000.i2s > > ff890000.i2s > > ff890000.i2s > > ff880000.i2s > > ff880000.i2s > > es8316.1-0011 > > snd-soc-dummy > > snd-soc-dummy > > Same here. > > > root@rockpro64:~# cat /sys/kernel/debug/asoc/dais > > i2s-hifi > > ff8a0000.i2s > > ff890000.i2s > > ff880000.i2s > > ES8316 HiFi > > snd-soc-dummy-dai > > Same here. > > Yet alsamixer doesn't work for me. It terminates with 'cannot load > mixer controls: No such device or address'. Strace shows that fails > here: > > openat(AT_FDCWD, "/dev/snd/controlC0", O_RDWR|O_CLOEXEC) = 3 > fcntl(3, F_SETFD, FD_CLOEXEC) = 0 > ioctl(3, SNDRV_CTL_IOCTL_PVERSION, 0xfffffd3ad04c) = 0 > fcntl(3, F_GETFL) = 0x20002 (flags O_RDWR|O_LARGEFILE) > fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0 > ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 > ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 > ioctl(3, SNDRV_CTL_IOCTL_ELEM_INFO, 0xfffffd3ace38) = 0 > ioctl(3, SNDRV_CTL_IOCTL_ELEM_READ, 0xfffffd3ac160) = -1 ENXIO (No > such device or address) > > Looks like it fails to talk to the codec? > > mpg123 thinks that it's playing audio, but my headphones connected to > 3.5mm output are silent. > > Regards, > Vasily > > > > Best Regards, > > Katsuhiro Suzuki > > > > > > > Regards, > > > Vasily > > > > > >> Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> > > >> --- > > >> .../boot/dts/rockchip/rk3399-rockpro64.dts | 28 +++++++++++++++++++ > > >> 1 file changed, 28 insertions(+) > > >> > > >> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > > >> index 0401d4ec1f45..8b1e6382b140 100644 > > >> --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > > >> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > > >> @@ -81,6 +81,12 @@ > > >> reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; > > >> }; > > >> > > >> + sound { > > >> + compatible = "audio-graph-card"; > > >> + label = "rockchip,rk3399"; > > >> + dais = <&i2s1_p0>; > > >> + }; > > >> + > > >> vcc12v_dcin: vcc12v-dcin { > > >> compatible = "regulator-fixed"; > > >> regulator-name = "vcc12v_dcin"; > > >> @@ -470,6 +476,20 @@ > > >> i2c-scl-rising-time-ns = <300>; > > >> i2c-scl-falling-time-ns = <15>; > > >> status = "okay"; > > >> + > > >> + es8316: codec@11 { > > >> + compatible = "everest,es8316"; > > >> + reg = <0x11>; > > >> + clocks = <&cru SCLK_I2S_8CH_OUT>; > > >> + clock-names = "mclk"; > > >> + #sound-dai-cells = <0>; > > >> + > > >> + port { > > >> + es8316_p0_0: endpoint { > > >> + remote-endpoint = <&i2s1_p0_0>; > > >> + }; > > >> + }; > > >> + }; > > >> }; > > >> > > >> &i2c3 { > > >> @@ -505,6 +525,14 @@ > > >> rockchip,playback-channels = <2>; > > >> rockchip,capture-channels = <2>; > > >> status = "okay"; > > >> + > > >> + i2s1_p0: port { > > >> + i2s1_p0_0: endpoint { > > >> + dai-format = "i2s"; > > >> + mclk-fs = <256>; > > >> + remote-endpoint = <&es8316_p0_0>; > > >> + }; > > >> + }; > > >> }; > > >> > > >> &i2s2 { > > >> -- > > >> 2.23.0.rc1 > > >> > > >> > > >> _______________________________________________ > > >> linux-arm-kernel mailing list > > >> linux-arm-kernel@lists.infradead.org > > >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > > > > > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 2019-11-11 19:25 ` Vasily Khoruzhick @ 2019-11-12 5:34 ` Katsuhiro Suzuki 2019-11-12 5:43 ` Vasily Khoruzhick 0 siblings, 1 reply; 14+ messages in thread From: Katsuhiro Suzuki @ 2019-11-12 5:34 UTC (permalink / raw) To: Vasily Khoruzhick; +Cc: Heiko Stuebner, linux-rockchip, linux-kernel, arm-linux Hello Vasily, Thank you for valuable information. On 2019/11/12 4:25, Vasily Khoruzhick wrote: > On Sun, Nov 10, 2019 at 9:40 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: >> >> On Sun, Nov 10, 2019 at 7:30 PM Katsuhiro Suzuki >> <katsuhiro@katsuster.net> wrote: >>> >>> Hello Vasily, >> >> Hi Katsuhiro, >> >> Thanks for response! > > Looks like on my board codec sits at address 0x10, and according to > schematics that's what its address is supposed to be. > > See http://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf > > Codec address is selected by pin CE of ES8316, and on rockpro64 it > goes to GND through R226. So address should be 0x10. > Yes, I agree. The schematics both v2.0 and v2.1 say that ES8316 address is 0x10. Thank you for pointing. But I wonder that my RockPro64 behavior is strange, he is in address 0x11. (R226 on my board is broken...??) root@rockpro64:~# i2cdetect 1 WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-1. I will probe address range 0x03-0x77. Continue? [Y/n] y 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- I plan to check R226 resistance value to judge R226 is broken or not after return to home. And share the result with you. Please give me a time. Best Regards, Katsuhiro Suzuki >>> Thank you for reporting. >>> >>> On 2019/11/11 9:17, Vasily Khoruzhick wrote: >>>> On Sat, Sep 7, 2019 at 10:48 AM Katsuhiro Suzuki >>>> <katsuhiro@katsuster.net> wrote: >>>>> >>>>> This patch adds audio codec (Everest ES8316) and I2S audio nodes for >>>>> RK3399 RockPro64. >>>> >>>> Hi Katsuhiro, >>>> >>>> I tested your patch with my rockpro64 on 5.4-rc6 which has your other >>>> patches to es8316 driver, but apparently it doesn't work. >>>> >>>> 'alsamixer' complains 'cannot load mixer controls: No such device or >>>> address' and if I try to play audio with mpg123 it pretends that it >>>> plays something but there's no sound. >>>> >>>> Any idea what can be wrong? >>>> >>> >>> Do you use defconfig? If so I guess we need turn on more configs: >>> >>> - simple-graph-card driver (CONFIG_SND_AUDIO_GRAPH_CARD) >>> - ES8316 (SND_SOC_ES8316) >> >> I have these enabled, card is present in /proc/asound/cards, but >> alsamixer doesn't work with it. >> >>> FYI) ASoC related status or logs in my environment as follows: >>> >>> root@rockpro64:~# uname -a >>> Linux rockpro64 5.4.0-rc6-next-20191108 #169 SMP PREEMPT Mon Nov 11 12:21:44 JST 2019 aarch64 GNU/Linux >> >> I'm running 5.4.0-rc6 (commit >> 00aff6836241ae5654895dcea10e6d4fc5878ca6) with your patch "arm64: dts: >> rockchip: add analog audio nodes on rk3399-rockpro64" on top of it. >> >>> root@rockpro64:~# dmesg | grep -i asoc >>> [ 21.509903] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok >>> [ 21.510550] asoc-simple-card hdmi-sound: ASoC: no DMI vendor name! >>> [ 21.567906] asoc-audio-graph-card sound: ES8316 HiFi <-> ff890000.i2s mapping ok >>> [ 21.568565] asoc-audio-graph-card sound: ASoC: no DMI vendor name! >> >> Similar here: >> >> [vasilykh@rockpro64 ~]$ dmesg | grep -i asoc >> [ 15.627685] asoc-audio-graph-card sound: ES8316 HiFi <-> >> ff890000.i2s mapping ok >> [ 16.250196] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok >> >>> root@rockpro64:~# cat /proc/asound/pcm >>> 00-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi i2s-hifi-0 : playback 1 >>> 01-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : playback 1 : capture 1 >> >> Same here: >> >> [vasilykh@rockpro64 ~]$ cat /proc/asound/pcm >> 00-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 >> HiFi ES8316 HiFi-0 : playback 1 : capture 1 >> 01-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi >> i2s-hifi-0 : playback >> >>> root@rockpro64:~# cat /sys/kernel/debug/asoc/components >>> hdmi-audio-codec.3.auto >>> ff8a0000.i2s >>> ff8a0000.i2s >>> ff890000.i2s >>> ff890000.i2s >>> ff880000.i2s >>> ff880000.i2s >>> es8316.1-0011 >>> snd-soc-dummy >>> snd-soc-dummy >> >> Same here. >> >>> root@rockpro64:~# cat /sys/kernel/debug/asoc/dais >>> i2s-hifi >>> ff8a0000.i2s >>> ff890000.i2s >>> ff880000.i2s >>> ES8316 HiFi >>> snd-soc-dummy-dai >> >> Same here. >> >> Yet alsamixer doesn't work for me. It terminates with 'cannot load >> mixer controls: No such device or address'. Strace shows that fails >> here: >> >> openat(AT_FDCWD, "/dev/snd/controlC0", O_RDWR|O_CLOEXEC) = 3 >> fcntl(3, F_SETFD, FD_CLOEXEC) = 0 >> ioctl(3, SNDRV_CTL_IOCTL_PVERSION, 0xfffffd3ad04c) = 0 >> fcntl(3, F_GETFL) = 0x20002 (flags O_RDWR|O_LARGEFILE) >> fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0 >> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 >> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 >> ioctl(3, SNDRV_CTL_IOCTL_ELEM_INFO, 0xfffffd3ace38) = 0 >> ioctl(3, SNDRV_CTL_IOCTL_ELEM_READ, 0xfffffd3ac160) = -1 ENXIO (No >> such device or address) >> >> Looks like it fails to talk to the codec? >> >> mpg123 thinks that it's playing audio, but my headphones connected to >> 3.5mm output are silent. >> >> Regards, >> Vasily >> >> >>> Best Regards, >>> Katsuhiro Suzuki >>> >>> >>>> Regards, >>>> Vasily >>>> >>>>> Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> >>>>> --- >>>>> .../boot/dts/rockchip/rk3399-rockpro64.dts | 28 +++++++++++++++++++ >>>>> 1 file changed, 28 insertions(+) >>>>> >>>>> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >>>>> index 0401d4ec1f45..8b1e6382b140 100644 >>>>> --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >>>>> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >>>>> @@ -81,6 +81,12 @@ >>>>> reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; >>>>> }; >>>>> >>>>> + sound { >>>>> + compatible = "audio-graph-card"; >>>>> + label = "rockchip,rk3399"; >>>>> + dais = <&i2s1_p0>; >>>>> + }; >>>>> + >>>>> vcc12v_dcin: vcc12v-dcin { >>>>> compatible = "regulator-fixed"; >>>>> regulator-name = "vcc12v_dcin"; >>>>> @@ -470,6 +476,20 @@ >>>>> i2c-scl-rising-time-ns = <300>; >>>>> i2c-scl-falling-time-ns = <15>; >>>>> status = "okay"; >>>>> + >>>>> + es8316: codec@11 { >>>>> + compatible = "everest,es8316"; >>>>> + reg = <0x11>; >>>>> + clocks = <&cru SCLK_I2S_8CH_OUT>; >>>>> + clock-names = "mclk"; >>>>> + #sound-dai-cells = <0>; >>>>> + >>>>> + port { >>>>> + es8316_p0_0: endpoint { >>>>> + remote-endpoint = <&i2s1_p0_0>; >>>>> + }; >>>>> + }; >>>>> + }; >>>>> }; >>>>> >>>>> &i2c3 { >>>>> @@ -505,6 +525,14 @@ >>>>> rockchip,playback-channels = <2>; >>>>> rockchip,capture-channels = <2>; >>>>> status = "okay"; >>>>> + >>>>> + i2s1_p0: port { >>>>> + i2s1_p0_0: endpoint { >>>>> + dai-format = "i2s"; >>>>> + mclk-fs = <256>; >>>>> + remote-endpoint = <&es8316_p0_0>; >>>>> + }; >>>>> + }; >>>>> }; >>>>> >>>>> &i2s2 { >>>>> -- >>>>> 2.23.0.rc1 >>>>> >>>>> >>>>> _______________________________________________ >>>>> linux-arm-kernel mailing list >>>>> linux-arm-kernel@lists.infradead.org >>>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >>>> >>> > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 2019-11-12 5:34 ` Katsuhiro Suzuki @ 2019-11-12 5:43 ` Vasily Khoruzhick 2019-11-12 5:49 ` Vasily Khoruzhick 0 siblings, 1 reply; 14+ messages in thread From: Vasily Khoruzhick @ 2019-11-12 5:43 UTC (permalink / raw) To: Katsuhiro Suzuki; +Cc: Heiko Stuebner, linux-rockchip, linux-kernel, arm-linux On Mon, Nov 11, 2019 at 9:34 PM Katsuhiro Suzuki <katsuhiro@katsuster.net> wrote: > > Hello Vasily, > > Thank you for valuable information. > > On 2019/11/12 4:25, Vasily Khoruzhick wrote: > > On Sun, Nov 10, 2019 at 9:40 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: > >> > >> On Sun, Nov 10, 2019 at 7:30 PM Katsuhiro Suzuki > >> <katsuhiro@katsuster.net> wrote: > >>> > >>> Hello Vasily, > >> > >> Hi Katsuhiro, > >> > >> Thanks for response! > > > > Looks like on my board codec sits at address 0x10, and according to > > schematics that's what its address is supposed to be. > > > > See http://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf > > > > Codec address is selected by pin CE of ES8316, and on rockpro64 it > > goes to GND through R226. So address should be 0x10. > > > > Yes, I agree. The schematics both v2.0 and v2.1 say that ES8316 > address is 0x10. Thank you for pointing. > > But I wonder that my RockPro64 behavior is strange, he is in address > 0x11. (R226 on my board is broken...??) > > root@rockpro64:~# i2cdetect 1 > WARNING! This program can confuse your I2C bus, cause data loss and worse! > I will probe file /dev/i2c-1. > I will probe address range 0x03-0x77. > Continue? [Y/n] y > 0 1 2 3 4 5 6 7 8 9 a b c d e f > 00: -- -- -- -- -- -- -- -- -- -- -- -- -- > 10: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 70: -- -- -- -- -- -- -- -- > > I plan to check R226 resistance value to judge R226 is broken or not > after return to home. And share the result with you. > Please give me a time. Thanks for confirming that on your board it's on address 0x11. I checked with some other rockpro64 owners and they have it on 0x10, but looks like we have boards with codec on different address in the wild. > Best Regards, > Katsuhiro Suzuki > > > >>> Thank you for reporting. > >>> > >>> On 2019/11/11 9:17, Vasily Khoruzhick wrote: > >>>> On Sat, Sep 7, 2019 at 10:48 AM Katsuhiro Suzuki > >>>> <katsuhiro@katsuster.net> wrote: > >>>>> > >>>>> This patch adds audio codec (Everest ES8316) and I2S audio nodes for > >>>>> RK3399 RockPro64. > >>>> > >>>> Hi Katsuhiro, > >>>> > >>>> I tested your patch with my rockpro64 on 5.4-rc6 which has your other > >>>> patches to es8316 driver, but apparently it doesn't work. > >>>> > >>>> 'alsamixer' complains 'cannot load mixer controls: No such device or > >>>> address' and if I try to play audio with mpg123 it pretends that it > >>>> plays something but there's no sound. > >>>> > >>>> Any idea what can be wrong? > >>>> > >>> > >>> Do you use defconfig? If so I guess we need turn on more configs: > >>> > >>> - simple-graph-card driver (CONFIG_SND_AUDIO_GRAPH_CARD) > >>> - ES8316 (SND_SOC_ES8316) > >> > >> I have these enabled, card is present in /proc/asound/cards, but > >> alsamixer doesn't work with it. > >> > >>> FYI) ASoC related status or logs in my environment as follows: > >>> > >>> root@rockpro64:~# uname -a > >>> Linux rockpro64 5.4.0-rc6-next-20191108 #169 SMP PREEMPT Mon Nov 11 12:21:44 JST 2019 aarch64 GNU/Linux > >> > >> I'm running 5.4.0-rc6 (commit > >> 00aff6836241ae5654895dcea10e6d4fc5878ca6) with your patch "arm64: dts: > >> rockchip: add analog audio nodes on rk3399-rockpro64" on top of it. > >> > >>> root@rockpro64:~# dmesg | grep -i asoc > >>> [ 21.509903] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok > >>> [ 21.510550] asoc-simple-card hdmi-sound: ASoC: no DMI vendor name! > >>> [ 21.567906] asoc-audio-graph-card sound: ES8316 HiFi <-> ff890000.i2s mapping ok > >>> [ 21.568565] asoc-audio-graph-card sound: ASoC: no DMI vendor name! > >> > >> Similar here: > >> > >> [vasilykh@rockpro64 ~]$ dmesg | grep -i asoc > >> [ 15.627685] asoc-audio-graph-card sound: ES8316 HiFi <-> > >> ff890000.i2s mapping ok > >> [ 16.250196] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok > >> > >>> root@rockpro64:~# cat /proc/asound/pcm > >>> 00-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi i2s-hifi-0 : playback 1 > >>> 01-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : playback 1 : capture 1 > >> > >> Same here: > >> > >> [vasilykh@rockpro64 ~]$ cat /proc/asound/pcm > >> 00-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 > >> HiFi ES8316 HiFi-0 : playback 1 : capture 1 > >> 01-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi > >> i2s-hifi-0 : playback > >> > >>> root@rockpro64:~# cat /sys/kernel/debug/asoc/components > >>> hdmi-audio-codec.3.auto > >>> ff8a0000.i2s > >>> ff8a0000.i2s > >>> ff890000.i2s > >>> ff890000.i2s > >>> ff880000.i2s > >>> ff880000.i2s > >>> es8316.1-0011 > >>> snd-soc-dummy > >>> snd-soc-dummy > >> > >> Same here. > >> > >>> root@rockpro64:~# cat /sys/kernel/debug/asoc/dais > >>> i2s-hifi > >>> ff8a0000.i2s > >>> ff890000.i2s > >>> ff880000.i2s > >>> ES8316 HiFi > >>> snd-soc-dummy-dai > >> > >> Same here. > >> > >> Yet alsamixer doesn't work for me. It terminates with 'cannot load > >> mixer controls: No such device or address'. Strace shows that fails > >> here: > >> > >> openat(AT_FDCWD, "/dev/snd/controlC0", O_RDWR|O_CLOEXEC) = 3 > >> fcntl(3, F_SETFD, FD_CLOEXEC) = 0 > >> ioctl(3, SNDRV_CTL_IOCTL_PVERSION, 0xfffffd3ad04c) = 0 > >> fcntl(3, F_GETFL) = 0x20002 (flags O_RDWR|O_LARGEFILE) > >> fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0 > >> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 > >> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 > >> ioctl(3, SNDRV_CTL_IOCTL_ELEM_INFO, 0xfffffd3ace38) = 0 > >> ioctl(3, SNDRV_CTL_IOCTL_ELEM_READ, 0xfffffd3ac160) = -1 ENXIO (No > >> such device or address) > >> > >> Looks like it fails to talk to the codec? > >> > >> mpg123 thinks that it's playing audio, but my headphones connected to > >> 3.5mm output are silent. > >> > >> Regards, > >> Vasily > >> > >> > >>> Best Regards, > >>> Katsuhiro Suzuki > >>> > >>> > >>>> Regards, > >>>> Vasily > >>>> > >>>>> Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> > >>>>> --- > >>>>> .../boot/dts/rockchip/rk3399-rockpro64.dts | 28 +++++++++++++++++++ > >>>>> 1 file changed, 28 insertions(+) > >>>>> > >>>>> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > >>>>> index 0401d4ec1f45..8b1e6382b140 100644 > >>>>> --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > >>>>> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > >>>>> @@ -81,6 +81,12 @@ > >>>>> reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; > >>>>> }; > >>>>> > >>>>> + sound { > >>>>> + compatible = "audio-graph-card"; > >>>>> + label = "rockchip,rk3399"; > >>>>> + dais = <&i2s1_p0>; > >>>>> + }; > >>>>> + > >>>>> vcc12v_dcin: vcc12v-dcin { > >>>>> compatible = "regulator-fixed"; > >>>>> regulator-name = "vcc12v_dcin"; > >>>>> @@ -470,6 +476,20 @@ > >>>>> i2c-scl-rising-time-ns = <300>; > >>>>> i2c-scl-falling-time-ns = <15>; > >>>>> status = "okay"; > >>>>> + > >>>>> + es8316: codec@11 { > >>>>> + compatible = "everest,es8316"; > >>>>> + reg = <0x11>; > >>>>> + clocks = <&cru SCLK_I2S_8CH_OUT>; > >>>>> + clock-names = "mclk"; > >>>>> + #sound-dai-cells = <0>; > >>>>> + > >>>>> + port { > >>>>> + es8316_p0_0: endpoint { > >>>>> + remote-endpoint = <&i2s1_p0_0>; > >>>>> + }; > >>>>> + }; > >>>>> + }; > >>>>> }; > >>>>> > >>>>> &i2c3 { > >>>>> @@ -505,6 +525,14 @@ > >>>>> rockchip,playback-channels = <2>; > >>>>> rockchip,capture-channels = <2>; > >>>>> status = "okay"; > >>>>> + > >>>>> + i2s1_p0: port { > >>>>> + i2s1_p0_0: endpoint { > >>>>> + dai-format = "i2s"; > >>>>> + mclk-fs = <256>; > >>>>> + remote-endpoint = <&es8316_p0_0>; > >>>>> + }; > >>>>> + }; > >>>>> }; > >>>>> > >>>>> &i2s2 { > >>>>> -- > >>>>> 2.23.0.rc1 > >>>>> > >>>>> > >>>>> _______________________________________________ > >>>>> linux-arm-kernel mailing list > >>>>> linux-arm-kernel@lists.infradead.org > >>>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > >>>> > >>> > > > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 2019-11-12 5:43 ` Vasily Khoruzhick @ 2019-11-12 5:49 ` Vasily Khoruzhick 2019-11-12 18:34 ` Katsuhiro Suzuki 0 siblings, 1 reply; 14+ messages in thread From: Vasily Khoruzhick @ 2019-11-12 5:49 UTC (permalink / raw) To: Katsuhiro Suzuki; +Cc: Heiko Stuebner, linux-rockchip, linux-kernel, arm-linux On Mon, Nov 11, 2019 at 9:43 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: > > On Mon, Nov 11, 2019 at 9:34 PM Katsuhiro Suzuki > <katsuhiro@katsuster.net> wrote: > > > > Hello Vasily, > > > > Thank you for valuable information. > > > > On 2019/11/12 4:25, Vasily Khoruzhick wrote: > > > On Sun, Nov 10, 2019 at 9:40 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: > > >> > > >> On Sun, Nov 10, 2019 at 7:30 PM Katsuhiro Suzuki > > >> <katsuhiro@katsuster.net> wrote: > > >>> > > >>> Hello Vasily, > > >> > > >> Hi Katsuhiro, > > >> > > >> Thanks for response! > > > > > > Looks like on my board codec sits at address 0x10, and according to > > > schematics that's what its address is supposed to be. > > > > > > See http://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf > > > > > > Codec address is selected by pin CE of ES8316, and on rockpro64 it > > > goes to GND through R226. So address should be 0x10. > > > > > > > Yes, I agree. The schematics both v2.0 and v2.1 say that ES8316 > > address is 0x10. Thank you for pointing. > > > > But I wonder that my RockPro64 behavior is strange, he is in address > > 0x11. (R226 on my board is broken...??) > > > > root@rockpro64:~# i2cdetect 1 > > WARNING! This program can confuse your I2C bus, cause data loss and worse! > > I will probe file /dev/i2c-1. > > I will probe address range 0x03-0x77. > > Continue? [Y/n] y > > 0 1 2 3 4 5 6 7 8 9 a b c d e f > > 00: -- -- -- -- -- -- -- -- -- -- -- -- -- > > 10: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > 70: -- -- -- -- -- -- -- -- > > > > I plan to check R226 resistance value to judge R226 is broken or not > > after return to home. And share the result with you. > > Please give me a time. > > Thanks for confirming that on your board it's on address 0x11. I > checked with some other rockpro64 owners and they have it on 0x10, but > looks like we have boards with codec on different address in the wild. Another datapoint is that my board is 2.0. If yours is 2.1 it can be a difference between 2.0 and 2.1. > > Best Regards, > > Katsuhiro Suzuki > > > > > > >>> Thank you for reporting. > > >>> > > >>> On 2019/11/11 9:17, Vasily Khoruzhick wrote: > > >>>> On Sat, Sep 7, 2019 at 10:48 AM Katsuhiro Suzuki > > >>>> <katsuhiro@katsuster.net> wrote: > > >>>>> > > >>>>> This patch adds audio codec (Everest ES8316) and I2S audio nodes for > > >>>>> RK3399 RockPro64. > > >>>> > > >>>> Hi Katsuhiro, > > >>>> > > >>>> I tested your patch with my rockpro64 on 5.4-rc6 which has your other > > >>>> patches to es8316 driver, but apparently it doesn't work. > > >>>> > > >>>> 'alsamixer' complains 'cannot load mixer controls: No such device or > > >>>> address' and if I try to play audio with mpg123 it pretends that it > > >>>> plays something but there's no sound. > > >>>> > > >>>> Any idea what can be wrong? > > >>>> > > >>> > > >>> Do you use defconfig? If so I guess we need turn on more configs: > > >>> > > >>> - simple-graph-card driver (CONFIG_SND_AUDIO_GRAPH_CARD) > > >>> - ES8316 (SND_SOC_ES8316) > > >> > > >> I have these enabled, card is present in /proc/asound/cards, but > > >> alsamixer doesn't work with it. > > >> > > >>> FYI) ASoC related status or logs in my environment as follows: > > >>> > > >>> root@rockpro64:~# uname -a > > >>> Linux rockpro64 5.4.0-rc6-next-20191108 #169 SMP PREEMPT Mon Nov 11 12:21:44 JST 2019 aarch64 GNU/Linux > > >> > > >> I'm running 5.4.0-rc6 (commit > > >> 00aff6836241ae5654895dcea10e6d4fc5878ca6) with your patch "arm64: dts: > > >> rockchip: add analog audio nodes on rk3399-rockpro64" on top of it. > > >> > > >>> root@rockpro64:~# dmesg | grep -i asoc > > >>> [ 21.509903] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok > > >>> [ 21.510550] asoc-simple-card hdmi-sound: ASoC: no DMI vendor name! > > >>> [ 21.567906] asoc-audio-graph-card sound: ES8316 HiFi <-> ff890000.i2s mapping ok > > >>> [ 21.568565] asoc-audio-graph-card sound: ASoC: no DMI vendor name! > > >> > > >> Similar here: > > >> > > >> [vasilykh@rockpro64 ~]$ dmesg | grep -i asoc > > >> [ 15.627685] asoc-audio-graph-card sound: ES8316 HiFi <-> > > >> ff890000.i2s mapping ok > > >> [ 16.250196] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok > > >> > > >>> root@rockpro64:~# cat /proc/asound/pcm > > >>> 00-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi i2s-hifi-0 : playback 1 > > >>> 01-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : playback 1 : capture 1 > > >> > > >> Same here: > > >> > > >> [vasilykh@rockpro64 ~]$ cat /proc/asound/pcm > > >> 00-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 > > >> HiFi ES8316 HiFi-0 : playback 1 : capture 1 > > >> 01-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi > > >> i2s-hifi-0 : playback > > >> > > >>> root@rockpro64:~# cat /sys/kernel/debug/asoc/components > > >>> hdmi-audio-codec.3.auto > > >>> ff8a0000.i2s > > >>> ff8a0000.i2s > > >>> ff890000.i2s > > >>> ff890000.i2s > > >>> ff880000.i2s > > >>> ff880000.i2s > > >>> es8316.1-0011 > > >>> snd-soc-dummy > > >>> snd-soc-dummy > > >> > > >> Same here. > > >> > > >>> root@rockpro64:~# cat /sys/kernel/debug/asoc/dais > > >>> i2s-hifi > > >>> ff8a0000.i2s > > >>> ff890000.i2s > > >>> ff880000.i2s > > >>> ES8316 HiFi > > >>> snd-soc-dummy-dai > > >> > > >> Same here. > > >> > > >> Yet alsamixer doesn't work for me. It terminates with 'cannot load > > >> mixer controls: No such device or address'. Strace shows that fails > > >> here: > > >> > > >> openat(AT_FDCWD, "/dev/snd/controlC0", O_RDWR|O_CLOEXEC) = 3 > > >> fcntl(3, F_SETFD, FD_CLOEXEC) = 0 > > >> ioctl(3, SNDRV_CTL_IOCTL_PVERSION, 0xfffffd3ad04c) = 0 > > >> fcntl(3, F_GETFL) = 0x20002 (flags O_RDWR|O_LARGEFILE) > > >> fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0 > > >> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 > > >> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 > > >> ioctl(3, SNDRV_CTL_IOCTL_ELEM_INFO, 0xfffffd3ace38) = 0 > > >> ioctl(3, SNDRV_CTL_IOCTL_ELEM_READ, 0xfffffd3ac160) = -1 ENXIO (No > > >> such device or address) > > >> > > >> Looks like it fails to talk to the codec? > > >> > > >> mpg123 thinks that it's playing audio, but my headphones connected to > > >> 3.5mm output are silent. > > >> > > >> Regards, > > >> Vasily > > >> > > >> > > >>> Best Regards, > > >>> Katsuhiro Suzuki > > >>> > > >>> > > >>>> Regards, > > >>>> Vasily > > >>>> > > >>>>> Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> > > >>>>> --- > > >>>>> .../boot/dts/rockchip/rk3399-rockpro64.dts | 28 +++++++++++++++++++ > > >>>>> 1 file changed, 28 insertions(+) > > >>>>> > > >>>>> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > > >>>>> index 0401d4ec1f45..8b1e6382b140 100644 > > >>>>> --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > > >>>>> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > > >>>>> @@ -81,6 +81,12 @@ > > >>>>> reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; > > >>>>> }; > > >>>>> > > >>>>> + sound { > > >>>>> + compatible = "audio-graph-card"; > > >>>>> + label = "rockchip,rk3399"; > > >>>>> + dais = <&i2s1_p0>; > > >>>>> + }; > > >>>>> + > > >>>>> vcc12v_dcin: vcc12v-dcin { > > >>>>> compatible = "regulator-fixed"; > > >>>>> regulator-name = "vcc12v_dcin"; > > >>>>> @@ -470,6 +476,20 @@ > > >>>>> i2c-scl-rising-time-ns = <300>; > > >>>>> i2c-scl-falling-time-ns = <15>; > > >>>>> status = "okay"; > > >>>>> + > > >>>>> + es8316: codec@11 { > > >>>>> + compatible = "everest,es8316"; > > >>>>> + reg = <0x11>; > > >>>>> + clocks = <&cru SCLK_I2S_8CH_OUT>; > > >>>>> + clock-names = "mclk"; > > >>>>> + #sound-dai-cells = <0>; > > >>>>> + > > >>>>> + port { > > >>>>> + es8316_p0_0: endpoint { > > >>>>> + remote-endpoint = <&i2s1_p0_0>; > > >>>>> + }; > > >>>>> + }; > > >>>>> + }; > > >>>>> }; > > >>>>> > > >>>>> &i2c3 { > > >>>>> @@ -505,6 +525,14 @@ > > >>>>> rockchip,playback-channels = <2>; > > >>>>> rockchip,capture-channels = <2>; > > >>>>> status = "okay"; > > >>>>> + > > >>>>> + i2s1_p0: port { > > >>>>> + i2s1_p0_0: endpoint { > > >>>>> + dai-format = "i2s"; > > >>>>> + mclk-fs = <256>; > > >>>>> + remote-endpoint = <&es8316_p0_0>; > > >>>>> + }; > > >>>>> + }; > > >>>>> }; > > >>>>> > > >>>>> &i2s2 { > > >>>>> -- > > >>>>> 2.23.0.rc1 > > >>>>> > > >>>>> > > >>>>> _______________________________________________ > > >>>>> linux-arm-kernel mailing list > > >>>>> linux-arm-kernel@lists.infradead.org > > >>>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > > >>>> > > >>> > > > > > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 2019-11-12 5:49 ` Vasily Khoruzhick @ 2019-11-12 18:34 ` Katsuhiro Suzuki 2019-11-12 19:46 ` Vasily Khoruzhick 0 siblings, 1 reply; 14+ messages in thread From: Katsuhiro Suzuki @ 2019-11-12 18:34 UTC (permalink / raw) To: Vasily Khoruzhick; +Cc: Heiko Stuebner, linux-rockchip, linux-kernel, arm-linux On 2019/11/12 14:49, Vasily Khoruzhick wrote: > On Mon, Nov 11, 2019 at 9:43 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: >> >> On Mon, Nov 11, 2019 at 9:34 PM Katsuhiro Suzuki >> <katsuhiro@katsuster.net> wrote: >>> >>> Hello Vasily, >>> >>> Thank you for valuable information. >>> >>> On 2019/11/12 4:25, Vasily Khoruzhick wrote: >>>> On Sun, Nov 10, 2019 at 9:40 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: >>>>> >>>>> On Sun, Nov 10, 2019 at 7:30 PM Katsuhiro Suzuki >>>>> <katsuhiro@katsuster.net> wrote: >>>>>> >>>>>> Hello Vasily, >>>>> >>>>> Hi Katsuhiro, >>>>> >>>>> Thanks for response! >>>> >>>> Looks like on my board codec sits at address 0x10, and according to >>>> schematics that's what its address is supposed to be. >>>> >>>> See http://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf >>>> >>>> Codec address is selected by pin CE of ES8316, and on rockpro64 it >>>> goes to GND through R226. So address should be 0x10. >>>> >>> >>> Yes, I agree. The schematics both v2.0 and v2.1 say that ES8316 >>> address is 0x10. Thank you for pointing. >>> >>> But I wonder that my RockPro64 behavior is strange, he is in address >>> 0x11. (R226 on my board is broken...??) >>> >>> root@rockpro64:~# i2cdetect 1 >>> WARNING! This program can confuse your I2C bus, cause data loss and worse! >>> I will probe file /dev/i2c-1. >>> I will probe address range 0x03-0x77. >>> Continue? [Y/n] y >>> 0 1 2 3 4 5 6 7 8 9 a b c d e f >>> 00: -- -- -- -- -- -- -- -- -- -- -- -- -- >>> 10: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>> 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>> 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>> 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>> 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>> 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>> 70: -- -- -- -- -- -- -- -- >>> >>> I plan to check R226 resistance value to judge R226 is broken or not >>> after return to home. And share the result with you. >>> Please give me a time. >> >> Thanks for confirming that on your board it's on address 0x11. I >> checked with some other rockpro64 owners and they have it on 0x10, but >> looks like we have boards with codec on different address in the wild. > > Another datapoint is that my board is 2.0. If yours is 2.1 it can be a > difference between 2.0 and 2.1. > I'm using v2.1 board. I'll share the checking result. It's a little strange. 1) Voltage of CE pin of ES8316 It is 1.8V when booting linux-next kernel. 2) My board I can't find no crack nor broken parts on my board. 2) R225, R226 As you know, RockPro64 board has no silk print so we cannot know perfectly which resistance is R226. So this is my assumption. PCIe, SD card slot (top) LAN (left)ES8316(right) USB, reset button On the left space of ES8316 there is no resistance, only a pattern. This is maybe R225. And 10K resistance on the right side of a pattern. I assume this is R226. If my assumption is correctly, board implementation and schematics are different. schematics of v2.1 gets something wrong...?? >>> Best Regards, >>> Katsuhiro Suzuki >>> >>> >>>>>> Thank you for reporting. >>>>>> >>>>>> On 2019/11/11 9:17, Vasily Khoruzhick wrote: >>>>>>> On Sat, Sep 7, 2019 at 10:48 AM Katsuhiro Suzuki >>>>>>> <katsuhiro@katsuster.net> wrote: >>>>>>>> >>>>>>>> This patch adds audio codec (Everest ES8316) and I2S audio nodes for >>>>>>>> RK3399 RockPro64. >>>>>>> >>>>>>> Hi Katsuhiro, >>>>>>> >>>>>>> I tested your patch with my rockpro64 on 5.4-rc6 which has your other >>>>>>> patches to es8316 driver, but apparently it doesn't work. >>>>>>> >>>>>>> 'alsamixer' complains 'cannot load mixer controls: No such device or >>>>>>> address' and if I try to play audio with mpg123 it pretends that it >>>>>>> plays something but there's no sound. >>>>>>> >>>>>>> Any idea what can be wrong? >>>>>>> >>>>>> >>>>>> Do you use defconfig? If so I guess we need turn on more configs: >>>>>> >>>>>> - simple-graph-card driver (CONFIG_SND_AUDIO_GRAPH_CARD) >>>>>> - ES8316 (SND_SOC_ES8316) >>>>> >>>>> I have these enabled, card is present in /proc/asound/cards, but >>>>> alsamixer doesn't work with it. >>>>> >>>>>> FYI) ASoC related status or logs in my environment as follows: >>>>>> >>>>>> root@rockpro64:~# uname -a >>>>>> Linux rockpro64 5.4.0-rc6-next-20191108 #169 SMP PREEMPT Mon Nov 11 12:21:44 JST 2019 aarch64 GNU/Linux >>>>> >>>>> I'm running 5.4.0-rc6 (commit >>>>> 00aff6836241ae5654895dcea10e6d4fc5878ca6) with your patch "arm64: dts: >>>>> rockchip: add analog audio nodes on rk3399-rockpro64" on top of it. >>>>> >>>>>> root@rockpro64:~# dmesg | grep -i asoc >>>>>> [ 21.509903] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok >>>>>> [ 21.510550] asoc-simple-card hdmi-sound: ASoC: no DMI vendor name! >>>>>> [ 21.567906] asoc-audio-graph-card sound: ES8316 HiFi <-> ff890000.i2s mapping ok >>>>>> [ 21.568565] asoc-audio-graph-card sound: ASoC: no DMI vendor name! >>>>> >>>>> Similar here: >>>>> >>>>> [vasilykh@rockpro64 ~]$ dmesg | grep -i asoc >>>>> [ 15.627685] asoc-audio-graph-card sound: ES8316 HiFi <-> >>>>> ff890000.i2s mapping ok >>>>> [ 16.250196] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok >>>>> >>>>>> root@rockpro64:~# cat /proc/asound/pcm >>>>>> 00-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi i2s-hifi-0 : playback 1 >>>>>> 01-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : playback 1 : capture 1 >>>>> >>>>> Same here: >>>>> >>>>> [vasilykh@rockpro64 ~]$ cat /proc/asound/pcm >>>>> 00-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 >>>>> HiFi ES8316 HiFi-0 : playback 1 : capture 1 >>>>> 01-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi >>>>> i2s-hifi-0 : playback >>>>> >>>>>> root@rockpro64:~# cat /sys/kernel/debug/asoc/components >>>>>> hdmi-audio-codec.3.auto >>>>>> ff8a0000.i2s >>>>>> ff8a0000.i2s >>>>>> ff890000.i2s >>>>>> ff890000.i2s >>>>>> ff880000.i2s >>>>>> ff880000.i2s >>>>>> es8316.1-0011 >>>>>> snd-soc-dummy >>>>>> snd-soc-dummy >>>>> >>>>> Same here. >>>>> >>>>>> root@rockpro64:~# cat /sys/kernel/debug/asoc/dais >>>>>> i2s-hifi >>>>>> ff8a0000.i2s >>>>>> ff890000.i2s >>>>>> ff880000.i2s >>>>>> ES8316 HiFi >>>>>> snd-soc-dummy-dai >>>>> >>>>> Same here. >>>>> >>>>> Yet alsamixer doesn't work for me. It terminates with 'cannot load >>>>> mixer controls: No such device or address'. Strace shows that fails >>>>> here: >>>>> >>>>> openat(AT_FDCWD, "/dev/snd/controlC0", O_RDWR|O_CLOEXEC) = 3 >>>>> fcntl(3, F_SETFD, FD_CLOEXEC) = 0 >>>>> ioctl(3, SNDRV_CTL_IOCTL_PVERSION, 0xfffffd3ad04c) = 0 >>>>> fcntl(3, F_GETFL) = 0x20002 (flags O_RDWR|O_LARGEFILE) >>>>> fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0 >>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 >>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 >>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_INFO, 0xfffffd3ace38) = 0 >>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_READ, 0xfffffd3ac160) = -1 ENXIO (No >>>>> such device or address) >>>>> >>>>> Looks like it fails to talk to the codec? >>>>> >>>>> mpg123 thinks that it's playing audio, but my headphones connected to >>>>> 3.5mm output are silent. >>>>> >>>>> Regards, >>>>> Vasily >>>>> >>>>> >>>>>> Best Regards, >>>>>> Katsuhiro Suzuki >>>>>> >>>>>> >>>>>>> Regards, >>>>>>> Vasily >>>>>>> >>>>>>>> Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> >>>>>>>> --- >>>>>>>> .../boot/dts/rockchip/rk3399-rockpro64.dts | 28 +++++++++++++++++++ >>>>>>>> 1 file changed, 28 insertions(+) >>>>>>>> >>>>>>>> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >>>>>>>> index 0401d4ec1f45..8b1e6382b140 100644 >>>>>>>> --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >>>>>>>> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >>>>>>>> @@ -81,6 +81,12 @@ >>>>>>>> reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; >>>>>>>> }; >>>>>>>> >>>>>>>> + sound { >>>>>>>> + compatible = "audio-graph-card"; >>>>>>>> + label = "rockchip,rk3399"; >>>>>>>> + dais = <&i2s1_p0>; >>>>>>>> + }; >>>>>>>> + >>>>>>>> vcc12v_dcin: vcc12v-dcin { >>>>>>>> compatible = "regulator-fixed"; >>>>>>>> regulator-name = "vcc12v_dcin"; >>>>>>>> @@ -470,6 +476,20 @@ >>>>>>>> i2c-scl-rising-time-ns = <300>; >>>>>>>> i2c-scl-falling-time-ns = <15>; >>>>>>>> status = "okay"; >>>>>>>> + >>>>>>>> + es8316: codec@11 { >>>>>>>> + compatible = "everest,es8316"; >>>>>>>> + reg = <0x11>; >>>>>>>> + clocks = <&cru SCLK_I2S_8CH_OUT>; >>>>>>>> + clock-names = "mclk"; >>>>>>>> + #sound-dai-cells = <0>; >>>>>>>> + >>>>>>>> + port { >>>>>>>> + es8316_p0_0: endpoint { >>>>>>>> + remote-endpoint = <&i2s1_p0_0>; >>>>>>>> + }; >>>>>>>> + }; >>>>>>>> + }; >>>>>>>> }; >>>>>>>> >>>>>>>> &i2c3 { >>>>>>>> @@ -505,6 +525,14 @@ >>>>>>>> rockchip,playback-channels = <2>; >>>>>>>> rockchip,capture-channels = <2>; >>>>>>>> status = "okay"; >>>>>>>> + >>>>>>>> + i2s1_p0: port { >>>>>>>> + i2s1_p0_0: endpoint { >>>>>>>> + dai-format = "i2s"; >>>>>>>> + mclk-fs = <256>; >>>>>>>> + remote-endpoint = <&es8316_p0_0>; >>>>>>>> + }; >>>>>>>> + }; >>>>>>>> }; >>>>>>>> >>>>>>>> &i2s2 { >>>>>>>> -- >>>>>>>> 2.23.0.rc1 >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> linux-arm-kernel mailing list >>>>>>>> linux-arm-kernel@lists.infradead.org >>>>>>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >>>>>>> >>>>>> >>>> >>> > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 2019-11-12 18:34 ` Katsuhiro Suzuki @ 2019-11-12 19:46 ` Vasily Khoruzhick 2019-11-13 15:02 ` Hugh Cole-Baker 0 siblings, 1 reply; 14+ messages in thread From: Vasily Khoruzhick @ 2019-11-12 19:46 UTC (permalink / raw) To: Katsuhiro Suzuki; +Cc: Heiko Stuebner, linux-rockchip, linux-kernel, arm-linux On Tue, Nov 12, 2019 at 10:34 AM Katsuhiro Suzuki <katsuhiro@katsuster.net> wrote: > > On 2019/11/12 14:49, Vasily Khoruzhick wrote: > > On Mon, Nov 11, 2019 at 9:43 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: > >> > >> On Mon, Nov 11, 2019 at 9:34 PM Katsuhiro Suzuki > >> <katsuhiro@katsuster.net> wrote: > >>> > >>> Hello Vasily, > >>> > >>> Thank you for valuable information. > >>> > >>> On 2019/11/12 4:25, Vasily Khoruzhick wrote: > >>>> On Sun, Nov 10, 2019 at 9:40 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: > >>>>> > >>>>> On Sun, Nov 10, 2019 at 7:30 PM Katsuhiro Suzuki > >>>>> <katsuhiro@katsuster.net> wrote: > >>>>>> > >>>>>> Hello Vasily, > >>>>> > >>>>> Hi Katsuhiro, > >>>>> > >>>>> Thanks for response! > >>>> > >>>> Looks like on my board codec sits at address 0x10, and according to > >>>> schematics that's what its address is supposed to be. > >>>> > >>>> See http://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf > >>>> > >>>> Codec address is selected by pin CE of ES8316, and on rockpro64 it > >>>> goes to GND through R226. So address should be 0x10. > >>>> > >>> > >>> Yes, I agree. The schematics both v2.0 and v2.1 say that ES8316 > >>> address is 0x10. Thank you for pointing. > >>> > >>> But I wonder that my RockPro64 behavior is strange, he is in address > >>> 0x11. (R226 on my board is broken...??) > >>> > >>> root@rockpro64:~# i2cdetect 1 > >>> WARNING! This program can confuse your I2C bus, cause data loss and worse! > >>> I will probe file /dev/i2c-1. > >>> I will probe address range 0x03-0x77. > >>> Continue? [Y/n] y > >>> 0 1 2 3 4 5 6 7 8 9 a b c d e f > >>> 00: -- -- -- -- -- -- -- -- -- -- -- -- -- > >>> 10: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- > >>> 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > >>> 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > >>> 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > >>> 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > >>> 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > >>> 70: -- -- -- -- -- -- -- -- > >>> > >>> I plan to check R226 resistance value to judge R226 is broken or not > >>> after return to home. And share the result with you. > >>> Please give me a time. > >> > >> Thanks for confirming that on your board it's on address 0x11. I > >> checked with some other rockpro64 owners and they have it on 0x10, but > >> looks like we have boards with codec on different address in the wild. > > > > Another datapoint is that my board is 2.0. If yours is 2.1 it can be a > > difference between 2.0 and 2.1. > > > > I'm using v2.1 board. > > > I'll share the checking result. It's a little strange. > > 1) Voltage of CE pin of ES8316 > > It is 1.8V when booting linux-next kernel. > > > 2) My board > > I can't find no crack nor broken parts on my board. > > > 2) R225, R226 > > As you know, RockPro64 board has no silk print so we cannot know > perfectly which resistance is R226. So this is my assumption. > > PCIe, SD card slot > (top) > LAN (left)ES8316(right) USB, reset button > > On the left space of ES8316 there is no resistance, only a pattern. > This is maybe R225. And 10K resistance on the right side of a > pattern. I assume this is R226. > > If my assumption is correctly, board implementation and schematics > are different. > > schematics of v2.1 gets something wrong...?? Guess we need few more RockPro64 v2.1 owners to confirm that it's indeed the case. > > >>> Best Regards, > >>> Katsuhiro Suzuki > >>> > >>> > >>>>>> Thank you for reporting. > >>>>>> > >>>>>> On 2019/11/11 9:17, Vasily Khoruzhick wrote: > >>>>>>> On Sat, Sep 7, 2019 at 10:48 AM Katsuhiro Suzuki > >>>>>>> <katsuhiro@katsuster.net> wrote: > >>>>>>>> > >>>>>>>> This patch adds audio codec (Everest ES8316) and I2S audio nodes for > >>>>>>>> RK3399 RockPro64. > >>>>>>> > >>>>>>> Hi Katsuhiro, > >>>>>>> > >>>>>>> I tested your patch with my rockpro64 on 5.4-rc6 which has your other > >>>>>>> patches to es8316 driver, but apparently it doesn't work. > >>>>>>> > >>>>>>> 'alsamixer' complains 'cannot load mixer controls: No such device or > >>>>>>> address' and if I try to play audio with mpg123 it pretends that it > >>>>>>> plays something but there's no sound. > >>>>>>> > >>>>>>> Any idea what can be wrong? > >>>>>>> > >>>>>> > >>>>>> Do you use defconfig? If so I guess we need turn on more configs: > >>>>>> > >>>>>> - simple-graph-card driver (CONFIG_SND_AUDIO_GRAPH_CARD) > >>>>>> - ES8316 (SND_SOC_ES8316) > >>>>> > >>>>> I have these enabled, card is present in /proc/asound/cards, but > >>>>> alsamixer doesn't work with it. > >>>>> > >>>>>> FYI) ASoC related status or logs in my environment as follows: > >>>>>> > >>>>>> root@rockpro64:~# uname -a > >>>>>> Linux rockpro64 5.4.0-rc6-next-20191108 #169 SMP PREEMPT Mon Nov 11 12:21:44 JST 2019 aarch64 GNU/Linux > >>>>> > >>>>> I'm running 5.4.0-rc6 (commit > >>>>> 00aff6836241ae5654895dcea10e6d4fc5878ca6) with your patch "arm64: dts: > >>>>> rockchip: add analog audio nodes on rk3399-rockpro64" on top of it. > >>>>> > >>>>>> root@rockpro64:~# dmesg | grep -i asoc > >>>>>> [ 21.509903] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok > >>>>>> [ 21.510550] asoc-simple-card hdmi-sound: ASoC: no DMI vendor name! > >>>>>> [ 21.567906] asoc-audio-graph-card sound: ES8316 HiFi <-> ff890000.i2s mapping ok > >>>>>> [ 21.568565] asoc-audio-graph-card sound: ASoC: no DMI vendor name! > >>>>> > >>>>> Similar here: > >>>>> > >>>>> [vasilykh@rockpro64 ~]$ dmesg | grep -i asoc > >>>>> [ 15.627685] asoc-audio-graph-card sound: ES8316 HiFi <-> > >>>>> ff890000.i2s mapping ok > >>>>> [ 16.250196] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok > >>>>> > >>>>>> root@rockpro64:~# cat /proc/asound/pcm > >>>>>> 00-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi i2s-hifi-0 : playback 1 > >>>>>> 01-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : playback 1 : capture 1 > >>>>> > >>>>> Same here: > >>>>> > >>>>> [vasilykh@rockpro64 ~]$ cat /proc/asound/pcm > >>>>> 00-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 > >>>>> HiFi ES8316 HiFi-0 : playback 1 : capture 1 > >>>>> 01-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi > >>>>> i2s-hifi-0 : playback > >>>>> > >>>>>> root@rockpro64:~# cat /sys/kernel/debug/asoc/components > >>>>>> hdmi-audio-codec.3.auto > >>>>>> ff8a0000.i2s > >>>>>> ff8a0000.i2s > >>>>>> ff890000.i2s > >>>>>> ff890000.i2s > >>>>>> ff880000.i2s > >>>>>> ff880000.i2s > >>>>>> es8316.1-0011 > >>>>>> snd-soc-dummy > >>>>>> snd-soc-dummy > >>>>> > >>>>> Same here. > >>>>> > >>>>>> root@rockpro64:~# cat /sys/kernel/debug/asoc/dais > >>>>>> i2s-hifi > >>>>>> ff8a0000.i2s > >>>>>> ff890000.i2s > >>>>>> ff880000.i2s > >>>>>> ES8316 HiFi > >>>>>> snd-soc-dummy-dai > >>>>> > >>>>> Same here. > >>>>> > >>>>> Yet alsamixer doesn't work for me. It terminates with 'cannot load > >>>>> mixer controls: No such device or address'. Strace shows that fails > >>>>> here: > >>>>> > >>>>> openat(AT_FDCWD, "/dev/snd/controlC0", O_RDWR|O_CLOEXEC) = 3 > >>>>> fcntl(3, F_SETFD, FD_CLOEXEC) = 0 > >>>>> ioctl(3, SNDRV_CTL_IOCTL_PVERSION, 0xfffffd3ad04c) = 0 > >>>>> fcntl(3, F_GETFL) = 0x20002 (flags O_RDWR|O_LARGEFILE) > >>>>> fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0 > >>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 > >>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 > >>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_INFO, 0xfffffd3ace38) = 0 > >>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_READ, 0xfffffd3ac160) = -1 ENXIO (No > >>>>> such device or address) > >>>>> > >>>>> Looks like it fails to talk to the codec? > >>>>> > >>>>> mpg123 thinks that it's playing audio, but my headphones connected to > >>>>> 3.5mm output are silent. > >>>>> > >>>>> Regards, > >>>>> Vasily > >>>>> > >>>>> > >>>>>> Best Regards, > >>>>>> Katsuhiro Suzuki > >>>>>> > >>>>>> > >>>>>>> Regards, > >>>>>>> Vasily > >>>>>>> > >>>>>>>> Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> > >>>>>>>> --- > >>>>>>>> .../boot/dts/rockchip/rk3399-rockpro64.dts | 28 +++++++++++++++++++ > >>>>>>>> 1 file changed, 28 insertions(+) > >>>>>>>> > >>>>>>>> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > >>>>>>>> index 0401d4ec1f45..8b1e6382b140 100644 > >>>>>>>> --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > >>>>>>>> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts > >>>>>>>> @@ -81,6 +81,12 @@ > >>>>>>>> reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; > >>>>>>>> }; > >>>>>>>> > >>>>>>>> + sound { > >>>>>>>> + compatible = "audio-graph-card"; > >>>>>>>> + label = "rockchip,rk3399"; > >>>>>>>> + dais = <&i2s1_p0>; > >>>>>>>> + }; > >>>>>>>> + > >>>>>>>> vcc12v_dcin: vcc12v-dcin { > >>>>>>>> compatible = "regulator-fixed"; > >>>>>>>> regulator-name = "vcc12v_dcin"; > >>>>>>>> @@ -470,6 +476,20 @@ > >>>>>>>> i2c-scl-rising-time-ns = <300>; > >>>>>>>> i2c-scl-falling-time-ns = <15>; > >>>>>>>> status = "okay"; > >>>>>>>> + > >>>>>>>> + es8316: codec@11 { > >>>>>>>> + compatible = "everest,es8316"; > >>>>>>>> + reg = <0x11>; > >>>>>>>> + clocks = <&cru SCLK_I2S_8CH_OUT>; > >>>>>>>> + clock-names = "mclk"; > >>>>>>>> + #sound-dai-cells = <0>; > >>>>>>>> + > >>>>>>>> + port { > >>>>>>>> + es8316_p0_0: endpoint { > >>>>>>>> + remote-endpoint = <&i2s1_p0_0>; > >>>>>>>> + }; > >>>>>>>> + }; > >>>>>>>> + }; > >>>>>>>> }; > >>>>>>>> > >>>>>>>> &i2c3 { > >>>>>>>> @@ -505,6 +525,14 @@ > >>>>>>>> rockchip,playback-channels = <2>; > >>>>>>>> rockchip,capture-channels = <2>; > >>>>>>>> status = "okay"; > >>>>>>>> + > >>>>>>>> + i2s1_p0: port { > >>>>>>>> + i2s1_p0_0: endpoint { > >>>>>>>> + dai-format = "i2s"; > >>>>>>>> + mclk-fs = <256>; > >>>>>>>> + remote-endpoint = <&es8316_p0_0>; > >>>>>>>> + }; > >>>>>>>> + }; > >>>>>>>> }; > >>>>>>>> > >>>>>>>> &i2s2 { > >>>>>>>> -- > >>>>>>>> 2.23.0.rc1 > >>>>>>>> > >>>>>>>> > >>>>>>>> _______________________________________________ > >>>>>>>> linux-arm-kernel mailing list > >>>>>>>> linux-arm-kernel@lists.infradead.org > >>>>>>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > >>>>>>> > >>>>>> > >>>> > >>> > > > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 2019-11-12 19:46 ` Vasily Khoruzhick @ 2019-11-13 15:02 ` Hugh Cole-Baker 2019-11-15 9:28 ` Katsuhiro Suzuki 0 siblings, 1 reply; 14+ messages in thread From: Hugh Cole-Baker @ 2019-11-13 15:02 UTC (permalink / raw) To: Vasily Khoruzhick Cc: Katsuhiro Suzuki, linux-rockchip, Heiko Stuebner, arm-linux, linux-kernel > On 12 Nov 2019, at 14:46, Vasily Khoruzhick <anarsoul@gmail.com> wrote: > > On Tue, Nov 12, 2019 at 10:34 AM Katsuhiro Suzuki > <katsuhiro@katsuster.net> wrote: >> >> On 2019/11/12 14:49, Vasily Khoruzhick wrote: >>> On Mon, Nov 11, 2019 at 9:43 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: >>>> >>>> On Mon, Nov 11, 2019 at 9:34 PM Katsuhiro Suzuki >>>> <katsuhiro@katsuster.net> wrote: >>>>> >>>>> Hello Vasily, >>>>> >>>>> Thank you for valuable information. >>>>> >>>>> On 2019/11/12 4:25, Vasily Khoruzhick wrote: >>>>>> On Sun, Nov 10, 2019 at 9:40 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: >>>>>>> >>>>>>> On Sun, Nov 10, 2019 at 7:30 PM Katsuhiro Suzuki >>>>>>> <katsuhiro@katsuster.net> wrote: >>>>>>>> >>>>>>>> Hello Vasily, >>>>>>> >>>>>>> Hi Katsuhiro, >>>>>>> >>>>>>> Thanks for response! >>>>>> >>>>>> Looks like on my board codec sits at address 0x10, and according to >>>>>> schematics that's what its address is supposed to be. >>>>>> >>>>>> See http://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf >>>>>> >>>>>> Codec address is selected by pin CE of ES8316, and on rockpro64 it >>>>>> goes to GND through R226. So address should be 0x10. >>>>>> >>>>> >>>>> Yes, I agree. The schematics both v2.0 and v2.1 say that ES8316 >>>>> address is 0x10. Thank you for pointing. >>>>> >>>>> But I wonder that my RockPro64 behavior is strange, he is in address >>>>> 0x11. (R226 on my board is broken...??) >>>>> >>>>> root@rockpro64:~# i2cdetect 1 >>>>> WARNING! This program can confuse your I2C bus, cause data loss and worse! >>>>> I will probe file /dev/i2c-1. >>>>> I will probe address range 0x03-0x77. >>>>> Continue? [Y/n] y >>>>> 0 1 2 3 4 5 6 7 8 9 a b c d e f >>>>> 00: -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>> 10: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>> 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>> 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>> 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>> 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>> 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>> 70: -- -- -- -- -- -- -- -- >>>>> >>>>> I plan to check R226 resistance value to judge R226 is broken or not >>>>> after return to home. And share the result with you. >>>>> Please give me a time. >>>> >>>> Thanks for confirming that on your board it's on address 0x11. I >>>> checked with some other rockpro64 owners and they have it on 0x10, but >>>> looks like we have boards with codec on different address in the wild. >>> >>> Another datapoint is that my board is 2.0. If yours is 2.1 it can be a >>> difference between 2.0 and 2.1. >>> >> >> I'm using v2.1 board. >> >> >> I'll share the checking result. It's a little strange. >> >> 1) Voltage of CE pin of ES8316 >> >> It is 1.8V when booting linux-next kernel. >> >> >> 2) My board >> >> I can't find no crack nor broken parts on my board. >> >> >> 2) R225, R226 >> >> As you know, RockPro64 board has no silk print so we cannot know >> perfectly which resistance is R226. So this is my assumption. >> >> PCIe, SD card slot >> (top) >> LAN (left)ES8316(right) USB, reset button >> >> On the left space of ES8316 there is no resistance, only a pattern. >> This is maybe R225. And 10K resistance on the right side of a >> pattern. I assume this is R226. >> >> If my assumption is correctly, board implementation and schematics >> are different. >> >> schematics of v2.1 gets something wrong...?? > > Guess we need few more RockPro64 v2.1 owners to confirm that it's > indeed the case. I also have a RockPro64 board v2.1, and my ES8316 codec is at address 0x11. I'm using a kernel with Katsuhiro's patch and I can use alsamixer and play sounds out of the analog jack. My i2cdetect output: root@kodi64:~# i2cdetect 1 WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-1. I will probe address range 0x03-0x77. Continue? [Y/n] 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- — Regards, Hugh > >> >>>>> Best Regards, >>>>> Katsuhiro Suzuki >>>>> >>>>> >>>>>>>> Thank you for reporting. >>>>>>>> >>>>>>>> On 2019/11/11 9:17, Vasily Khoruzhick wrote: >>>>>>>>> On Sat, Sep 7, 2019 at 10:48 AM Katsuhiro Suzuki >>>>>>>>> <katsuhiro@katsuster.net> wrote: >>>>>>>>>> >>>>>>>>>> This patch adds audio codec (Everest ES8316) and I2S audio nodes for >>>>>>>>>> RK3399 RockPro64. >>>>>>>>> >>>>>>>>> Hi Katsuhiro, >>>>>>>>> >>>>>>>>> I tested your patch with my rockpro64 on 5.4-rc6 which has your other >>>>>>>>> patches to es8316 driver, but apparently it doesn't work. >>>>>>>>> >>>>>>>>> 'alsamixer' complains 'cannot load mixer controls: No such device or >>>>>>>>> address' and if I try to play audio with mpg123 it pretends that it >>>>>>>>> plays something but there's no sound. >>>>>>>>> >>>>>>>>> Any idea what can be wrong? >>>>>>>>> >>>>>>>> >>>>>>>> Do you use defconfig? If so I guess we need turn on more configs: >>>>>>>> >>>>>>>> - simple-graph-card driver (CONFIG_SND_AUDIO_GRAPH_CARD) >>>>>>>> - ES8316 (SND_SOC_ES8316) >>>>>>> >>>>>>> I have these enabled, card is present in /proc/asound/cards, but >>>>>>> alsamixer doesn't work with it. >>>>>>> >>>>>>>> FYI) ASoC related status or logs in my environment as follows: >>>>>>>> >>>>>>>> root@rockpro64:~# uname -a >>>>>>>> Linux rockpro64 5.4.0-rc6-next-20191108 #169 SMP PREEMPT Mon Nov 11 12:21:44 JST 2019 aarch64 GNU/Linux >>>>>>> >>>>>>> I'm running 5.4.0-rc6 (commit >>>>>>> 00aff6836241ae5654895dcea10e6d4fc5878ca6) with your patch "arm64: dts: >>>>>>> rockchip: add analog audio nodes on rk3399-rockpro64" on top of it. >>>>>>> >>>>>>>> root@rockpro64:~# dmesg | grep -i asoc >>>>>>>> [ 21.509903] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok >>>>>>>> [ 21.510550] asoc-simple-card hdmi-sound: ASoC: no DMI vendor name! >>>>>>>> [ 21.567906] asoc-audio-graph-card sound: ES8316 HiFi <-> ff890000.i2s mapping ok >>>>>>>> [ 21.568565] asoc-audio-graph-card sound: ASoC: no DMI vendor name! >>>>>>> >>>>>>> Similar here: >>>>>>> >>>>>>> [vasilykh@rockpro64 ~]$ dmesg | grep -i asoc >>>>>>> [ 15.627685] asoc-audio-graph-card sound: ES8316 HiFi <-> >>>>>>> ff890000.i2s mapping ok >>>>>>> [ 16.250196] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok >>>>>>> >>>>>>>> root@rockpro64:~# cat /proc/asound/pcm >>>>>>>> 00-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi i2s-hifi-0 : playback 1 >>>>>>>> 01-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : playback 1 : capture 1 >>>>>>> >>>>>>> Same here: >>>>>>> >>>>>>> [vasilykh@rockpro64 ~]$ cat /proc/asound/pcm >>>>>>> 00-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 >>>>>>> HiFi ES8316 HiFi-0 : playback 1 : capture 1 >>>>>>> 01-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi >>>>>>> i2s-hifi-0 : playback >>>>>>> >>>>>>>> root@rockpro64:~# cat /sys/kernel/debug/asoc/components >>>>>>>> hdmi-audio-codec.3.auto >>>>>>>> ff8a0000.i2s >>>>>>>> ff8a0000.i2s >>>>>>>> ff890000.i2s >>>>>>>> ff890000.i2s >>>>>>>> ff880000.i2s >>>>>>>> ff880000.i2s >>>>>>>> es8316.1-0011 >>>>>>>> snd-soc-dummy >>>>>>>> snd-soc-dummy >>>>>>> >>>>>>> Same here. >>>>>>> >>>>>>>> root@rockpro64:~# cat /sys/kernel/debug/asoc/dais >>>>>>>> i2s-hifi >>>>>>>> ff8a0000.i2s >>>>>>>> ff890000.i2s >>>>>>>> ff880000.i2s >>>>>>>> ES8316 HiFi >>>>>>>> snd-soc-dummy-dai >>>>>>> >>>>>>> Same here. >>>>>>> >>>>>>> Yet alsamixer doesn't work for me. It terminates with 'cannot load >>>>>>> mixer controls: No such device or address'. Strace shows that fails >>>>>>> here: >>>>>>> >>>>>>> openat(AT_FDCWD, "/dev/snd/controlC0", O_RDWR|O_CLOEXEC) = 3 >>>>>>> fcntl(3, F_SETFD, FD_CLOEXEC) = 0 >>>>>>> ioctl(3, SNDRV_CTL_IOCTL_PVERSION, 0xfffffd3ad04c) = 0 >>>>>>> fcntl(3, F_GETFL) = 0x20002 (flags O_RDWR|O_LARGEFILE) >>>>>>> fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0 >>>>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 >>>>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 >>>>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_INFO, 0xfffffd3ace38) = 0 >>>>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_READ, 0xfffffd3ac160) = -1 ENXIO (No >>>>>>> such device or address) >>>>>>> >>>>>>> Looks like it fails to talk to the codec? >>>>>>> >>>>>>> mpg123 thinks that it's playing audio, but my headphones connected to >>>>>>> 3.5mm output are silent. >>>>>>> >>>>>>> Regards, >>>>>>> Vasily >>>>>>> >>>>>>> >>>>>>>> Best Regards, >>>>>>>> Katsuhiro Suzuki >>>>>>>> >>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Vasily >>>>>>>>> >>>>>>>>>> Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> >>>>>>>>>> --- >>>>>>>>>> .../boot/dts/rockchip/rk3399-rockpro64.dts | 28 +++++++++++++++++++ >>>>>>>>>> 1 file changed, 28 insertions(+) >>>>>>>>>> >>>>>>>>>> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >>>>>>>>>> index 0401d4ec1f45..8b1e6382b140 100644 >>>>>>>>>> --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >>>>>>>>>> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >>>>>>>>>> @@ -81,6 +81,12 @@ >>>>>>>>>> reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> + sound { >>>>>>>>>> + compatible = "audio-graph-card"; >>>>>>>>>> + label = "rockchip,rk3399"; >>>>>>>>>> + dais = <&i2s1_p0>; >>>>>>>>>> + }; >>>>>>>>>> + >>>>>>>>>> vcc12v_dcin: vcc12v-dcin { >>>>>>>>>> compatible = "regulator-fixed"; >>>>>>>>>> regulator-name = "vcc12v_dcin"; >>>>>>>>>> @@ -470,6 +476,20 @@ >>>>>>>>>> i2c-scl-rising-time-ns = <300>; >>>>>>>>>> i2c-scl-falling-time-ns = <15>; >>>>>>>>>> status = "okay"; >>>>>>>>>> + >>>>>>>>>> + es8316: codec@11 { >>>>>>>>>> + compatible = "everest,es8316"; >>>>>>>>>> + reg = <0x11>; >>>>>>>>>> + clocks = <&cru SCLK_I2S_8CH_OUT>; >>>>>>>>>> + clock-names = "mclk"; >>>>>>>>>> + #sound-dai-cells = <0>; >>>>>>>>>> + >>>>>>>>>> + port { >>>>>>>>>> + es8316_p0_0: endpoint { >>>>>>>>>> + remote-endpoint = <&i2s1_p0_0>; >>>>>>>>>> + }; >>>>>>>>>> + }; >>>>>>>>>> + }; >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> &i2c3 { >>>>>>>>>> @@ -505,6 +525,14 @@ >>>>>>>>>> rockchip,playback-channels = <2>; >>>>>>>>>> rockchip,capture-channels = <2>; >>>>>>>>>> status = "okay"; >>>>>>>>>> + >>>>>>>>>> + i2s1_p0: port { >>>>>>>>>> + i2s1_p0_0: endpoint { >>>>>>>>>> + dai-format = "i2s"; >>>>>>>>>> + mclk-fs = <256>; >>>>>>>>>> + remote-endpoint = <&es8316_p0_0>; >>>>>>>>>> + }; >>>>>>>>>> + }; >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> &i2s2 { >>>>>>>>>> -- >>>>>>>>>> 2.23.0.rc1 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> linux-arm-kernel mailing list >>>>>>>>>> linux-arm-kernel@lists.infradead.org >>>>>>>>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >>>>>>>>> >>>>>>>> >>>>>> >>>>> >>> >> > > _______________________________________________ > Linux-rockchip mailing list > Linux-rockchip@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 2019-11-13 15:02 ` Hugh Cole-Baker @ 2019-11-15 9:28 ` Katsuhiro Suzuki 0 siblings, 0 replies; 14+ messages in thread From: Katsuhiro Suzuki @ 2019-11-15 9:28 UTC (permalink / raw) To: Hugh Cole-Baker, Vasily Khoruzhick Cc: linux-rockchip, Heiko Stuebner, arm-linux, linux-kernel Hello, On 2019/11/14 0:02, Hugh Cole-Baker wrote: > >> On 12 Nov 2019, at 14:46, Vasily Khoruzhick <anarsoul@gmail.com> wrote: >> >> On Tue, Nov 12, 2019 at 10:34 AM Katsuhiro Suzuki >> <katsuhiro@katsuster.net> wrote: >>> >>> On 2019/11/12 14:49, Vasily Khoruzhick wrote: >>>> On Mon, Nov 11, 2019 at 9:43 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: >>>>> >>>>> On Mon, Nov 11, 2019 at 9:34 PM Katsuhiro Suzuki >>>>> <katsuhiro@katsuster.net> wrote: >>>>>> >>>>>> Hello Vasily, >>>>>> >>>>>> Thank you for valuable information. >>>>>> >>>>>> On 2019/11/12 4:25, Vasily Khoruzhick wrote: >>>>>>> On Sun, Nov 10, 2019 at 9:40 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: >>>>>>>> >>>>>>>> On Sun, Nov 10, 2019 at 7:30 PM Katsuhiro Suzuki >>>>>>>> <katsuhiro@katsuster.net> wrote: >>>>>>>>> >>>>>>>>> Hello Vasily, >>>>>>>> >>>>>>>> Hi Katsuhiro, >>>>>>>> >>>>>>>> Thanks for response! >>>>>>> >>>>>>> Looks like on my board codec sits at address 0x10, and according to >>>>>>> schematics that's what its address is supposed to be. >>>>>>> >>>>>>> See http://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf >>>>>>> >>>>>>> Codec address is selected by pin CE of ES8316, and on rockpro64 it >>>>>>> goes to GND through R226. So address should be 0x10. >>>>>>> >>>>>> >>>>>> Yes, I agree. The schematics both v2.0 and v2.1 say that ES8316 >>>>>> address is 0x10. Thank you for pointing. >>>>>> >>>>>> But I wonder that my RockPro64 behavior is strange, he is in address >>>>>> 0x11. (R226 on my board is broken...??) >>>>>> >>>>>> root@rockpro64:~# i2cdetect 1 >>>>>> WARNING! This program can confuse your I2C bus, cause data loss and worse! >>>>>> I will probe file /dev/i2c-1. >>>>>> I will probe address range 0x03-0x77. >>>>>> Continue? [Y/n] y >>>>>> 0 1 2 3 4 5 6 7 8 9 a b c d e f >>>>>> 00: -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>>> 10: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>>> 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>>> 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>>> 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>>> 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>>> 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>>> 70: -- -- -- -- -- -- -- -- >>>>>> >>>>>> I plan to check R226 resistance value to judge R226 is broken or not >>>>>> after return to home. And share the result with you. >>>>>> Please give me a time. >>>>> >>>>> Thanks for confirming that on your board it's on address 0x11. I >>>>> checked with some other rockpro64 owners and they have it on 0x10, but >>>>> looks like we have boards with codec on different address in the wild. >>>> >>>> Another datapoint is that my board is 2.0. If yours is 2.1 it can be a >>>> difference between 2.0 and 2.1. >>>> >>> >>> I'm using v2.1 board. >>> >>> >>> I'll share the checking result. It's a little strange. >>> >>> 1) Voltage of CE pin of ES8316 >>> >>> It is 1.8V when booting linux-next kernel. >>> >>> >>> 2) My board >>> >>> I can't find no crack nor broken parts on my board. >>> >>> >>> 2) R225, R226 >>> >>> As you know, RockPro64 board has no silk print so we cannot know >>> perfectly which resistance is R226. So this is my assumption. >>> >>> PCIe, SD card slot >>> (top) >>> LAN (left)ES8316(right) USB, reset button >>> >>> On the left space of ES8316 there is no resistance, only a pattern. >>> This is maybe R225. And 10K resistance on the right side of a >>> pattern. I assume this is R226. >>> >>> If my assumption is correctly, board implementation and schematics >>> are different. >>> >>> schematics of v2.1 gets something wrong...?? >> >> Guess we need few more RockPro64 v2.1 owners to confirm that it's >> indeed the case. > > I also have a RockPro64 board v2.1, and my ES8316 codec is at address 0x11. > I'm using a kernel with Katsuhiro's patch and I can use alsamixer and play > sounds out of the analog jack. My i2cdetect output: > > root@kodi64:~# i2cdetect 1 > WARNING! This program can confuse your I2C bus, cause data loss and worse! > I will probe file /dev/i2c-1. > I will probe address range 0x03-0x77. > Continue? [Y/n] > 0 1 2 3 4 5 6 7 8 9 a b c d e f > 00: -- -- -- -- -- -- -- -- -- -- -- -- -- > 10: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 70: -- -- -- -- -- -- -- — Thank you for great report. Hmm, it seems v2.0 and v2.1 are different, so we need to split device-tree for es8316 support... Best Regards, Katsuhiro Suzuki > > Regards, > Hugh > >> >>> >>>>>> Best Regards, >>>>>> Katsuhiro Suzuki >>>>>> >>>>>> >>>>>>>>> Thank you for reporting. >>>>>>>>> >>>>>>>>> On 2019/11/11 9:17, Vasily Khoruzhick wrote: >>>>>>>>>> On Sat, Sep 7, 2019 at 10:48 AM Katsuhiro Suzuki >>>>>>>>>> <katsuhiro@katsuster.net> wrote: >>>>>>>>>>> >>>>>>>>>>> This patch adds audio codec (Everest ES8316) and I2S audio nodes for >>>>>>>>>>> RK3399 RockPro64. >>>>>>>>>> >>>>>>>>>> Hi Katsuhiro, >>>>>>>>>> >>>>>>>>>> I tested your patch with my rockpro64 on 5.4-rc6 which has your other >>>>>>>>>> patches to es8316 driver, but apparently it doesn't work. >>>>>>>>>> >>>>>>>>>> 'alsamixer' complains 'cannot load mixer controls: No such device or >>>>>>>>>> address' and if I try to play audio with mpg123 it pretends that it >>>>>>>>>> plays something but there's no sound. >>>>>>>>>> >>>>>>>>>> Any idea what can be wrong? >>>>>>>>>> >>>>>>>>> >>>>>>>>> Do you use defconfig? If so I guess we need turn on more configs: >>>>>>>>> >>>>>>>>> - simple-graph-card driver (CONFIG_SND_AUDIO_GRAPH_CARD) >>>>>>>>> - ES8316 (SND_SOC_ES8316) >>>>>>>> >>>>>>>> I have these enabled, card is present in /proc/asound/cards, but >>>>>>>> alsamixer doesn't work with it. >>>>>>>> >>>>>>>>> FYI) ASoC related status or logs in my environment as follows: >>>>>>>>> >>>>>>>>> root@rockpro64:~# uname -a >>>>>>>>> Linux rockpro64 5.4.0-rc6-next-20191108 #169 SMP PREEMPT Mon Nov 11 12:21:44 JST 2019 aarch64 GNU/Linux >>>>>>>> >>>>>>>> I'm running 5.4.0-rc6 (commit >>>>>>>> 00aff6836241ae5654895dcea10e6d4fc5878ca6) with your patch "arm64: dts: >>>>>>>> rockchip: add analog audio nodes on rk3399-rockpro64" on top of it. >>>>>>>> >>>>>>>>> root@rockpro64:~# dmesg | grep -i asoc >>>>>>>>> [ 21.509903] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok >>>>>>>>> [ 21.510550] asoc-simple-card hdmi-sound: ASoC: no DMI vendor name! >>>>>>>>> [ 21.567906] asoc-audio-graph-card sound: ES8316 HiFi <-> ff890000.i2s mapping ok >>>>>>>>> [ 21.568565] asoc-audio-graph-card sound: ASoC: no DMI vendor name! >>>>>>>> >>>>>>>> Similar here: >>>>>>>> >>>>>>>> [vasilykh@rockpro64 ~]$ dmesg | grep -i asoc >>>>>>>> [ 15.627685] asoc-audio-graph-card sound: ES8316 HiFi <-> >>>>>>>> ff890000.i2s mapping ok >>>>>>>> [ 16.250196] asoc-simple-card hdmi-sound: i2s-hifi <-> ff8a0000.i2s mapping ok >>>>>>>> >>>>>>>>> root@rockpro64:~# cat /proc/asound/pcm >>>>>>>>> 00-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi i2s-hifi-0 : playback 1 >>>>>>>>> 01-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : playback 1 : capture 1 >>>>>>>> >>>>>>>> Same here: >>>>>>>> >>>>>>>> [vasilykh@rockpro64 ~]$ cat /proc/asound/pcm >>>>>>>> 00-00: ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 : ff890000.i2s-ES8316 >>>>>>>> HiFi ES8316 HiFi-0 : playback 1 : capture 1 >>>>>>>> 01-00: ff8a0000.i2s-i2s-hifi i2s-hifi-0 : ff8a0000.i2s-i2s-hifi >>>>>>>> i2s-hifi-0 : playback >>>>>>>> >>>>>>>>> root@rockpro64:~# cat /sys/kernel/debug/asoc/components >>>>>>>>> hdmi-audio-codec.3.auto >>>>>>>>> ff8a0000.i2s >>>>>>>>> ff8a0000.i2s >>>>>>>>> ff890000.i2s >>>>>>>>> ff890000.i2s >>>>>>>>> ff880000.i2s >>>>>>>>> ff880000.i2s >>>>>>>>> es8316.1-0011 >>>>>>>>> snd-soc-dummy >>>>>>>>> snd-soc-dummy >>>>>>>> >>>>>>>> Same here. >>>>>>>> >>>>>>>>> root@rockpro64:~# cat /sys/kernel/debug/asoc/dais >>>>>>>>> i2s-hifi >>>>>>>>> ff8a0000.i2s >>>>>>>>> ff890000.i2s >>>>>>>>> ff880000.i2s >>>>>>>>> ES8316 HiFi >>>>>>>>> snd-soc-dummy-dai >>>>>>>> >>>>>>>> Same here. >>>>>>>> >>>>>>>> Yet alsamixer doesn't work for me. It terminates with 'cannot load >>>>>>>> mixer controls: No such device or address'. Strace shows that fails >>>>>>>> here: >>>>>>>> >>>>>>>> openat(AT_FDCWD, "/dev/snd/controlC0", O_RDWR|O_CLOEXEC) = 3 >>>>>>>> fcntl(3, F_SETFD, FD_CLOEXEC) = 0 >>>>>>>> ioctl(3, SNDRV_CTL_IOCTL_PVERSION, 0xfffffd3ad04c) = 0 >>>>>>>> fcntl(3, F_GETFL) = 0x20002 (flags O_RDWR|O_LARGEFILE) >>>>>>>> fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0 >>>>>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 >>>>>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_LIST, 0xfffffd3ad228) = 0 >>>>>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_INFO, 0xfffffd3ace38) = 0 >>>>>>>> ioctl(3, SNDRV_CTL_IOCTL_ELEM_READ, 0xfffffd3ac160) = -1 ENXIO (No >>>>>>>> such device or address) >>>>>>>> >>>>>>>> Looks like it fails to talk to the codec? >>>>>>>> >>>>>>>> mpg123 thinks that it's playing audio, but my headphones connected to >>>>>>>> 3.5mm output are silent. >>>>>>>> >>>>>>>> Regards, >>>>>>>> Vasily >>>>>>>> >>>>>>>> >>>>>>>>> Best Regards, >>>>>>>>> Katsuhiro Suzuki >>>>>>>>> >>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> Vasily >>>>>>>>>> >>>>>>>>>>> Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> >>>>>>>>>>> --- >>>>>>>>>>> .../boot/dts/rockchip/rk3399-rockpro64.dts | 28 +++++++++++++++++++ >>>>>>>>>>> 1 file changed, 28 insertions(+) >>>>>>>>>>> >>>>>>>>>>> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >>>>>>>>>>> index 0401d4ec1f45..8b1e6382b140 100644 >>>>>>>>>>> --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >>>>>>>>>>> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts >>>>>>>>>>> @@ -81,6 +81,12 @@ >>>>>>>>>>> reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; >>>>>>>>>>> }; >>>>>>>>>>> >>>>>>>>>>> + sound { >>>>>>>>>>> + compatible = "audio-graph-card"; >>>>>>>>>>> + label = "rockchip,rk3399"; >>>>>>>>>>> + dais = <&i2s1_p0>; >>>>>>>>>>> + }; >>>>>>>>>>> + >>>>>>>>>>> vcc12v_dcin: vcc12v-dcin { >>>>>>>>>>> compatible = "regulator-fixed"; >>>>>>>>>>> regulator-name = "vcc12v_dcin"; >>>>>>>>>>> @@ -470,6 +476,20 @@ >>>>>>>>>>> i2c-scl-rising-time-ns = <300>; >>>>>>>>>>> i2c-scl-falling-time-ns = <15>; >>>>>>>>>>> status = "okay"; >>>>>>>>>>> + >>>>>>>>>>> + es8316: codec@11 { >>>>>>>>>>> + compatible = "everest,es8316"; >>>>>>>>>>> + reg = <0x11>; >>>>>>>>>>> + clocks = <&cru SCLK_I2S_8CH_OUT>; >>>>>>>>>>> + clock-names = "mclk"; >>>>>>>>>>> + #sound-dai-cells = <0>; >>>>>>>>>>> + >>>>>>>>>>> + port { >>>>>>>>>>> + es8316_p0_0: endpoint { >>>>>>>>>>> + remote-endpoint = <&i2s1_p0_0>; >>>>>>>>>>> + }; >>>>>>>>>>> + }; >>>>>>>>>>> + }; >>>>>>>>>>> }; >>>>>>>>>>> >>>>>>>>>>> &i2c3 { >>>>>>>>>>> @@ -505,6 +525,14 @@ >>>>>>>>>>> rockchip,playback-channels = <2>; >>>>>>>>>>> rockchip,capture-channels = <2>; >>>>>>>>>>> status = "okay"; >>>>>>>>>>> + >>>>>>>>>>> + i2s1_p0: port { >>>>>>>>>>> + i2s1_p0_0: endpoint { >>>>>>>>>>> + dai-format = "i2s"; >>>>>>>>>>> + mclk-fs = <256>; >>>>>>>>>>> + remote-endpoint = <&es8316_p0_0>; >>>>>>>>>>> + }; >>>>>>>>>>> + }; >>>>>>>>>>> }; >>>>>>>>>>> >>>>>>>>>>> &i2s2 { >>>>>>>>>>> -- >>>>>>>>>>> 2.23.0.rc1 >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> linux-arm-kernel mailing list >>>>>>>>>>> linux-arm-kernel@lists.infradead.org >>>>>>>>>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >>>>>>>>>> >>>>>>>>> >>>>>>> >>>>>> >>>> >>> >> >> _______________________________________________ >> Linux-rockchip mailing list >> Linux-rockchip@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-rockchip > > > ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2019-11-15 9:29 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-09-07 17:48 [PATCH] arm64: dts: rockchip: add analog audio nodes on rk3399-rockpro64 Katsuhiro Suzuki 2019-10-04 17:26 ` Katsuhiro Suzuki 2019-10-04 19:54 ` Heiko Stuebner 2019-11-11 0:17 ` Vasily Khoruzhick 2019-11-11 3:30 ` Katsuhiro Suzuki 2019-11-11 5:40 ` Vasily Khoruzhick 2019-11-11 19:25 ` Vasily Khoruzhick 2019-11-12 5:34 ` Katsuhiro Suzuki 2019-11-12 5:43 ` Vasily Khoruzhick 2019-11-12 5:49 ` Vasily Khoruzhick 2019-11-12 18:34 ` Katsuhiro Suzuki 2019-11-12 19:46 ` Vasily Khoruzhick 2019-11-13 15:02 ` Hugh Cole-Baker 2019-11-15 9:28 ` Katsuhiro Suzuki
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).