mirror of https://github.com/torvalds/linux.git
47 lines
1.3 KiB
C
47 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
#ifndef _ZL3073X_DPLL_H
|
|
#define _ZL3073X_DPLL_H
|
|
|
|
#include <linux/dpll.h>
|
|
#include <linux/list.h>
|
|
|
|
#include "core.h"
|
|
|
|
/**
|
|
* struct zl3073x_dpll - ZL3073x DPLL sub-device structure
|
|
* @list: this DPLL list entry
|
|
* @dev: pointer to multi-function parent device
|
|
* @id: DPLL index
|
|
* @refsel_mode: reference selection mode
|
|
* @forced_ref: selected reference in forced reference lock mode
|
|
* @check_count: periodic check counter
|
|
* @phase_monitor: is phase offset monitor enabled
|
|
* @dpll_dev: pointer to registered DPLL device
|
|
* @lock_status: last saved DPLL lock status
|
|
* @pins: list of pins
|
|
*/
|
|
struct zl3073x_dpll {
|
|
struct list_head list;
|
|
struct zl3073x_dev *dev;
|
|
u8 id;
|
|
u8 refsel_mode;
|
|
u8 forced_ref;
|
|
u8 check_count;
|
|
bool phase_monitor;
|
|
struct dpll_device *dpll_dev;
|
|
enum dpll_lock_status lock_status;
|
|
struct list_head pins;
|
|
};
|
|
|
|
struct zl3073x_dpll *zl3073x_dpll_alloc(struct zl3073x_dev *zldev, u8 ch);
|
|
void zl3073x_dpll_free(struct zl3073x_dpll *zldpll);
|
|
|
|
int zl3073x_dpll_register(struct zl3073x_dpll *zldpll);
|
|
void zl3073x_dpll_unregister(struct zl3073x_dpll *zldpll);
|
|
|
|
int zl3073x_dpll_init_fine_phase_adjust(struct zl3073x_dev *zldev);
|
|
void zl3073x_dpll_changes_check(struct zl3073x_dpll *zldpll);
|
|
|
|
#endif /* _ZL3073X_DPLL_H */
|