📄 triton.c
字号:
/* * linux/drivers/i2c/chips/triton.c * * Provides API's for accessing registers of TRITON Chip. * * Copyright (C) 2004 Texas Instruments, Inc. * * This package is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */#include <linux/i2c.h>#include <asm/arch/triton.h>/* TRITON Device Address */#define TRITON_I2C_ADDR 0x2Dint triton_i2c_write( u8 val, u8 addr){ struct i2c_adapter *adap; int err; struct i2c_msg msg[1]; unsigned char data[2]; adap = i2c_get_adapter(0); if ( !adap ) { return -ENODEV; } msg->addr = TRITON_I2C_ADDR; msg->flags = 0; msg->len = 2; msg->buf = data; data[0] = addr; data[1] = val ; err = i2c_transfer(adap,msg,1); if ( err >= 0 ){ return 0; } return err;}int triton_i2c_read( u8 *val , u8 addr){ struct i2c_adapter *adap; int err; struct i2c_msg msg[1]; unsigned char data[1]; adap = i2c_get_adapter(0); if (!adap){ return -ENODEV; } msg->addr = TRITON_I2C_ADDR; msg->flags = 0; msg->len = 1; msg->buf = data; data[0] = addr; err = i2c_transfer(adap, msg, 1); if (err<0) return err; msg->addr = 0x2D; msg->flags = I2C_M_RD; msg->len = 1; msg->buf = data; data[0] = 0xFF; err = i2c_transfer(adap, msg, 1); *val = data[0]; if (err >= 0){ return 0; } return err;}EXPORT_SYMBOL(triton_i2c_read);EXPORT_SYMBOL(triton_i2c_write);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -