| /OK3568_Linux_fs/kernel/drivers/net/ethernet/ti/ |
| H A D | cpts.c | 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() 83 static void cpts_purge_txq(struct cpts *cpts) in cpts_purge_txq() argument [all …]
|
| H A D | am65-cpts.c | 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() 212 am65_cpts_write32(cpts, 0, int_enable); in am65_cpts_disable() [all …]
|
| H A D | cpts.h | 100 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 D | am65-cpts.h | 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 49 static inline void am65_cpts_prep_tx_timestamp(struct am65_cpts *cpts, in am65_cpts_prep_tx_timestamp() argument [all …]
|
| H A D | am65-cpsw-qos.c | 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()
|
| H A D | Makefile | 16 obj-$(CONFIG_TI_CPTS) += cpts.o 29 obj-$(CONFIG_TI_K3_AM65_CPTS) += am65-cpts.o
|
| H A D | cpsw.c | 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() 892 cpts_unregister(cpsw->cpts); in cpsw_ndo_stop() 913 struct cpts *cpts = cpsw->cpts; in cpsw_ndo_start_xmit() local 925 priv->tx_ts_enabled && cpts_can_timestamp(cpts, skb)) in cpsw_ndo_start_xmit() 1713 if (!cpsw->cpts) in cpsw_probe() 1724 cpts_set_irqpoll(cpsw->cpts, false); in cpsw_probe() 1738 cpts_release(cpsw->cpts); in cpsw_probe() 1763 cpts_release(cpsw->cpts); in cpsw_remove()
|
| H A D | netcp_ethss.c | 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 2651 if (!cpts) in gbe_hwtstamp_set() [all …]
|
| H A D | cpsw_new.c | 381 cpts_rx_timestamp(cpsw->cpts, skb); in cpsw_rx_handler() 816 cpts_unregister(cpsw->cpts); in cpsw_ndo_stop() 876 if (cpsw->cpts) { in cpsw_ndo_open() 877 if (cpts_register(cpsw->cpts)) in cpsw_ndo_open() 926 struct cpts *cpts = cpsw->cpts; in cpsw_ndo_start_xmit() local 938 priv->tx_ts_enabled && cpts_can_timestamp(cpts, skb)) in cpsw_ndo_start_xmit() 2007 if (!cpsw->cpts) in cpsw_probe() 2018 cpts_set_irqpoll(cpsw->cpts, false); in cpsw_probe() 2048 cpts_release(cpsw->cpts); in cpsw_probe() 2072 cpts_release(cpsw->cpts); in cpsw_remove()
|
| H A D | am65-cpsw-nuss.c | 952 am65_cpts_tx_timestamp(common->cpts, skb); in am65_cpsw_nuss_tx_compl_packets() 1047 am65_cpts_prep_tx_timestamp(common->cpts, skb); in am65_cpsw_nuss_ndo_slave_xmit() 1294 am65_cpts_rx_enable(common->cpts, port->rx_ts_enabled); in am65_cpsw_nuss_hwtstamp_set() 1702 struct am65_cpts *cpts; in am65_cpsw_init_cpts() local 1715 cpts = am65_cpts_create(dev, reg_base, node); in am65_cpsw_init_cpts() 1716 if (IS_ERR(cpts)) { in am65_cpsw_init_cpts() 1717 int ret = PTR_ERR(cpts); in am65_cpsw_init_cpts() 1728 common->cpts = cpts; in am65_cpsw_init_cpts()
|
| H A D | am65-cpsw-nuss.h | 111 struct am65_cpts *cpts; member
|
| H A D | cpsw_priv.c | 70 cpts_tx_timestamp(ndev_to_cpsw(ndev)->cpts, skb); in cpsw_tx_handler() 123 cpts_misc_interrupt(cpsw->cpts); in cpsw_misc_interrupt() 539 cpsw->cpts = cpts_create(cpsw->dev, cpts_regs, cpts_node, in cpsw_init_common() 541 if (IS_ERR(cpsw->cpts)) { in cpsw_init_common() 542 ret = PTR_ERR(cpsw->cpts); in cpsw_init_common()
|
| H A D | cpsw_priv.h | 353 struct cpts *cpts; member
|
| /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/ti/ |
| H A D | k3-j7200-mcu-wakeup.dtsi | 202 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>;
|
| H A D | k3-am65-mcu.dtsi | 251 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>;
|
| H A D | k3-j721e-mcu-wakeup.dtsi | 345 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>;
|
| H A D | k3-j7200-main.dtsi | 159 cpts@310d0000 { 160 compatible = "ti,j721e-cpts"; 162 reg-names = "cpts"; 164 clock-names = "cpts"; 166 interrupt-names = "cpts"; 167 ti,cpts-periodic-outputs = <6>; 168 ti,cpts-ext-ts-inputs = <8>;
|
| H A D | k3-am65-main.dtsi | 644 cpts@310d0000 { 645 compatible = "ti,am65-cpts"; 647 reg-names = "cpts"; 649 clock-names = "cpts"; 651 interrupt-names = "cpts"; 652 ti,cpts-periodic-outputs = <6>; 653 ti,cpts-ext-ts-inputs = <8>;
|
| H A D | k3-j721e-main.dtsi | 344 cpts@310d0000 { 345 compatible = "ti,j721e-cpts"; 347 reg-names = "cpts"; 349 clock-names = "cpts"; 351 interrupt-names = "cpts"; 352 ti,cpts-periodic-outputs = <6>; 353 ti,cpts-ext-ts-inputs = <8>;
|
| /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/net/ |
| H A D | keystone-netcp.txt | 107 - 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 114 --- assigned-clocks: should point on cpts-refclk-mux clock 188 cpts { 190 clock-names = "cpts"; 192 cpts_refclk_mux: cpts-refclk-mux {
|
| /OK3568_Linux_fs/kernel/arch/arm/boot/dts/ |
| H A D | keystone-k2g-netcp.dtsi | 101 clock-names = "ethss_clk", "cpts"; 122 cpts-rftclk-sel = <0>; 123 cpts-ext-ts-inputs = <8>;
|
| H A D | keystone-k2l-netcp.dtsi | 158 cpts { 160 clock-names = "cpts"; 162 cpts_refclk_mux: cpts-refclk-mux {
|
| H A D | keystone-k2e-netcp.dtsi | 159 cpts { 161 clock-names = "cpts"; 163 cpts_refclk_mux: cpts-refclk-mux {
|
| H A D | keystone-k2hk-netcp.dtsi | 178 cpts { 180 clock-names = "cpts"; 182 cpts_refclk_mux: cpts-refclk-mux {
|
| H A D | keystone-k2e-clocks.dtsi | 79 * (as cpts, for example) by configuring corresponding clock muxes.
|