| /linux/drivers/net/ethernet/ti/ |
| H A D | cpts.c | 21 #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 D | am65-cpts.c | 23 #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 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 | 2 /* 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 D | am65-cpsw-qos.c | 19 #include "am65-cpts.h" 746 struct am65_cpts *cpts = common->cpts; in am65_cpsw_timer_set() local 752 return am65_cpts_estf_enable(cpts, port->port_id - 1, &cfg); in am65_cpsw_timer_set() 758 struct am65_cpts *cpts = port->common->cpts; in am65_cpsw_timer_stop() local 760 am65_cpts_estf_disable(cpts, port->port_id - 1); in am65_cpsw_timer_stop() 768 struct am65_cpts *cpts = port->common->cpts; in am65_cpsw_timer_act() local 794 cur_time = am65_cpts_ns_gettime(cpts); in am65_cpsw_timer_act() 839 struct am65_cpts *cpts = common->cpts; in am65_cpsw_taprio_replace() local 902 cur_time = am65_cpts_ns_gettime(cpts); in am65_cpsw_taprio_replace()
|
| H A D | netcp_ethss.c | 26 #include "cpts.h" 754 struct cpts *cpts; member 2008 if (!gbe_intf || !gbe_intf->gbe_dev->cpts) in keystone_get_ts_info() 2016 info->phc_index = gbe_intf->gbe_dev->cpts->phc_index; in keystone_get_ts_info() 2534 cpts_tx_timestamp(gbe_dev->cpts, skb); in gbe_txtstamp() 2542 return cpts_can_timestamp(gbe_intf->gbe_dev->cpts, skb); in gbe_need_txtstamp() 2587 cpts_rx_timestamp(gbe_dev->cpts, p_info->skb); in gbe_rxtstamp() 2597 struct cpts *cpts = gbe_dev->cpts; in gbe_hwtstamp_get() local 2600 if (!cpts) in gbe_hwtstamp_get() 2643 struct cpts *cpts = gbe_dev->cpts; in gbe_hwtstamp_set() local [all …]
|
| H A D | am65-cpsw-nuss.c | 43 #include "am65-cpts.h" 1355 am65_cpts_rx_timestamp(common->cpts, skb); in am65_cpsw_nuss_rx_packets() 1498 am65_cpts_tx_timestamp(tx_chn->common->cpts, skb); in am65_cpsw_nuss_tx_compl_packets() 1610 am65_cpts_prep_tx_timestamp(common->cpts, skb); in am65_cpsw_nuss_ndo_slave_xmit() 2562 struct am65_cpts *cpts; in am65_cpsw_init_cpts() local 2568 node = of_get_child_by_name(dev->of_node, "cpts"); in am65_cpsw_init_cpts() 2570 dev_err(dev, "%s cpts not found\n", __func__); in am65_cpsw_init_cpts() 2575 cpts = am65_cpts_create(dev, reg_base, node); in am65_cpsw_init_cpts() 2576 if (IS_ERR(cpts)) { in am65_cpsw_init_cpts() 2577 int ret = PTR_ERR(cpts); in am65_cpsw_init_cpts() [all …]
|
| H A D | am65-cpsw-nuss.h | 180 struct am65_cpts *cpts; member
|
| /linux/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 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 D | ti,k3-am654-cpsw-nuss.yaml | 40 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 D | ti,cpsw-switch.yaml | 121 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";
|
| H A D | cpsw.txt | 41 Mult and shift will be calculated basing on CPTS
|
| /linux/arch/arm/boot/dts/ti/keystone/ |
| 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.
|
| H A D | keystone-clocks.dtsi | 416 * (as cpts, for example) by configuring corresponding clock muxes.
|
| /linux/arch/arm64/boot/dts/ti/ |
| H A D | k3-am65-main.dtsi | 826 cpts@310d0000 { 827 compatible = "ti,am65-cpts"; 829 reg-names = "cpts"; 831 clock-names = "cpts"; 833 interrupt-names = "cpts"; 834 ti,cpts-periodic-outputs = <6>; 835 ti,cpts-ext-ts-inputs = <8>;
|
| /linux/arch/arm/boot/dts/ti/omap/ |
| H A D | am33xx-clocks.dtsi | 532 cpsw_cpts_rft_clk: clock-cpsw-cpts-rft@520 {
|
| H A D | am43xx-clocks.dtsi | 564 cpsw_cpts_rft_clk: clock-cpsw-cpts-rft@4238 {
|