static void bt532_ts_int_set_pull(bool to_up)
{
	int ret;
#if 0
	int pull = (to_up) ? NMK_GPIO_PULL_UP : NMK_GPIO_PULL_DOWN;

	ret = nmk_gpio_set_pull(TSP_INT_CODINA_R0_0, pull);
	if (ret < 0)
		printk(KERN_ERR "%s: fail to set pull xx on interrupt pin\n",
		__func__);
#endif
}
static int __devinit adp1653_probe(struct i2c_client *client,
				   const struct i2c_device_id *id)
{
	int err=0;
	struct flash_chip *flash_chip_p=NULL;
	struct adp1653_priv_data *priv_p=NULL;

	DEBUG_LOG("> adp1653_probe\n");

	priv_p = kzalloc(sizeof(struct adp1653_priv_data),GFP_KERNEL);
	if(!priv_p){
		DEBUG_LOG("Kmalloc failed for priv data\n");
		err = ENOMEM;
		goto out;
	}
	priv_p->i2c_client = client;
	flash_chip_p = kzalloc(sizeof(struct flash_chip),GFP_KERNEL);
	if(!flash_chip_p){
		DEBUG_LOG("Kmalloc failed for flash_chip_p");
		err = ENOMEM;
		goto out;
	}
	flash_chip_p->priv_data = priv_p;
	flash_chip_p->ops = &adp1653_ops;
	SET_FLASHCHIP_TYPE(flash_chip_p,FLASH_TYPE_HPLED);
	SET_FLASHCHIP_ID(flash_chip_p,ADP1653_ID);

	strncpy(flash_chip_p->name,"Adp1653",FLASH_NAME_SIZE);

	i2c_set_clientdata(client,priv_p);
	/*Request GPIO and Register IRQ if supported by platform and flash chip*/

	if(machine_is_hrefv60())
		enable_gpio = 21;
	else
		enable_gpio = 272;

	if(enable_gpio){
		err = gpio_request(enable_gpio,"Camera LED flash Enable");
		if(err){
			DEBUG_LOG("Unable to get GPIO %d, for enable\n",enable_gpio);
			goto out;
		}
		priv_p->enable_gpio = enable_gpio;

		err = gpio_direction_output(priv_p->enable_gpio,GPIO_HIGH);
		if(err){
			DEBUG_LOG("Unable to set GPIO %lu in output mode, err %d\n",priv_p->enable_gpio,err);
			gpio_free(priv_p->enable_gpio);
			goto out;
		}
		gpio_set_value(priv_p->enable_gpio,GPIO_HIGH);
	}

	if (strobe_gpio != 0)
	{
		err = gpio_request(STR_GPIO,"Camera flash strobe\n");
		if(err){
			DEBUG_LOG("Unable to request strobe GPIO\n");
			// somebody else requested this gpio ...
			//goto out;
		}

		err = gpio_direction_output(STR_GPIO,GPIO_LOW);
		if(err){
			DEBUG_LOG("Unable to set GPIO %d in output mode, err %d\n",STR_GPIO,err);
			goto out;
		}
	}
	else
	{
		err = gpio_request(STR_GPIO,"Camera flash strobe\n");
		if(err){
			DEBUG_LOG("Unable to request strobe GPIO\n");
			// somebody else requested this gpio ...
			//goto out;
		}

		err = gpio_direction_input(STR_GPIO);
		if(err){
			DEBUG_LOG("Unable to set GPIO %d in input mode, err %d\n",STR_GPIO,err);
			goto out;
		}

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
		err = nmk_gpio_set_pull(STR_GPIO, NMK_GPIO_PULL_DOWN);
#endif
		if(err){
			DEBUG_LOG("Unable to set pull down on GPIO %d\n",STR_GPIO);
			goto out;
		}

	}

	priv_p->strobe_gpio = STR_GPIO;

	if(client->irq){
		err = request_threaded_irq(client->irq,NULL,adp1653_irq_hdlr,
			IRQF_ONESHOT|IRQF_TRIGGER_FALLING,
			"Adp1653 flash",priv_p);
		if(err){
			DEBUG_LOG("Unable to register flash IRQ handler, irq %d, err %d\n",
				client->irq,err);
			goto out;
		}
	}
	err = register_flash_chip(flash_position,flash_chip_p);
	if(err){
		DEBUG_LOG("Failed to register Adp1653 as flash for %s camera\n",
			(flash_position?"Primary":"Secondary"));
		goto out;
	}
	SET_FLASH_STATUS(priv_p->status,FLASH_STATUS_READY);
	DEBUG_LOG("< adp1653_probe ok\n");
	return err;
out:
	if(priv_p->irq_no)
		free_irq(priv_p->irq_no,NULL);
	if(priv_p->enable_gpio)
		gpio_free(priv_p->enable_gpio);
	if(priv_p)
		kfree(priv_p);
	if(flash_chip_p)
		kfree(flash_chip_p);
	DEBUG_LOG("< adp1653_probe (%d)\n", err);
	return err;
}