root/arch/mips/include/asm/octeon/cvmx-helper-spi.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /***********************license start***************
   2  * Author: Cavium Networks
   3  *
   4  * Contact: support@caviumnetworks.com
   5  * This file is part of the OCTEON SDK
   6  *
   7  * Copyright (c) 2003-2008 Cavium Networks
   8  *
   9  * This file is free software; you can redistribute it and/or modify
  10  * it under the terms of the GNU General Public License, Version 2, as
  11  * published by the Free Software Foundation.
  12  *
  13  * This file is distributed in the hope that it will be useful, but
  14  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
  15  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
  16  * NONINFRINGEMENT.  See the GNU General Public License for more
  17  * details.
  18  *
  19  * You should have received a copy of the GNU General Public License
  20  * along with this file; if not, write to the Free Software
  21  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  22  * or visit http://www.gnu.org/licenses/.
  23  *
  24  * This file may also be available under a different license from Cavium.
  25  * Contact Cavium Networks for more information
  26  ***********************license end**************************************/
  27 
  28 /*
  29  * Functions for SPI initialization, configuration,
  30  * and monitoring.
  31  */
  32 #ifndef __CVMX_HELPER_SPI_H__
  33 #define __CVMX_HELPER_SPI_H__
  34 
  35 /**
  36  * Probe a SPI interface and determine the number of ports
  37  * connected to it. The SPI interface should still be down after
  38  * this call.
  39  *
  40  * @interface: Interface to probe
  41  *
  42  * Returns Number of ports on the interface. Zero to disable.
  43  */
  44 extern int __cvmx_helper_spi_probe(int interface);
  45 extern int __cvmx_helper_spi_enumerate(int interface);
  46 
  47 /**
  48  * Bringup and enable a SPI interface. After this call packet I/O
  49  * should be fully functional. This is called with IPD enabled but
  50  * PKO disabled.
  51  *
  52  * @interface: Interface to bring up
  53  *
  54  * Returns Zero on success, negative on failure
  55  */
  56 extern int __cvmx_helper_spi_enable(int interface);
  57 
  58 /**
  59  * Return the link state of an IPD/PKO port as returned by
  60  * auto negotiation. The result of this function may not match
  61  * Octeon's link config if auto negotiation has changed since
  62  * the last call to cvmx_helper_link_set().
  63  *
  64  * @ipd_port: IPD/PKO port to query
  65  *
  66  * Returns Link state
  67  */
  68 extern cvmx_helper_link_info_t __cvmx_helper_spi_link_get(int ipd_port);
  69 
  70 /**
  71  * Configure an IPD/PKO port for the specified link state. This
  72  * function does not influence auto negotiation at the PHY level.
  73  * The passed link state must always match the link state returned
  74  * by cvmx_helper_link_get().
  75  *
  76  * @ipd_port:  IPD/PKO port to configure
  77  * @link_info: The new link state
  78  *
  79  * Returns Zero on success, negative on failure
  80  */
  81 extern int __cvmx_helper_spi_link_set(int ipd_port,
  82                                       cvmx_helper_link_info_t link_info);
  83 
  84 #endif

/* [<][>][^][v][top][bottom][index][help] */