Загрузка данных


static int sysconfig_i2c_bitstream_burst_init(struct sysconfig_priv *priv)
{
	const u8 lsc_bitstream_burst[] = SYSCONFIG_LSC_BITSTREAM_BURST;
	struct i2c_client *client = to_i2c_client(priv->dev);
	int ret;

	ret = i2c_master_send(client, lsc_bitstream_burst, sizeof(lsc_bitstream_burst));
	if (ret < 0)
		return ret;

	return (ret == sizeof(lsc_bitstream_burst)) ? 0 : -EIO;
}

static int sysconfig_i2c_bitstream_burst_write(struct sysconfig_priv *priv,
					       const char *buf, size_t len)
{
	struct i2c_client *client = to_i2c_client(priv->dev);
	struct i2c_msg msg;
	int ret;

	if (len == 0)
		return 0;

	msg.addr = client->addr;
	msg.flags = client->flags & I2C_M_TEN; /* Стандартная запись без NOSTART */
	msg.len = len;
	msg.buf = (u8 *)buf;

	ret = i2c_transfer(client->adapter, &msg, 1);
	if (ret < 0)
		return ret;

	return (ret == 1) ? 0 : -EIO;
}

static int sysconfig_i2c_bitstream_burst_complete(struct sysconfig_priv *priv)
{
	return 0;
}