/** @file Board-specific EC library Copyright (c) 2021, Baruch Binyamin Doron SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _BOARD_EC_LIB_H_ #define _BOARD_EC_LIB_H_ /** Reads a byte of EC RAM. @param[in] Address Address to read @param[out] Data Data received @retval EFI_SUCCESS Command success @retval EFI_INVALID_PARAMETER Data is NULL @retval EFI_DEVICE_ERROR Command error @retval EFI_TIMEOUT Command timeout **/ EFI_STATUS EcCmd90Read ( IN UINT8 Address, OUT UINT8 *Data ); /** Writes a byte of EC RAM. @param[in] Address Address to write @param[in] Data Data to write @retval EFI_SUCCESS Command success @retval EFI_DEVICE_ERROR Command error @retval EFI_TIMEOUT Command timeout **/ EFI_STATUS EcCmd91Write ( IN UINT8 Address, IN UINT8 Data ); /** Query the EC status. @param[out] Status EC status byte @retval EFI_SUCCESS Command success @retval EFI_INVALID_PARAMETER Data is NULL @retval EFI_DEVICE_ERROR Command error @retval EFI_TIMEOUT Command timeout **/ EFI_STATUS EcCmd94Query ( OUT UINT8 *Data ); /** Reads a byte of EC (index) RAM. @param[in] Address Address to read @param[out] Data Data received **/ VOID EcIdxRead ( IN UINT16 Address, OUT UINT8 *Data ); /** Writes a byte of EC (index) RAM. @param[in] Address Address to read @param[in] Data Data received **/ VOID EcIdxWrite ( IN UINT16 Address, IN UINT8 Data ); /** Read EC analog-digital converter. TODO: Check if ADC is valid. @param[in] Adc @param[out] DataBuffer **/ VOID ReadEcAdcConverter ( IN UINT8 Adc, OUT UINT16 *DataBuffer ); #endif