brintos

brintos / linux-shallow public Read only

0
0
Text · 1.1 KiB · 9d59cbf Raw
53 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2/*3 * Copyright (C) 2023 Loongson Technology Corporation Limited4 */5 6#ifndef __LSDC_GFXPLL_H__7#define __LSDC_GFXPLL_H__8 9#include <drm/drm_device.h>10 11struct loongson_gfxpll;12 13struct loongson_gfxpll_parms {14	unsigned int ref_clock;15	unsigned int div_ref;16	unsigned int loopc;17	unsigned int div_out_dc;18	unsigned int div_out_gmc;19	unsigned int div_out_gpu;20};21 22struct loongson_gfxpll_funcs {23	int (*init)(struct loongson_gfxpll * const this);24 25	int (*update)(struct loongson_gfxpll * const this,26		      struct loongson_gfxpll_parms const *pin);27 28	void (*get_rates)(struct loongson_gfxpll * const this,29			  unsigned int *dc, unsigned int *gmc, unsigned int *gpu);30 31	void (*print)(struct loongson_gfxpll * const this,32		      struct drm_printer *printer, bool verbose);33};34 35struct loongson_gfxpll {36	struct drm_device *ddev;37	void __iomem *mmio;38 39	/* PLL register offset */40	u32 reg_base;41	/* PLL register size in bytes */42	u32 reg_size;43 44	const struct loongson_gfxpll_funcs *funcs;45 46	struct loongson_gfxpll_parms parms;47};48 49int loongson_gfxpll_create(struct drm_device *ddev,50			   struct loongson_gfxpll **ppout);51 52#endif53