Lines Matching refs:clk
42 read_div(struct nvkm_clk *clk) in read_div() argument
44 return nv_rd32(clk, 0x004600); in read_div()
48 read_pll(struct nvkm_clk *clk, u32 base) in read_pll() argument
50 u32 ctrl = nv_rd32(clk, base + 0); in read_pll()
51 u32 coef = nv_rd32(clk, base + 4); in read_pll()
52 u32 ref = clk->read(clk, nv_clk_src_href); in read_pll()
59 post_div = 1 << ((nv_rd32(clk, 0x4070) & 0x000f0000) >> 16); in read_pll()
62 post_div = (nv_rd32(clk, 0x4040) & 0x000f0000) >> 16; in read_pll()
79 mcp77_clk_read(struct nvkm_clk *clk, enum nv_clk_src src) in mcp77_clk_read() argument
81 struct mcp77_clk_priv *priv = (void *)clk; in mcp77_clk_read()
82 u32 mast = nv_rd32(clk, 0x00c054); in mcp77_clk_read()
91 return clk->read(clk, nv_clk_src_href) * 4; in mcp77_clk_read()
93 return clk->read(clk, nv_clk_src_href) * 2 / 3; in mcp77_clk_read()
96 case 0x00000000: return clk->read(clk, nv_clk_src_hclkm2d3); in mcp77_clk_read()
98 case 0x00080000: return clk->read(clk, nv_clk_src_hclkm4); in mcp77_clk_read()
99 case 0x000c0000: return clk->read(clk, nv_clk_src_cclk); in mcp77_clk_read()
103 P = (nv_rd32(clk, 0x004028) & 0x00070000) >> 16; in mcp77_clk_read()
106 case 0x00000000: return clk->read(clk, nv_clk_src_crystal) >> P; in mcp77_clk_read()
108 case 0x00000002: return clk->read(clk, nv_clk_src_hclkm4) >> P; in mcp77_clk_read()
109 case 0x00000003: return read_pll(clk, 0x004028) >> P; in mcp77_clk_read()
114 return clk->read(clk, nv_clk_src_core); in mcp77_clk_read()
117 return clk->read(clk, nv_clk_src_core); in mcp77_clk_read()
120 case 0x00000000: return clk->read(clk, nv_clk_src_href); in mcp77_clk_read()
121 case 0x00000400: return clk->read(clk, nv_clk_src_hclkm4); in mcp77_clk_read()
122 case 0x00000800: return clk->read(clk, nv_clk_src_hclkm2d3); in mcp77_clk_read()
126 P = (nv_rd32(clk, 0x004020) & 0x00070000) >> 16; in mcp77_clk_read()
130 return clk->read(clk, nv_clk_src_href) >> P; in mcp77_clk_read()
131 return clk->read(clk, nv_clk_src_crystal) >> P; in mcp77_clk_read()
133 case 0x00000020: return read_pll(clk, 0x004028) >> P; in mcp77_clk_read()
134 case 0x00000030: return read_pll(clk, 0x004020) >> P; in mcp77_clk_read()
141 P = (read_div(clk) & 0x00000700) >> 8; in mcp77_clk_read()
145 return clk->read(clk, nv_clk_src_core) >> P; in mcp77_clk_read()
166 struct nvkm_clk *clk = &priv->base; in calc_pll() local
174 pll.refclk = clk->read(clk, nv_clk_src_href); in calc_pll()
200 mcp77_clk_calc(struct nvkm_clk *clk, struct nvkm_cstate *cstate) in mcp77_clk_calc() argument
202 struct mcp77_clk_priv *priv = (void *)clk; in mcp77_clk_calc()
211 if (core < clk->read(clk, nv_clk_src_hclkm4)) in mcp77_clk_calc()
212 out = calc_P(clk->read(clk, nv_clk_src_hclkm4), core, &divs); in mcp77_clk_calc()
238 if (shader == clk->read(clk, nv_clk_src_href)) { in mcp77_clk_calc()
295 mcp77_clk_prog(struct nvkm_clk *clk) in mcp77_clk_prog() argument
297 struct mcp77_clk_priv *priv = (void *)clk; in mcp77_clk_prog()
303 ret = gt215_clk_pre(clk, f); in mcp77_clk_prog()
308 mast = nv_mask(clk, 0xc054, 0x03400e70, 0x03400640); in mcp77_clk_prog()
314 nv_mask(clk, 0x4028, 0x00070000, priv->cctrl); in mcp77_clk_prog()
318 nv_wr32(clk, 0x402c, priv->ccoef); in mcp77_clk_prog()
319 nv_wr32(clk, 0x4028, 0x80000000 | priv->cctrl); in mcp77_clk_prog()
320 nv_wr32(clk, 0x4040, priv->cpost); in mcp77_clk_prog()
331 nv_mask(clk, 0x4020, 0x00070000, 0x00000000); in mcp77_clk_prog()
335 nv_mask(clk, 0x4020, 0x00070000, priv->sctrl); in mcp77_clk_prog()
339 nv_wr32(clk, 0x4024, priv->scoef); in mcp77_clk_prog()
340 nv_wr32(clk, 0x4020, 0x80000000 | priv->sctrl); in mcp77_clk_prog()
341 nv_wr32(clk, 0x4070, priv->spost); in mcp77_clk_prog()
350 if (!nv_wait(clk, 0x004080, pllmask, pllmask)) { in mcp77_clk_prog()
359 nv_wr32(clk, 0x4600, priv->vdiv); in mcp77_clk_prog()
362 nv_wr32(clk, 0xc054, mast); in mcp77_clk_prog()
367 nv_wr32(clk, 0x4040, 0x00000000); in mcp77_clk_prog()
368 nv_mask(clk, 0x4028, 0x80000000, 0x00000000); in mcp77_clk_prog()
372 nv_wr32(clk, 0x4070, 0x00000000); in mcp77_clk_prog()
373 nv_mask(clk, 0x4020, 0x80000000, 0x00000000); in mcp77_clk_prog()
380 gt215_clk_post(clk, f); in mcp77_clk_prog()
385 mcp77_clk_tidy(struct nvkm_clk *clk) in mcp77_clk_tidy() argument