xref: /dpdk/drivers/net/atlantic/hw_atl/hw_atl_b0.h (revision 921eb6b8ce31f2f3fde943f1547856fe0aaee538)
17906661eSIgor Russkikh /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0) */
27906661eSIgor Russkikh /* Copyright (C) 2014-2017 aQuantia Corporation. */
37906661eSIgor Russkikh 
47906661eSIgor Russkikh /* File hw_atl_b0.h: Declaration of abstract interface for Atlantic hardware
57906661eSIgor Russkikh  * specific functions.
67906661eSIgor Russkikh  */
77906661eSIgor Russkikh 
87906661eSIgor Russkikh #ifndef HW_ATL_B0_H
97906661eSIgor Russkikh #define HW_ATL_B0_H
107906661eSIgor Russkikh 
117906661eSIgor Russkikh int hw_atl_b0_hw_reset(struct aq_hw_s *self);
127906661eSIgor Russkikh int hw_atl_b0_hw_init(struct aq_hw_s *self, u8 *mac_addr);
137906661eSIgor Russkikh 
14*921eb6b8SPavel Belous int hw_atl_b0_set_fc(struct aq_hw_s *self, u32 fc, u32 tc);
15*921eb6b8SPavel Belous 
167906661eSIgor Russkikh int hw_atl_b0_hw_ring_tx_init(struct aq_hw_s *self, uint64_t base_addr,
177906661eSIgor Russkikh 		int index, int size, int cpu, int vec);
187906661eSIgor Russkikh int hw_atl_b0_hw_ring_rx_init(struct aq_hw_s *self, uint64_t base_addr,
197906661eSIgor Russkikh 		int index, int size, int buff_size, int cpu, int vec);
207906661eSIgor Russkikh 
217906661eSIgor Russkikh int hw_atl_b0_hw_start(struct aq_hw_s *self);
227906661eSIgor Russkikh 
237906661eSIgor Russkikh int hw_atl_b0_hw_ring_rx_start(struct aq_hw_s *self, int index);
247906661eSIgor Russkikh int hw_atl_b0_hw_ring_tx_start(struct aq_hw_s *self, int index);
257906661eSIgor Russkikh 
267906661eSIgor Russkikh 
277906661eSIgor Russkikh int hw_atl_b0_hw_ring_tx_stop(struct aq_hw_s *self, int index);
287906661eSIgor Russkikh int hw_atl_b0_hw_ring_rx_stop(struct aq_hw_s *self, int index);
297906661eSIgor Russkikh 
307906661eSIgor Russkikh 
317906661eSIgor Russkikh int hw_atl_b0_hw_tx_ring_tail_update(struct aq_hw_s *self, int tail, int index);
327906661eSIgor Russkikh 
337906661eSIgor Russkikh int hw_atl_b0_hw_rss_hash_set(struct aq_hw_s *self,
347906661eSIgor Russkikh 				     struct aq_rss_parameters *rss_params);
357906661eSIgor Russkikh int hw_atl_b0_hw_rss_set(struct aq_hw_s *self,
367906661eSIgor Russkikh 				struct aq_rss_parameters *rss_params);
377906661eSIgor Russkikh 
387906661eSIgor Russkikh int hw_atl_b0_hw_irq_enable(struct aq_hw_s *self, u64 mask);
397906661eSIgor Russkikh int hw_atl_b0_hw_irq_disable(struct aq_hw_s *self, u64 mask);
407906661eSIgor Russkikh int hw_atl_b0_hw_irq_read(struct aq_hw_s *self, u64 *mask);
417906661eSIgor Russkikh 
427906661eSIgor Russkikh #endif /* HW_ATL_B0_H */
43