#include <linux/err.h>
#include <linux/init.h>
#include <linux/clk-provider.h>
#include <linux/module.h>
#include <linux/device.h>
#include <linux/platform_device.h>
#include <linux/of.h>
#include <linux/slab.h>
#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
#include "q6dsp-lpass-clocks.h"
#define Q6DSP_MAX_CLK_ID …
#define Q6DSP_LPASS_CLK_ROOT_DEFAULT …
struct q6dsp_clk { … };
#define to_q6dsp_clk(_hw) …
struct q6dsp_cc { … };
static int clk_q6dsp_prepare(struct clk_hw *hw)
{ … }
static void clk_q6dsp_unprepare(struct clk_hw *hw)
{ … }
static int clk_q6dsp_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate)
{ … }
static unsigned long clk_q6dsp_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{ … }
static long clk_q6dsp_round_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *parent_rate)
{ … }
static const struct clk_ops clk_q6dsp_ops = …;
static int clk_vote_q6dsp_block(struct clk_hw *hw)
{ … }
static void clk_unvote_q6dsp_block(struct clk_hw *hw)
{ … }
static const struct clk_ops clk_vote_q6dsp_ops = …;
static struct clk_hw *q6dsp_of_clk_hw_get(struct of_phandle_args *clkspec,
void *data)
{ … }
int q6dsp_clock_dev_probe(struct platform_device *pdev)
{ … }
EXPORT_SYMBOL_GPL(…);