From b9ac1fc4a60b97aa5c020feecbaebe1e7ffba619 Mon Sep 17 00:00:00 2001 From: qjb Date: Wed, 26 Feb 2014 14:45:08 +0800 Subject: [PATCH] i2s dts : add clk name --- arch/arm/boot/dts/rk3188.dtsi | 1 + sound/soc/rockchip/rk30_i2s.c | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi index b41084451c92..87ef9ea8cce4 100755 --- a/arch/arm/boot/dts/rk3188.dtsi +++ b/arch/arm/boot/dts/rk3188.dtsi @@ -438,6 +438,7 @@ reg = <0x1011a000 0x2000>; i2s-id = <1>; clocks = <&clk_i2s>; + clock-names = "i2s_clk"; interrupts = ; dmas = <&pdma0 6>, <&pdma0 7>; diff --git a/sound/soc/rockchip/rk30_i2s.c b/sound/soc/rockchip/rk30_i2s.c index 9a761a3a5e08..16b04412c7f5 100755 --- a/sound/soc/rockchip/rk30_i2s.c +++ b/sound/soc/rockchip/rk30_i2s.c @@ -56,7 +56,8 @@ static DEFINE_SPINLOCK(lock); struct rk30_i2s_info { void __iomem *regs; - struct clk *i2s_clk; + struct clk *i2s_clk;// i2s clk ,is bclk lrck + struct clk *i2s_mclk;//i2s mclk,rk32xx can different i2s clk. struct snd_dmaengine_dai_dma_data capture_dma_data; struct snd_dmaengine_dai_dma_data playback_dma_data; @@ -523,14 +524,22 @@ static int rockchip_i2s_probe(struct platform_device *pdev) goto err; } - i2s->i2s_clk= clk_get(&pdev->dev, NULL); + i2s->i2s_clk= clk_get(&pdev->dev, "i2s_clk"); if (IS_ERR(i2s->i2s_clk)) { dev_err(&pdev->dev, "Can't retrieve i2s clock\n"); ret = PTR_ERR(i2s->i2s_clk); goto err; } - clk_prepare_enable(i2s->i2s_clk); clk_set_rate(i2s->i2s_clk, 11289600); + clk_prepare_enable(i2s->i2s_clk); + + i2s->i2s_mclk= clk_get(&pdev->dev, "i2s_mclk"); + if(IS_ERR(i2s->i2s_mclk) ) { + printk("This platfrom have not i2s_mclk,no need to set i2s_mclk.\n"); + }else{ + clk_set_rate(i2s->i2s_mclk, 11289600); + clk_prepare_enable(i2s->i2s_mclk); + } mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!mem) { -- 2.34.1