Home
last modified time | relevance | path

Searched full:cpts (Results 1 – 25 of 52) sorted by relevance

123

/openbmc/linux/drivers/net/ethernet/ti/
H A Dcpts.c21 #include "cpts.h"
50 static int cpts_fifo_pop(struct cpts *cpts, u32 *high, u32 *low) in cpts_fifo_pop() argument
52 u32 r = cpts_read32(cpts, intstat_raw); in cpts_fifo_pop()
55 *high = cpts_read32(cpts, event_high); in cpts_fifo_pop()
56 *low = cpts_read32(cpts, event_low); in cpts_fifo_pop()
57 cpts_write32(cpts, EVENT_POP, event_pop); in cpts_fifo_pop()
63 static int cpts_purge_events(struct cpts *cpts) in cpts_purge_events() argument
69 list_for_each_safe(this, next, &cpts->events) { in cpts_purge_events()
73 list_add(&event->list, &cpts->pool); in cpts_purge_events()
79 dev_dbg(cpts->dev, "cpts: event pool cleaned up %d\n", removed); in cpts_purge_events()
[all …]
H A Dam65-cpts.c23 #include "am65-cpts.h"
204 static void am65_cpts_settime(struct am65_cpts *cpts, u64 start_tstamp) in am65_cpts_settime() argument
209 am65_cpts_write32(cpts, val, ts_load_val_hi); in am65_cpts_settime()
211 am65_cpts_write32(cpts, val, ts_load_val_lo); in am65_cpts_settime()
213 am65_cpts_write32(cpts, AM65_CPTS_TS_LOAD_EN, ts_load_en); in am65_cpts_settime()
216 static void am65_cpts_set_add_val(struct am65_cpts *cpts) in am65_cpts_set_add_val() argument
219 cpts->ts_add_val = (NSEC_PER_SEC / cpts->refclk_freq - 1) & 0x7; in am65_cpts_set_add_val()
221 am65_cpts_write32(cpts, cpts->ts_add_val, ts_add_val); in am65_cpts_set_add_val()
224 static void am65_cpts_disable(struct am65_cpts *cpts) in am65_cpts_disable() argument
226 am65_cpts_write32(cpts, 0, control); in am65_cpts_disable()
[all …]
H A Dcpts.h100 struct cpts { struct
126 void cpts_rx_timestamp(struct cpts *cpts, struct sk_buff *skb); argument
127 void cpts_tx_timestamp(struct cpts *cpts, struct sk_buff *skb);
128 int cpts_register(struct cpts *cpts);
129 void cpts_unregister(struct cpts *cpts);
130 struct cpts *cpts_create(struct device *dev, void __iomem *regs,
132 void cpts_release(struct cpts *cpts);
133 void cpts_misc_interrupt(struct cpts *cpts);
135 static inline bool cpts_can_timestamp(struct cpts *cpts, struct sk_buff *skb) in cpts_can_timestamp() argument
145 static inline void cpts_set_irqpoll(struct cpts *cpts, bool en) in cpts_set_irqpoll() argument
[all …]
H A Dam65-cpts.h2 /* TI K3 AM65 CPTS driver interface
21 void am65_cpts_release(struct am65_cpts *cpts);
24 int am65_cpts_phc_index(struct am65_cpts *cpts);
25 void am65_cpts_tx_timestamp(struct am65_cpts *cpts, struct sk_buff *skb);
26 void am65_cpts_prep_tx_timestamp(struct am65_cpts *cpts, struct sk_buff *skb);
27 void am65_cpts_rx_enable(struct am65_cpts *cpts, bool en);
28 u64 am65_cpts_ns_gettime(struct am65_cpts *cpts);
29 int am65_cpts_estf_enable(struct am65_cpts *cpts, int idx,
31 void am65_cpts_estf_disable(struct am65_cpts *cpts, int idx);
32 void am65_cpts_suspend(struct am65_cpts *cpts);
[all …]
H A DKconfig83 tristate "TI Common Platform Time Sync (CPTS) Support"
125 tristate "TI K3 AM65x CPTS"
129 Say y here to support the TI K3 AM65x CPTS with 1588 features such as
130 PTP hardware clock for each CPTS device and network packets
132 Depending on integration CPTS blocks enable compliance with
143 defined in IEEE 802.1Q 2018. The EST scheduler runs on CPTS and the
H A Dam65-cpsw-qos.c15 #include "am65-cpts.h"
369 struct am65_cpts *cpts = common->cpts; in am65_cpsw_timer_set() local
375 return am65_cpts_estf_enable(cpts, port->port_id - 1, &cfg); in am65_cpsw_timer_set()
381 struct am65_cpts *cpts = port->common->cpts; in am65_cpsw_timer_stop() local
383 am65_cpts_estf_disable(cpts, port->port_id - 1); in am65_cpsw_timer_stop()
391 struct am65_cpts *cpts = port->common->cpts; in am65_cpsw_timer_act() local
417 cur_time = am65_cpts_ns_gettime(cpts); in am65_cpsw_timer_act()
448 struct am65_cpts *cpts = common->cpts; in am65_cpsw_configure_taprio() local
473 est_new->taprio.base_time = am65_cpts_ns_gettime(cpts); in am65_cpsw_configure_taprio()
H A DMakefile16 obj-$(CONFIG_TI_CPTS) += cpts.o
32 obj-$(CONFIG_TI_K3_AM65_CPTS) += am65-cpts.o
H A Dcpsw.c45 #include "cpts.h"
430 cpts_rx_timestamp(cpsw->cpts, skb); in cpsw_rx_handler()
833 if (cpsw->cpts) { in cpsw_ndo_open()
834 if (cpts_register(cpsw->cpts)) in cpsw_ndo_open()
835 dev_err(priv->dev, "error registering cpts device\n"); in cpsw_ndo_open()
884 cpts_unregister(cpsw->cpts); in cpsw_ndo_stop()
905 struct cpts *cpts = cpsw->cpts; in cpsw_ndo_start_xmit() local
917 priv->tx_ts_enabled && cpts_can_timestamp(cpts, skb)) in cpsw_ndo_start_xmit()
1692 if (!cpsw->cpts) in cpsw_probe()
1702 /* Enable misc CPTS evnt_pend IRQ */ in cpsw_probe()
[all …]
H A Dnetcp_ethss.c26 #include "cpts.h"
754 struct cpts *cpts; member
2008 if (!gbe_intf || !gbe_intf->gbe_dev->cpts) in keystone_get_ts_info()
2018 info->phc_index = gbe_intf->gbe_dev->cpts->phc_index; in keystone_get_ts_info()
2539 cpts_tx_timestamp(gbe_dev->cpts, skb); in gbe_txtstamp()
2547 return cpts_can_timestamp(gbe_intf->gbe_dev->cpts, skb); in gbe_need_txtstamp()
2592 cpts_rx_timestamp(gbe_dev->cpts, p_info->skb); in gbe_rxtstamp()
2602 struct cpts *cpts = gbe_dev->cpts; in gbe_hwtstamp_get() local
2605 if (!cpts) in gbe_hwtstamp_get()
2648 struct cpts *cpts = gbe_dev->cpts; in gbe_hwtstamp_set() local
[all …]
H A Dcpsw_new.c42 #include "cpts.h"
375 cpts_rx_timestamp(cpsw->cpts, skb); in cpsw_rx_handler()
813 cpts_unregister(cpsw->cpts); in cpsw_ndo_stop()
871 if (cpsw->cpts) { in cpsw_ndo_open()
872 if (cpts_register(cpsw->cpts)) in cpsw_ndo_open()
873 dev_err(priv->dev, "error registering cpts device\n"); in cpsw_ndo_open()
921 struct cpts *cpts = cpsw->cpts; in cpsw_ndo_start_xmit() local
933 priv->tx_ts_enabled && cpts_can_timestamp(cpts, skb)) in cpsw_ndo_start_xmit()
1993 if (!cpsw->cpts) in cpsw_probe()
2003 /* Enable misc CPTS evnt_pend IRQ */ in cpsw_probe()
[all …]
H A Dam65-cpsw-nuss.c40 #include "am65-cpts.h"
912 am65_cpts_tx_timestamp(tx_chn->common->cpts, skb); in am65_cpsw_nuss_tx_compl_packet()
1093 am65_cpts_prep_tx_timestamp(common->cpts, skb); in am65_cpsw_nuss_ndo_slave_xmit()
1348 am65_cpts_rx_enable(common->cpts, port->rx_ts_enabled); in am65_cpsw_nuss_hwtstamp_set()
1971 struct am65_cpts *cpts; in am65_cpsw_init_cpts() local
1977 node = of_get_child_by_name(dev->of_node, "cpts"); in am65_cpsw_init_cpts()
1979 dev_err(dev, "%s cpts not found\n", __func__); in am65_cpsw_init_cpts()
1984 cpts = am65_cpts_create(dev, reg_base, node); in am65_cpsw_init_cpts()
1985 if (IS_ERR(cpts)) { in am65_cpsw_init_cpts()
1986 int ret = PTR_ERR(cpts); in am65_cpsw_init_cpts()
[all …]
/openbmc/linux/Documentation/devicetree/bindings/net/
H A Dti,k3-am654-cpts.yaml4 $id: http://devicetree.org/schemas/net/ti,k3-am654-cpts.yaml#
7 title: The TI AM654x/J721E Common Platform Time Sync (CPTS) module
14 The TI AM654x/J721E CPTS module is used to facilitate host control of time
16 Main features of CPTS module are
32 TI AM654x/J721E SoCs has several similar CPTS modules integrated into the
34 - Main CPTS
35 - MCU CPSW CPTS with IEEE 1588-2008 support
36 - PCIe subsystem CPTS for PTM support
38 Depending on CPTS module integration and when CPTS is integral part of
40 be omitted - parent module is fully responsible for CPTS enabling and
[all …]
H A Dkeystone-netcp.txt107 - cpts: sub-node time synchronization (CPTS) submodule configuration
108 -- clocks: CPTS reference clock. Should point on cpts-refclk-mux clock.
109 -- clock-names: should be "cpts"
110 -- cpts-refclk-mux: multiplexer clock definition sub-node for CPTS reference (RFTCLK) clock
112 --- clocks: list of CPTS reference (RFTCLK) clock's parents as defined in Data manual
114 --- assigned-clocks: should point on cpts-refclk-mux clock
120 Mult and shift will be calculated basing on CPTS
188 cpts {
190 clock-names = "cpts";
192 cpts_refclk_mux: cpts-refclk-mux {
[all …]
H A Dti,k3-am654-cpsw-nuss.yaml40 new version of Common Platform Time Sync (CPTS)
176 "^cpts@[0-9a-f]+":
178 $ref: ti,k3-am654-cpts.yaml#
180 CPSW Common Platform Time Sync (CPTS) module.
307 cpts@3d000 {
308 compatible = "ti,am65-cpts";
311 clock-names = "cpts";
313 interrupt-names = "cpts";
314 ti,cpts-ext-ts-inputs = <4>;
315 ti,cpts-periodic-outputs = <2>;
H A Dti,cpsw-switch.yaml121 cpts:
125 The Common Platform Time Sync (CPTS) module
130 description: CPTS reference clock
134 - const: cpts
145 Mult and shift will be calculated basing on CPTS rftclk frequency if
238 cpts {
240 clock-names = "cpts";
/openbmc/linux/arch/arm/boot/dts/ti/keystone/
H A Dkeystone-k2g-netcp.dtsi101 clock-names = "ethss_clk", "cpts";
122 cpts-rftclk-sel = <0>;
123 cpts-ext-ts-inputs = <8>;
H A Dkeystone-k2l-netcp.dtsi158 cpts {
160 clock-names = "cpts";
162 cpts_refclk_mux: cpts-refclk-mux {
H A Dkeystone-k2e-netcp.dtsi159 cpts {
161 clock-names = "cpts";
163 cpts_refclk_mux: cpts-refclk-mux {
H A Dkeystone-k2hk-netcp.dtsi178 cpts {
180 clock-names = "cpts";
182 cpts_refclk_mux: cpts-refclk-mux {
/openbmc/linux/arch/arm64/boot/dts/ti/
H A Dk3-am65-mcu.dtsi370 cpts@3d000 {
371 compatible = "ti,am65-cpts";
374 clock-names = "cpts";
376 interrupt-names = "cpts";
377 ti,cpts-ext-ts-inputs = <4>;
378 ti,cpts-periodic-outputs = <2>;
H A Dk3-j7200-main.dtsi302 cpts@310d0000 {
303 compatible = "ti,j721e-cpts";
305 reg-names = "cpts";
307 clock-names = "cpts";
309 interrupt-names = "cpts";
310 ti,cpts-periodic-outputs = <6>;
311 ti,cpts-ext-ts-inputs = <8>;
384 cpts@3d000 {
385 compatible = "ti,j721e-cpts";
388 clock-names = "cpts";
[all …]
H A Dk3-j721s2-mcu-wakeup.dtsi553 cpts@3d000 {
554 compatible = "ti,am65-cpts";
557 clock-names = "cpts";
561 interrupt-names = "cpts";
562 ti,cpts-ext-ts-inputs = <4>;
563 ti,cpts-periodic-outputs = <2>;
H A Dk3-j7200-mcu-wakeup.dtsi429 cpts@3d000 {
430 compatible = "ti,am65-cpts";
433 clock-names = "cpts";
435 interrupt-names = "cpts";
436 ti,cpts-ext-ts-inputs = <4>;
437 ti,cpts-periodic-outputs = <2>;
H A Dk3-am64-main.dtsi702 cpts@3d000 {
703 compatible = "ti,j721e-cpts";
706 clock-names = "cpts";
708 interrupt-names = "cpts";
709 ti,cpts-ext-ts-inputs = <4>;
710 ti,cpts-periodic-outputs = <2>;
714 main_cpts0: cpts@39000000 {
715 compatible = "ti,j721e-cpts";
717 reg-names = "cpts";
720 clock-names = "cpts";
[all …]
H A Dk3-j784s4-mcu-wakeup.dtsi561 cpts@3d000 {
562 compatible = "ti,am65-cpts";
565 clock-names = "cpts";
569 interrupt-names = "cpts";
570 ti,cpts-ext-ts-inputs = <4>;
571 ti,cpts-periodic-outputs = <2>;

123