#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/err.h>
#include <linux/platform_device.h>
#include <linux/clk-provider.h>
#include <linux/clkdev.h>
#include <sound/intel-nhlt.h>
#include "skl.h"
#include "skl-ssp-clk.h"
#include "skl-topology.h"
#define to_skl_clk(_hw) …
struct skl_clk_parent { … };
struct skl_clk { … };
struct skl_clk_data { … };
static int skl_get_clk_type(u32 index)
{ … }
static int skl_get_vbus_id(u32 index, u8 clk_type)
{ … }
static void skl_fill_clk_ipc(struct skl_clk_rate_cfg_table *rcfg, u8 clk_type)
{ … }
static int skl_send_clk_dma_control(struct skl_dev *skl,
struct skl_clk_rate_cfg_table *rcfg,
u32 vbus_id, u8 clk_type,
bool enable)
{ … }
static struct skl_clk_rate_cfg_table *skl_get_rate_cfg(
struct skl_clk_rate_cfg_table *rcfg,
unsigned long rate)
{ … }
static int skl_clk_change_status(struct skl_clk *clkdev,
bool enable)
{ … }
static int skl_clk_prepare(struct clk_hw *hw)
{ … }
static void skl_clk_unprepare(struct clk_hw *hw)
{ … }
static int skl_clk_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate)
{ … }
static unsigned long skl_clk_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{ … }
static long skl_clk_round_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *parent_rate)
{ … }
static const struct clk_ops skl_clk_ops = …;
static void unregister_parent_src_clk(struct skl_clk_parent *pclk,
unsigned int id)
{ … }
static void unregister_src_clk(struct skl_clk_data *dclk)
{ … }
static int skl_register_parent_clks(struct device *dev,
struct skl_clk_parent *parent,
struct skl_clk_parent_src *pclk)
{ … }
static struct skl_clk *register_skl_clk(struct device *dev,
struct skl_ssp_clk *clk,
struct skl_clk_pdata *clk_pdata, int id)
{ … }
static int skl_clk_dev_probe(struct platform_device *pdev)
{ … }
static void skl_clk_dev_remove(struct platform_device *pdev)
{ … }
static struct platform_driver skl_clk_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;