#include <linux/kernel.h>
#include <linux/bitops.h>
#include <linux/err.h>
#include <linux/platform_device.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/clk-provider.h>
#include <linux/regmap.h>
#include <dt-bindings/clock/qcom,lcc-msm8960.h>
#include "common.h"
#include "clk-regmap.h"
#include "clk-pll.h"
#include "clk-rcg.h"
#include "clk-branch.h"
#include "clk-regmap-divider.h"
#include "clk-regmap-mux.h"
static struct clk_parent_data pxo_parent_data = …;
static struct clk_pll pll4 = …;
enum { … };
static const struct parent_map lcc_pxo_pll4_map[] = …;
static struct clk_parent_data lcc_pxo_pll4[] = …;
static struct freq_tbl clk_tbl_aif_osr_492[] = …;
static struct freq_tbl clk_tbl_aif_osr_393[] = …;
#define CLK_AIF_OSR_SRC(prefix, _ns, _md) … \
#define CLK_AIF_OSR_CLK(prefix, _ns, hr, en_bit) … \
#define CLK_AIF_OSR_DIV_CLK(prefix, _ns, _width) … \
#define CLK_AIF_OSR_BIT_DIV_CLK(prefix, _ns, hr, en_bit) … \
#define CLK_AIF_OSR_BIT_CLK(prefix, _ns, _shift) …
CLK_AIF_OSR_SRC(mi2s, 0x48, 0x4c)
CLK_AIF_OSR_CLK(…)
CLK_AIF_OSR_DIV_CLK(…)
CLK_AIF_OSR_BIT_DIV_CLK(…)
CLK_AIF_OSR_BIT_CLK(…)
#define CLK_AIF_OSR_DIV(prefix, _ns, _md, hr) …
CLK_AIF_OSR_DIV(codec_i2s_mic, 0x60, 0x64, 0x68);
CLK_AIF_OSR_DIV(spare_i2s_mic, 0x78, 0x7c, 0x80);
CLK_AIF_OSR_DIV(codec_i2s_spkr, 0x6c, 0x70, 0x74);
CLK_AIF_OSR_DIV(spare_i2s_spkr, 0x84, 0x88, 0x8c);
static struct freq_tbl clk_tbl_pcm_492[] = …;
static struct freq_tbl clk_tbl_pcm_393[] = …;
static struct clk_rcg pcm_src = …;
static struct clk_branch pcm_clk_out = …;
static struct clk_regmap_mux pcm_clk = …;
static struct clk_rcg slimbus_src = …;
static struct clk_branch audio_slimbus_clk = …;
static struct clk_branch sps_slimbus_clk = …;
static struct clk_regmap *lcc_msm8960_clks[] = …;
static const struct regmap_config lcc_msm8960_regmap_config = …;
static const struct qcom_cc_desc lcc_msm8960_desc = …;
static const struct of_device_id lcc_msm8960_match_table[] = …;
MODULE_DEVICE_TABLE(of, lcc_msm8960_match_table);
static int lcc_msm8960_probe(struct platform_device *pdev)
{ … }
static struct platform_driver lcc_msm8960_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;