#endif
#if 0
-#define mmaprintk(x...) printk(x)
+#define DBG(x...) printk(x)
#else
-#define mmaprintk(x...)
+#define DBG(x...)
#endif
static int l3g4200d_probe(struct i2c_client *client, const struct i2c_device_id *id);
int tempvalue;
tempvalue=l3g4200d_read_reg(client, WHO_AM_I);
if ((tempvalue & 0x00FF) == 0x00D3) {
- mmaprintk(KERN_INFO "I2C driver registered!\n");
+ DBG(KERN_INFO "I2C driver registered!\n");
return 1;
} else {
- mmaprintk(KERN_INFO "I2C driver %d!\n",tempvalue);
+ DBG(KERN_INFO "I2C driver %d!\n",tempvalue);
return 0;
}
}
tmp |=ACTIVE_MASK;
else
tmp &=~ACTIVE_MASK;
- mmaprintk("l3g4200d_active %s (0x%x)\n",enable?"active":"standby",tmp);
+ DBG("l3g4200d_active %s (0x%x)\n",enable?"active":"standby",tmp);
ret = l3g4200d_write_reg(client,CTRL_REG1,tmp);
return ret;
}
{
struct l3g4200d_data *l3g4200d = (struct l3g4200d_data *)i2c_get_clientdata(client);
- mmaprintk("%s::enter\n",__FUNCTION__);
+ DBG("%s::enter\n",__FUNCTION__);
if (l3g4200d->status == L3G4200D_OPEN) {
return 0;
}
static int l3g4200d_close_dev(struct i2c_client *client)
{
- mmaprintk("%s :enter\n",__FUNCTION__);
+ DBG("%s :enter\n",__FUNCTION__);
disable_irq_nosync(client->irq);
return l3g4200d_active(client,0);
}
static int l3g4200d_close(struct i2c_client *client)
{
struct l3g4200d_data *l3g4200d = (struct l3g4200d_data *)i2c_get_clientdata(client);
- mmaprintk("%s::enter\n",__FUNCTION__);
+ DBG("%s::enter\n",__FUNCTION__);
l3g4200d->status = L3G4200D_CLOSE;
return l3g4200d_close_dev(client);
{
int ret = 0;
- mmaprintk("%s\n",__func__);
+ DBG("%s\n",__func__);
- ret = l3g4200d_close_dev(client);
+ // ret = l3g4200d_close_dev(client);
ret = l3g4200d_start_dev(client, rate);
return ret ;
input_report_rel(l3g4200d->input_dev, ABS_RY, axis->y);
input_report_rel(l3g4200d->input_dev, ABS_RZ, axis->z);
input_sync(l3g4200d->input_dev);
- mmaprintk("%s:x==%d y==%d z==%d\n",__func__,axis->x,axis->y,axis->z);
+ DBG("%s:x==%d y==%d z==%d\n",__func__,axis->x,axis->y,axis->z);
}
hw_d[1] = (short) (((gyro_data[3]) << 8) | gyro_data[2]);
hw_d[2] = (short) (((gyro_data[5]) << 8) | gyro_data[4]);
- mmaprintk("%s: x==%d y==%d z==%d x==%d y==%d z==%d\n",__func__, gyro_data[0],gyro_data[1],gyro_data[2],gyro_data[3],gyro_data[4],gyro_data[5]);
+ DBG("%s: x==%d y==%d z==%d x==%d y==%d z==%d\n",__func__, gyro_data[0],gyro_data[1],gyro_data[2],gyro_data[3],gyro_data[4],gyro_data[5]);
axis.x = ((this_data->pdata->negate_x) ? (-hw_d[this_data->pdata->axis_map_x])
static int l3g4200d_open(struct inode *inode, struct file *file)
{
- mmaprintk("%s :enter\n",__FUNCTION__);
+ DBG("%s :enter\n",__FUNCTION__);
return 0;//nonseekable_open(inode, file);
}
static int l3g4200d_release(struct inode *inode, struct file *file)
{
- mmaprintk("%s :enter\n",__FUNCTION__);
+ DBG("%s :enter\n",__FUNCTION__);
return 0;
}
#define RBUFF_SIZE 12 /* Rx buffer size */
switch (cmd) {
case L3G4200D_IOCTL_GET_ENABLE:
- mmaprintk("%s :L3G4200D_IOCTL_GET_ENABLE\n",__FUNCTION__);
+ DBG("%s :L3G4200D_IOCTL_GET_ENABLE\n",__FUNCTION__);
ret=!l3g4200d->status;
if (copy_to_user(argp, &ret, sizeof(ret)))
{
return -EFAULT;
}
break;
- //case ECS_IOCTL_START:
case L3G4200D_IOCTL_SET_ENABLE:
- mmaprintk("%s :L3G4200D_IOCTL_SET_ENABLE\n",__FUNCTION__);
- ret = l3g4200d_start(client, ODR100_BW12_5);
- if (ret < 0)
+ DBG("%s :L3G4200D_IOCTL_SET_ENABLE,flag=%d\n",__FUNCTION__,*(unsigned int *)argp);
+ if(*(unsigned int *)argp)
+ {
+ ret = l3g4200d_start(client, ODR100_BW12_5);
+ if (ret < 0)
+ return ret;
+ }
+ else
+ {
+ ret = l3g4200d_close(client);
+ if (ret < 0)
return ret;
+ }
ret=l3g4200d->status;
if (copy_to_user(argp, &ret, sizeof(ret)))
{
return -EFAULT;
}
break;
- case ECS_IOCTL_CLOSE:
- mmaprintk("%s :ECS_IOCTL_CLOSE\n",__FUNCTION__);
- ret = l3g4200d_close(client);
- if (ret < 0)
- return ret;
- break;
case L3G4200D_IOCTL_SET_DELAY:
- mmaprintk("%s :L3G4200D_IOCTL_SET_DELAY,rate=%d\n",__FUNCTION__,rate);
+ DBG("%s :L3G4200D_IOCTL_SET_DELAY,rate=%d\n",__FUNCTION__,rate);
if (copy_from_user(&rate, argp, sizeof(rate)))
return -EFAULT;
ret = l3g4200d_reset_rate(client, 0x00);//rate<<4);//0x20
return -ENOTTY;
}
- mmaprintk("%s:line=%d,cmd=0x%x\n",__func__,__LINE__,cmd);
+ DBG("%s:line=%d,cmd=0x%x\n",__func__,__LINE__,cmd);
return 0;
}
struct i2c_client *client = l3g4200d->client;
if (l3g4200d_get_data(client) < 0)
- mmaprintk(KERN_ERR "L3G4200D mma_work_func: Get data failed\n");
+ DBG(KERN_ERR "L3G4200D mma_work_func: Get data failed\n");
enable_irq(client->irq);
}
struct i2c_client *client = l3g4200d->client;
if (l3g4200d_get_data(client) < 0)
- mmaprintk(KERN_ERR "L3G4200D mma_work_func: Get data failed\n");
+ DBG(KERN_ERR "L3G4200D mma_work_func: Get data failed\n");
enable_irq(client->irq);
}
disable_irq_nosync(irq);
schedule_delayed_work(&l3g4200d->delaywork, msecs_to_jiffies(200));
- mmaprintk("%s :enter\n",__FUNCTION__);
+ DBG("%s :enter\n",__FUNCTION__);
return IRQ_HANDLED;
}
#ifdef CONFIG_HAS_EARLYSUSPEND
static void l3g4200d_suspend(struct early_suspend *h)
{
- //struct i2c_client *client = container_of(l3g4200d_device.parent, struct i2c_client, dev);
- //struct l3g4200d_data *l3g4200d = (struct l3g4200d_data *)i2c_get_clientdata(client);
-// if(l3g4200d->status == L3G4200D_OPEN)
-// {
- //l3g4200d->status = L3G4200D_SUSPEND;
-// l3g4200d_close_dev(client);
-// }
+ struct i2c_client *client = container_of(l3g4200d_device.parent, struct i2c_client, dev);
+ struct l3g4200d_data *l3g4200d = (struct l3g4200d_data *)i2c_get_clientdata(client);
+ if(l3g4200d->status == L3G4200D_OPEN)
+ {
+ l3g4200d_close_dev(client);
+ }
+
+ DBG("%s:%d\n",__func__,l3g4200d->status);
}
static void l3g4200d_resume(struct early_suspend *h)
{
- //struct i2c_client *client = container_of(l3g4200d_device.parent, struct i2c_client, dev);
- // struct l3g4200d_data *l3g4200d = (struct l3g4200d_data *)i2c_get_clientdata(client);
- //mmaprintk("Gsensor mma7760 resume!! l3g4200d->status %d\n",l3g4200d->status);
- //if((l3g4200d->status == L3G4200D_SUSPEND) && (l3g4200d->status != L3G4200D_OPEN))
-// if (l3g4200d->status == L3G4200D_OPEN)
-// l3g4200d_start_dev(client,l3g4200d->curr_tate);
+ struct i2c_client *client = container_of(l3g4200d_device.parent, struct i2c_client, dev);
+ struct l3g4200d_data *l3g4200d = (struct l3g4200d_data *)i2c_get_clientdata(client);
+ if (l3g4200d->status == L3G4200D_OPEN)
+ l3g4200d_start_dev(client,l3g4200d->curr_tate);
+
+ DBG("%s:%d\n",__func__,l3g4200d->status);
}
#else
static int l3g4200d_suspend(struct i2c_client *client, pm_message_t mesg)
{
int ret=0;
- //mmaprintk("Gsensor mma7760 enter 2 level suspend l3g4200d->status %d\n",l3g4200d->status);
+ //DBG("Gsensor mma7760 enter 2 level suspend l3g4200d->status %d\n",l3g4200d->status);
//struct l3g4200d_data *l3g4200d = (struct l3g4200d_data *)i2c_get_clientdata(client);
//if(l3g4200d->status == L3G4200D_OPEN)
//{
{
int ret=0;
//struct l3g4200d_data *l3g4200d = (struct l3g4200d_data *)i2c_get_clientdata(client);
- //mmaprintk("Gsensor mma7760 2 level resume!! l3g4200d->status %d\n",l3g4200d->status);
+ //DBG("Gsensor mma7760 2 level resume!! l3g4200d->status %d\n",l3g4200d->status);
//if((l3g4200d->status == L3G4200D_SUSPEND) && (l3g4200d->status != L3G4200D_OPEN))
//if (l3g4200d->status == L3G4200D_OPEN)
//ret = l3g4200d_start_dev(client, l3g4200d->curr_tate);
struct l3g4200d_data *l3g4200d;
int ret;
l3g4200d = i2c_get_clientdata(client);
- mmaprintk("gpio_to_irq(%d) is %d\n",client->irq,gpio_to_irq(client->irq));
+ DBG("gpio_to_irq(%d) is %d\n",client->irq,gpio_to_irq(client->irq));
if ( !gpio_is_valid(client->irq)) {
- mmaprintk("+++++++++++gpio_is_invalid\n");
+ DBG("+++++++++++gpio_is_invalid\n");
return -EINVAL;
}
ret = gpio_request(client->irq, "l3g4200d_int");
if (ret) {
- mmaprintk( "failed to request mma7990_trig GPIO%d\n",gpio_to_irq(client->irq));
+ DBG( "failed to request mma7990_trig GPIO%d\n",gpio_to_irq(client->irq));
return ret;
}
ret = gpio_direction_input(client->irq);
if (ret) {
- mmaprintk("failed to set mma7990_trig GPIO gpio input\n");
+ DBG("failed to set mma7990_trig GPIO gpio input\n");
return ret;
}
gpio_pull_updown(client->irq, GPIOPullUp);
client->irq = gpio_to_irq(client->irq);
ret = request_irq(client->irq, l3g4200d_interrupt, IRQF_TRIGGER_LOW, client->dev.driver->name, l3g4200d);
- mmaprintk("request irq is %d,ret is 0x%x\n",client->irq,ret);
+ DBG("request irq is %d,ret is 0x%x\n",client->irq,ret);
if (ret ) {
- mmaprintk(KERN_ERR "l3g4200d_init_client: request irq failed,ret is %d\n",ret);
+ DBG(KERN_ERR "l3g4200d_init_client: request irq failed,ret is %d\n",ret);
return ret;
}
disable_irq(client->irq);
l3g4200d = kzalloc(sizeof(struct l3g4200d_data), GFP_KERNEL);
if (!l3g4200d) {
- mmaprintk("[l3g4200d]:alloc data failed.\n");
+ DBG("[l3g4200d]:alloc data failed.\n");
err = -ENOMEM;
goto exit_alloc_data_failed;
}
err = l3g4200d_init_client(client);
if (err < 0) {
- mmaprintk(KERN_ERR
+ DBG(KERN_ERR
"l3g4200d_probe: l3g4200d_init_client failed\n");
goto exit_request_gpio_irq_failed;
}
l3g4200d->input_dev = input_allocate_device();
if (!l3g4200d->input_dev) {
err = -ENOMEM;
- mmaprintk(KERN_ERR
+ DBG(KERN_ERR
"l3g4200d_probe: Failed to allocate input device\n");
goto exit_input_allocate_device_failed;
}
err = input_register_device(l3g4200d->input_dev);
if (err < 0) {
- mmaprintk(KERN_ERR
+ DBG(KERN_ERR
"l3g4200d_probe: Unable to register input device: %s\n",
l3g4200d->input_dev->name);
goto exit_input_register_device_failed;
l3g4200d_device.parent = &client->dev;
err = misc_register(&l3g4200d_device);
if (err < 0) {
- mmaprintk(KERN_ERR
+ DBG(KERN_ERR
"l3g4200d_probe: mmad_device register failed\n");
goto exit_misc_device_register_l3g4200d_device_failed;
}
err = gsensor_sysfs_init();
if (err < 0) {
- mmaprintk(KERN_ERR
+ DBG(KERN_ERR
"l3g4200d_probe: gsensor sysfs init failed\n");
goto exit_gsensor_sysfs_init_failed;
}
exit_request_gpio_irq_failed:
kfree(l3g4200d);
exit_alloc_data_failed:
- mmaprintk("%s error\n",__FUNCTION__);
+ DBG("%s error\n",__FUNCTION__);
return err;
}