static int flip_amp_ctl_probe(struct i2c_client *client, const struct i2c_device_id *id)
{
	struct amp_data *data;
	struct i2c_adapter* adapter = client->adapter;
	int err;
	
	if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_WORD_DATA)){
		err = -EOPNOTSUPP;
		return err;
	}

	if (msm_snd_debug & 1)
		printk(KERN_INFO "%s()\n", __FUNCTION__);
	
	data = kzalloc(sizeof (struct amp_data), GFP_KERNEL);
	if (NULL == data) {
			return -ENOMEM;
	}
	_data = data;
	data->client = client;
	i2c_set_clientdata(client, data);
	
	if (msm_snd_debug & 1)
		printk(KERN_INFO "%s chip found\n", client->name);
	
	set_amp_PowerDown();
	return 0;
}
Esempio n. 2
0
static int flip_amp_ctl_probe(struct i2c_client *client, const struct i2c_device_id *id)
{
	struct amp_data *data;
	struct i2c_adapter* adapter = client->adapter;
	int err;

	amp_pdata = client->dev.platform_data;
	
	if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_WORD_DATA)){
		err = -EOPNOTSUPP;
		return err;
	}

	if (msm_snd_debug & 1)
		printk(KERN_INFO "%s()\n", __FUNCTION__);
	
	data = kzalloc(sizeof (struct amp_data), GFP_KERNEL);
	if (NULL == data) {
			return -ENOMEM;
	}
	_data = data;
	data->client = client;
	i2c_set_clientdata(client, data);

	if(amp_pdata->line_out)
        pAmpCalData = &amp_cal_lodata[ 0 ];
	else		
		pAmpCalData = &amp_cal_data[ 0 ];
		
	if (msm_snd_debug & 1)
		printk(KERN_INFO "%s chip found\n", client->name);

	if(amp_pdata && amp_pdata->external_bypass_init){
		amp_pdata->external_bypass_init();
	}
	
	err = device_create_file(&client->dev, &dev_attr_pos);
	err = device_create_file(&client->dev, &dev_attr_gain);
	err = device_create_file(&client->dev, &dev_attr_i2cReg);	
	err = device_create_file(&client->dev, &dev_attr_i2cData);

	set_amp_PowerDown();
	return 0;
}