コード例 #1
0
static int sio_switch_probe(struct platform_device *pdev)
{
	int ret = 0;

	sio_switch_gpio_init();

	sio_switch_dev = device_create(sec_class, NULL, MKDEV(0, 0), NULL, "switch");

	if (IS_ERR(sio_switch_dev))
	{
		pr_err("Failed to create device(sio_switch)!\n");
		ret = PTR_ERR(sio_switch_dev);
		return ret;
	}

	if ((ret = device_create_file(sio_switch_dev, &dev_attr_uart_sel)) < 0)
	{
		pr_err("Failed to create device file(%s)!\n", dev_attr_uart_sel.attr.name);
		goto err_uart;
	}

	if ((ret = device_create_file(sio_switch_dev, &dev_attr_usb_sel)) < 0)
	{
		pr_err("Failed to create device file(%s)!\n", dev_attr_usb_sel.attr.name);
		goto err_usb;
	}

#ifdef _FMC_DM_
	usb_lock = device_create(sec_class, sio_switch_dev, MKDEV(0, 0), NULL, ".usb_lock");

	if (IS_ERR(usb_lock))
	{
		pr_err("Failed to create device(usb_lock)!\n");
		ret = PTR_ERR(usb_lock);
		goto err_usb;
	}

	if ((ret = device_create_file(usb_lock, &dev_attr_enable)) < 0)
	{
		pr_err("Failed to create device file(%s)!\n", dev_attr_enable.attr.name);
		device_destroy((struct class *)usb_lock, MKDEV(0, 0));
		goto err_usb;
	}
コード例 #2
0
ファイル: switch_sio.c プロジェクト: AdiPat/i9003_Kernel
static int sio_switch_probe(struct platform_device *pdev)
{
	int ret = 0;

	sio_switch_gpio_init();

	INIT_DELAYED_WORK(&sio_switch_init_work, sio_switch_init_worker);
	schedule_delayed_work(&sio_switch_init_work, msecs_to_jiffies(200));

	printk("[%s]: initialized\n", pdev->name);

	ret = sysfs_create_group(&pdev->dev.kobj, &switch_sio_group);
	if (ret) {
		dev_err(&pdev,
				"failed to create switch_sio attribute group\n");
		goto probe_err;
	}

	return 0;

probe_err:

	return ret;
}