Home
last modified time | relevance | path

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

123

/kernel/linux/linux-5.10/drivers/net/ethernet/ti/
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 …]
Dam65-cpts.c23 #include "am65-cpts.h"
189 static void am65_cpts_settime(struct am65_cpts *cpts, u64 start_tstamp) in am65_cpts_settime() argument
194 am65_cpts_write32(cpts, val, ts_load_val_hi); in am65_cpts_settime()
196 am65_cpts_write32(cpts, val, ts_load_val_lo); in am65_cpts_settime()
198 am65_cpts_write32(cpts, AM65_CPTS_TS_LOAD_EN, ts_load_en); in am65_cpts_settime()
201 static void am65_cpts_set_add_val(struct am65_cpts *cpts) in am65_cpts_set_add_val() argument
204 cpts->ts_add_val = (NSEC_PER_SEC / cpts->refclk_freq - 1) & 0x7; in am65_cpts_set_add_val()
206 am65_cpts_write32(cpts, cpts->ts_add_val, ts_add_val); in am65_cpts_set_add_val()
209 static void am65_cpts_disable(struct am65_cpts *cpts) in am65_cpts_disable() argument
211 am65_cpts_write32(cpts, 0, control); in am65_cpts_disable()
[all …]
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 …]
Dam65-cpts.h2 /* TI K3 AM65 CPTS driver interface
23 int am65_cpts_phc_index(struct am65_cpts *cpts);
24 void am65_cpts_tx_timestamp(struct am65_cpts *cpts, struct sk_buff *skb);
25 void am65_cpts_prep_tx_timestamp(struct am65_cpts *cpts, struct sk_buff *skb);
26 void am65_cpts_rx_enable(struct am65_cpts *cpts, bool en);
27 u64 am65_cpts_ns_gettime(struct am65_cpts *cpts);
28 int am65_cpts_estf_enable(struct am65_cpts *cpts, int idx,
30 void am65_cpts_estf_disable(struct am65_cpts *cpts, int idx);
39 static inline int am65_cpts_phc_index(struct am65_cpts *cpts) in am65_cpts_phc_index() argument
44 static inline void am65_cpts_tx_timestamp(struct am65_cpts *cpts, in am65_cpts_tx_timestamp() argument
[all …]
DKconfig82 tristate "TI Common Platform Time Sync (CPTS) Support"
109 tristate "TI K3 AM65x CPTS"
113 Say y here to support the TI K3 AM65x CPTS with 1588 features such as
114 PTP hardware clock for each CPTS device and network packets
116 Depending on integration CPTS blocks enable compliance with
127 defined in IEEE 802.1Q 2018. The EST scheduler runs on CPTS and the
Dam65-cpsw-qos.c14 #include "am65-cpts.h"
367 struct am65_cpts *cpts = common->cpts; in am65_cpsw_timer_set() local
373 return am65_cpts_estf_enable(cpts, port->port_id - 1, &cfg); in am65_cpsw_timer_set()
379 struct am65_cpts *cpts = port->common->cpts; in am65_cpsw_timer_stop() local
381 am65_cpts_estf_disable(cpts, port->port_id - 1); in am65_cpsw_timer_stop()
389 struct am65_cpts *cpts = port->common->cpts; in am65_cpsw_timer_act() local
415 cur_time = am65_cpts_ns_gettime(cpts); in am65_cpsw_timer_act()
449 struct am65_cpts *cpts = common->cpts; in am65_cpsw_configure_taprio() local
474 est_new->taprio.base_time = am65_cpts_ns_gettime(cpts); in am65_cpsw_configure_taprio()
DMakefile16 obj-$(CONFIG_TI_CPTS) += cpts.o
29 obj-$(CONFIG_TI_K3_AM65_CPTS) += am65-cpts.o
Dcpsw.c45 #include "cpts.h"
438 cpts_rx_timestamp(cpsw->cpts, skb); in cpsw_rx_handler()
841 if (cpsw->cpts) { in cpsw_ndo_open()
842 if (cpts_register(cpsw->cpts)) in cpsw_ndo_open()
843 dev_err(priv->dev, "error registering cpts device\n"); in cpsw_ndo_open()
890 cpts_unregister(cpsw->cpts); in cpsw_ndo_stop()
911 struct cpts *cpts = cpsw->cpts; in cpsw_ndo_start_xmit() local
923 priv->tx_ts_enabled && cpts_can_timestamp(cpts, skb)) in cpsw_ndo_start_xmit()
1711 if (!cpsw->cpts) in cpsw_probe()
1721 /* Enable misc CPTS evnt_pend IRQ */ in cpsw_probe()
[all …]
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 …]
/kernel/linux/linux-4.19/drivers/net/ethernet/ti/
Dcpts.c32 #include "cpts.h"
56 static int cpts_fifo_pop(struct cpts *cpts, u32 *high, u32 *low) in cpts_fifo_pop() argument
58 u32 r = cpts_read32(cpts, intstat_raw); in cpts_fifo_pop()
61 *high = cpts_read32(cpts, event_high); in cpts_fifo_pop()
62 *low = cpts_read32(cpts, event_low); in cpts_fifo_pop()
63 cpts_write32(cpts, EVENT_POP, event_pop); in cpts_fifo_pop()
69 static int cpts_purge_events(struct cpts *cpts) in cpts_purge_events() argument
75 list_for_each_safe(this, next, &cpts->events) { in cpts_purge_events()
79 list_add(&event->list, &cpts->pool); in cpts_purge_events()
85 pr_debug("cpts: event pool cleaned up %d\n", removed); in cpts_purge_events()
[all …]
Dcpts.h111 struct cpts { struct
131 void cpts_rx_timestamp(struct cpts *cpts, struct sk_buff *skb); argument
132 void cpts_tx_timestamp(struct cpts *cpts, struct sk_buff *skb);
133 int cpts_register(struct cpts *cpts);
134 void cpts_unregister(struct cpts *cpts);
135 struct cpts *cpts_create(struct device *dev, void __iomem *regs,
137 void cpts_release(struct cpts *cpts);
139 static inline void cpts_rx_enable(struct cpts *cpts, int enable) in cpts_rx_enable() argument
141 cpts->rx_enable = enable; in cpts_rx_enable()
144 static inline bool cpts_is_rx_enabled(struct cpts *cpts) in cpts_is_rx_enabled() argument
[all …]
Dnetcp_ethss.c34 #include "cpts.h"
765 struct cpts *cpts; member
2017 if (!gbe_intf || !gbe_intf->gbe_dev->cpts) in keystone_get_ts_info()
2027 info->phc_index = gbe_intf->gbe_dev->cpts->phc_index; in keystone_get_ts_info()
2549 cpts_tx_timestamp(gbe_dev->cpts, skb); in gbe_txtstamp()
2557 return cpts_can_timestamp(gbe_intf->gbe_dev->cpts, skb); in gbe_need_txtstamp()
2567 !cpts_is_tx_enabled(gbe_dev->cpts)) in gbe_txtstamp_mark_pkt()
2601 cpts_rx_timestamp(gbe_dev->cpts, p_info->skb); in gbe_rxtstamp()
2610 struct cpts *cpts = gbe_dev->cpts; in gbe_hwtstamp_get() local
2613 if (!cpts) in gbe_hwtstamp_get()
[all …]
Dcpsw.c46 #include "cpts.h"
453 struct cpts *cpts; member
735 cpts_tx_timestamp(cpsw->cpts, skb); in cpsw_tx_handler()
826 cpts_rx_timestamp(cpsw->cpts, skb); in cpsw_rx_handler()
1925 if (cpts_register(cpsw->cpts)) in cpsw_ndo_open()
1926 dev_err(priv->dev, "error registering cpts device\n"); in cpsw_ndo_open()
1966 cpts_unregister(cpsw->cpts); in cpsw_ndo_stop()
1986 struct cpts *cpts = cpsw->cpts; in cpsw_ndo_start_xmit() local
1998 cpts_is_tx_enabled(cpts) && cpts_can_timestamp(cpts, skb)) in cpsw_ndo_start_xmit()
2047 if (!cpts_is_tx_enabled(cpsw->cpts) && in cpsw_hwtstamp_v1()
[all …]
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/net/
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 Device Tree Bindings
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 …]
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 …]
Dti,k3-am654-cpsw-nuss.yaml19 new version of Common Platform Time Sync (CPTS), updated Address Lookup
146 "^cpts@[0-9a-f]+":
148 $ref: "ti,k3-am654-cpts.yaml#"
150 CPSW Common Platform Time Sync (CPTS) module.
238 cpts@3d000 {
239 compatible = "ti,am65-cpts";
242 clock-names = "cpts";
244 interrupt-names = "cpts";
245 ti,cpts-ext-ts-inputs = <4>;
246 ti,cpts-periodic-outputs = <2>;
Dti,cpsw-switch.yaml119 cpts:
122 The Common Platform Time Sync (CPTS) module
127 description: CPTS reference clock
131 - const: cpts
142 Mult and shift will be calculated basing on CPTS rftclk frequency if
235 cpts {
237 clock-names = "cpts";
/kernel/linux/linux-5.10/arch/arm64/boot/dts/ti/
Dk3-j7200-mcu-wakeup.dtsi202 cpts@3d000 {
203 compatible = "ti,am65-cpts";
206 clock-names = "cpts";
208 interrupt-names = "cpts";
209 ti,cpts-ext-ts-inputs = <4>;
210 ti,cpts-periodic-outputs = <2>;
Dk3-am65-mcu.dtsi251 cpts@3d000 {
252 compatible = "ti,am65-cpts";
255 clock-names = "cpts";
257 interrupt-names = "cpts";
258 ti,cpts-ext-ts-inputs = <4>;
259 ti,cpts-periodic-outputs = <2>;
Dk3-j721e-mcu-wakeup.dtsi345 cpts@3d000 {
346 compatible = "ti,am65-cpts";
349 clock-names = "cpts";
351 interrupt-names = "cpts";
352 ti,cpts-ext-ts-inputs = <4>;
353 ti,cpts-periodic-outputs = <2>;
Dk3-j7200-main.dtsi156 cpts@310d0000 {
157 compatible = "ti,j721e-cpts";
159 reg-names = "cpts";
161 clock-names = "cpts";
163 interrupt-names = "cpts";
164 ti,cpts-periodic-outputs = <6>;
165 ti,cpts-ext-ts-inputs = <8>;
/kernel/linux/linux-4.19/arch/arm/boot/dts/
Dkeystone-k2g-netcp.dtsi101 clock-names = "ethss_clk", "cpts";
122 cpts-rftclk-sel = <0>;
123 cpts-ext-ts-inputs = <8>;
/kernel/linux/linux-5.10/arch/arm/boot/dts/
Dkeystone-k2g-netcp.dtsi101 clock-names = "ethss_clk", "cpts";
122 cpts-rftclk-sel = <0>;
123 cpts-ext-ts-inputs = <8>;
Dkeystone-k2l-netcp.dtsi158 cpts {
160 clock-names = "cpts";
162 cpts_refclk_mux: cpts-refclk-mux {
Dkeystone-k2e-netcp.dtsi159 cpts {
161 clock-names = "cpts";
163 cpts_refclk_mux: cpts-refclk-mux {

123