From 7961e4557be92d13fe5622de998c3fc3df8fc6d7 Mon Sep 17 00:00:00 2001 From: Caesar Wang Date: Thu, 9 Nov 2017 17:36:37 +0800 Subject: [PATCH] ARM: dts: rockchip: Assigned the i2s sclk from i2s_frac for rk3036 As the HDMI-audio/codec will cause the hang on bootup, the root cause that kylin get the invalid master clock from i2s. $cat/sys/kernel/debug/clk/clk_summary .. i2s_pre 0 0 0 0 0 sclk_i2s 0 0 0 0 0 i2s_clkout 0 0 0 0 0 Since i2s clock selects io input clock by default, but the hardware didn't supply the clock. This patch will fix the sclk_i2s's parent on i2s_frac. As following: $cat/sys/kernel/debug/clk/clk_summary .. i2s_src 1 1 594000000 0 0 i2s_frac 1 1 22579200 0 0 i2s_pre 2 2 22579200 0 0 sclk_i2s 1 1 22579200 0 0 As far, the audio can work with aplay/record on kylin.dts Says: (aplay /dev/urandom) /* recording */ arecord -f cd -d 10 /tmp/audio.wav /* playback */ aplay /tmp/audio.wav Change-Id: I73534a0d763eb02fb55e000ce068d9d604bf20ed Signed-off-by: Caesar Wang --- arch/arm/boot/dts/rk3036.dtsi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/boot/dts/rk3036.dtsi b/arch/arm/boot/dts/rk3036.dtsi index 9527be72ca8d..ce08f18528d7 100644 --- a/arch/arm/boot/dts/rk3036.dtsi +++ b/arch/arm/boot/dts/rk3036.dtsi @@ -409,6 +409,8 @@ interrupts = ; clock-names = "i2s_clk", "i2s_hclk"; clocks = <&cru SCLK_I2S>, <&cru HCLK_I2S>; + assigned-clocks = <&cru SCLK_I2S_PRE>; + assigned-clock-parents = <&cru SCLK_I2S_FRAC>; dmas = <&pdma 0>, <&pdma 1>; dma-names = "tx", "rx"; pinctrl-names = "default";