1 /*
2 * Copyright (c) 2023 Würth Elektronik eiSos GmbH & Co. KG
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7 #include "weplatform.h"
8
9 #include "weplatform_i2c.h"
10 #include "weplatform_spi.h"
11
12 /**
13 * @brief Read data starting from the addressed register
14 * @param[in] interface Sensor interface
15 * @param[in] regAdr The register address to read from
16 * @param[in] numBytesToRead Number of bytes to read
17 * @param[out] data The read data will be stored here
18 * @retval Error code
19 */
WE_ReadReg(WE_sensorInterface_t * interface,uint8_t regAdr,uint16_t numBytesToRead,uint8_t * data)20 inline int8_t WE_ReadReg(WE_sensorInterface_t *interface, uint8_t regAdr,
21 uint16_t numBytesToRead, uint8_t *data)
22 {
23 switch (interface->interfaceType) {
24 case WE_i2c:
25 return WE_ReadReg_I2C(interface, regAdr, numBytesToRead, data);
26
27 case WE_spi:
28 return WE_ReadReg_SPI(interface, regAdr, numBytesToRead, data);
29
30 default:
31 return WE_FAIL;
32 }
33 }
34
35 /**
36 * @brief Write data starting from the addressed register
37 * @param[in] interface Sensor interface
38 * @param[in] regAdr Address of register to be written
39 * @param[in] numBytesToWrite Number of bytes to write
40 * @param[in] data Data to be written
41 * @retval Error code
42 */
WE_WriteReg(WE_sensorInterface_t * interface,uint8_t regAdr,uint16_t numBytesToWrite,uint8_t * data)43 inline int8_t WE_WriteReg(WE_sensorInterface_t *interface, uint8_t regAdr,
44 uint16_t numBytesToWrite, uint8_t *data)
45 {
46 switch (interface->interfaceType) {
47 case WE_i2c:
48 return WE_WriteReg_I2C(interface, regAdr, numBytesToWrite, data);
49
50 case WE_spi:
51 return WE_WriteReg_SPI(interface, regAdr, numBytesToWrite, data);
52
53 default:
54 return WE_FAIL;
55 }
56 }
57