Lines Matching refs:interface

49 /* Port count per interface */
53 * Return the number of interfaces the chip has. Each interface
56 * one interface.
80 * Return the number of ports on an interface. Depending on the
82 * specifies that the interface doesn't exist or isn't usable.
84 * @interface: Interface to get the port count for
86 * Returns Number of ports on interface. Can be Zero.
88 int cvmx_helper_ports_on_interface(int interface)
90 return interface_port_count[interface];
96 * Return interface mode for CN68xx.
98 static cvmx_helper_interface_mode_t __cvmx_get_mode_cn68xx(int interface)
101 switch (interface) {
117 qlm_cfg.u64 = cvmx_read_csr(CVMX_MIO_QLMX_CFG(interface));
148 * Return interface mode for an Octeon II
150 static cvmx_helper_interface_mode_t __cvmx_get_mode_octeon2(int interface)
155 return __cvmx_get_mode_cn68xx(interface);
157 if (interface == 2)
160 if (interface == 3)
165 (interface == 4 || interface == 5)) ||
167 interface >= 4 && interface <= 7)) {
175 if (interface == 0)
177 else if (interface == 1)
194 if (interface == 0) {
202 } else if (interface == 1) {
212 if (interface == 0) {
221 if (interface == 1 && OCTEON_IS_MODEL(OCTEON_CN63XX))
224 mode.u64 = cvmx_read_csr(CVMX_GMXX_INF_MODE(interface));
248 * Return interface mode for CN7XXX.
250 static cvmx_helper_interface_mode_t __cvmx_get_mode_cn7xxx(int interface)
254 mode.u64 = cvmx_read_csr(CVMX_GMXX_INF_MODE(interface));
256 switch (interface) {
283 * Get the operating mode of an interface. Depending on the Octeon
285 * of the type of packet I/O supported by an interface.
287 * @interface: Interface to probe
289 * Returns Mode of the interface. Unknown or unsupported interfaces return
292 cvmx_helper_interface_mode_t cvmx_helper_interface_get_mode(int interface)
296 if (interface < 0 ||
297 interface >= cvmx_helper_get_number_of_interfaces())
304 return __cvmx_get_mode_cn7xxx(interface);
310 return __cvmx_get_mode_octeon2(interface);
315 if (interface == 2)
318 if (interface == 3) {
327 if ((interface == 1)
333 mode.u64 = cvmx_read_csr(CVMX_GMXX_INF_MODE(interface));
371 * per interface numbering
414 * This function sets the interface_port_count[interface] correctly,
418 * @interface: Interface to probe
422 int cvmx_helper_interface_enumerate(int interface)
424 switch (cvmx_helper_interface_get_mode(interface)) {
428 interface_port_count[interface] = 0;
432 interface_port_count[interface] =
433 __cvmx_helper_xaui_enumerate(interface);
441 interface_port_count[interface] =
442 __cvmx_helper_rgmii_enumerate(interface);
449 interface_port_count[interface] =
450 __cvmx_helper_spi_enumerate(interface);
458 interface_port_count[interface] =
459 __cvmx_helper_sgmii_enumerate(interface);
463 interface_port_count[interface] =
464 __cvmx_helper_npi_enumerate(interface);
471 interface_port_count[interface] =
472 __cvmx_helper_loop_enumerate(interface);
476 interface_port_count[interface] =
477 __cvmx_helper_board_interface_probe(interface,
479 [interface]);
488 * This function probes an interface to determine the actual
491 * interface_port_count[interface] correctly. Hardware setup of the
494 * @interface: Interface to probe
498 int cvmx_helper_interface_probe(int interface)
500 cvmx_helper_interface_enumerate(interface);
504 switch (cvmx_helper_interface_get_mode(interface)) {
511 __cvmx_helper_xaui_probe(interface);
519 __cvmx_helper_rgmii_probe(interface);
526 __cvmx_helper_spi_probe(interface);
534 __cvmx_helper_sgmii_probe(interface);
538 __cvmx_helper_npi_probe(interface);
545 __cvmx_helper_loop_probe(interface);
556 * Setup the IPD/PIP for the ports on an interface. Packet
558 * interface. The number of ports on the interface must already
561 * @interface: Interface to setup IPD/PIP for
565 static int __cvmx_helper_interface_setup_ipd(int interface)
567 int ipd_port = cvmx_helper_get_ipd_port(interface, 0);
568 int num_ports = interface_port_count[interface];
579 * interface or port. This must be called before IPD is enabled.
600 * Setup the PKO for the ports on an interface. The number of
604 * @interface: Interface to setup PKO for
608 static int __cvmx_helper_interface_setup_pko(int interface)
630 int ipd_port = cvmx_helper_get_ipd_port(interface, 0);
631 int num_ports = interface_port_count[interface];
645 * interface or port. This must be called before PKO is enabled.
689 int interface;
690 for (interface = 0; interface < num_interfaces; interface++) {
691 switch (cvmx_helper_interface_get_mode(interface)) {
703 cvmx_gmx_set_backpressure_override(interface, 0xf);
719 * @interface: Interface to enable
723 static int __cvmx_helper_packet_hardware_enable(int interface)
726 switch (cvmx_helper_interface_get_mode(interface)) {
734 result = __cvmx_helper_xaui_enable(interface);
742 result = __cvmx_helper_rgmii_enable(interface);
749 result = __cvmx_helper_spi_enable(interface);
757 result = __cvmx_helper_sgmii_enable(interface);
761 result = __cvmx_helper_npi_enable(interface);
768 result = __cvmx_helper_loop_enable(interface);
787 /* Ports 0-15 are interface 0, 16-31 are interface 1 */
977 int interface;
988 for (interface = 0; interface < num_interfaces; interface++) {
989 if (cvmx_helper_ports_on_interface(interface) > 0)
990 __cvmx_helper_packet_hardware_enable(interface);
1016 int interface;
1038 for (interface = 0; interface < num_interfaces; interface++) {
1039 result |= cvmx_helper_interface_probe(interface);
1040 if (cvmx_helper_ports_on_interface(interface) > 0)
1042 interface,
1043 cvmx_helper_ports_on_interface(interface),
1046 (interface)));
1047 result |= __cvmx_helper_interface_setup_ipd(interface);
1048 result |= __cvmx_helper_interface_setup_pko(interface);
1077 int interface = cvmx_helper_get_interface_num(ipd_port);
1084 if (index >= cvmx_helper_ports_on_interface(interface))
1087 switch (cvmx_helper_interface_get_mode(interface)) {
1138 int interface = cvmx_helper_get_interface_num(ipd_port);
1141 if (index >= cvmx_helper_ports_on_interface(interface))
1144 switch (cvmx_helper_interface_get_mode(interface)) {