1/* $NetBSD: nv50.h,v 1.3 2021/12/18 23:45:39 riastradh Exp $ */ 2 3/* SPDX-License-Identifier: MIT */ 4#ifndef __NV50_CLK_H__ 5#define __NV50_CLK_H__ 6#define nv50_clk(p) container_of((p), struct nv50_clk, base) 7#include "priv.h" 8 9#include <subdev/bus/hwsq.h> 10 11struct nv50_clk_hwsq { 12 struct hwsq base; 13 struct hwsq_reg r_fifo; 14 struct hwsq_reg r_spll[2]; 15 struct hwsq_reg r_nvpll[2]; 16 struct hwsq_reg r_divs; 17 struct hwsq_reg r_mast; 18}; 19 20struct nv50_clk { 21 struct nvkm_clk base; 22 struct nv50_clk_hwsq hwsq; 23}; 24 25int nv50_clk_new_(const struct nvkm_clk_func *, struct nvkm_device *, int, 26 bool, struct nvkm_clk **); 27int nv50_clk_read(struct nvkm_clk *, enum nv_clk_src); 28int nv50_clk_calc(struct nvkm_clk *, struct nvkm_cstate *); 29int nv50_clk_prog(struct nvkm_clk *); 30void nv50_clk_tidy(struct nvkm_clk *); 31#endif 32