drivers/ptp/ptp_idt82p33.h
Source file repositories/reference/linux-study-clean/drivers/ptp/ptp_idt82p33.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/ptp/ptp_idt82p33.h- Extension
.h- Size
- 2929 bytes
- Lines
- 115
- Domain
- Driver Families
- Bucket
- drivers/ptp
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/ktime.hlinux/mfd/idt82p33_reg.hlinux/regmap.h
Detected Declarations
struct idt82p33_channelstruct idt82p33struct idt82p33_fwrc
Annotated Snippet
struct idt82p33_channel {
struct ptp_clock_info caps;
struct ptp_clock *ptp_clock;
struct idt82p33 *idt82p33;
enum pll_mode pll_mode;
/* Workaround for TOD-to-output alignment issue */
struct delayed_work adjtime_work;
s32 current_freq;
/* double dco mode */
bool ddco;
u8 output_mask;
/* last input trigger for extts */
u8 tod_trigger;
bool discard_next_extts;
u8 plln;
/* remember last tod_sts for extts */
u8 extts_tod_sts[TOD_BYTE_COUNT];
u16 dpll_tod_cnfg;
u16 dpll_tod_trigger;
u16 dpll_tod_sts;
u16 dpll_mode_cnfg;
u16 dpll_freq_cnfg;
u16 dpll_phase_cnfg;
u16 dpll_sync_cnfg;
u16 dpll_input_mode_cnfg;
};
struct idt82p33 {
struct idt82p33_channel channel[MAX_PHC_PLL];
struct device *dev;
u8 pll_mask;
/* Polls for external time stamps */
u8 extts_mask;
bool extts_single_shot;
struct delayed_work extts_work;
/* Remember the ptp channel to report extts */
struct idt82p33_channel *event_channel[MAX_PHC_PLL];
/* Mutex to protect operations from being interrupted */
struct mutex *lock;
struct regmap *regmap;
struct device *mfd;
/* Overhead calculation for adjtime */
ktime_t start_time;
int calculate_overhead_flag;
s64 tod_write_overhead_ns;
};
/* firmware interface */
struct idt82p33_fwrc {
u8 hiaddr;
u8 loaddr;
u8 value;
u8 reserved;
} __packed;
#endif /* PTP_IDT82P33_H */
Annotation
- Immediate include surface: `linux/ktime.h`, `linux/mfd/idt82p33_reg.h`, `linux/regmap.h`.
- Detected declarations: `struct idt82p33_channel`, `struct idt82p33`, `struct idt82p33_fwrc`.
- Atlas domain: Driver Families / drivers/ptp.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.