/* SPDX-License-Identifier: GPL-2.0-only */12#ifndef _ZL3073X_DPLL_H3#define _ZL3073X_DPLL_H45#include <linux/dpll.h>6#include <linux/list.h>78#include "core.h"910/**11* struct zl3073x_dpll - ZL3073x DPLL sub-device structure12* @list: this DPLL list entry13* @dev: pointer to multi-function parent device14* @id: DPLL index15* @refsel_mode: reference selection mode16* @forced_ref: selected reference in forced reference lock mode17* @check_count: periodic check counter18* @phase_monitor: is phase offset monitor enabled19* @dpll_dev: pointer to registered DPLL device20* @tracker: tracking object for the acquired reference21* @lock_status: last saved DPLL lock status22* @pins: list of pins23* @change_work: device change notification work24*/25struct zl3073x_dpll {26struct list_head list;27struct zl3073x_dev *dev;28u8 id;29u8 refsel_mode;30u8 forced_ref;31u8 check_count;32bool phase_monitor;33struct dpll_device *dpll_dev;34dpll_tracker tracker;35enum dpll_lock_status lock_status;36struct list_head pins;37struct work_struct change_work;38};3940struct zl3073x_dpll *zl3073x_dpll_alloc(struct zl3073x_dev *zldev, u8 ch);41void zl3073x_dpll_free(struct zl3073x_dpll *zldpll);4243int zl3073x_dpll_register(struct zl3073x_dpll *zldpll);44void zl3073x_dpll_unregister(struct zl3073x_dpll *zldpll);4546int zl3073x_dpll_init_fine_phase_adjust(struct zl3073x_dev *zldev);47void zl3073x_dpll_changes_check(struct zl3073x_dpll *zldpll);4849#endif /* _ZL3073X_DPLL_H */505152