Lines Matching refs:clk

50 read_vco(struct gk104_clk *clk, u32 dsrc)  in read_vco()  argument
52 struct nvkm_device *device = clk->base.subdev.device; in read_vco()
55 return read_pll(clk, 0x00e800); in read_vco()
56 return read_pll(clk, 0x00e820); in read_vco()
60 read_pll(struct gk104_clk *clk, u32 pll) in read_pll() argument
62 struct nvkm_device *device = clk->base.subdev.device; in read_pll()
81 sclk = read_pll(clk, 0x132020); in read_pll()
85 sclk = read_div(clk, 0, 0x137320, 0x137330); in read_pll()
92 sclk = read_div(clk, (pll & 0xff) / 0x20, 0x137120, 0x137140); in read_pll()
106 read_div(struct gk104_clk *clk, int doff, u32 dsrc, u32 dctl) in read_div() argument
108 struct nvkm_device *device = clk->base.subdev.device; in read_div()
121 u32 sclk = read_vco(clk, dsrc + (doff * 4)); in read_div()
126 return read_vco(clk, dsrc + (doff * 4)); in read_div()
133 read_mem(struct gk104_clk *clk) in read_mem() argument
135 struct nvkm_device *device = clk->base.subdev.device; in read_mem()
137 case 1: return read_pll(clk, 0x132020); in read_mem()
138 case 2: return read_pll(clk, 0x132000); in read_mem()
145 read_clk(struct gk104_clk *clk, int idx) in read_clk() argument
147 struct nvkm_device *device = clk->base.subdev.device; in read_clk()
154 sclk = read_pll(clk, 0x137000 + (idx * 0x20)); in read_clk()
157 sclk = read_div(clk, idx, 0x137160, 0x1371d0); in read_clk()
163 sclk = read_div(clk, idx, 0x137160, 0x1371d0); in read_clk()
166 sclk = read_pll(clk, 0x1370e0); in read_clk()
172 sclk = read_div(clk, idx, 0x137160, 0x1371d0); in read_clk()
191 struct gk104_clk *clk = gk104_clk(base); in gk104_clk_read() local
192 struct nvkm_subdev *subdev = &clk->base.subdev; in gk104_clk_read()
201 return read_mem(clk); in gk104_clk_read()
203 return read_clk(clk, 0x00); in gk104_clk_read()
205 return read_clk(clk, 0x01); in gk104_clk_read()
207 return read_clk(clk, 0x02); in gk104_clk_read()
209 return read_clk(clk, 0x07); in gk104_clk_read()
211 return read_clk(clk, 0x08); in gk104_clk_read()
213 return read_clk(clk, 0x0c); in gk104_clk_read()
215 return read_clk(clk, 0x0e); in gk104_clk_read()
223 calc_div(struct gk104_clk *clk, int idx, u32 ref, u32 freq, u32 *ddiv) in calc_div() argument
234 calc_src(struct gk104_clk *clk, int idx, u32 freq, u32 *dsrc, u32 *ddiv) in calc_src() argument
256 sclk = read_vco(clk, 0x137160 + (idx * 4)); in calc_src()
258 sclk = calc_div(clk, idx, sclk, freq, ddiv); in calc_src()
263 calc_pll(struct gk104_clk *clk, int idx, u32 freq, u32 *coef) in calc_pll() argument
265 struct nvkm_subdev *subdev = &clk->base.subdev; in calc_pll()
274 limits.refclk = read_div(clk, idx, 0x137120, 0x137140); in calc_pll()
287 calc_clk(struct gk104_clk *clk, in calc_clk() argument
290 struct gk104_clk_info *info = &clk->eng[idx]; in calc_clk()
300 clk0 = calc_src(clk, idx, freq, &src0, &div0); in calc_clk()
301 clk0 = calc_div(clk, idx, clk0, freq, &div1D); in calc_clk()
306 clk1 = calc_pll(clk, idx, freq, &info->coef); in calc_clk()
309 clk1 = calc_div(clk, idx, clk1, freq, &div1P); in calc_clk()
341 struct gk104_clk *clk = gk104_clk(base); in gk104_clk_calc() local
344 if ((ret = calc_clk(clk, cstate, 0x00, nv_clk_src_gpc)) || in gk104_clk_calc()
345 (ret = calc_clk(clk, cstate, 0x01, nv_clk_src_rop)) || in gk104_clk_calc()
346 (ret = calc_clk(clk, cstate, 0x02, nv_clk_src_hubk07)) || in gk104_clk_calc()
347 (ret = calc_clk(clk, cstate, 0x07, nv_clk_src_hubk06)) || in gk104_clk_calc()
348 (ret = calc_clk(clk, cstate, 0x08, nv_clk_src_hubk01)) || in gk104_clk_calc()
349 (ret = calc_clk(clk, cstate, 0x0c, nv_clk_src_daemon)) || in gk104_clk_calc()
350 (ret = calc_clk(clk, cstate, 0x0e, nv_clk_src_vdec))) in gk104_clk_calc()
357 gk104_clk_prog_0(struct gk104_clk *clk, int idx) in gk104_clk_prog_0() argument
359 struct gk104_clk_info *info = &clk->eng[idx]; in gk104_clk_prog_0()
360 struct nvkm_device *device = clk->base.subdev.device; in gk104_clk_prog_0()
368 gk104_clk_prog_1_0(struct gk104_clk *clk, int idx) in gk104_clk_prog_1_0() argument
370 struct nvkm_device *device = clk->base.subdev.device; in gk104_clk_prog_1_0()
379 gk104_clk_prog_1_1(struct gk104_clk *clk, int idx) in gk104_clk_prog_1_1() argument
381 struct nvkm_device *device = clk->base.subdev.device; in gk104_clk_prog_1_1()
386 gk104_clk_prog_2(struct gk104_clk *clk, int idx) in gk104_clk_prog_2() argument
388 struct gk104_clk_info *info = &clk->eng[idx]; in gk104_clk_prog_2()
389 struct nvkm_device *device = clk->base.subdev.device; in gk104_clk_prog_2()
405 gk104_clk_prog_3(struct gk104_clk *clk, int idx) in gk104_clk_prog_3() argument
407 struct gk104_clk_info *info = &clk->eng[idx]; in gk104_clk_prog_3()
408 struct nvkm_device *device = clk->base.subdev.device; in gk104_clk_prog_3()
416 gk104_clk_prog_4_0(struct gk104_clk *clk, int idx) in gk104_clk_prog_4_0() argument
418 struct gk104_clk_info *info = &clk->eng[idx]; in gk104_clk_prog_4_0()
419 struct nvkm_device *device = clk->base.subdev.device; in gk104_clk_prog_4_0()
431 gk104_clk_prog_4_1(struct gk104_clk *clk, int idx) in gk104_clk_prog_4_1() argument
433 struct gk104_clk_info *info = &clk->eng[idx]; in gk104_clk_prog_4_1()
434 struct nvkm_device *device = clk->base.subdev.device; in gk104_clk_prog_4_1()
444 struct gk104_clk *clk = gk104_clk(base); in gk104_clk_prog() local
460 for (j = 0; j < ARRAY_SIZE(clk->eng); j++) { in gk104_clk_prog()
463 if (!clk->eng[j].freq) in gk104_clk_prog()
465 stage[i].exec(clk, j); in gk104_clk_prog()
475 struct gk104_clk *clk = gk104_clk(base); in gk104_clk_tidy() local
476 memset(clk->eng, 0x00, sizeof(clk->eng)); in gk104_clk_tidy()
503 struct gk104_clk *clk; in gk104_clk_new() local
505 if (!(clk = kzalloc(sizeof(*clk), GFP_KERNEL))) in gk104_clk_new()
507 *pclk = &clk->base; in gk104_clk_new()
509 return nvkm_clk_ctor(&gk104_clk, device, index, true, &clk->base); in gk104_clk_new()