#include "priv.h"
#include "gk20a.h"
#include <core/tegra.h>
#include <subdev/timer.h>
static const u8 _pl_to_div[] = …;
static u32 pl_to_div(u32 pl)
{ … }
static u32 div_to_pl(u32 div)
{ … }
static const struct gk20a_clk_pllg_params gk20a_pllg_params = …;
void
gk20a_pllg_read_mnp(struct gk20a_clk *clk, struct gk20a_pll *pll)
{ … }
void
gk20a_pllg_write_mnp(struct gk20a_clk *clk, const struct gk20a_pll *pll)
{ … }
u32
gk20a_pllg_calc_rate(struct gk20a_clk *clk, struct gk20a_pll *pll)
{ … }
int
gk20a_pllg_calc_mnp(struct gk20a_clk *clk, unsigned long rate,
struct gk20a_pll *pll)
{ … }
static int
gk20a_pllg_slide(struct gk20a_clk *clk, u32 n)
{ … }
static int
gk20a_pllg_enable(struct gk20a_clk *clk)
{ … }
static void
gk20a_pllg_disable(struct gk20a_clk *clk)
{ … }
static int
gk20a_pllg_program_mnp(struct gk20a_clk *clk, const struct gk20a_pll *pll)
{ … }
static int
gk20a_pllg_program_mnp_slide(struct gk20a_clk *clk, const struct gk20a_pll *pll)
{ … }
static struct nvkm_pstate
gk20a_pstates[] = …;
int
gk20a_clk_read(struct nvkm_clk *base, enum nv_clk_src src)
{ … }
int
gk20a_clk_calc(struct nvkm_clk *base, struct nvkm_cstate *cstate)
{ … }
int
gk20a_clk_prog(struct nvkm_clk *base)
{ … }
void
gk20a_clk_tidy(struct nvkm_clk *base)
{ … }
int
gk20a_clk_setup_slide(struct gk20a_clk *clk)
{ … }
void
gk20a_clk_fini(struct nvkm_clk *base)
{ … }
static int
gk20a_clk_init(struct nvkm_clk *base)
{ … }
static const struct nvkm_clk_func
gk20a_clk = …;
int
gk20a_clk_ctor(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
const struct nvkm_clk_func *func, const struct gk20a_clk_pllg_params *params,
struct gk20a_clk *clk)
{ … }
int
gk20a_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_clk **pclk)
{ … }