2013-01-14 08:28:28 +10:00
|
|
|
#ifndef __NVKM_CLK_NV50_H__
|
|
|
|
|
#define __NVKM_CLK_NV50_H__
|
|
|
|
|
#include <subdev/bus/hwsq.h>
|
2015-01-13 23:37:38 +10:00
|
|
|
#include <subdev/clk.h>
|
2013-01-14 08:28:28 +10:00
|
|
|
|
2015-01-13 23:37:38 +10:00
|
|
|
struct nv50_clk_hwsq {
|
2013-01-14 08:28:28 +10:00
|
|
|
struct hwsq base;
|
|
|
|
|
struct hwsq_reg r_fifo;
|
|
|
|
|
struct hwsq_reg r_spll[2];
|
|
|
|
|
struct hwsq_reg r_nvpll[2];
|
|
|
|
|
struct hwsq_reg r_divs;
|
|
|
|
|
struct hwsq_reg r_mast;
|
|
|
|
|
};
|
|
|
|
|
|
2015-01-13 23:37:38 +10:00
|
|
|
struct nv50_clk_priv {
|
2015-01-14 14:47:24 +10:00
|
|
|
struct nvkm_clk base;
|
2015-01-13 23:37:38 +10:00
|
|
|
struct nv50_clk_hwsq hwsq;
|
2013-01-14 08:28:28 +10:00
|
|
|
};
|
|
|
|
|
|
2015-01-14 14:47:24 +10:00
|
|
|
int nv50_clk_ctor(struct nvkm_object *, struct nvkm_object *,
|
|
|
|
|
struct nvkm_oclass *, void *, u32,
|
|
|
|
|
struct nvkm_object **);
|
2013-01-14 08:28:28 +10:00
|
|
|
|
2015-01-13 23:37:38 +10:00
|
|
|
struct nv50_clk_oclass {
|
2015-01-14 14:47:24 +10:00
|
|
|
struct nvkm_oclass base;
|
|
|
|
|
struct nvkm_domain *domains;
|
2013-01-14 08:28:28 +10:00
|
|
|
};
|
|
|
|
|
#endif
|