CirrusLogic5430I2c.h revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering/** @file
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering I2c Bus byte read/write functions.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering Copyright (c) 2008 - 2009, Intel Corporation. All rights reserved.<BR>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering This program and the accompanying materials
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering are licensed and made available under the terms and conditions of the BSD License
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering which accompanies this distribution. The full text of the license may be found at
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering http://opensource.org/licenses/bsd-license.php
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering**/
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering#ifndef _CIRRUS_LOGIC_I2C_H_
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering#define _CIRRUS_LOGIC_I2C_H_
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering#include <Protocol/PciIo.h>
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering/**
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering Read one byte data on I2C Bus.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering Read one byte data from the slave device connectet to I2C Bus.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering If Data is NULL, then ASSERT().
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering @param PciIo The pointer to PCI_IO_PROTOCOL.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering @param DeviceAddress Slave device's address.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering @param RegisterAddress The register address on slave device.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering @param Data The pointer to returned data if EFI_SUCCESS returned.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering @retval EFI_DEVICE_ERROR
d15d0333be6a1ca7fdd99a1881d967b6be8f387aZbigniew Jędrzejewski-Szmek @retval EFI_SUCCESS
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering**/
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart PoetteringEFI_STATUS
e48fdd84432bbf9c2ecc339183258c7c33116032Lennart PoetteringEFIAPI
059cb3858acd038ff2cef10a3a99119bf71a8fc6Lennart PoetteringI2cReadByte (
689aede8c622ba68d9060e4edee27364445b2007Lennart Poettering EFI_PCI_IO_PROTOCOL *PciIo,
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering UINT8 DeviceAddress,
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering UINT8 RegisterAddress,
e48fdd84432bbf9c2ecc339183258c7c33116032Lennart Poettering UINT8 *Data
6db615c17ee7a434f9e0c40d67a1f833d8f3cc9dLennart Poettering );
6db615c17ee7a434f9e0c40d67a1f833d8f3cc9dLennart Poettering
6db615c17ee7a434f9e0c40d67a1f833d8f3cc9dLennart Poettering/**
6db615c17ee7a434f9e0c40d67a1f833d8f3cc9dLennart Poettering Write one byte data onto I2C Bus.
9f103625b145a397e67c3714766775b615c8b587Tobias Hunger
9f103625b145a397e67c3714766775b615c8b587Tobias Hunger Write one byte data to the slave device connectet to I2C Bus.
9f103625b145a397e67c3714766775b615c8b587Tobias Hunger If Data is NULL, then ASSERT().
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
5607d856b8606ba75446a07ab5e9048753e1d7a6Zbigniew Jędrzejewski-Szmek @param PciIo The pointer to PCI_IO_PROTOCOL.
5607d856b8606ba75446a07ab5e9048753e1d7a6Zbigniew Jędrzejewski-Szmek @param DeviceAddress Slave device's address.
5607d856b8606ba75446a07ab5e9048753e1d7a6Zbigniew Jędrzejewski-Szmek @param RegisterAddress The register address on slave device.
5607d856b8606ba75446a07ab5e9048753e1d7a6Zbigniew Jędrzejewski-Szmek @param Data The pointer to write data.
5607d856b8606ba75446a07ab5e9048753e1d7a6Zbigniew Jędrzejewski-Szmek
5607d856b8606ba75446a07ab5e9048753e1d7a6Zbigniew Jędrzejewski-Szmek @retval EFI_DEVICE_ERROR
e0952d9d021234e79f3a70f33a9e5d201872a417Zbigniew Jędrzejewski-Szmek @retval EFI_SUCCESS
7fd1b19bc9e9f5574f2877936b8ac267c7706947Harald Hoyer
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering**/
e0952d9d021234e79f3a70f33a9e5d201872a417Zbigniew Jędrzejewski-SzmekEFI_STATUS
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart PoetteringEFIAPI
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart PoetteringI2cWriteByte (
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering EFI_PCI_IO_PROTOCOL *PciIo,
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering UINT8 DeviceAddress,
00b4ffdecbb39d849af65c0ab741be482325a4a9Lennart Poettering UINT8 RegisterAddress,
00b4ffdecbb39d849af65c0ab741be482325a4a9Lennart Poettering UINT8 *Data
00b4ffdecbb39d849af65c0ab741be482325a4a9Lennart Poettering );
00b4ffdecbb39d849af65c0ab741be482325a4a9Lennart Poettering
00b4ffdecbb39d849af65c0ab741be482325a4a9Lennart Poettering#endif
689aede8c622ba68d9060e4edee27364445b2007Lennart Poettering