1230557Sjimharris/*- 2230557Sjimharris * This file is provided under a dual BSD/GPLv2 license. When using or 3230557Sjimharris * redistributing this file, you may do so under either license. 4230557Sjimharris * 5230557Sjimharris * GPL LICENSE SUMMARY 6230557Sjimharris * 7230557Sjimharris * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved. 8230557Sjimharris * 9230557Sjimharris * This program is free software; you can redistribute it and/or modify 10230557Sjimharris * it under the terms of version 2 of the GNU General Public License as 11230557Sjimharris * published by the Free Software Foundation. 12230557Sjimharris * 13230557Sjimharris * This program is distributed in the hope that it will be useful, but 14230557Sjimharris * WITHOUT ANY WARRANTY; without even the implied warranty of 15230557Sjimharris * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16230557Sjimharris * General Public License for more details. 17230557Sjimharris * 18230557Sjimharris * You should have received a copy of the GNU General Public License 19230557Sjimharris * along with this program; if not, write to the Free Software 20230557Sjimharris * Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. 21230557Sjimharris * The full GNU General Public License is included in this distribution 22230557Sjimharris * in the file called LICENSE.GPL. 23230557Sjimharris * 24230557Sjimharris * BSD LICENSE 25230557Sjimharris * 26230557Sjimharris * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved. 27230557Sjimharris * All rights reserved. 28230557Sjimharris * 29230557Sjimharris * Redistribution and use in source and binary forms, with or without 30230557Sjimharris * modification, are permitted provided that the following conditions 31230557Sjimharris * are met: 32230557Sjimharris * 33230557Sjimharris * * Redistributions of source code must retain the above copyright 34230557Sjimharris * notice, this list of conditions and the following disclaimer. 35230557Sjimharris * * Redistributions in binary form must reproduce the above copyright 36230557Sjimharris * notice, this list of conditions and the following disclaimer in 37230557Sjimharris * the documentation and/or other materials provided with the 38230557Sjimharris * distribution. 39230557Sjimharris * 40230557Sjimharris * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 41230557Sjimharris * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 42230557Sjimharris * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 43230557Sjimharris * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 44230557Sjimharris * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 45230557Sjimharris * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 46230557Sjimharris * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 47230557Sjimharris * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 48230557Sjimharris * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 49230557Sjimharris * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 50230557Sjimharris * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 51230557Sjimharris * 52230557Sjimharris * $FreeBSD: releng/10.2/sys/dev/isci/scil/scic_phy.h 231136 2012-02-07 17:43:58Z jimharris $ 53230557Sjimharris */ 54230557Sjimharris#ifndef _SCIC_PHY_H_ 55230557Sjimharris#define _SCIC_PHY_H_ 56230557Sjimharris 57230557Sjimharris/** 58230557Sjimharris * @file 59230557Sjimharris * 60230557Sjimharris * @brief This file contains all of the interface methods that can be called 61230557Sjimharris * by an SCIC user on a phy (SAS or SATA) object. 62230557Sjimharris */ 63230557Sjimharris 64230557Sjimharris#ifdef __cplusplus 65230557Sjimharrisextern "C" { 66230557Sjimharris#endif // __cplusplus 67230557Sjimharris 68230557Sjimharris#include <dev/isci/scil/sci_types.h> 69230557Sjimharris#include <dev/isci/scil/sci_status.h> 70230557Sjimharris 71230557Sjimharris#include <dev/isci/scil/intel_sata.h> 72230557Sjimharris#include <dev/isci/scil/intel_sas.h> 73230557Sjimharris 74230557Sjimharris 75230557Sjimharris/** 76230557Sjimharris * @struct SCIC_PHY_PROPERTIES 77230557Sjimharris * @brief This structure defines the properties common to all phys 78230557Sjimharris * that can be retrieved. 79230557Sjimharris */ 80230557Sjimharristypedef struct SCIC_PHY_PROPERTIES 81230557Sjimharris{ 82230557Sjimharris /** 83230557Sjimharris * This field specifies the port that currently contains the 84230557Sjimharris * supplied phy. This field may be set to SCI_INVALID_HANDLE 85230557Sjimharris * if the phy is not currently contained in a port. 86230557Sjimharris */ 87230557Sjimharris SCI_PORT_HANDLE_T owning_port; 88230557Sjimharris 89230557Sjimharris /** 90230557Sjimharris * This field specifies the maximum link rate for which this phy 91230557Sjimharris * will negotiate. 92230557Sjimharris */ 93230557Sjimharris SCI_SAS_LINK_RATE max_link_rate; 94230557Sjimharris 95230557Sjimharris /** 96230557Sjimharris * This field specifies the link rate at which the phy is 97230557Sjimharris * currently operating. 98230557Sjimharris */ 99230557Sjimharris SCI_SAS_LINK_RATE negotiated_link_rate; 100230557Sjimharris 101230557Sjimharris /** 102230557Sjimharris * This field indicates the identify address frame that will be 103230557Sjimharris * transmitted to the connected phy. 104230557Sjimharris */ 105230557Sjimharris SCI_SAS_IDENTIFY_ADDRESS_FRAME_T transmit_iaf; 106230557Sjimharris 107230557Sjimharris /** 108230557Sjimharris * This field specifies the index of the phy in relation to other 109230557Sjimharris * phys within the controller. This index is zero relative. 110230557Sjimharris */ 111230557Sjimharris U8 index; 112230557Sjimharris 113230557Sjimharris} SCIC_PHY_PROPERTIES_T; 114230557Sjimharris 115230557Sjimharris/** 116230557Sjimharris * @struct SCIC_SAS_PHY_PROPERTIES 117230557Sjimharris * @brief This structure defines the properties, specific to a 118230557Sjimharris * SAS phy, that can be retrieved. 119230557Sjimharris */ 120230557Sjimharristypedef struct SCIC_SAS_PHY_PROPERTIES 121230557Sjimharris{ 122230557Sjimharris /** 123230557Sjimharris * This field delineates the Identify Address Frame received 124230557Sjimharris * from the remote end point. 125230557Sjimharris */ 126230557Sjimharris SCI_SAS_IDENTIFY_ADDRESS_FRAME_T received_iaf; 127230557Sjimharris 128230557Sjimharris /** 129230557Sjimharris * This field delineates the Phy capabilities structure received 130230557Sjimharris * from the remote end point. 131230557Sjimharris */ 132230557Sjimharris SAS_CAPABILITIES_T received_capabilities; 133230557Sjimharris 134230557Sjimharris} SCIC_SAS_PHY_PROPERTIES_T; 135230557Sjimharris 136230557Sjimharris/** 137230557Sjimharris * @struct SCIC_SATA_PHY_PROPERTIES 138230557Sjimharris * @brief This structure defines the properties, specific to a 139230557Sjimharris * SATA phy, that can be retrieved. 140230557Sjimharris */ 141230557Sjimharristypedef struct SCIC_SATA_PHY_PROPERTIES 142230557Sjimharris{ 143230557Sjimharris /** 144230557Sjimharris * This field delineates the signature FIS received from the 145230557Sjimharris * attached target. 146230557Sjimharris */ 147230557Sjimharris SATA_FIS_REG_D2H_T signature_fis; 148230557Sjimharris 149230557Sjimharris /** 150230557Sjimharris * This field specifies to the user if a port selector is connected 151230557Sjimharris * on the specified phy. 152230557Sjimharris */ 153230557Sjimharris BOOL is_port_selector_present; 154230557Sjimharris 155230557Sjimharris} SCIC_SATA_PHY_PROPERTIES_T; 156230557Sjimharris 157230557Sjimharris/** 158230557Sjimharris * @enum SCIC_PHY_COUNTER_ID 159230557Sjimharris * @brief This enumeration depicts the various pieces of optional 160230557Sjimharris * information that can be retrieved for a specific phy. 161230557Sjimharris */ 162230557Sjimharristypedef enum SCIC_PHY_COUNTER_ID 163230557Sjimharris{ 164230557Sjimharris /** 165230557Sjimharris * This PHY information field tracks the number of frames received. 166230557Sjimharris */ 167230557Sjimharris SCIC_PHY_COUNTER_RECEIVED_FRAME, 168230557Sjimharris 169230557Sjimharris /** 170230557Sjimharris * This PHY information field tracks the number of frames transmitted. 171230557Sjimharris */ 172230557Sjimharris SCIC_PHY_COUNTER_TRANSMITTED_FRAME, 173230557Sjimharris 174230557Sjimharris /** 175230557Sjimharris * This PHY information field tracks the number of DWORDs received. 176230557Sjimharris */ 177230557Sjimharris SCIC_PHY_COUNTER_RECEIVED_FRAME_DWORD, 178230557Sjimharris 179230557Sjimharris /** 180230557Sjimharris * This PHY information field tracks the number of DWORDs transmitted. 181230557Sjimharris */ 182230557Sjimharris SCIC_PHY_COUNTER_TRANSMITTED_FRAME_DWORD, 183230557Sjimharris 184230557Sjimharris /** 185230557Sjimharris * This PHY information field tracks the number of times DWORD 186230557Sjimharris * synchronization was lost. 187230557Sjimharris */ 188230557Sjimharris SCIC_PHY_COUNTER_LOSS_OF_SYNC_ERROR, 189230557Sjimharris 190230557Sjimharris /** 191230557Sjimharris * This PHY information field tracks the number of received DWORDs with 192230557Sjimharris * running disparity errors. 193230557Sjimharris */ 194230557Sjimharris SCIC_PHY_COUNTER_RECEIVED_DISPARITY_ERROR, 195230557Sjimharris 196230557Sjimharris /** 197230557Sjimharris * This PHY information field tracks the number of received frames with a 198230557Sjimharris * CRC error (not including short or truncated frames). 199230557Sjimharris */ 200230557Sjimharris SCIC_PHY_COUNTER_RECEIVED_FRAME_CRC_ERROR, 201230557Sjimharris 202230557Sjimharris /** 203230557Sjimharris * This PHY information field tracks the number of DONE (ACK/NAK TIMEOUT) 204230557Sjimharris * primitives received. 205230557Sjimharris */ 206230557Sjimharris SCIC_PHY_COUNTER_RECEIVED_DONE_ACK_NAK_TIMEOUT, 207230557Sjimharris 208230557Sjimharris /** 209230557Sjimharris * This PHY information field tracks the number of DONE (ACK/NAK TIMEOUT) 210230557Sjimharris * primitives transmitted. 211230557Sjimharris */ 212230557Sjimharris SCIC_PHY_COUNTER_TRANSMITTED_DONE_ACK_NAK_TIMEOUT, 213230557Sjimharris 214230557Sjimharris /** 215230557Sjimharris * This PHY information field tracks the number of times the inactivity 216230557Sjimharris * timer for connections on the phy has been utilized. 217230557Sjimharris */ 218230557Sjimharris SCIC_PHY_COUNTER_INACTIVITY_TIMER_EXPIRED, 219230557Sjimharris 220230557Sjimharris /** 221230557Sjimharris * This PHY information field tracks the number of DONE (CREDIT TIMEOUT) 222230557Sjimharris * primitives received. 223230557Sjimharris */ 224230557Sjimharris SCIC_PHY_COUNTER_RECEIVED_DONE_CREDIT_TIMEOUT, 225230557Sjimharris 226230557Sjimharris /** 227230557Sjimharris * This PHY information field tracks the number of DONE (CREDIT TIMEOUT) 228230557Sjimharris * primitives transmitted. 229230557Sjimharris */ 230230557Sjimharris SCIC_PHY_COUNTER_TRANSMITTED_DONE_CREDIT_TIMEOUT, 231230557Sjimharris 232230557Sjimharris /** 233230557Sjimharris * This PHY information field tracks the number of CREDIT BLOCKED 234230557Sjimharris * primitives received. 235230557Sjimharris * @note Depending on remote device implementation, credit blocks 236230557Sjimharris * may occur regularly. 237230557Sjimharris */ 238230557Sjimharris SCIC_PHY_COUNTER_RECEIVED_CREDIT_BLOCKED, 239230557Sjimharris 240230557Sjimharris /** 241230557Sjimharris * This PHY information field contains the number of short frames 242230557Sjimharris * received. A short frame is simply a frame smaller then what is 243230557Sjimharris * allowed by either the SAS or SATA specification. 244230557Sjimharris */ 245230557Sjimharris SCIC_PHY_COUNTER_RECEIVED_SHORT_FRAME, 246230557Sjimharris 247230557Sjimharris /** 248230557Sjimharris * This PHY information field contains the number of frames received after 249230557Sjimharris * credit has been exhausted. 250230557Sjimharris */ 251230557Sjimharris SCIC_PHY_COUNTER_RECEIVED_FRAME_WITHOUT_CREDIT, 252230557Sjimharris 253230557Sjimharris /** 254230557Sjimharris * This PHY information field contains the number of frames received after 255230557Sjimharris * a DONE has been received. 256230557Sjimharris */ 257230557Sjimharris SCIC_PHY_COUNTER_RECEIVED_FRAME_AFTER_DONE, 258230557Sjimharris 259230557Sjimharris /** 260230557Sjimharris * This PHY information field contains the number of times the phy 261230557Sjimharris * failed to achieve DWORD synchronization during speed negotiation. 262230557Sjimharris */ 263230557Sjimharris SCIC_PHY_COUNTER_SN_DWORD_SYNC_ERROR 264230557Sjimharris} SCIC_PHY_COUNTER_ID_T; 265230557Sjimharris 266230557Sjimharris/** 267230557Sjimharris * @brief This method will enable the user to retrieve information 268230557Sjimharris * common to all phys, such as: the negotiated link rate, 269230557Sjimharris * the phy id, etc. 270230557Sjimharris * 271230557Sjimharris * @param[in] phy This parameter specifies the phy for which to retrieve 272230557Sjimharris * the properties. 273230557Sjimharris * @param[out] properties This parameter specifies the properties 274230557Sjimharris * structure into which to copy the requested information. 275230557Sjimharris * 276230557Sjimharris * @return Indicate if the user specified a valid phy. 277230557Sjimharris * @retval SCI_SUCCESS This value is returned if the specified phy was valid. 278230557Sjimharris * @retval SCI_FAILURE_INVALID_PHY This value is returned if the specified phy 279230557Sjimharris * is not valid. When this value is returned, no data is copied to the 280230557Sjimharris * properties output parameter. 281230557Sjimharris */ 282230557SjimharrisSCI_STATUS scic_phy_get_properties( 283230557Sjimharris SCI_PHY_HANDLE_T phy, 284230557Sjimharris SCIC_PHY_PROPERTIES_T * properties 285230557Sjimharris); 286230557Sjimharris 287230557Sjimharris/** 288230557Sjimharris * @brief This method will enable the user to retrieve information 289230557Sjimharris * specific to a SAS phy, such as: the received identify 290230557Sjimharris * address frame, received phy capabilities, etc. 291230557Sjimharris * 292230557Sjimharris * @param[in] phy this parameter specifies the phy for which to 293230557Sjimharris * retrieve properties. 294230557Sjimharris * @param[out] properties This parameter specifies the properties 295230557Sjimharris * structure into which to copy the requested information. 296230557Sjimharris * 297230557Sjimharris * @return This method returns an indication as to whether the SAS 298230557Sjimharris * phy properties were successfully retrieved. 299230557Sjimharris * @retval SCI_SUCCESS This value is returned if the SAS properties 300230557Sjimharris * are successfully retrieved. 301230557Sjimharris * @retval SCI_FAILURE This value is returned if the SAS properties 302230557Sjimharris * are not successfully retrieved (e.g. It's not a SAS Phy). 303230557Sjimharris */ 304230557SjimharrisSCI_STATUS scic_sas_phy_get_properties( 305230557Sjimharris SCI_PHY_HANDLE_T phy, 306230557Sjimharris SCIC_SAS_PHY_PROPERTIES_T * properties 307230557Sjimharris); 308230557Sjimharris 309230557Sjimharris/** 310230557Sjimharris * @brief This method will enable the user to retrieve information 311230557Sjimharris * specific to a SATA phy, such as: the recieved signature 312230557Sjimharris * FIS, if a port selector is present, etc. 313230557Sjimharris * 314230557Sjimharris * @param[in] phy this parameter specifies the phy for which to 315230557Sjimharris * retrieve properties. 316230557Sjimharris * @param[out] properties This parameter specifies the properties 317230557Sjimharris * structure into which to copy the requested information. 318230557Sjimharris * 319230557Sjimharris * @return This method returns an indication as to whether the SATA 320230557Sjimharris * phy properties were successfully retrieved. 321230557Sjimharris * @retval SCI_SUCCESS This value is returned if the SATA properties 322230557Sjimharris * are successfully retrieved. 323230557Sjimharris * @retval SCI_FAILURE This value is returned if the SATA properties 324230557Sjimharris * are not successfully retrieved (e.g. It's not a SATA Phy). 325230557Sjimharris */ 326230557SjimharrisSCI_STATUS scic_sata_phy_get_properties( 327230557Sjimharris SCI_PHY_HANDLE_T phy, 328230557Sjimharris SCIC_SATA_PHY_PROPERTIES_T * properties 329230557Sjimharris); 330230557Sjimharris 331230557Sjimharris/** 332230557Sjimharris * @brief This method allows the SCIC user to instruct the SCIC 333230557Sjimharris * implementation to send the SATA port selection signal. 334230557Sjimharris * 335230557Sjimharris * @param[in] phy this parameter specifies the phy for which to send 336230557Sjimharris * the port selection signal. 337230557Sjimharris * 338230557Sjimharris * @return An indication of whether the port selection signal was 339230557Sjimharris * successfully executed. 340230557Sjimharris * @retval SCI_SUCCESS This value is returned if the port selection signal 341230557Sjimharris * was successfully transmitted. 342230557Sjimharris */ 343230557SjimharrisSCI_STATUS scic_sata_phy_send_port_selection_signal( 344230557Sjimharris SCI_PHY_HANDLE_T phy 345230557Sjimharris); 346230557Sjimharris 347230557Sjimharris/** 348230557Sjimharris * @brief This method requests the SCI implementation to begin tracking 349230557Sjimharris * information specified by the supplied parameters. 350230557Sjimharris * 351230557Sjimharris * @param[in] phy this parameter specifies the phy for which to enable 352230557Sjimharris * the information type. 353230557Sjimharris * @param[in] counter_id this parameter specifies the information 354230557Sjimharris * type to be enabled. 355230557Sjimharris * 356230557Sjimharris * @return Indicate if enablement of the information type was successful. 357230557Sjimharris * @retval SCI_SUCCESS This value is returned if the information type was 358230557Sjimharris * successfully enabled. 359230557Sjimharris * @retval SCI_FAILURE_UNSUPPORTED_INFORMATION_FIELD This value is returned 360230557Sjimharris * if the supplied information type is not supported. 361230557Sjimharris */ 362230557SjimharrisSCI_STATUS scic_phy_enable_counter( 363230557Sjimharris SCI_PHY_HANDLE_T phy, 364230557Sjimharris SCIC_PHY_COUNTER_ID_T counter_id 365230557Sjimharris); 366230557Sjimharris 367230557Sjimharris/** 368230557Sjimharris * @brief This method requests the SCI implementation to stop tracking 369230557Sjimharris * information specified by the supplied parameters. 370230557Sjimharris * 371230557Sjimharris * @param[in] phy this parameter specifies the phy for which to disable 372230557Sjimharris * the information type. 373230557Sjimharris * @param[in] counter_id this parameter specifies the information 374230557Sjimharris * type to be disabled. 375230557Sjimharris * 376230557Sjimharris * @return Indicate if disablement of the information type was successful. 377230557Sjimharris * @retval SCI_SUCCESS This value is returned if the information type was 378230557Sjimharris * successfully disabled. 379230557Sjimharris * @retval SCI_FAILURE_UNSUPPORTED_INFORMATION_FIELD This value is returned 380230557Sjimharris * if the supplied information type is not supported. 381230557Sjimharris */ 382230557SjimharrisSCI_STATUS scic_phy_disable_counter( 383230557Sjimharris SCI_PHY_HANDLE_T phy, 384230557Sjimharris SCIC_PHY_COUNTER_ID_T counter_id 385230557Sjimharris); 386230557Sjimharris 387230557Sjimharris/** 388230557Sjimharris * @brief This method requests the SCI implementation to retrieve 389230557Sjimharris * tracking information specified by the supplied parameters. 390230557Sjimharris * 391230557Sjimharris * @param[in] phy this parameter specifies the phy for which to retrieve 392230557Sjimharris * the information type. 393230557Sjimharris * @param[in] counter_id this parameter specifies the information 394230557Sjimharris * type to be retrieved. 395230557Sjimharris * @param[out] data this parameter is a 32-bit pointer to a location 396230557Sjimharris * where the data being retrieved is to be placed. 397230557Sjimharris * 398230557Sjimharris * @return Indicate if retrieval of the information type was successful. 399230557Sjimharris * @retval SCI_SUCCESS This value is returned if the information type was 400230557Sjimharris * successfully retrieved. 401230557Sjimharris * @retval SCI_FAILURE_UNSUPPORTED_INFORMATION_FIELD This value is returned 402230557Sjimharris * if the supplied information type is not supported. 403230557Sjimharris */ 404230557SjimharrisSCI_STATUS scic_phy_get_counter( 405230557Sjimharris SCI_PHY_HANDLE_T phy, 406230557Sjimharris SCIC_PHY_COUNTER_ID_T counter_id, 407230557Sjimharris U32 * data 408230557Sjimharris); 409230557Sjimharris 410230557Sjimharris/** 411230557Sjimharris * @brief This method requests the SCI implementation to clear (reset) 412230557Sjimharris * tracking information specified by the supplied parameters. 413230557Sjimharris * 414230557Sjimharris * @param[in] phy this parameter specifies the phy for which to clear 415230557Sjimharris * the information type. 416230557Sjimharris * @param[in] counter_id this parameter specifies the information 417230557Sjimharris * type to be cleared. 418230557Sjimharris * 419230557Sjimharris * @return Indicate if clearing of the information type was successful. 420230557Sjimharris * @retval SCI_SUCCESS This value is returned if the information type was 421230557Sjimharris * successfully cleared. 422230557Sjimharris * @retval SCI_FAILURE_UNSUPPORTED_INFORMATION_FIELD This value is returned 423230557Sjimharris * if the supplied information type is not supported. 424230557Sjimharris */ 425230557SjimharrisSCI_STATUS scic_phy_clear_counter( 426230557Sjimharris SCI_PHY_HANDLE_T phy, 427230557Sjimharris SCIC_PHY_COUNTER_ID_T counter_id 428230557Sjimharris); 429230557Sjimharris 430230557Sjimharris/** 431230557Sjimharris * @brief This method will attempt to stop the phy object. 432230557Sjimharris * 433230557Sjimharris * @param[in] this_phy 434230557Sjimharris * 435230557Sjimharris * @return SCI_STATUS 436230557Sjimharris * @retval SCI_SUCCESS if the phy is going to stop 437230557Sjimharris * SCI_INVALID_STATE if the phy is not in a valid state 438230557Sjimharris * to stop 439230557Sjimharris */ 440230557SjimharrisSCI_STATUS scic_phy_stop( 441230557Sjimharris SCI_PHY_HANDLE_T phy 442230557Sjimharris); 443230557Sjimharris 444230557Sjimharris/** 445230557Sjimharris * @brief This method will attempt to start the phy object. This 446230557Sjimharris * request is only valid when the phy is in the stopped 447230557Sjimharris * state 448230557Sjimharris * 449230557Sjimharris * @param[in] this_phy 450230557Sjimharris * 451230557Sjimharris * @return SCI_STATUS 452230557Sjimharris */ 453230557SjimharrisSCI_STATUS scic_phy_start( 454230557Sjimharris SCI_PHY_HANDLE_T phy 455230557Sjimharris); 456230557Sjimharris 457230557Sjimharris#ifdef __cplusplus 458230557Sjimharris} 459230557Sjimharris#endif // __cplusplus 460230557Sjimharris 461230557Sjimharris#endif // _SCIC_PHY_H_ 462230557Sjimharris 463