ptp_dte 97 drivers/ptp/ptp_dte.c static void dte_write_nco_delta(struct ptp_dte *ptp_dte, s64 delta) ptp_dte 101 drivers/ptp/ptp_dte.c ns = dte_read_nco(ptp_dte->regs); ptp_dte 105 drivers/ptp/ptp_dte.c if (ptp_dte->ts_wrap_cnt) { ptp_dte 107 drivers/ptp/ptp_dte.c ptp_dte->ts_wrap_cnt--; ptp_dte 114 drivers/ptp/ptp_dte.c ptp_dte->ts_wrap_cnt++; ptp_dte 119 drivers/ptp/ptp_dte.c dte_write_nco(ptp_dte->regs, ns); ptp_dte 121 drivers/ptp/ptp_dte.c ptp_dte->ts_ovf_last = (ns >> DTE_NCO_TS_WRAP_LSHIFT) & ptp_dte 125 drivers/ptp/ptp_dte.c static s64 dte_read_nco_with_ovf(struct ptp_dte *ptp_dte) ptp_dte 130 drivers/ptp/ptp_dte.c ns = dte_read_nco(ptp_dte->regs); ptp_dte 136 drivers/ptp/ptp_dte.c if (ts_ovf < ptp_dte->ts_ovf_last) ptp_dte 137 drivers/ptp/ptp_dte.c ptp_dte->ts_wrap_cnt++; ptp_dte 139 drivers/ptp/ptp_dte.c ptp_dte->ts_ovf_last = ts_ovf; ptp_dte 142 drivers/ptp/ptp_dte.c ns += (s64)(BIT_ULL(DTE_WRAP_AROUND_NSEC_SHIFT) * ptp_dte->ts_wrap_cnt); ptp_dte 151 drivers/ptp/ptp_dte.c struct ptp_dte *ptp_dte = container_of(ptp, struct ptp_dte, caps); ptp_dte 153 drivers/ptp/ptp_dte.c if (abs(ppb) > ptp_dte->caps.max_adj) { ptp_dte 154 drivers/ptp/ptp_dte.c dev_err(ptp_dte->dev, "ppb adj too big\n"); ptp_dte 163 drivers/ptp/ptp_dte.c spin_lock_irqsave(&ptp_dte->lock, flags); ptp_dte 164 drivers/ptp/ptp_dte.c writel(nco_incr, ptp_dte->regs + DTE_NCO_INC_REG); ptp_dte 165 drivers/ptp/ptp_dte.c spin_unlock_irqrestore(&ptp_dte->lock, flags); ptp_dte 173 drivers/ptp/ptp_dte.c struct ptp_dte *ptp_dte = container_of(ptp, struct ptp_dte, caps); ptp_dte 175 drivers/ptp/ptp_dte.c spin_lock_irqsave(&ptp_dte->lock, flags); ptp_dte 176 drivers/ptp/ptp_dte.c dte_write_nco_delta(ptp_dte, delta); ptp_dte 177 drivers/ptp/ptp_dte.c spin_unlock_irqrestore(&ptp_dte->lock, flags); ptp_dte 185 drivers/ptp/ptp_dte.c struct ptp_dte *ptp_dte = container_of(ptp, struct ptp_dte, caps); ptp_dte 187 drivers/ptp/ptp_dte.c spin_lock_irqsave(&ptp_dte->lock, flags); ptp_dte 188 drivers/ptp/ptp_dte.c *ts = ns_to_timespec64(dte_read_nco_with_ovf(ptp_dte)); ptp_dte 189 drivers/ptp/ptp_dte.c spin_unlock_irqrestore(&ptp_dte->lock, flags); ptp_dte 198 drivers/ptp/ptp_dte.c struct ptp_dte *ptp_dte = container_of(ptp, struct ptp_dte, caps); ptp_dte 200 drivers/ptp/ptp_dte.c spin_lock_irqsave(&ptp_dte->lock, flags); ptp_dte 203 drivers/ptp/ptp_dte.c writel(0, ptp_dte->regs + DTE_NCO_INC_REG); ptp_dte 205 drivers/ptp/ptp_dte.c dte_write_nco(ptp_dte->regs, timespec64_to_ns(ts)); ptp_dte 208 drivers/ptp/ptp_dte.c ptp_dte->ts_ovf_last = 0; ptp_dte 209 drivers/ptp/ptp_dte.c ptp_dte->ts_wrap_cnt = 0; ptp_dte 212 drivers/ptp/ptp_dte.c writel(DTE_NCO_INC_DEFAULT, ptp_dte->regs + DTE_NCO_INC_REG); ptp_dte 214 drivers/ptp/ptp_dte.c spin_unlock_irqrestore(&ptp_dte->lock, flags); ptp_dte 241 drivers/ptp/ptp_dte.c struct ptp_dte *ptp_dte; ptp_dte 245 drivers/ptp/ptp_dte.c ptp_dte = devm_kzalloc(dev, sizeof(struct ptp_dte), GFP_KERNEL); ptp_dte 246 drivers/ptp/ptp_dte.c if (!ptp_dte) ptp_dte 250 drivers/ptp/ptp_dte.c ptp_dte->regs = devm_ioremap_resource(dev, res); ptp_dte 251 drivers/ptp/ptp_dte.c if (IS_ERR(ptp_dte->regs)) ptp_dte 252 drivers/ptp/ptp_dte.c return PTR_ERR(ptp_dte->regs); ptp_dte 254 drivers/ptp/ptp_dte.c spin_lock_init(&ptp_dte->lock); ptp_dte 256 drivers/ptp/ptp_dte.c ptp_dte->dev = dev; ptp_dte 257 drivers/ptp/ptp_dte.c ptp_dte->caps = ptp_dte_caps; ptp_dte 258 drivers/ptp/ptp_dte.c ptp_dte->ptp_clk = ptp_clock_register(&ptp_dte->caps, &pdev->dev); ptp_dte 259 drivers/ptp/ptp_dte.c if (IS_ERR(ptp_dte->ptp_clk)) { ptp_dte 262 drivers/ptp/ptp_dte.c return PTR_ERR(ptp_dte->ptp_clk); ptp_dte 265 drivers/ptp/ptp_dte.c platform_set_drvdata(pdev, ptp_dte); ptp_dte 274 drivers/ptp/ptp_dte.c struct ptp_dte *ptp_dte = platform_get_drvdata(pdev); ptp_dte 277 drivers/ptp/ptp_dte.c ptp_clock_unregister(ptp_dte->ptp_clk); ptp_dte 280 drivers/ptp/ptp_dte.c writel(0, ptp_dte->regs + (i * sizeof(u32))); ptp_dte 288 drivers/ptp/ptp_dte.c struct ptp_dte *ptp_dte = dev_get_drvdata(dev); ptp_dte 292 drivers/ptp/ptp_dte.c ptp_dte->reg_val[i] = ptp_dte 293 drivers/ptp/ptp_dte.c readl(ptp_dte->regs + (i * sizeof(u32))); ptp_dte 297 drivers/ptp/ptp_dte.c writel(0, ptp_dte->regs + DTE_NCO_INC_REG); ptp_dte 304 drivers/ptp/ptp_dte.c struct ptp_dte *ptp_dte = dev_get_drvdata(dev); ptp_dte 309 drivers/ptp/ptp_dte.c writel(ptp_dte->reg_val[i], ptp_dte 310 drivers/ptp/ptp_dte.c (ptp_dte->regs + (i * sizeof(u32)))); ptp_dte 312 drivers/ptp/ptp_dte.c writel(((ptp_dte->reg_val[i] & ptp_dte 314 drivers/ptp/ptp_dte.c (ptp_dte->regs + (i * sizeof(u32))));