Skip to content

Commit

Permalink
fapi2 i2c access headers
Browse files Browse the repository at this point in the history
Change-Id: I24314593bdc6d7beabffb8686246e4ac343a05e9
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/62021
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: ANDRE A. MARIN <aamarin@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/69600
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
  • Loading branch information
mklight authored and sgupta2m committed Dec 18, 2018
1 parent f97b07d commit bfc895a
Showing 1 changed file with 71 additions and 0 deletions.
71 changes: 71 additions & 0 deletions src/import/hwpf/fapi2/include/fapi2_i2c_access.H
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
/* IBM_PROLOG_BEGIN_TAG */
/* This is an automatically generated prolog. */
/* */
/* $Source: src/import/hwpf/fapi2/include/fapi2_i2c_access.H $ */
/* */
/* OpenPOWER sbe Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
/* You may obtain a copy of the License at */
/* */
/* http://www.apache.org/licenses/LICENSE-2.0 */
/* */
/* Unless required by applicable law or agreed to in writing, software */
/* distributed under the License is distributed on an "AS IS" BASIS, */
/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
/* implied. See the License for the specific language governing */
/* permissions and limitations under the License. */
/* */
/* IBM_PROLOG_END_TAG */
///
/// @file fapi2_i2c_access.H
/// @brief Common file that defines the i2c access functions that
/// platform code must implement.
///

#ifndef _FAPI2_COMMON_I2C_ACCESS_H_
#define _FAPI2_COMMON_I2C_ACCESS_H_

#include <stdint.h>
#include <vector>

#include <return_code.H>
#include <target.H>

namespace fapi2
{

/// @brief Reads data via i2c from the target
/// @tparam K the type (Kind) of target, from i_target
/// @tparam V the type of the target's Value, from i_target
/// @param[in] i_target HW target to operate on.
/// @param[in] i_get_size Size that getI2c will read from the HW target.
/// @param[in] i_data Buffer that holds data to write to the HW target.
/// May be empty if no address/command is required
/// before the read.
/// @param[out] o_data Buffer that holds data read from HW target.
/// @return fapi2::ReturnCode. FAPI2_RC_SUCCESS if success, else error code.
template< TargetType K, typename V >
inline ReturnCode getI2c(const Target<K, V>& i_target,
const size_t i_get_size,
const std::vector<uint8_t>& i_data,
std::vector<uint8_t>& o_data);

/// @brief Writes data via i2c to the target.
/// @tparam K the type (Kind) of target, from i_target
/// @tparam V the type of the target's Value, from i_target
/// @param[in] i_target HW target to operate on.
/// @param[in] i_data Buffer that holds data to write to the HW target.
/// @return fapi2::ReturnCode. FAPI2_RC_SUCCESS if success, else error code.
template< TargetType K, typename V >
inline ReturnCode putI2c(const Target<K, V>& i_target,
const std::vector<uint8_t>& i_data);

};

#endif // _FAPI2_COMMON_I2C_ACCESS_H_

0 comments on commit bfc895a

Please sign in to comment.