本文整理汇总了C++中i2c_smbus_write_byte_data函数的典型用法代码示例。如果您正苦于以下问题:C++ i2c_smbus_write_byte_data函数的具体用法?C++ i2c_smbus_write_byte_data怎么用?C++ i2c_smbus_write_byte_data使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了i2c_smbus_write_byte_data函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: abov_glove_mode_enable
static int abov_glove_mode_enable(struct i2c_client *client, u8 cmd)
{
return i2c_smbus_write_byte_data(client, ABOV_GLOVE, cmd);
}
开发者ID:PhilZ-cwm6,项目名称:android_kernel_samsung_klte,代码行数:4,代码来源:abov_touchkey.c
示例2: sfe4001_poweron
static int sfe4001_poweron(struct efx_nic *efx)
{
struct i2c_client *ioexp_client = falcon_board(efx)->ioexp_client;
struct i2c_client *hwmon_client = falcon_board(efx)->hwmon_client;
unsigned int i, j;
int rc;
u8 out;
/* Clear any previous over-temperature alert */
rc = i2c_smbus_read_byte_data(hwmon_client, MAX664X_REG_RSL);
if (rc < 0)
return rc;
/* Enable port 0 and port 1 outputs on IO expander */
rc = i2c_smbus_write_byte_data(ioexp_client, P0_CONFIG, 0x00);
if (rc)
return rc;
rc = i2c_smbus_write_byte_data(ioexp_client, P1_CONFIG,
0xff & ~(1 << P1_SPARE_LBN));
if (rc)
goto fail_on;
/* If PHY power is on, turn it all off and wait 1 second to
* ensure a full reset.
*/
rc = i2c_smbus_read_byte_data(ioexp_client, P0_OUT);
if (rc < 0)
goto fail_on;
out = 0xff & ~((0 << P0_EN_1V2_LBN) | (0 << P0_EN_2V5_LBN) |
(0 << P0_EN_3V3X_LBN) | (0 << P0_EN_5V_LBN) |
(0 << P0_EN_1V0X_LBN));
if (rc != out) {
netif_info(efx, hw, efx->net_dev, "power-cycling PHY\n");
rc = i2c_smbus_write_byte_data(ioexp_client, P0_OUT, out);
if (rc)
goto fail_on;
schedule_timeout_uninterruptible(HZ);
}
for (i = 0; i < 20; ++i) {
/* Turn on 1.2V, 2.5V, 3.3V and 5V power rails */
out = 0xff & ~((1 << P0_EN_1V2_LBN) | (1 << P0_EN_2V5_LBN) |
(1 << P0_EN_3V3X_LBN) | (1 << P0_EN_5V_LBN) |
(1 << P0_X_TRST_LBN));
if (efx->phy_mode & PHY_MODE_SPECIAL)
out |= 1 << P0_EN_3V3X_LBN;
rc = i2c_smbus_write_byte_data(ioexp_client, P0_OUT, out);
if (rc)
goto fail_on;
msleep(10);
/* Turn on 1V power rail */
out &= ~(1 << P0_EN_1V0X_LBN);
rc = i2c_smbus_write_byte_data(ioexp_client, P0_OUT, out);
if (rc)
goto fail_on;
netif_info(efx, hw, efx->net_dev,
"waiting for DSP boot (attempt %d)...\n", i);
/* In flash config mode, DSP does not turn on AFE, so
* just wait 1 second.
*/
if (efx->phy_mode & PHY_MODE_SPECIAL) {
schedule_timeout_uninterruptible(HZ);
return 0;
}
for (j = 0; j < 10; ++j) {
msleep(100);
/* Check DSP has asserted AFE power line */
rc = i2c_smbus_read_byte_data(ioexp_client, P1_IN);
if (rc < 0)
goto fail_on;
if (rc & (1 << P1_AFE_PWD_LBN))
return 0;
}
}
netif_info(efx, hw, efx->net_dev, "timed out waiting for DSP boot\n");
rc = -ETIMEDOUT;
fail_on:
sfe4001_poweroff(efx);
return rc;
}
开发者ID:Adjustxx,项目名称:Savaged-Zen,代码行数:87,代码来源:falcon_boards.c
示例3: da280_enable
static int da280_enable(struct i2c_client *client, bool enable)
{
u8 data = enable ? DA280_MODE_ENABLE : DA280_MODE_DISABLE;
return i2c_smbus_write_byte_data(client, DA280_REG_MODE_BW, data);
}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:6,代码来源:da280.c
示例4: max8952_write_reg
static int max8952_write_reg(struct max8952_data *max8952,
u8 reg, u8 value)
{
return i2c_smbus_write_byte_data(max8952->client, reg, value);
}
开发者ID:020gzh,项目名称:linux,代码行数:5,代码来源:max8952.c
示例5: main
//.........这里部分代码省略.........
case I2C_SMBUS_BYTE:
oldvalue = i2c_smbus_read_byte(file);
break;
case I2C_SMBUS_WORD_DATA:
oldvalue = i2c_smbus_read_word_data(file, daddress);
break;
default:
oldvalue = i2c_smbus_read_byte_data(file, daddress);
}
if (oldvalue < 0) {
fprintf(stderr, "Error: Failed to read old value\n");
exit(1);
}
value = (value & vmask) | (oldvalue & ~vmask);
if (!yes) {
fprintf(stderr, "Old value 0x%0*x, write mask "
"0x%0*x: Will write 0x%0*x to register "
"0x%02x\n",
size == I2C_SMBUS_WORD_DATA ? 4 : 2, oldvalue,
size == I2C_SMBUS_WORD_DATA ? 4 : 2, vmask,
size == I2C_SMBUS_WORD_DATA ? 4 : 2, value,
daddress);
fprintf(stderr, "Continue? [Y/n] ");
fflush(stderr);
if (!user_ack(1)) {
fprintf(stderr, "Aborting on user request.\n");
exit(0);
}
}
}
if (pec && ioctl(file, I2C_PEC, 1) < 0) {
fprintf(stderr, "Error: Could not set PEC: %s\n",
strerror(errno));
close(file);
exit(1);
}
switch (size) {
case I2C_SMBUS_BYTE:
res = i2c_smbus_write_byte(file, daddress);
break;
case I2C_SMBUS_WORD_DATA:
res = i2c_smbus_write_word_data(file, daddress, value);
break;
default: /* I2C_SMBUS_BYTE_DATA */
res = i2c_smbus_write_byte_data(file, daddress, value);
}
if (res < 0) {
fprintf(stderr, "Error: Write failed\n");
close(file);
exit(1);
}
if (pec) {
if (ioctl(file, I2C_PEC, 0) < 0) {
fprintf(stderr, "Error: Could not clear PEC: %s\n",
strerror(errno));
close(file);
exit(1);
}
}
if (!readback) { /* We're done */
close(file);
exit(0);
}
switch (size) {
case I2C_SMBUS_BYTE:
res = i2c_smbus_read_byte(file);
value = daddress;
break;
case I2C_SMBUS_WORD_DATA:
res = i2c_smbus_read_word_data(file, daddress);
break;
default: /* I2C_SMBUS_BYTE_DATA */
res = i2c_smbus_read_byte_data(file, daddress);
}
close(file);
if (res < 0) {
printf("Warning - readback failed\n");
} else
if (res != value) {
printf("Warning - data mismatch - wrote "
"0x%0*x, read back 0x%0*x\n",
size == I2C_SMBUS_WORD_DATA ? 4 : 2, value,
size == I2C_SMBUS_WORD_DATA ? 4 : 2, res);
} else {
printf("Value 0x%0*x written, readback matched\n",
size == I2C_SMBUS_WORD_DATA ? 4 : 2, value);
}
exit(0);
}
开发者ID:Aircell,项目名称:asp-i2ctools,代码行数:101,代码来源:i2cset.c
示例6: write_reg
static int write_reg(struct i2c_client *client, u8 reg, u8 value)
{
return i2c_smbus_write_byte_data(client, reg, value);
}
开发者ID:nos1609,项目名称:Chrono_Kernel-1,代码行数:4,代码来源:wis-saa7113.c
示例7: g760a_write_value
static int g760a_write_value(struct i2c_client *client, enum g760a_regs reg,
u16 value)
{
return i2c_smbus_write_byte_data(client, reg, value);
}
开发者ID:Medvedroid,项目名称:OT_903D-kernel-2.6.35.7,代码行数:5,代码来源:g760a.c
示例8: hmc5883_stop_measure
static void hmc5883_stop_measure(struct hmc5883_data *hmc5883)
{
i2c_smbus_write_byte_data(hmc5883->client, HMC5883_REG_MODE, MODE_IDLE);
}
开发者ID:kamarush,项目名称:ZTE_GXIn_Kernel-3.0.8,代码行数:4,代码来源:hmc5883.c
示例9: gp2a_disable
static int gp2a_disable(struct gp2a_data *dt)
{
return i2c_smbus_write_byte_data(dt->i2c_client, GP2A_ADDR_OPMOD,
0x00);
}
开发者ID:openube,项目名称:android_kernel_sony_c2305,代码行数:5,代码来源:gp2ap002a00f.c
示例10: gp2a_enable
static int gp2a_enable(struct gp2a_data *dt)
{
return i2c_smbus_write_byte_data(dt->i2c_client, GP2A_ADDR_OPMOD,
GP2A_CTRL_SSD);
}
开发者ID:openube,项目名称:android_kernel_sony_c2305,代码行数:5,代码来源:gp2ap002a00f.c
示例11: ad7414_write
static inline int ad7414_write(struct i2c_client *client, u8 reg, u8 value)
{
return i2c_smbus_write_byte_data(client, reg, value);
}
开发者ID:xf739645524,项目名称:kernel-rhel5,代码行数:4,代码来源:ad7414.c
示例12: tsl4531_powerdown
static int tsl4531_powerdown(struct i2c_client *client)
{
return i2c_smbus_write_byte_data(client, TSL4531_CONTROL,
TSL4531_MODE_POWERDOWN);
}
开发者ID:168519,项目名称:linux,代码行数:5,代码来源:tsl4531.c
示例13: tsl4531_resume
static int tsl4531_resume(struct device *dev)
{
return i2c_smbus_write_byte_data(to_i2c_client(dev), TSL4531_CONTROL,
TSL4531_MODE_NORMAL);
}
开发者ID:168519,项目名称:linux,代码行数:5,代码来源:tsl4531.c
示例14: isp1301_clear_bits
static inline int
isp1301_clear_bits(struct isp1301 *isp, u8 reg, u8 bits)
{
return i2c_smbus_write_byte_data(isp->client, reg + 1, bits);
}
开发者ID:7799,项目名称:linux,代码行数:5,代码来源:phy-isp1301-omap.c
示例15: ms_nxtmmx_send_command
static int ms_nxtmmx_send_command(void *context,
struct tacho_motor_params *param,
enum tacho_motor_command command)
{
struct ms_nxtmmx_data *mmx = context;
int err;
u8 command_bytes[WRITE_SIZE];
if (IS_RUN_CMD(command)) {
/* fill in the setpoints with the correct polarity */
*(int *)command_bytes = cpu_to_le32(mmx->tm.params.position_sp);
command_bytes[WRITE_SPEED] = ms_nxtmmx_scale_speed(mmx->tm.params.speed_sp);
if (mmx->tm.params.polarity == DC_MOTOR_POLARITY_INVERSED) {
*(int *)command_bytes *= -1;
command_bytes[WRITE_SPEED] *= -1;
}
/* set the appropriate command flags based on the run command */
if (IS_POS_CMD(command))
mmx->command_flags |= CMD_FLAG_ENCODER_CTRL;
else
mmx->command_flags &= ~CMD_FLAG_ENCODER_CTRL;
if (command == TM_COMMAND_RUN_TO_REL_POS)
mmx->command_flags |= CMD_FLAG_RELATIVE;
else
mmx->command_flags &= ~CMD_FLAG_RELATIVE;
/* set bits for stop command */
if (mmx->tm.params.stop_command == TM_STOP_COMMAND_HOLD)
mmx->command_flags |= CMD_FLAG_HOLD;
else
mmx->command_flags &= ~CMD_FLAG_HOLD;
if (mmx->tm.params.stop_command == TM_STOP_COMMAND_BRAKE)
mmx->command_flags |= CMD_FLAG_BRAKE;
else
mmx->command_flags &= ~CMD_FLAG_BRAKE;
mmx->command_flags |= CMD_FLAG_GO;
command_bytes[WRITE_TIME] = 0; /* never use timed mode */
command_bytes[WRITE_COMMAND_B] = 0;
command_bytes[WRITE_COMMAND_A] = mmx->command_flags;
/* then write to the individual motor register to GO! */
err = i2c_smbus_write_i2c_block_data(mmx->i2c->client,
WRITE_REG(mmx->index), WRITE_SIZE, command_bytes);
if (err < 0)
return err;
} else if (command == TM_COMMAND_STOP) {
mmx->command_flags = CMD_FLAGS_DEFAULT_VALUE;
command_bytes[0] = (mmx->tm.params.stop_command == TM_STOP_COMMAND_COAST)
? COMMAND_FLOAT_STOP(mmx->index) : COMMAND_BRAKE_STOP(mmx->index);
err = i2c_smbus_write_byte_data(mmx->i2c->client,
COMMAND_REG, command_bytes[0]);
if (err < 0)
return err;
if (mmx->tm.params.stop_command == TM_STOP_COMMAND_HOLD) {
/*
* Hold only happens when encoder mode is enabled, so
* we have to issue a run command to tell it to run to
* the current position so that it will hold that position.
*/
err = i2c_smbus_read_i2c_block_data(mmx->i2c->client,
READ_ENCODER_POS_REG(mmx->index), ENCODER_SIZE, command_bytes);
if (err < 0)
return err;
mmx->command_flags = CMD_FLAGS_STOP_HOLD;
command_bytes[WRITE_SPEED] = 100;
command_bytes[WRITE_TIME] = 0;
command_bytes[WRITE_COMMAND_B] = 0;
command_bytes[WRITE_COMMAND_A] = mmx->command_flags;
err = i2c_smbus_write_i2c_block_data(mmx->i2c->client,
WRITE_REG(mmx->index), WRITE_SIZE, command_bytes);
if (err < 0)
return err;
}
} else if (command == TM_COMMAND_RESET) {
mmx->tm.params.speed_regulation = TM_SPEED_REGULATION_ON;
mmx->command_flags = CMD_FLAGS_DEFAULT_VALUE;
command_bytes[0] = COMMAND_FLOAT_STOP(mmx->index);
err = i2c_smbus_write_byte_data(mmx->i2c->client,
COMMAND_REG, command_bytes[0]);
if (err < 0)
return err;
command_bytes[0] = COMMAND_RESET_ENCODER(mmx->index);
err = i2c_smbus_write_byte_data(mmx->i2c->client,
COMMAND_REG, command_bytes[0]);
if (err < 0)
return err;
}
return 0;
}
开发者ID:rayray2002,项目名称:lego-linux-drivers,代码行数:98,代码来源:ms_nxtmmx.c
示例16: wis_saa7113_command
static int wis_saa7113_command(struct i2c_client *client,
unsigned int cmd, void *arg)
{
struct wis_saa7113 *dec = i2c_get_clientdata(client);
switch (cmd) {
case VIDIOC_S_INPUT:
{
int *input = arg;
i2c_smbus_write_byte_data(client, 0x02, 0xC0 | *input);
i2c_smbus_write_byte_data(client, 0x09,
*input < 6 ? 0x40 : 0x80);
break;
}
case VIDIOC_S_STD:
{
v4l2_std_id *input = arg;
dec->norm = *input;
if (dec->norm & V4L2_STD_NTSC) {
write_reg(client, 0x0e, 0x01);
write_reg(client, 0x10, 0x40);
} else if (dec->norm & V4L2_STD_PAL) {
write_reg(client, 0x0e, 0x01);
write_reg(client, 0x10, 0x48);
} else if (dec->norm * V4L2_STD_SECAM) {
write_reg(client, 0x0e, 0x50);
write_reg(client, 0x10, 0x48);
}
break;
}
case VIDIOC_QUERYCTRL:
{
struct v4l2_queryctrl *ctrl = arg;
switch (ctrl->id) {
case V4L2_CID_BRIGHTNESS:
ctrl->type = V4L2_CTRL_TYPE_INTEGER;
strncpy(ctrl->name, "Brightness", sizeof(ctrl->name));
ctrl->minimum = 0;
ctrl->maximum = 255;
ctrl->step = 1;
ctrl->default_value = 128;
ctrl->flags = 0;
break;
case V4L2_CID_CONTRAST:
ctrl->type = V4L2_CTRL_TYPE_INTEGER;
strncpy(ctrl->name, "Contrast", sizeof(ctrl->name));
ctrl->minimum = 0;
ctrl->maximum = 127;
ctrl->step = 1;
ctrl->default_value = 71;
ctrl->flags = 0;
break;
case V4L2_CID_SATURATION:
ctrl->type = V4L2_CTRL_TYPE_INTEGER;
strncpy(ctrl->name, "Saturation", sizeof(ctrl->name));
ctrl->minimum = 0;
ctrl->maximum = 127;
ctrl->step = 1;
ctrl->default_value = 64;
ctrl->flags = 0;
break;
case V4L2_CID_HUE:
ctrl->type = V4L2_CTRL_TYPE_INTEGER;
strncpy(ctrl->name, "Hue", sizeof(ctrl->name));
ctrl->minimum = -128;
ctrl->maximum = 127;
ctrl->step = 1;
ctrl->default_value = 0;
ctrl->flags = 0;
break;
}
break;
}
case VIDIOC_S_CTRL:
{
struct v4l2_control *ctrl = arg;
switch (ctrl->id) {
case V4L2_CID_BRIGHTNESS:
if (ctrl->value > 255)
dec->brightness = 255;
else if (ctrl->value < 0)
dec->brightness = 0;
else
dec->brightness = ctrl->value;
write_reg(client, 0x0a, dec->brightness);
break;
case V4L2_CID_CONTRAST:
if (ctrl->value > 127)
dec->contrast = 127;
else if (ctrl->value < 0)
dec->contrast = 0;
else
dec->contrast = ctrl->value;
write_reg(client, 0x0b, dec->contrast);
break;
case V4L2_CID_SATURATION:
if (ctrl->value > 127)
//.........这里部分代码省略.........
开发者ID:nos1609,项目名称:Chrono_Kernel-1,代码行数:101,代码来源:wis-saa7113.c
示例17: as7116_54x_fan_write_value
static int as7116_54x_fan_write_value(struct i2c_client *client, u8 reg, u8 value)
{
return i2c_smbus_write_byte_data(client, reg, value);
}
开发者ID:Azure,项目名称:sonic-buildimage,代码行数:4,代码来源:x86-64-accton-as7116-54x-fan.c
示例18: max8698_i2c_write
static int max8698_i2c_write(struct i2c_client *client, u8 reg, u8 value)
{
max8698_cache_regs[reg] = value;
return i2c_smbus_write_byte_data(client, reg, value);
}
开发者ID:Admetric,项目名称:android_kernel_s5pv210,代码行数:5,代码来源:max8698.c
示例19: abov_sleep_mode
static int abov_sleep_mode(struct i2c_client *client, u8 cmd)
{
return i2c_smbus_write_byte_data(client, ABOV_BTNSTATUS, cmd);
}
开发者ID:PhilZ-cwm6,项目名称:android_kernel_samsung_klte,代码行数:4,代码来源:abov_touchkey.c
示例20: lm63_init_client
/*
* Ideally we shouldn't have to initialize anything, since the BIOS
* should have taken care of everything
*/
static void lm63_init_client(struct i2c_client *client)
{
struct lm63_data *data = i2c_get_clientdata(client);
u8 convrate;
data->config = i2c_smbus_read_byte_data(client, LM63_REG_CONFIG1);
data->config_fan = i2c_smbus_read_byte_data(client,
LM63_REG_CONFIG_FAN);
/* Start converting if needed */
if (data->config & 0x40) { /* standby */
dev_dbg(&client->dev, "Switching to operational mode\n");
data->config &= 0xA7;
i2c_smbus_write_byte_data(client, LM63_REG_CONFIG1,
data->config);
}
/* Tachometer is always enabled on LM64 */
if (data->kind == lm64)
data->config |= 0x04;
/* We may need pwm1_freq before ever updating the client data */
data->pwm1_freq = i2c_smbus_read_byte_data(client, LM63_REG_PWM_FREQ);
if (data->pwm1_freq == 0)
data->pwm1_freq = 1;
switch (data->kind) {
case lm63:
case lm64:
data->max_convrate_hz = LM63_MAX_CONVRATE_HZ;
data->lut_size = 8;
break;
case lm96163:
data->max_convrate_hz = LM96163_MAX_CONVRATE_HZ;
data->lut_size = 12;
data->trutherm
= i2c_smbus_read_byte_data(client,
LM96163_REG_TRUTHERM) & 0x02;
break;
}
convrate = i2c_smbus_read_byte_data(client, LM63_REG_CONVRATE);
if (unlikely(convrate > LM63_MAX_CONVRATE))
convrate = LM63_MAX_CONVRATE;
data->update_interval = UPDATE_INTERVAL(data->max_convrate_hz,
convrate);
/*
* For LM96163, check if high resolution PWM
* and unsigned temperature format is enabled.
*/
if (data->kind == lm96163) {
u8 config_enhanced
= i2c_smbus_read_byte_data(client,
LM96163_REG_CONFIG_ENHANCED);
if (config_enhanced & 0x20)
data->lut_temp_highres = true;
if ((config_enhanced & 0x10)
&& !(data->config_fan & 0x08) && data->pwm1_freq == 8)
data->pwm_highres = true;
if (config_enhanced & 0x08)
data->remote_unsigned = true;
}
/* Show some debug info about the LM63 configuration */
if (data->kind == lm63)
dev_dbg(&client->dev, "Alert/tach pin configured for %s\n",
(data->config & 0x04) ? "tachometer input" :
"alert output");
dev_dbg(&client->dev, "PWM clock %s kHz, output frequency %u Hz\n",
(data->config_fan & 0x08) ? "1.4" : "360",
((data->config_fan & 0x08) ? 700 : 180000) / data->pwm1_freq);
dev_dbg(&client->dev, "PWM output active %s, %s mode\n",
(data->config_fan & 0x10) ? "low" : "high",
(data->config_fan & 0x20) ? "manual" : "auto");
}
开发者ID:openube,项目名称:android_kernel_sony_c2305,代码行数:78,代码来源:lm63.c
注:本文中的i2c_smbus_write_byte_data函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论