72 lines
1.6 KiB
C
72 lines
1.6 KiB
C
/*
|
|
* Copyright (c) 2020 Hubert Miś
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <drivers/misc/ft8xx/ft8xx_common.h>
|
|
|
|
#include <sys/byteorder.h>
|
|
#include "ft8xx_drv.h"
|
|
|
|
void ft8xx_wr8(uint32_t address, uint8_t data)
|
|
{
|
|
int err;
|
|
|
|
err = ft8xx_drv_write(address, &data, sizeof(data));
|
|
__ASSERT(err == 0, "Writing FT8xx data at 0x%x failed", address);
|
|
}
|
|
|
|
void ft8xx_wr16(uint32_t address, uint16_t data)
|
|
{
|
|
int err;
|
|
uint8_t buffer[2];
|
|
|
|
*(uint16_t *)buffer = sys_cpu_to_le16(data);
|
|
err = ft8xx_drv_write(address, buffer, sizeof(buffer));
|
|
__ASSERT(err == 0, "Writing FT8xx data at 0x%x failed", address);
|
|
}
|
|
|
|
void ft8xx_wr32(uint32_t address, uint32_t data)
|
|
{
|
|
int err;
|
|
uint8_t buffer[4];
|
|
|
|
*(uint32_t *)buffer = sys_cpu_to_le32(data);
|
|
err = ft8xx_drv_write(address, buffer, sizeof(buffer));
|
|
__ASSERT(err == 0, "Writing FT8xx data at 0x%x failed", address);
|
|
}
|
|
|
|
uint8_t ft8xx_rd8(uint32_t address)
|
|
{
|
|
int err;
|
|
uint8_t data = 0;
|
|
|
|
err = ft8xx_drv_read(address, &data, sizeof(data));
|
|
__ASSERT(err == 0, "Reading FT8xx data from 0x%x failed", address);
|
|
|
|
return data;
|
|
}
|
|
|
|
uint16_t ft8xx_rd16(uint32_t address)
|
|
{
|
|
int err;
|
|
uint8_t buffer[2] = {0};
|
|
|
|
err = ft8xx_drv_read(address, buffer, sizeof(buffer));
|
|
__ASSERT(err == 0, "Reading FT8xx data from 0x%x failed", address);
|
|
|
|
return sys_le16_to_cpu(*(const uint16_t *)buffer);
|
|
}
|
|
|
|
uint32_t ft8xx_rd32(uint32_t address)
|
|
{
|
|
int err;
|
|
uint8_t buffer[4] = {0};
|
|
|
|
err = ft8xx_drv_read(address, buffer, sizeof(buffer));
|
|
__ASSERT(err == 0, "Reading FT8xx data from 0x%x failed", address);
|
|
|
|
return sys_le32_to_cpu(*(const uint32_t *)buffer);
|
|
}
|