Example #1
0
/*
 * echo bank_address > ECRom , for EC ROM read
 * echo bank_address_data > ECRom , for EC ROM write
 */
static ssize_t ECRom_store(struct kobject *kobj, struct kobj_attribute *attr, const char * buf, size_t n)
{
	u8  val8_0, val8_1;
	u16 val16_bank, val16_address, val16_address_data;

	if(n == 7)    //write data to EC ROM
	{
		val8_0 = TransformCharToByte(buf,4);     //data
		val8_1 = TransformCharToByte(buf,2);     //address
		val16_address_data = TransformToWord(val8_0, val8_1);
		val8_0 = TransformCharToByte(buf,0);     //Rom Bank number
		val16_bank = TransformToWord(val8_0, 0);
		i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x75,val16_bank);   //write bank
		i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x76,val16_address_data);   //write address_data
	}
	else if(n == 5)    //write address for EC ROM read
	{
		val8_0 = TransformCharToByte(buf,2);     //address
		val8_1 = TransformCharToByte(buf,0);     //Rom Bank number
		val16_address = TransformToWord(val8_0, 0);
		val16_bank = TransformToWord(val8_1, 0);
		i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x75,val16_bank);
		i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x77,val16_address);
	}

	msleep(10);

	return n;
}
Example #2
0
//echo addresshbyte_addresslbyte_val > ECWrite
static ssize_t ECWrite_store(struct kobject *kobj, struct kobj_attribute *attr, const char * buf, size_t n)
{
	u8  val8_0, val8_1;
	u16 val16;
	val8_0 = TransformCharToByte(buf,2);
	val8_1 = TransformCharToByte(buf,0);
	val16 = TransformToWord(val8_0, val8_1);
	i2c_smbus_write_word_data_retry(EC_Bat_device->client,0xF0,val16);   //write address
	val8_1 = 0;
	val8_0 = TransformCharToByte(buf,4);
	val16 = TransformToWord(val8_0, val8_1);
	i2c_smbus_write_word_data_retry(EC_Bat_device->client,0xF2,val16);   //write value 00xx
	return n;
}
Example #3
0
static ssize_t Suspend_store(struct kobject *kobj, struct kobj_attribute *attr, const char * buf, size_t n)
{
	i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x53,0);
	msleep(100);

	return n;
}
Example #4
0
//echo cmd_val16 > ECflashwrite
static ssize_t ECflashwrite_store(struct kobject *kobj, struct kobj_attribute *attr, const char * buf, size_t n)
{
	u16 val16;
	val16 = TransformToWord(buf[2], buf[1]);
	i2c_smbus_write_word_data_retry(EC_Bat_device->client, buf[0], val16);

	return n;
}
Example #5
0
/* Using for enable/disable CABC when recording by internal MIC. */
void setAudioCABC(int enable)
{
	s32 ret;
	u16 cur;
	ret = i2c_smbus_read_word_data_retry(EC_Bat_device->client,0x4c);
	cur = ret & 0x0000ffff;
	msleep(10);

	if (enable) {
		cur = cur | (0x1 << 8);
		i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x4d,cur);
		msleep(10);
	} else {
		cur = cur & (!(0x1 << 8));
		i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x4d,cur);
		msleep(10);
	}
}
Example #6
0
static ssize_t DeviceStatus_store(struct kobject *kobj, struct kobj_attribute *attr, const char * buf, size_t n)
{
	int buffer;
	u16 val;
	buffer = atoi(buf);
	val = buffer & 0x0000FFFF;
	i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x49,val);
	return n;
}
Example #7
0
extern void start_stop_psensor(bool on)
{
	if(on)
		PsensorPower_val = 1 & 0xf;
	else
		PsensorPower_val = 0 & 0xf;

	i2c_smbus_write_word_data_retry(EC_Bat_device->client, 0x4b, PsensorPower_val);
	msleep(50);
}
Example #8
0
static ssize_t BatCtlEnable_store(struct kobject *kobj, struct kobj_attribute *attr, const char * buf, size_t n)
{
	int buffer;
	s16 BatCtlEnable_val;
	buffer = atoi(buf);
	BatCtlEnable_val = buffer & 0x0000FFFF;
	i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x50,BatCtlEnable_val);
	msleep(100);
	return n;
}
Example #9
0
//echo 1 > ThreeGPower(poweron) ,  echo 0 > ThreeGPower(poweroff), echo 2 > ThreeGPower(backtoOriginstate)
static ssize_t ThreeGPower_store(struct kobject *kobj, struct kobj_attribute *attr, const char * buf, size_t n)
{
	int buffer;
	buffer = atoi(buf);
	ThreeGPower_val = buffer & 0x0000FFFF;
	i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x45,ThreeGPower_val);
	msleep(100);

	return n;
}
Example #10
0
static ssize_t ManufactureDate_store(struct kobject *kobj, struct kobj_attribute *attr, const char * buf, size_t n)
{
	u8  val8_0, val8_1;
	u16 val16;

	val8_0 = TransformCharToByte(buf,6);
	val8_1 = TransformCharToByte(buf,4);
	val16 = TransformToWord(val8_0, val8_1);
	i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x6f,val16);
	msleep(10);

	val8_0 = TransformCharToByte(buf,2);
	val8_1 = TransformCharToByte(buf,0);
	val16 = TransformToWord(val8_0, val8_1);
	i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x6f,val16);
	msleep(10);

	return n;
}
Example #11
0
static int EC_Bat_suspend(struct i2c_client *client,
	pm_message_t state)
{
	s32 ret;
	struct EC_Bat_device_info *EC_Bat_device = i2c_get_clientdata(client);
	del_timer_sync(&poll_timer);

	if(Resume_val != 0)
		i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x56,Resume_val);
	return 0;
}
Example #12
0
//echo 0 > GPS(off), echo 1 > GPS(on)
static ssize_t GPSPower_store(struct kobject *kobj, struct kobj_attribute *attr, const char * buf, size_t n)
{
	int buffer;
	buffer = atoi(buf);
	GPS_val = buffer & 0x0000FFFF;
	if(GPS_val == 0)
	{
		i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x47,0);
	}
	else if(GPS_val == 1)
	{
		i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x4a,0);
	}
	else
	{
		goto fail;
	}
fail:
	return n;

}
Example #13
0
/*
 * echo 0 > HomekeyLED (Return to normal control)
 * echo 1 > HomekeyLED (Always on)
 * echo 2 > HomekeyLED (Fast blink)
 * echo 3 > HomekeyLED (Low blink)
 */
static ssize_t HomekeyLED_store(struct kobject *kobj, struct kobj_attribute *attr, const char * buf, size_t n)
{
	int buffer;
	buffer = atoi(buf);
	if (buffer >= 0 && buffer <= 3)
	{
		homekeyled_val = buffer & 0x0000FFFF;
		i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x46,homekeyled_val);
		msleep(10);
	}
	return n;
}
Example #14
0
//echo 0 > MicSwitch(front) ,  echo 1 > MicSwitch(back), echo 2 > MicSwitch(normal)
//echo 3 > MicSwitch(echo cancellation test), echo 4 > MicSwitch(disable echo cancellation)
static ssize_t MicSwitch_store(struct kobject *kobj, struct kobj_attribute *attr, const char * buf, size_t n)
{
	int buffer;
	buffer = atoi(buf);
	MicSwitch_val = buffer & 0x0000FFFF;
	if(MicSwitch_val < 0 || MicSwitch_val > 9)
	{
		goto fail;
	}
	i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x44,MicSwitch_val);
	msleep(100);
fail:
	return n;
}
Example #15
0
static ssize_t BTMAC_store(struct kobject *kobj, struct kobj_attribute *attr, const char * buf, size_t n)
{
	u8  val8_0, val8_1;
	u16 val16;
	int i;

	for(i=0;i<=2;i++)
	{
		val8_0 = TransformCharToByte(buf,10-4*i);
		val8_1 = TransformCharToByte(buf,8-4*i);
		val16 = TransformToWord(val8_0, val8_1);
		i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x63,val16);
		msleep(10);
	}

	return n;
}
Example #16
0
void enable_ThreeGPower(void)
{
	ThreeGPower_val = 1;
	i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x45,ThreeGPower_val);
	msleep(100);
}
Example #17
0
void SysRestart(void )
{
	i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x55,1);
}
Example #18
0
void SysShutdown(void )
{
	i2c_smbus_write_word_data_retry(EC_Bat_device->client,0x52,0);
}