Lines Matching +full:clock +full:- +full:mult

1 // SPDX-License-Identifier: GPL-2.0-or-later
5 * Mock-up PTP Hardware Clock driver for virtual network devices
7 * Create a PTP clock which offers PTP time manipulation operations
15 /* Clamp scaled_ppm between -2,097,152,000 and 2,097,152,000,
16 * and thus "adj" between -68,719,476 and 68,719,476
20 * (MULT >> SHIFT) needs to be 1. Pick SHIFT as 31 bits, which translates
21 * MULT(freq 0) into 0x80000000.
29 * 64-bit overflow during the multiplication with cc->mult, given the max "adj"
38 struct ptp_clock *clock; member
57 spin_lock(&phc->lock); in mock_phc_adjfine()
58 timecounter_read(&phc->tc); in mock_phc_adjfine()
59 phc->cc.mult = MOCK_PHC_CC_MULT + adj; in mock_phc_adjfine()
60 spin_unlock(&phc->lock); in mock_phc_adjfine()
69 spin_lock(&phc->lock); in mock_phc_adjtime()
70 timecounter_adjtime(&phc->tc, delta); in mock_phc_adjtime()
71 spin_unlock(&phc->lock); in mock_phc_adjtime()
82 spin_lock(&phc->lock); in mock_phc_settime64()
83 timecounter_init(&phc->tc, &phc->cc, ns); in mock_phc_settime64()
84 spin_unlock(&phc->lock); in mock_phc_settime64()
94 spin_lock(&phc->lock); in mock_phc_gettime64()
95 ns = timecounter_read(&phc->tc); in mock_phc_gettime64()
96 spin_unlock(&phc->lock); in mock_phc_gettime64()
114 return ptp_clock_index(phc->clock); in mock_phc_index()
125 err = -ENOMEM; in mock_phc_create()
129 phc->info = (struct ptp_clock_info) { in mock_phc_create()
131 .name = "Mock-up PTP clock", in mock_phc_create()
140 phc->cc = (struct cyclecounter) { in mock_phc_create()
143 .mult = MOCK_PHC_CC_MULT, in mock_phc_create()
147 spin_lock_init(&phc->lock); in mock_phc_create()
148 timecounter_init(&phc->tc, &phc->cc, 0); in mock_phc_create()
150 phc->clock = ptp_clock_register(&phc->info, dev); in mock_phc_create()
151 if (IS_ERR(phc->clock)) { in mock_phc_create()
152 err = PTR_ERR(phc->clock); in mock_phc_create()
156 ptp_schedule_worker(phc->clock, MOCK_PHC_REFRESH_INTERVAL); in mock_phc_create()
169 ptp_clock_unregister(phc->clock); in mock_phc_destroy()
174 MODULE_DESCRIPTION("Mock-up PTP Hardware Clock driver");