Lines Matching refs:interface

49 /* Port count per interface */
53 * Return the number of interfaces the chip has. Each interface
56 * one interface.
74 * Return the number of ports on an interface. Depending on the
76 * specifies that the interface doesn't exist or isn't usable.
78 * @interface: Interface to get the port count for
80 * Returns Number of ports on interface. Can be Zero.
82 int cvmx_helper_ports_on_interface(int interface)
84 return interface_port_count[interface];
90 * Return interface mode for CN68xx.
92 static cvmx_helper_interface_mode_t __cvmx_get_mode_cn68xx(int interface)
95 switch (interface) {
111 qlm_cfg.u64 = cvmx_read_csr(CVMX_MIO_QLMX_CFG(interface));
142 * Return interface mode for an Octeon II
144 static cvmx_helper_interface_mode_t __cvmx_get_mode_octeon2(int interface)
149 return __cvmx_get_mode_cn68xx(interface);
151 if (interface == 2)
154 if (interface == 3)
159 (interface == 4 || interface == 5)) ||
161 interface >= 4 && interface <= 7)) {
169 if (interface == 0)
171 else if (interface == 1)
188 if (interface == 0) {
196 } else if (interface == 1) {
206 if (interface == 0) {
215 if (interface == 1 && OCTEON_IS_MODEL(OCTEON_CN63XX))
218 mode.u64 = cvmx_read_csr(CVMX_GMXX_INF_MODE(interface));
242 * Return interface mode for CN7XXX.
244 static cvmx_helper_interface_mode_t __cvmx_get_mode_cn7xxx(int interface)
248 mode.u64 = cvmx_read_csr(CVMX_GMXX_INF_MODE(interface));
250 switch (interface) {
277 * Get the operating mode of an interface. Depending on the Octeon
279 * of the type of packet I/O supported by an interface.
281 * @interface: Interface to probe
283 * Returns Mode of the interface. Unknown or unsupported interfaces return
286 cvmx_helper_interface_mode_t cvmx_helper_interface_get_mode(int interface)
290 if (interface < 0 ||
291 interface >= cvmx_helper_get_number_of_interfaces())
298 return __cvmx_get_mode_cn7xxx(interface);
304 return __cvmx_get_mode_octeon2(interface);
309 if (interface == 2)
312 if (interface == 3) {
321 if ((interface == 1)
327 mode.u64 = cvmx_read_csr(CVMX_GMXX_INF_MODE(interface));
365 * per interface numbering
408 * This function sets the interface_port_count[interface] correctly,
412 * @interface: Interface to probe
416 int cvmx_helper_interface_enumerate(int interface)
418 switch (cvmx_helper_interface_get_mode(interface)) {
422 interface_port_count[interface] = 0;
426 interface_port_count[interface] =
427 __cvmx_helper_xaui_enumerate(interface);
435 interface_port_count[interface] =
436 __cvmx_helper_rgmii_enumerate(interface);
443 interface_port_count[interface] =
444 __cvmx_helper_spi_enumerate(interface);
452 interface_port_count[interface] =
453 __cvmx_helper_sgmii_enumerate(interface);
457 interface_port_count[interface] =
458 __cvmx_helper_npi_enumerate(interface);
465 interface_port_count[interface] =
466 __cvmx_helper_loop_enumerate(interface);
470 interface_port_count[interface] =
471 __cvmx_helper_board_interface_probe(interface,
473 [interface]);
482 * This function probes an interface to determine the actual
485 * interface_port_count[interface] correctly. Hardware setup of the
488 * @interface: Interface to probe
492 int cvmx_helper_interface_probe(int interface)
494 cvmx_helper_interface_enumerate(interface);
498 switch (cvmx_helper_interface_get_mode(interface)) {
505 __cvmx_helper_xaui_probe(interface);
513 __cvmx_helper_rgmii_probe(interface);
520 __cvmx_helper_spi_probe(interface);
528 __cvmx_helper_sgmii_probe(interface);
532 __cvmx_helper_npi_probe(interface);
539 __cvmx_helper_loop_probe(interface);
550 * Setup the IPD/PIP for the ports on an interface. Packet
552 * interface. The number of ports on the interface must already
555 * @interface: Interface to setup IPD/PIP for
559 static int __cvmx_helper_interface_setup_ipd(int interface)
561 int ipd_port = cvmx_helper_get_ipd_port(interface, 0);
562 int num_ports = interface_port_count[interface];
573 * interface or port. This must be called before IPD is enabled.
594 * Setup the PKO for the ports on an interface. The number of
598 * @interface: Interface to setup PKO for
602 static int __cvmx_helper_interface_setup_pko(int interface)
624 int ipd_port = cvmx_helper_get_ipd_port(interface, 0);
625 int num_ports = interface_port_count[interface];
639 * interface or port. This must be called before PKO is enabled.
683 int interface;
684 for (interface = 0; interface < num_interfaces; interface++) {
685 switch (cvmx_helper_interface_get_mode(interface)) {
697 cvmx_gmx_set_backpressure_override(interface, 0xf);
713 * @interface: Interface to enable
717 static int __cvmx_helper_packet_hardware_enable(int interface)
720 switch (cvmx_helper_interface_get_mode(interface)) {
728 result = __cvmx_helper_xaui_enable(interface);
736 result = __cvmx_helper_rgmii_enable(interface);
743 result = __cvmx_helper_spi_enable(interface);
751 result = __cvmx_helper_sgmii_enable(interface);
755 result = __cvmx_helper_npi_enable(interface);
762 result = __cvmx_helper_loop_enable(interface);
781 /* Ports 0-15 are interface 0, 16-31 are interface 1 */
971 int interface;
982 for (interface = 0; interface < num_interfaces; interface++) {
983 if (cvmx_helper_ports_on_interface(interface) > 0)
984 __cvmx_helper_packet_hardware_enable(interface);
1010 int interface;
1032 for (interface = 0; interface < num_interfaces; interface++) {
1033 result |= cvmx_helper_interface_probe(interface);
1034 if (cvmx_helper_ports_on_interface(interface) > 0)
1036 interface,
1037 cvmx_helper_ports_on_interface(interface),
1040 (interface)));
1041 result |= __cvmx_helper_interface_setup_ipd(interface);
1042 result |= __cvmx_helper_interface_setup_pko(interface);
1081 int interface = cvmx_helper_get_interface_num(ipd_port);
1088 if (index >= cvmx_helper_ports_on_interface(interface))
1091 switch (cvmx_helper_interface_get_mode(interface)) {
1142 int interface = cvmx_helper_get_interface_num(ipd_port);
1145 if (index >= cvmx_helper_ports_on_interface(interface))
1148 switch (cvmx_helper_interface_get_mode(interface)) {