31 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2 3#ifndef __Q6DSP_AUDIO_CLOCKS_H__4#define __Q6DSP_AUDIO_CLOCKS_H__5 6struct q6dsp_clk_init {7 int clk_id;8 int q6dsp_clk_id;9 char *name;10 int rate;11};12 13#define Q6DSP_VOTE_CLK(id, blkid, n) { \14 .clk_id = id, \15 .q6dsp_clk_id = blkid, \16 .name = n, \17 }18 19struct q6dsp_clk_desc {20 const struct q6dsp_clk_init *clks;21 size_t num_clks;22 int (*lpass_set_clk)(struct device *dev, int clk_id, int attr,23 int root_clk, unsigned int freq);24 int (*lpass_vote_clk)(struct device *dev, uint32_t hid, const char *n, uint32_t *h);25 int (*lpass_unvote_clk)(struct device *dev, uint32_t hid, uint32_t h);26};27 28int q6dsp_clock_dev_probe(struct platform_device *pdev);29 30#endif /* __Q6DSP_AUDIO_CLOCKS_H__ */31