hc
2023-11-07 f45e756958099c35d6afb746df1d40a1c6302cfc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __NVKM_CLK_PRIV_H__
#define __NVKM_CLK_PRIV_H__
#define nvkm_clk(p) container_of((p), struct nvkm_clk, subdev)
#include <subdev/clk.h>
 
struct nvkm_clk_func {
   int (*init)(struct nvkm_clk *);
   void (*fini)(struct nvkm_clk *);
   int (*read)(struct nvkm_clk *, enum nv_clk_src);
   int (*calc)(struct nvkm_clk *, struct nvkm_cstate *);
   int (*prog)(struct nvkm_clk *);
   void (*tidy)(struct nvkm_clk *);
   struct nvkm_pstate *pstates;
   int nr_pstates;
   struct nvkm_domain domains[];
};
 
int nvkm_clk_ctor(const struct nvkm_clk_func *, struct nvkm_device *, int,
         bool allow_reclock, struct nvkm_clk *);
int nvkm_clk_new_(const struct nvkm_clk_func *, struct nvkm_device *, int,
         bool allow_reclock, struct nvkm_clk **);
 
int nv04_clk_pll_calc(struct nvkm_clk *, struct nvbios_pll *, int clk,
             struct nvkm_pll_vals *);
int nv04_clk_pll_prog(struct nvkm_clk *, u32 reg1, struct nvkm_pll_vals *);
#endif