static int __init sec_misc_init(void)
{
	int ret=0;
	klogi("started!");
	printk("[denis]sec_misc_init!\n");

	ret = misc_register(&sec_misc_device);
	if (ret<0) {
		kloge("misc_register failed!");
		return ret;
	}

	//sec_switch_class = class_create(THIS_MODULE, "sec");
	//if (IS_ERR(sec_switch_class))
		//pr_err("Failed to create class named \"sec\"!\n");
	//sec_misc_dev = device_create(sec_class, NULL, 0, NULL, "switch");
	sec_misc_dev = device_create(sec_class, NULL, 0, NULL, "sec_misc");		//EUR
	if (IS_ERR(sec_misc_dev)) {
		kloge("failed to create device!");
		return -1;
	}

	if (device_create_file(sec_misc_dev, &dev_attr_uartsel) < 0) {
		kloge("failed to create device file!(%s)!\n", dev_attr_uartsel.attr.name);
		return -1;
	}

	if (device_create_file(sec_misc_dev, &dev_attr_usbsel) < 0) {
		kloge("failed to create device file!(%s)!\n", dev_attr_usbsel.attr.name);
		return -1;
	}

	if (device_create_file(sec_misc_dev, &dev_attr_usb_state) < 0)		//EUR
		pr_err("Failed to create device file(%s)!\n", dev_attr_usb_state.attr.name);		//EUR
	
	if (device_create_file(sec_misc_dev, &dev_attr_emmc_checksum_done) < 0)
		pr_err("failed to create device file - %s\n", dev_attr_emmc_checksum_done.attr.name);

	if (device_create_file(sec_misc_dev, &dev_attr_emmc_checksum_pass) < 0)
		pr_err("failed to create device file - %s\n", dev_attr_emmc_checksum_pass.attr.name);

	wake_lock_init(&sec_misc_wake_lock, WAKE_LOCK_SUSPEND, "sec_misc");

	p3_uart_path_init();
	p3_usb_path_init();
	p3_set_usb_path(USB_SEL_AP_USB);
	init_jig_on();
	
	return 0;
}
Exemplo n.º 2
0
static int param_init(void)
{
	int ret;

#ifdef PARAM_USE_INIT_BUFFER
	param_buf = kmalloc(PARAM_LEN, GFP_KERNEL);
	if (!param_buf) {
		kloge("Unable to alloc param_buf!");
		return -ENOMEM;
	}

	image_buf = kmalloc(IMAGE_LEN, GFP_KERNEL);
	if (!image_buf) {
		kloge("Unable to alloc image_buf!");
		kfree(param_buf);
		return -ENOMEM;
	}
#endif

#ifdef PARAM_PROCFS_DEBUG
	struct proc_dir_entry *ent;

	/* Creats '/proc/param' directory */
	param_dir = proc_mkdir("param", NULL);
	if (param_dir == NULL) {
		kloge("Unable to create /proc/param directory\n");
		return -ENOMEM;
	}

	/* Creats RW '/proc/param/sleep/debug' entry */
	ent = create_proc_entry("debug", 0, param_dir);
	if (ent == NULL) {
		kloge("Unable to create /proc/param/debug entry");
		ret = -ENOMEM;
		goto fail;
	}
	ent->read_proc = param_read_proc_debug;
	ent->write_proc = param_write_proc_debug;
#endif

	klogi("param_init");

#if 0
	ret = load_param_value();
#else
	ret = load_lfs_param_value();
#endif
	if (ret < 0) {
		kloge("Loading parameters failed. Parameters have been initialized as default.");
		param_set_default();
	}

	sec_set_param_value = set_param_value;
	sec_get_param_value = get_param_value;

	return 0;

#ifdef PARAM_PROCFS_DEBUG
fail:
	remove_proc_entry("param", 0);

#ifdef PARAM_USE_INIT_BUFFER
	kfree(param_buf);
	kfree(image_buf);
#endif
	
	return ret;
#endif
}