• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C++ i2c_smbus_read_byte函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中i2c_smbus_read_byte函数的典型用法代码示例。如果您正苦于以下问题:C++ i2c_smbus_read_byte函数的具体用法?C++ i2c_smbus_read_byte怎么用?C++ i2c_smbus_read_byte使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了i2c_smbus_read_byte函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: pcf8591_read_channel

static int pcf8591_read_channel(struct device *dev, int channel)
{
    u8 value;
    struct i2c_client *client = to_i2c_client(dev);
    struct pcf8591_data *data = i2c_get_clientdata(client);

    mutex_lock(&data->update_lock);

    if ((data->control & PCF8591_CONTROL_AICH_MASK) != channel) {
        data->control = (data->control & ~PCF8591_CONTROL_AICH_MASK)
                        | channel;
        i2c_smbus_write_byte(client, data->control);

        /* The first byte transmitted contains the conversion code of
           the previous read cycle. FLUSH IT! */
        i2c_smbus_read_byte(client);
    }
    value = i2c_smbus_read_byte(client);

    mutex_unlock(&data->update_lock);

    if ((channel == 2 && input_mode == 2) ||
            (channel != 3 && (input_mode == 1 || input_mode == 3)))
        return (10 * REG_TO_SIGNED(value));
    else
        return (10 * value);
}
开发者ID:Claruarius,项目名称:stblinux-2.6.37,代码行数:27,代码来源:pcf8591.c


示例2: bh1780_measure

//[*]--------------------------------------------------------------------------------------------------[*]
static int bh1780_measure(struct bh1780_data *bh1780)
{
	struct i2c_client *client = bh1780->client;
	int	low_data, high_data;

	/* read light sensor data */
	if(i2c_smbus_write_byte(bh1780->client, (BH1780_COMMAND_REG + BH1780_DATA_LOW_REG)) < 0)	{
		dev_err(&client->dev, "I2C write byte error: data=0x%02x\n", (BH1780_COMMAND_REG + BH1780_DATA_LOW_REG));
		goto err;
	}
	if((low_data = i2c_smbus_read_byte(client)) < 0)	{
		dev_err(&client->dev, "I2C read byte error\n");
		goto err;
	}

	if(i2c_smbus_write_byte(bh1780->client, (BH1780_COMMAND_REG + BH1780_DATA_HIGH_REG)) < 0)	{
		dev_err(&client->dev, "I2C write byte error: data=0x%02x\n", (BH1780_COMMAND_REG + BH1780_DATA_HIGH_REG));
		goto err;
	}
	if((high_data = i2c_smbus_read_byte(client)) < 0)	{
		dev_err(&client->dev, "I2C read byte error\n");
		goto err;
	}

	bh1780->light_data = BH1780_DATA_CAL(high_data, low_data);

err:

	return 0;
}
开发者ID:tiagormk,项目名称:linux-vitamins-odroidxu,代码行数:31,代码来源:ioboard-bh1780.c


示例3: pcf8591_read_channel

static int pcf8591_read_channel(struct device *dev, int channel)
{
    u8 value;
    struct i2c_client *client = to_i2c_client(dev);
    struct pcf8591_data *data = i2c_get_clientdata(client);

    mutex_lock(&data->update_lock);

    if ((data->control & PCF8591_CONTROL_AICH_MASK) != channel) {
        data->control = (data->control & ~PCF8591_CONTROL_AICH_MASK)
                        | channel;
        i2c_smbus_write_byte(client, data->control);

        i2c_smbus_read_byte(client);
    }
    value = i2c_smbus_read_byte(client);

    mutex_unlock(&data->update_lock);

    if ((channel == 2 && input_mode == 2) ||
            (channel != 3 && (input_mode == 1 || input_mode == 3)))
        return 10 * REG_TO_SIGNED(value);
    else
        return 10 * value;
}
开发者ID:MiniBlu,项目名称:cm11_kernel_htc_msm8974a3ul,代码行数:25,代码来源:pcf8591.c


示例4: ds2482_w1_read_byte

/**
 * Performs the read byte function.
 *
 * @param data	The ds2482 channel pointer
 * @return	The value read
 */
static u8 ds2482_w1_read_byte(void *data)
{
	struct ds2482_w1_chan *pchan = data;
	struct ds2482_data    *pdev = pchan->pdev;
	int result;

	mutex_lock(&pdev->access_lock);

	/* Select the channel */
	ds2482_wait_1wire_idle(pdev);
	if (pdev->w1_count > 1)
		ds2482_set_channel(pdev, pchan->channel);

	/* Send the read byte command */
	ds2482_send_cmd(pdev, DS2482_CMD_1WIRE_READ_BYTE);

	/* Wait until 1WB == 0 */
	ds2482_wait_1wire_idle(pdev);

	/* Select the data register */
	ds2482_select_register(pdev, DS2482_PTR_CODE_DATA);

	/* Read the data byte */
	result = i2c_smbus_read_byte(pdev->client);

	mutex_unlock(&pdev->access_lock);

	return result;
}
开发者ID:458941968,项目名称:mini2440-kernel-2.6.29,代码行数:35,代码来源:ds2482.c


示例5: mcsdl_prepare_program

static int mcsdl_prepare_program(void)
{
	int i;
	int ret = 0;
	int read_data = 0;
	uint8_t i2c_buffer[4] = {0x0F,							/* isp program flash cmd */
							0x00,							/* isp program timing value 0 */
							0x00,							/* isp program timing value 1 */
							0x78};							/* isp program timing value 2 */

	/* Write Program timing information */
	for(i=0; i<4; i++){
		ret = i2c_smbus_write_byte(g_client, i2c_buffer[i]);
		if( 0 != ret ){
			printk("mcsdl Write Program timing information error\n");
			return -1;
		}
		udelay(15);
	}
	udelay(500);

	/* Read Result */
	read_data = i2c_smbus_read_byte(g_client);
	if (read_data != 0x8F) {								/* 0x8F is prepare program flash OK status */	
		printk("mcsdl prepare program error\n");
		return -1;
	}
	ndelay(100);

	return 0;
}
开发者ID:Simo2553,项目名称:kernel_huawei_u8160,代码行数:31,代码来源:melfas_i2c_ts.c


示例6: qcikbd_work_handler

static void qcikbd_work_handler(struct work_struct *_work)
{
	unsigned char scancode;
	unsigned int  keycode;

	struct i2ckbd_drv_data *ikbd_drv_data =
		container_of(_work, struct i2ckbd_drv_data, work);

	struct i2c_client *ikbdclient = ikbd_drv_data->ki2c_client;
	struct input_dev *ikbdev = ikbd_drv_data->qcikbd_dev;

	scancode = i2c_smbus_read_byte(ikbdclient);

	if (scancode == KEY_ACK_FA) {
		return;
	} else if (scancode == RC_KEY_FN) {
		ikbd_drv_data->fn = 0x80;     /* select keycode table  > 0x7F */
	} else {
		ikbd_drv_data->key_down = 1;
		if (scancode & RC_KEY_BREAK) {
			ikbd_drv_data->key_down = 0;
			if ((scancode & 0x7F) == RC_KEY_FN)
				ikbd_drv_data->fn = 0;
		}
		keycode = on2_keycode[(scancode & 0x7F) | ikbd_drv_data->fn];
		if (keycode != NOKEY) {
			input_report_key(ikbdev,
					 keycode,
					 ikbd_drv_data->key_down);
			input_sync(ikbdev);
		}
	}
}
开发者ID:ARRESS1,项目名称:kernel_samsung_europa,代码行数:33,代码来源:qci_kbd.c


示例7: l3g4200d_read_reg

static u8 l3g4200d_read_reg(struct i2c_client *client, u8 addr){
          s32 err = i2c_smbus_write_byte(client,addr);
          s32 val = i2c_smbus_read_byte(client);
     
          return (u8) val;

}
开发者ID:paddureddy,项目名称:Free_elec_BBB_nfsroot,代码行数:7,代码来源:l3g4200d.c


示例8: main

int main (void){
    int device_handle;
    if ((device_handle = open("/dev/i2c-1", O_RDWR)) < 0){
        printf("Error: Couldn't open device %d\n", device_handle);
        return 1;
    }

    if (ioctl(device_handle, I2C_SLAVE, 4) < 0){
        printf("Error: Couldn't find arduino on address!\n");
        return 1;
    }

    char data[4] = {0x65, 0x66, 0x67, 0x68};
    i2c_smbus_write_byte(device_handle, data[0]);
    i2c_smbus_write_byte(device_handle, data[1]);
    i2c_smbus_write_byte(device_handle, data[2]);
    i2c_smbus_write_byte(device_handle, data[3]);
    //write(device_handle, data, 4);
    char b = i2c_smbus_read_byte(device_handle);
    printf("%i\n",b);

    close(device_handle);

    return 0;
}
开发者ID:poweihuang17,项目名称:D-Spur,代码行数:25,代码来源:tk1_i2c_test.cpp


示例9: DS2482_send_and_get

/* Single byte -- assumes channel selection already done */
static GOOD_OR_BAD DS2482_send_and_get(FILE_DESCRIPTOR_OR_ERROR file_descriptor, const BYTE wr, BYTE * rd)
{
    int read_back;
    BYTE c;

    /* Write data byte */
    if (i2c_smbus_write_byte_data(file_descriptor, DS2482_CMD_1WIRE_WRITE_BYTE, wr) < 0) {
        return gbBAD;
    }

    /* read status for done */
    RETURN_BAD_IF_BAD( DS2482_readstatus(&c, file_descriptor, DS2482_1wire_write_usec) ) ;

    /* Select the data register */
    if (i2c_smbus_write_byte_data(file_descriptor, DS2482_CMD_SET_READ_PTR, DS2482_READ_DATA_REGISTER) < 0) {
        return gbBAD;
    }

    /* Read the data byte */
    read_back = i2c_smbus_read_byte(file_descriptor);

    if (read_back < 0) {
        return gbBAD;
    }
    rd[0] = (BYTE) read_back;

    return gbGOOD;
}
开发者ID:GrandHsu,项目名称:iicontrollibs,代码行数:29,代码来源:ow_ds2482.c


示例10: ps5101_i2c_read

int ps5101_i2c_read(struct i2c_client *client, u8 reg, u8* value)
{
	int ret;

	if (!MHL_i2c_init) {
		print_err("I2C not ready\n");
		return -EIO;
	}

	ret = i2c_smbus_write_byte(client, reg);
	if (ret < 0) {
		print_err("Write reg 0x%02x error\n", reg);
		return ret;
	}


	ret = i2c_smbus_read_byte(client);


	if (ret < 0) {
		print_err("I2C read fail\n");
		return -EIO;
	}

	*value = ret & 0x000000ff;
	return ret;

}
开发者ID:arshull,项目名称:GalaTab3_KK_Kernel_T310,代码行数:28,代码来源:ps5101.c


示例11: sii9234_i2c_read

u8 sii9234_i2c_read(struct i2c_client *client, u8 reg)
{
	u8 ret;

	if (!mhl_i2c_init) {
		SII_DEV_DBG("I2C not ready");
		return 0;
	}

	ret = i2c_smbus_write_byte(client, reg);
	if (ret < 0) {
		printk(KERN_ERR	"%s() I2C cmd write error", __func__);
		return  -EIO;
	}


	ret = i2c_smbus_read_byte(client);

	if (ret < 0) {
		SII_DEV_DBG("i2c read fail");
		return -EIO;
	}

	return ret;

}
开发者ID:mapleshadow,项目名称:kernel-olympus-3.1,代码行数:26,代码来源:sii9234.c


示例12: pure_sensord

static int pure_sensord(void *arg)
{
	struct pure *p = arg;
	int s, slow, shigh, sxor;

	/* TODO: finish me! */
	while (!kthread_should_stop()) {
		set_current_state(TASK_INTERRUPTIBLE);
		schedule();

		pr_err("%s: running!\n", __func__);

		s = i2c_smbus_read_byte(&p->client);
		slow = (s & 0xf);
		shigh = (s & 0xf0) >> 4;
		sxor = slow ^ shigh;
		
		/* TODO: this isn't entirely correct! */
		if (sxor & 1) {
			p->a = (slow & 1) ? 1 : 0;
			complete(&p->ca);
		}
		if (sxor & 2) {
			p->b = (slow & 2) ? 1 : 0;
			complete(&p->cb);
		}
	}
	return 0;
}
开发者ID:kanjiviroja,项目名称:documents,代码行数:29,代码来源:pure-driver-with-sensor-kthread.c


示例13: i2c_touchkey_read_byte

static int i2c_touchkey_read_byte(struct cypress_touchkey_devdata *devdata,
					u8 *val)
{
	int ret;
	int retry = 2;

	down(&i2c_sem);

	while (true) {
		ret = i2c_smbus_read_byte(devdata->client);
		if (ret >= 0 ) {
			*val = ret;
			up(&i2c_sem);
			return 0;
		}

		dev_err(&devdata->client->dev, "i2c read error\n");
		if (!retry--)
			break;
		msleep(10);
	}

	up(&i2c_sem);

	return ret;
}
开发者ID:AntonX,项目名称:android_kernel_gb_sgs4g,代码行数:26,代码来源:cypress-touchkey.c


示例14: clear_alert

static int clear_alert(struct tmon_info *data)
{
	struct i2c_client *ara = data->ara;
	int alrt_stat;

	alrt_stat = i2c_smbus_read_byte(ara);
	return 0;
}
开发者ID:1ee7,项目名称:linux_l4t_tx1,代码行数:8,代码来源:tmon-tmp411.c


示例15: mcsdl_enter_download_mode

static int mcsdl_enter_download_mode(void)
{
	int i;
	int ret = 0;
	int read_data = 0;
	uint8_t enter_code[14] = { 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1 };

	/* CE set output and low */
	ret = gpio_tlmm_config(GPIO_CFG(TS_RESET_GPIO, 0, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_2MA), GPIO_ENABLE);
	ret = gpio_direction_output(TS_RESET_GPIO, 0);

	/* config SCL/SDA output mode and set low  */
	ret = gpio_tlmm_config(GPIO_CFG(TS_SCL_GPIO, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), GPIO_ENABLE);
	ret = gpio_tlmm_config(GPIO_CFG(TS_SDA_GPIO, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), GPIO_ENABLE);
	ret = gpio_direction_output(TS_SCL_GPIO, 0);
	ret = gpio_direction_output(TS_SDA_GPIO, 0);

	/* INTR set output and low */
	ret = gpio_tlmm_config(GPIO_CFG(TS_INT_GPIO, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), GPIO_ENABLE);
	ret = gpio_direction_output(TS_INT_GPIO, 0);
	mdelay(100);

	ret = gpio_direction_output(TS_RESET_GPIO, 1);			/* CE set high */
	ret = gpio_direction_output(TS_SDA_GPIO, 1);			/* SDA set high */
	mdelay(25);												/* must delay 25msec */

	/* input download mode single */
	for (i=0; i<14; i++) {
		if( enter_code[i] ){
			ret = gpio_direction_output(TS_INT_GPIO, 1);	/* INTR set high */
		} else {
			ret = gpio_direction_output(TS_INT_GPIO, 0);	/* INTR set low */
		}

		ret = gpio_direction_output(TS_SCL_GPIO, 1);		/* SCL set high */
		udelay(15);
		ret = gpio_direction_output(TS_SCL_GPIO, 0);		/* SCL set low */
		ret = gpio_direction_output(TS_INT_GPIO, 0);		/* INTR set low */
		udelay(100);
	}
	ret = gpio_direction_output(TS_SCL_GPIO, 1);			/* SCL set high */
	udelay(100);
	ret = gpio_direction_output(TS_INT_GPIO, 1);			/* INTR set high */
	mdelay(1);

	/* config I/O to i2c mode */
	ret = gpio_tlmm_config(GPIO_CFG(TS_SCL_GPIO, 1, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), GPIO_ENABLE);
	ret = gpio_tlmm_config(GPIO_CFG(TS_SDA_GPIO, 1, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), GPIO_ENABLE);
	mdelay(1);

	read_data = i2c_smbus_read_byte(g_client);
	if (read_data != 0x55) {							/* 0x55 is i2c slave ready status */
		printk("mcsdl enter download mode error\n");
		return -1;
	}

	return 0;		/* success */
}
开发者ID:Simo2553,项目名称:kernel_huawei_u8160,代码行数:58,代码来源:melfas_i2c_ts.c


示例16: i2c_readbyte

int i2c_readbyte(int i2c_fd)
{
	int byte;
	if ((byte = i2c_smbus_read_byte(i2c_fd)) < 0) {
		// perror("Failed to read byte from I2C slave");
		return -1;
	}
	return byte;
}
开发者ID:MiddleMan5,项目名称:Project-Onyx-Quadruped,代码行数:9,代码来源:i2c.c


示例17: mraa_i2c_read_byte

uint8_t
mraa_i2c_read_byte(mraa_i2c_context dev)
{
    uint8_t byte = i2c_smbus_read_byte(dev->fh);
    if (byte < 0) {
        return -1;
    }
    return byte;
}
开发者ID:dinuand,项目名称:mraa,代码行数:9,代码来源:i2c.c


示例18: gw_pld_get8

static int gw_pld_get8(struct gpio_chip *gc, unsigned offset)
{
	struct gw_pld *gw = gpiochip_get_data(gc);
	s32 val;

	val = i2c_smbus_read_byte(gw->client);

	return (val < 0) ? 0 : !!(val & BIT(offset));
}
开发者ID:Anjali05,项目名称:linux,代码行数:9,代码来源:gpio-gw-pld.c


示例19: tegra_camera_dump_port_switch_regs

static void tegra_camera_dump_port_switch_regs(struct nvhost_device *ndev)
{
#ifdef DEBUG
	u8 val;

	val = i2c_smbus_read_byte(port_switch);
	dev_info(&ndev->dev, "I2C switch reg = 0x%02x\n", val);
#endif
}
开发者ID:Kernelhacker,项目名称:2.6.38.3-Adam,代码行数:9,代码来源:board-seaboard-sensors.c


示例20: sensor_read

__u8 sensor_read(__u8 uRegAddr)
{
		u8 val;		
		//printk("sensor_read i2c_smbus_read_byte uRegAddr=0x%x\n",uRegAddr);
		i2c_smbus_write_byte(save_client, uRegAddr);
		//printk("sensor_read i2c_smbus_write_byte\n");
		val = i2c_smbus_read_byte(save_client);		
		return val;
}
开发者ID:mfkiwl,项目名称:linux-3.10.y,代码行数:9,代码来源:sensor_ov7725.c



注:本文中的i2c_smbus_read_byte函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ i2c_smbus_read_i2c_block_data函数代码示例发布时间:2022-05-31
下一篇:
C++ i2c_smbus_access函数代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap