/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * (C) Copyright 2018 - Beniamino Galvani <b.galvani@gmail.com>
 * (C) Copyright 2018 - BayLibre, SAS
 * Author: Neil Armstrong <narmstrong@baylibre.com>
 */

#ifndef CLK_MESON_H
#define CLK_MESON_H

/* Gate Structure */

#include <linux/bitops.h>
struct meson_gate {
	unsigned int reg;
	unsigned int bit;
};

#define MESON_GATE(id, _reg, _bit)		\
	[id] = {				\
		.reg = (_reg),			\
		.bit = (_bit),			\
	}

/* PLL Parameters */

struct parm {
	u16 reg_off;
	u8 shift;
	u8 width;
};

#define PMASK(width)                    GENMASK(width - 1, 0)
#define SETPMASK(width, shift)          GENMASK(shift + width - 1, shift)
#define CLRPMASK(width, shift)          (~SETPMASK(width, shift))

#define PARM_GET(width, shift, reg)                                     \
	(((reg) & SETPMASK(width, shift)) >> (shift))
#define PARM_SET(width, shift, reg, val)                                \
	(((reg) & CLRPMASK(width, shift)) | ((val) << (shift)))

/* MPLL Parameters */

#define SDM_DEN 16384
#define N2_MIN  4
#define N2_MAX  511

#endif
