[alsa-devel] [PATCH v1 2/9] mfd: wm8994: Add support for MCLKn clock control
Sylwester Nawrocki
s.nawrocki at samsung.com
Wed Sep 18 12:46:27 CEST 2019
The WM1811/WM8994/WM8958 audio CODEC DT bindings specify two optional
clocks: "MCLK1", "MCLK2". Add code for getting those clocks in the MFD
part of the wm8994 driver so they can be further handled in the audio
CODEC part.
Signed-off-by: Sylwester Nawrocki <s.nawrocki at samsung.com>
---
drivers/mfd/wm8994-core.c | 9 +++++++++
include/linux/mfd/wm8994/core.h | 9 +++++++++
2 files changed, 18 insertions(+)
diff --git a/drivers/mfd/wm8994-core.c b/drivers/mfd/wm8994-core.c
index 1e9fe7d92597..02c19a0bdeb0 100644
--- a/drivers/mfd/wm8994-core.c
+++ b/drivers/mfd/wm8994-core.c
@@ -7,6 +7,7 @@
* Author: Mark Brown <broonie at opensource.wolfsonmicro.com>
*/
+#include <linux/clk.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
@@ -333,6 +334,14 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq)
dev_set_drvdata(wm8994->dev, wm8994);
+ wm8994->mclk[WM8994_MCLK1].id = "MCLK1";
+ wm8994->mclk[WM8994_MCLK2].id = "MCLK2";
+
+ ret = devm_clk_bulk_get_optional(wm8994->dev, ARRAY_SIZE(wm8994->mclk),
+ wm8994->mclk);
+ if (ret != 0)
+ return ret;
+
/* Add the on-chip regulators first for bootstrapping */
ret = mfd_add_devices(wm8994->dev, 0,
wm8994_regulator_devs,
diff --git a/include/linux/mfd/wm8994/core.h b/include/linux/mfd/wm8994/core.h
index e8b093522ffd..320297a1b70c 100644
--- a/include/linux/mfd/wm8994/core.h
+++ b/include/linux/mfd/wm8994/core.h
@@ -10,12 +10,19 @@
#ifndef __MFD_WM8994_CORE_H__
#define __MFD_WM8994_CORE_H__
+#include <linux/clk.h>
#include <linux/mutex.h>
#include <linux/interrupt.h>
#include <linux/regmap.h>
#include <linux/mfd/wm8994/pdata.h>
+enum {
+ WM8994_MCLK1,
+ WM8994_MCLK2,
+ WM8994_NUM_MCLK
+};
+
enum wm8994_type {
WM8994 = 0,
WM8958 = 1,
@@ -60,6 +67,8 @@ struct wm8994 {
struct device *dev;
struct regmap *regmap;
+ struct clk_bulk_data mclk[WM8994_NUM_MCLK];
+
bool ldo_ena_always_driven;
int gpio_base;
--
2.17.1
More information about the Alsa-devel
mailing list