Lines Matching full:interface
44 void __cvmx_interrupt_gmxx_enable(int interface);
51 * @interface: Interface to init
52 * @index: Index of prot on the interface
56 static int __cvmx_helper_sgmii_hardware_init_one_time(int interface, int index) in __cvmx_helper_sgmii_hardware_init_one_time() argument
64 gmxx_prtx_cfg.u64 = cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface)); in __cvmx_helper_sgmii_hardware_init_one_time()
66 cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface), gmxx_prtx_cfg.u64); in __cvmx_helper_sgmii_hardware_init_one_time()
74 cvmx_read_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface)); in __cvmx_helper_sgmii_hardware_init_one_time()
76 cvmx_read_csr(CVMX_PCSX_LINKX_TIMER_COUNT_REG(index, interface)); in __cvmx_helper_sgmii_hardware_init_one_time()
86 cvmx_write_csr(CVMX_PCSX_LINKX_TIMER_COUNT_REG(index, interface), in __cvmx_helper_sgmii_hardware_init_one_time()
102 cvmx_read_csr(CVMX_PCSX_ANX_ADV_REG(index, interface)); in __cvmx_helper_sgmii_hardware_init_one_time()
107 cvmx_write_csr(CVMX_PCSX_ANX_ADV_REG(index, interface), in __cvmx_helper_sgmii_hardware_init_one_time()
112 cvmx_read_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface)); in __cvmx_helper_sgmii_hardware_init_one_time()
118 (index, interface)); in __cvmx_helper_sgmii_hardware_init_one_time()
123 (index, interface), in __cvmx_helper_sgmii_hardware_init_one_time()
136 * @interface: Interface to init
137 * @index: Index of prot on the interface
141 static int __cvmx_helper_sgmii_hardware_init_link(int interface, int index) in __cvmx_helper_sgmii_hardware_init_link() argument
154 cvmx_read_csr(CVMX_PCSX_MRX_CONTROL_REG(index, interface)); in __cvmx_helper_sgmii_hardware_init_link()
157 cvmx_write_csr(CVMX_PCSX_MRX_CONTROL_REG(index, interface), in __cvmx_helper_sgmii_hardware_init_link()
160 (CVMX_PCSX_MRX_CONTROL_REG(index, interface), in __cvmx_helper_sgmii_hardware_init_link()
164 interface, index); in __cvmx_helper_sgmii_hardware_init_link()
176 cvmx_write_csr(CVMX_PCSX_MRX_CONTROL_REG(index, interface), in __cvmx_helper_sgmii_hardware_init_link()
186 CVMX_WAIT_FOR_FIELD64(CVMX_PCSX_MRX_STATUS_REG(index, interface), in __cvmx_helper_sgmii_hardware_init_link()
189 /* cvmx_dprintf("SGMII%d: Port %d link timeout\n", interface, index); */ in __cvmx_helper_sgmii_hardware_init_link()
199 * @interface: Interface to init
200 * @index: Index of prot on the interface
205 static int __cvmx_helper_sgmii_hardware_init_link_speed(int interface, in __cvmx_helper_sgmii_hardware_init_link_speed() argument
215 gmxx_prtx_cfg.u64 = cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface)); in __cvmx_helper_sgmii_hardware_init_link_speed()
218 cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface), gmxx_prtx_cfg.u64); in __cvmx_helper_sgmii_hardware_init_link_speed()
222 (CVMX_GMXX_PRTX_CFG(index, interface), union cvmx_gmxx_prtx_cfg, in __cvmx_helper_sgmii_hardware_init_link_speed()
224 || CVMX_WAIT_FOR_FIELD64(CVMX_GMXX_PRTX_CFG(index, interface), in __cvmx_helper_sgmii_hardware_init_link_speed()
229 interface, index); in __cvmx_helper_sgmii_hardware_init_link_speed()
234 gmxx_prtx_cfg.u64 = cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface)); in __cvmx_helper_sgmii_hardware_init_link_speed()
241 cvmx_read_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface)); in __cvmx_helper_sgmii_hardware_init_link_speed()
261 cvmx_write_csr(CVMX_GMXX_TXX_SLOT(index, interface), 64); in __cvmx_helper_sgmii_hardware_init_link_speed()
262 cvmx_write_csr(CVMX_GMXX_TXX_BURST(index, interface), 0); in __cvmx_helper_sgmii_hardware_init_link_speed()
269 cvmx_write_csr(CVMX_GMXX_TXX_SLOT(index, interface), 64); in __cvmx_helper_sgmii_hardware_init_link_speed()
270 cvmx_write_csr(CVMX_GMXX_TXX_BURST(index, interface), 0); in __cvmx_helper_sgmii_hardware_init_link_speed()
277 cvmx_write_csr(CVMX_GMXX_TXX_SLOT(index, interface), 512); in __cvmx_helper_sgmii_hardware_init_link_speed()
278 cvmx_write_csr(CVMX_GMXX_TXX_BURST(index, interface), 8192); in __cvmx_helper_sgmii_hardware_init_link_speed()
285 cvmx_write_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface), in __cvmx_helper_sgmii_hardware_init_link_speed()
289 cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface), gmxx_prtx_cfg.u64); in __cvmx_helper_sgmii_hardware_init_link_speed()
292 gmxx_prtx_cfg.u64 = cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface)); in __cvmx_helper_sgmii_hardware_init_link_speed()
296 cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface), gmxx_prtx_cfg.u64); in __cvmx_helper_sgmii_hardware_init_link_speed()
302 * Bring up the SGMII interface to be ready for packet I/O but
306 * @interface: Interface to bringup
307 * @num_ports: Number of ports on the interface
311 static int __cvmx_helper_sgmii_hardware_init(int interface, int num_ports) in __cvmx_helper_sgmii_hardware_init() argument
315 __cvmx_helper_setup_gmx(interface, num_ports); in __cvmx_helper_sgmii_hardware_init()
318 int ipd_port = cvmx_helper_get_ipd_port(interface, index); in __cvmx_helper_sgmii_hardware_init()
319 __cvmx_helper_sgmii_hardware_init_one_time(interface, index); in __cvmx_helper_sgmii_hardware_init()
329 int __cvmx_helper_sgmii_enumerate(int interface) in __cvmx_helper_sgmii_enumerate() argument
334 * Probe a SGMII interface and determine the number of ports
335 * connected to it. The SGMII interface should still be down after
338 * @interface: Interface to probe
340 * Returns Number of ports on the interface. Zero to disable.
342 int __cvmx_helper_sgmii_probe(int interface) in __cvmx_helper_sgmii_probe() argument
348 * interface needs to be enabled before IPD otherwise per port in __cvmx_helper_sgmii_probe()
351 mode.u64 = cvmx_read_csr(CVMX_GMXX_INF_MODE(interface)); in __cvmx_helper_sgmii_probe()
353 cvmx_write_csr(CVMX_GMXX_INF_MODE(interface), mode.u64); in __cvmx_helper_sgmii_probe()
354 return __cvmx_helper_sgmii_enumerate(interface); in __cvmx_helper_sgmii_probe()
358 * Bringup and enable a SGMII interface. After this call packet
362 * @interface: Interface to bring up
366 int __cvmx_helper_sgmii_enable(int interface) in __cvmx_helper_sgmii_enable() argument
368 int num_ports = cvmx_helper_ports_on_interface(interface); in __cvmx_helper_sgmii_enable()
371 __cvmx_helper_sgmii_hardware_init(interface, num_ports); in __cvmx_helper_sgmii_enable()
376 cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface)); in __cvmx_helper_sgmii_enable()
378 cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface), in __cvmx_helper_sgmii_enable()
380 __cvmx_interrupt_pcsx_intx_en_reg_enable(index, interface); in __cvmx_helper_sgmii_enable()
382 __cvmx_interrupt_pcsxx_int_en_reg_enable(interface); in __cvmx_helper_sgmii_enable()
383 __cvmx_interrupt_gmxx_enable(interface); in __cvmx_helper_sgmii_enable()
401 int interface = cvmx_helper_get_interface_num(ipd_port); in __cvmx_helper_sgmii_link_get() local
416 cvmx_read_csr(CVMX_PCSX_MRX_CONTROL_REG(index, interface)); in __cvmx_helper_sgmii_link_get()
426 cvmx_read_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface)); in __cvmx_helper_sgmii_link_get()
433 cvmx_read_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface)); in __cvmx_helper_sgmii_link_get()
445 (index, interface)); in __cvmx_helper_sgmii_link_get()
448 (interface, index) != 0) in __cvmx_helper_sgmii_link_get()
455 (index, interface)); in __cvmx_helper_sgmii_link_get()
511 int interface = cvmx_helper_get_interface_num(ipd_port); in __cvmx_helper_sgmii_link_set() local
513 __cvmx_helper_sgmii_hardware_init_link(interface, index); in __cvmx_helper_sgmii_link_set()
514 return __cvmx_helper_sgmii_hardware_init_link_speed(interface, index, in __cvmx_helper_sgmii_link_set()
535 int interface = cvmx_helper_get_interface_num(ipd_port); in __cvmx_helper_sgmii_configure_loopback() local
541 cvmx_read_csr(CVMX_PCSX_MRX_CONTROL_REG(index, interface)); in __cvmx_helper_sgmii_configure_loopback()
543 cvmx_write_csr(CVMX_PCSX_MRX_CONTROL_REG(index, interface), in __cvmx_helper_sgmii_configure_loopback()
547 cvmx_read_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface)); in __cvmx_helper_sgmii_configure_loopback()
549 cvmx_write_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface), in __cvmx_helper_sgmii_configure_loopback()
552 __cvmx_helper_sgmii_hardware_init_link(interface, index); in __cvmx_helper_sgmii_configure_loopback()