From 43c1a132f2a89dc922651e5306bb65f786fe7aa3 Mon Sep 17 00:00:00 2001 From: Laxminath Kasam Date: Fri, 15 Jun 2018 13:18:07 +0530 Subject: [PATCH] asoc: ext-clk: Allow clock probe without pinctrl for lpass nodes Currently audio ref clock probe for lpass clock nodes require pinctrl entry as mandatory. For bolero lpass clocks, there is no pinctrl required. Allow audio ref clock probe to proceed with pinctrl based on property of use-pinctrl set to non-zero value from dtsi. Change-Id: Ide4a10e89672f0adefd2e0d99830c38191119dfc Signed-off-by: Laxminath Kasam --- asoc/codecs/audio-ext-clk-up.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/asoc/codecs/audio-ext-clk-up.c b/asoc/codecs/audio-ext-clk-up.c index d20aab2c83..1b0b219846 100644 --- a/asoc/codecs/audio-ext-clk-up.c +++ b/asoc/codecs/audio-ext-clk-up.c @@ -169,12 +169,6 @@ static int audio_get_pinctrl(struct platform_device *pdev) int ret; u32 reg; - if (clk_priv->clk_src == AUDIO_EXT_CLK_LNBB2) { - dev_dbg(dev, "%s no pinctrl for clk_src = %d\n", - __func__, clk_priv->clk_src); - return 0; - } - pnctrl_info = &clk_priv->audio_clk.pnctrl_info; if (pnctrl_info->pinctrl) { dev_err(dev, "%s: already requested before\n", @@ -286,8 +280,7 @@ static int audio_ref_clk_probe(struct platform_device *pdev) { int ret; struct audio_ext_clk_priv *clk_priv; - u32 clk_freq = 0, clk_id = 0, clk_src = 0; - + u32 clk_freq = 0, clk_id = 0, clk_src = 0, use_pinctrl = 0; clk_priv = devm_kzalloc(&pdev->dev, sizeof(*clk_priv), GFP_KERNEL); if (!clk_priv) @@ -336,11 +329,22 @@ static int audio_ref_clk_probe(struct platform_device *pdev) clk_priv->clk_cfg.clk_id, clk_priv->clk_src); platform_set_drvdata(pdev, clk_priv); - ret = audio_get_pinctrl(pdev); - if (ret) { - dev_err(&pdev->dev, "%s: Parsing PMI pinctrl failed\n", - __func__); - return ret; + /* + * property qcom,use-pinctrl to be defined in DTSI to val 1 + * for clock nodes using pinctrl + */ + of_property_read_u32(pdev->dev.of_node, "qcom,use-pinctrl", + &use_pinctrl); + dev_dbg(&pdev->dev, "%s: use-pinctrl : %d\n", + __func__, use_pinctrl); + + if (use_pinctrl) { + ret = audio_get_pinctrl(pdev); + if (ret) { + dev_err(&pdev->dev, "%s: Parsing PMI pinctrl failed\n", + __func__); + return ret; + } } ret = audio_get_clk_data(pdev);