static ssize_t store_mst_ftmdrv(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t count)
{
	u64 r0 = 0, r1 = 0, r2 = 0, r3 = 0;
	char test_result[256]={0,};
	int result=0;

	sscanf(buf, "%88s\n", test_result);
	printk(KERN_ERR "MST Store test result : %s\n", test_result);

/*
#if defined(CONFIG_MST_NOBLE_TARGET) || defined(CONFIG_MST_ZEN_TARGET)
	printk("[MST] Data Value : %d, %d, %d, %d\n", mst_en, mst_pd, mst_md, mst_phase_en);
#else
	printk("[MST] Data Value : %d, %d, %d\n", mst_en, mst_pd, mst_md);
#endif
*/

	switch(test_result[0]){
		case '1':
			of_mst_hw_onoff(1);
			printk(KERN_INFO "%s\n", __func__);
			printk(KERN_INFO "MST_FTM_DRV]]] Track1 data transmit\n");
			//Will Add here
			r0 = (0x8300000f);
			r1 = 1;
			result = exynos_smc(r0, r1, r2, r3);
			if(result == 0){
				printk(KERN_INFO "MST_FTM_DRV]]] Track1 data sent : %d\n", result);
			}else if(result == -1){
				printk(KERN_INFO "MST_FTM_DRV]]] Invalid Track number : %d\n", result);
			}else{
				printk(KERN_INFO "MST_FTM_DRV]]] Invalid SMC return : %d\n", result);
			}	
			of_mst_hw_onoff(0);
			break;
	
		case '2':
			of_mst_hw_onoff(1);
			printk(KERN_INFO "%s\n", __func__);
			printk(KERN_INFO "MST_FTM_DRV]]] Track2 data transmit\n");
			//Will Add here
			r0 = (0x8300000f);
			r1 = 2;
			result = exynos_smc(r0, r1, r2, r3);
			if(result == 0){
				printk(KERN_INFO "MST_FTM_DRV]]] Track1 data sent : %d\n", result);
			}else if(result == -1){
				printk(KERN_INFO "MST_FTM_DRV]]] Invalid Track number : %d\n", result);
			}else{
				printk(KERN_INFO "MST_FTM_DRV]]] Invalid SMC return : %d\n", result);
			}
			of_mst_hw_onoff(0);
			break;
				
		case '3':
#if 0			
			case_i = 1;
			printk("MST send track1 data, case_i : %d\n", case_i);
			if (transmit_mst_data(case_i)) {
				printk("track1 data is sent\n");
			}

			mdelay(300);
			
			case_i = 2; 
			printk("MST send track2 data, case_i : %d\n", case_i);
			if (transmit_mst_data(case_i)) {
				printk("track2 data is sent\n");
			}
#endif
			break;

		case '4':
			if(escape_loop){
				wake_lock_init(&mst_wakelock, WAKE_LOCK_SUSPEND, "mst_wakelock");
				wake_lock(&mst_wakelock);
			}
			escape_loop = 0;
			while( 1 ) {
				if(escape_loop == 1)
					break;
				of_mst_hw_onoff(1);
				mdelay(10);
				printk("MST_FTM_DRV]]] Track2 data transmit to infinity\n");
				r0 = (0x8300000f);
				r1 = 2;
				result = exynos_smc(r0, r1, r2, r3);
				printk(KERN_INFO "MST_FTM_DRV]]] Track2 data transmit to infinity after smc : %d\n", result);
				of_mst_hw_onoff(0);
				mdelay(1000);
			}

			break;

		case '5':
			if(!escape_loop)
				wake_lock_destroy(&mst_wakelock);
			escape_loop = 1;
			printk("MST escape_loop value = 1\n");
			break;

		case '6':
			of_mst_hw_onoff(1);
			printk(KERN_INFO "%s\n", __func__);
			printk(KERN_INFO "MST_LDO_DRV]]] Track3 data transmit\n");
			//Will Add here
			r0 = (0x8300000f);
			r1 = 3;
			result = exynos_smc(r0, r1, r2, r3);
			printk(KERN_INFO "MST_LDO_DRV]]] Track3 data sent : %d\n", result);
			of_mst_hw_onoff(0);
			break;

		default:
			printk("MST data send failed\n");
			break;
	}

	of_mst_hw_onoff(0);

	return count;
}
static ssize_t store_mst_drv(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t count)
{
	u64 r0 = 0, r1 = 0, r2 = 0, r3 = 0;
	char test_result[256]={0,};
	int result=0;
	
	sscanf(buf, "%20s\n", test_result);
	printk(KERN_ERR "MST Store test result : %s\n", test_result);

	switch(test_result[0]){
		case '1':
			of_mst_hw_onoff(1);
			break;
			
		case '0':
			of_mst_hw_onoff(0);
			break;
			
		case '2':
			of_mst_hw_onoff(1);
			printk(KERN_INFO "%s\n", __func__);
			printk(KERN_INFO "MST_LDO_DRV]]] Track1 data transmit\n");
			//Will Add here
			r0 = (0x8300000f);
			r1 = 1;
			result = exynos_smc(r0, r1, r2, r3);
			printk(KERN_INFO "MST_LDO_DRV]]] Track1 data sent : %d\n", result);
			of_mst_hw_onoff(0);
			break;
			
		case '3':
			of_mst_hw_onoff(1);
			printk(KERN_INFO "%s\n", __func__);
			printk(KERN_INFO "MST_LDO_DRV]]] Track2 data transmit\n");
			//Will Add here
			r0 = (0x8300000f);
			r1 = 2;
			result = exynos_smc(r0, r1, r2, r3);
			printk(KERN_INFO "MST_LDO_DRV]]] Track2 data sent : %d\n", result);
			of_mst_hw_onoff(0);
			break;

		case '4':
			if(escape_loop){
				wake_lock_init(&mst_wakelock, WAKE_LOCK_SUSPEND, "mst_wakelock");
				wake_lock(&mst_wakelock);
			}
			escape_loop = 0;
			while( 1 ) {
				if(escape_loop == 1)
					break;
				of_mst_hw_onoff(1);
				mdelay(10);
				printk("MST_LDO_DRV]]] Track2 data transmit to infinity until stop button pushed\n");
				r0 = (0x8300000f);
				r1 = 2;
				result = exynos_smc(r0, r1, r2, r3);
				printk(KERN_INFO "MST_LDO_DRV]]] Track2 data transmit to infinity after smc : %d\n", result);
				of_mst_hw_onoff(0);
				mdelay(1000);
			}
			break;

		case '5':
			if(!escape_loop)
				wake_lock_destroy(&mst_wakelock);
			escape_loop = 1;
			printk("MST escape_loop value = 1\n");
			break;

		default:
			printk(KERN_ERR "MST invalid value : %s\n", test_result);
			break;
	}
	
	return count;
}