Symbol: ptp_dte
drivers/ptp/ptp_dte.c
103
ptp_dte->ts_wrap_cnt++;
drivers/ptp/ptp_dte.c
108
dte_write_nco(ptp_dte->regs, ns);
drivers/ptp/ptp_dte.c
110
ptp_dte->ts_ovf_last = (ns >> DTE_NCO_TS_WRAP_LSHIFT) &
drivers/ptp/ptp_dte.c
114
static s64 dte_read_nco_with_ovf(struct ptp_dte *ptp_dte)
drivers/ptp/ptp_dte.c
119
ns = dte_read_nco(ptp_dte->regs);
drivers/ptp/ptp_dte.c
125
if (ts_ovf < ptp_dte->ts_ovf_last)
drivers/ptp/ptp_dte.c
126
ptp_dte->ts_wrap_cnt++;
drivers/ptp/ptp_dte.c
128
ptp_dte->ts_ovf_last = ts_ovf;
drivers/ptp/ptp_dte.c
131
ns += (s64)(BIT_ULL(DTE_WRAP_AROUND_NSEC_SHIFT) * ptp_dte->ts_wrap_cnt);
drivers/ptp/ptp_dte.c
141
struct ptp_dte *ptp_dte = container_of(ptp, struct ptp_dte, caps);
drivers/ptp/ptp_dte.c
143
if (abs(ppb) > ptp_dte->caps.max_adj) {
drivers/ptp/ptp_dte.c
144
dev_err(ptp_dte->dev, "ppb adj too big\n");
drivers/ptp/ptp_dte.c
153
spin_lock_irqsave(&ptp_dte->lock, flags);
drivers/ptp/ptp_dte.c
154
writel(nco_incr, ptp_dte->regs + DTE_NCO_INC_REG);
drivers/ptp/ptp_dte.c
155
spin_unlock_irqrestore(&ptp_dte->lock, flags);
drivers/ptp/ptp_dte.c
163
struct ptp_dte *ptp_dte = container_of(ptp, struct ptp_dte, caps);
drivers/ptp/ptp_dte.c
165
spin_lock_irqsave(&ptp_dte->lock, flags);
drivers/ptp/ptp_dte.c
166
dte_write_nco_delta(ptp_dte, delta);
drivers/ptp/ptp_dte.c
167
spin_unlock_irqrestore(&ptp_dte->lock, flags);
drivers/ptp/ptp_dte.c
175
struct ptp_dte *ptp_dte = container_of(ptp, struct ptp_dte, caps);
drivers/ptp/ptp_dte.c
177
spin_lock_irqsave(&ptp_dte->lock, flags);
drivers/ptp/ptp_dte.c
178
*ts = ns_to_timespec64(dte_read_nco_with_ovf(ptp_dte));
drivers/ptp/ptp_dte.c
179
spin_unlock_irqrestore(&ptp_dte->lock, flags);
drivers/ptp/ptp_dte.c
188
struct ptp_dte *ptp_dte = container_of(ptp, struct ptp_dte, caps);
drivers/ptp/ptp_dte.c
190
spin_lock_irqsave(&ptp_dte->lock, flags);
drivers/ptp/ptp_dte.c
193
writel(0, ptp_dte->regs + DTE_NCO_INC_REG);
drivers/ptp/ptp_dte.c
195
dte_write_nco(ptp_dte->regs, timespec64_to_ns(ts));
drivers/ptp/ptp_dte.c
198
ptp_dte->ts_ovf_last = 0;
drivers/ptp/ptp_dte.c
199
ptp_dte->ts_wrap_cnt = 0;
drivers/ptp/ptp_dte.c
202
writel(DTE_NCO_INC_DEFAULT, ptp_dte->regs + DTE_NCO_INC_REG);
drivers/ptp/ptp_dte.c
204
spin_unlock_irqrestore(&ptp_dte->lock, flags);
drivers/ptp/ptp_dte.c
231
struct ptp_dte *ptp_dte;
drivers/ptp/ptp_dte.c
234
ptp_dte = devm_kzalloc(dev, sizeof(struct ptp_dte), GFP_KERNEL);
drivers/ptp/ptp_dte.c
235
if (!ptp_dte)
drivers/ptp/ptp_dte.c
238
ptp_dte->regs = devm_platform_ioremap_resource(pdev, 0);
drivers/ptp/ptp_dte.c
239
if (IS_ERR(ptp_dte->regs))
drivers/ptp/ptp_dte.c
240
return PTR_ERR(ptp_dte->regs);
drivers/ptp/ptp_dte.c
242
spin_lock_init(&ptp_dte->lock);
drivers/ptp/ptp_dte.c
244
ptp_dte->dev = dev;
drivers/ptp/ptp_dte.c
245
ptp_dte->caps = ptp_dte_caps;
drivers/ptp/ptp_dte.c
246
ptp_dte->ptp_clk = ptp_clock_register(&ptp_dte->caps, &pdev->dev);
drivers/ptp/ptp_dte.c
247
if (IS_ERR(ptp_dte->ptp_clk)) {
drivers/ptp/ptp_dte.c
250
return PTR_ERR(ptp_dte->ptp_clk);
drivers/ptp/ptp_dte.c
253
platform_set_drvdata(pdev, ptp_dte);
drivers/ptp/ptp_dte.c
262
struct ptp_dte *ptp_dte = platform_get_drvdata(pdev);
drivers/ptp/ptp_dte.c
265
ptp_clock_unregister(ptp_dte->ptp_clk);
drivers/ptp/ptp_dte.c
268
writel(0, ptp_dte->regs + (i * sizeof(u32)));
drivers/ptp/ptp_dte.c
274
struct ptp_dte *ptp_dte = dev_get_drvdata(dev);
drivers/ptp/ptp_dte.c
278
ptp_dte->reg_val[i] =
drivers/ptp/ptp_dte.c
279
readl(ptp_dte->regs + (i * sizeof(u32)));
drivers/ptp/ptp_dte.c
283
writel(0, ptp_dte->regs + DTE_NCO_INC_REG);
drivers/ptp/ptp_dte.c
290
struct ptp_dte *ptp_dte = dev_get_drvdata(dev);
drivers/ptp/ptp_dte.c
295
writel(ptp_dte->reg_val[i],
drivers/ptp/ptp_dte.c
296
(ptp_dte->regs + (i * sizeof(u32))));
drivers/ptp/ptp_dte.c
298
writel(((ptp_dte->reg_val[i] &
drivers/ptp/ptp_dte.c
300
(ptp_dte->regs + (i * sizeof(u32))));
drivers/ptp/ptp_dte.c
86
static void dte_write_nco_delta(struct ptp_dte *ptp_dte, s64 delta)
drivers/ptp/ptp_dte.c
90
ns = dte_read_nco(ptp_dte->regs);
drivers/ptp/ptp_dte.c
94
if (ptp_dte->ts_wrap_cnt) {
drivers/ptp/ptp_dte.c
96
ptp_dte->ts_wrap_cnt--;