Home
last modified time | relevance | path

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

12

/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"
206 static void am65_cpts_settime(struct am65_cpts *cpts, u64 start_tstamp) in am65_cpts_settime() argument
211 am65_cpts_write32(cpts, val, ts_load_val_hi); in am65_cpts_settime()
213 am65_cpts_write32(cpts, val, ts_load_val_lo); in am65_cpts_settime()
215 am65_cpts_write32(cpts, AM65_CPTS_TS_LOAD_EN, ts_load_en); in am65_cpts_settime()
218 static void am65_cpts_set_add_val(struct am65_cpts *cpts) in am65_cpts_set_add_val() argument
221 cpts->ts_add_val = (NSEC_PER_SEC / cpts->refclk_freq - 1) & 0x7; in am65_cpts_set_add_val()
223 am65_cpts_write32(cpts, cpts->ts_add_val, ts_add_val); in am65_cpts_set_add_val()
226 static void am65_cpts_disable(struct am65_cpts *cpts) in am65_cpts_disable() argument
228 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_rx_timestamp(struct am65_cpts *cpts, struct sk_buff *skb);
26 void am65_cpts_tx_timestamp(struct am65_cpts *cpts, struct sk_buff *skb);
27 void am65_cpts_prep_tx_timestamp(struct am65_cpts *cpts, struct sk_buff *skb);
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"
126 tristate "TI K3 AM65x CPTS"
130 Say y here to support the TI K3 AM65x CPTS with 1588 features such as
131 PTP hardware clock for each CPTS device and network packets
133 Depending on integration CPTS blocks enable compliance with
146 The EST scheduler runs on CPTS and the TAS/EST schedule is
H A Dam65-cpsw-qos.c19 #include "am65-cpts.h"
769 struct am65_cpts *cpts = common->cpts; in am65_cpsw_timer_set() local
775 return am65_cpts_estf_enable(cpts, port->port_id - 1, &cfg); in am65_cpsw_timer_set()
781 struct am65_cpts *cpts = port->common->cpts; in am65_cpsw_timer_stop() local
783 am65_cpts_estf_disable(cpts, port->port_id - 1); in am65_cpsw_timer_stop()
791 struct am65_cpts *cpts = port->common->cpts; in am65_cpsw_timer_act() local
817 cur_time = am65_cpts_ns_gettime(cpts); in am65_cpsw_timer_act()
862 struct am65_cpts *cpts = common->cpts; in am65_cpsw_taprio_replace() local
925 cur_time = am65_cpts_ns_gettime(cpts); in am65_cpsw_taprio_replace()
H A Dcpsw.c45 #include "cpts.h"
453 cpts_rx_timestamp(cpsw->cpts, skb); in cpsw_rx_handler()
858 if (cpsw->cpts) { in cpsw_ndo_open()
859 if (cpts_register(cpsw->cpts)) in cpsw_ndo_open()
860 dev_err(priv->dev, "error registering cpts device\n"); in cpsw_ndo_open()
909 cpts_unregister(cpsw->cpts); in cpsw_ndo_stop()
930 struct cpts *cpts = cpsw->cpts; in cpsw_ndo_start_xmit() local
942 priv->tx_ts_enabled && cpts_can_timestamp(cpts, skb)) in cpsw_ndo_start_xmit()
1744 if (!cpsw->cpts) in cpsw_probe()
1754 /* Enable misc CPTS evnt_pend IRQ */ in cpsw_probe()
[all …]
H A Dcpsw_new.c42 #include "cpts.h"
397 cpts_rx_timestamp(cpsw->cpts, skb); in cpsw_rx_handler()
837 cpts_unregister(cpsw->cpts); in cpsw_ndo_stop()
895 if (cpsw->cpts) { in cpsw_ndo_open()
896 if (cpts_register(cpsw->cpts)) in cpsw_ndo_open()
897 dev_err(priv->dev, "error registering cpts device\n"); in cpsw_ndo_open()
945 struct cpts *cpts = cpsw->cpts; in cpsw_ndo_start_xmit() local
957 priv->tx_ts_enabled && cpts_can_timestamp(cpts, skb)) in cpsw_ndo_start_xmit()
2029 if (!cpsw->cpts) in cpsw_probe()
2039 /* Enable misc CPTS evnt_pend IRQ */ in cpsw_probe()
[all …]
H A Dam65-cpsw-nuss.h180 struct am65_cpts *cpts; member
H A Dcpsw_priv.h355 struct cpts *cpts; member
/linux/Documentation/devicetree/bindings/net/
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)
178 "^cpts@[0-9a-f]+":
180 $ref: ti,k3-am654-cpts.yaml#
182 CPSW Common Platform Time Sync (CPTS) module.
308 cpts@3d000 {
309 compatible = "ti,am65-cpts";
312 clock-names = "cpts";
314 interrupt-names = "cpts";
315 ti,cpts-ext-ts-inputs = <4>;
316 ti,cpts-periodic-outputs = <2>;
H A Dcpsw.txt41 Mult and shift will be calculated basing on CPTS
/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 {
H A Dkeystone-k2e-clocks.dtsi79 * (as cpts, for example) by configuring corresponding clock muxes.
H A Dkeystone-clocks.dtsi416 * (as cpts, for example) by configuring corresponding clock muxes.
/linux/arch/arm64/boot/dts/ti/
H A Dk3-am65-mcu.dtsi383 cpts@3d000 {
384 compatible = "ti,am65-cpts";
387 clock-names = "cpts";
389 interrupt-names = "cpts";
390 ti,cpts-ext-ts-inputs = <4>;
391 ti,cpts-periodic-outputs = <2>;
H A Dk3-j721e-mcu-wakeup.dtsi579 cpts@3d000 {
580 compatible = "ti,am65-cpts";
583 clock-names = "cpts";
585 interrupt-names = "cpts";
586 ti,cpts-ext-ts-inputs = <4>;
587 ti,cpts-periodic-outputs = <2>;
H A Dk3-am62a-main.dtsi792 cpts@3d000 {
793 compatible = "ti,j721e-cpts";
796 clock-names = "cpts";
798 interrupt-names = "cpts";
799 ti,cpts-ext-ts-inputs = <4>;
800 ti,cpts-periodic-outputs = <2>;
H A Dk3-am62-main.dtsi776 cpts@3d000 {
777 compatible = "ti,j721e-cpts";
780 clock-names = "cpts";
782 interrupt-names = "cpts";
783 ti,cpts-ext-ts-inputs = <4>;
784 ti,cpts-periodic-outputs = <2>;
/linux/arch/arm/boot/dts/ti/omap/
H A Dam33xx-l4.dtsi723 clock-names = "fck", "cpts";
814 cpts {
816 clock-names = "cpts";
H A Dam33xx-clocks.dtsi532 cpsw_cpts_rft_clk: clock-cpsw-cpts-rft@520 {

12