コード例 #1
0
ファイル: zte_ctp.c プロジェクト: jaydenhe/X6_NX601_kernel
static int __init cyttsp5_i2c_device_init(void)
{
	int ret = 0;
    
#ifndef CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5_DEVICETREE_SUPPORT
#ifdef CYTTSP5_VIRTUAL_KEYS
    struct kobject *properties_kobj;
#endif

    pr_debug("%s: Start...\n", __func__);

    /* Register core and devices */
    cyttsp5_register_core_device(&cyttsp5_core_info);
    cyttsp5_register_device(&cyttsp5_mt_info);
    cyttsp5_register_device(&cyttsp5_btn_info);
	cyttsp5_register_device(&cyttsp5_proximity_info);

#ifdef CYTTSP5_VIRTUAL_KEYS
    properties_kobj = kobject_create_and_add("board_properties", NULL);
    if (properties_kobj)
        ret = sysfs_create_group(properties_kobj,
                &cyttsp5_properties_attr_group);
    if (!properties_kobj || ret)
        pr_err("%s: failed to create board_properties\n", __func__);
#endif
#endif

    return ret;
}
コード例 #2
0
static int __init cyttsp5_device_access_init(void)
{
	int rc = 0;
	int i, j;

	/* Check for invalid or duplicate core_ids */
	for (i = 0; i < num_core_ids; i++) {
		if (!strlen(core_ids[i])) {
			pr_err("%s: core_id %d is empty\n",
				__func__, i+1);
			return -EINVAL;
		}
		for (j = i+1; j < num_core_ids; j++)
			if (!strcmp(core_ids[i], core_ids[j])) {
				pr_err("%s: core_ids %d and %d are same\n",
					__func__, i+1, j+1);
				return -EINVAL;
			}
	}

	for (i = 0; i < num_core_ids; i++) {
		cyttsp5_device_access_infos[i].name =
			cyttsp5_device_access_name;
		cyttsp5_device_access_infos[i].core_id = core_ids[i];
		cyttsp5_device_access_infos[i].platform_data =
			&_cyttsp5_device_access_platform_data;
		pr_info("%s: Registering device access device for core_id: %s\n",
			__func__, cyttsp5_device_access_infos[i].core_id);
		rc = cyttsp5_register_device(&cyttsp5_device_access_infos[i]);
		if (rc < 0) {
			pr_err("%s: Error, failed registering device\n",
				__func__);
			goto fail_unregister_devices;
		}
	}
	rc = cyttsp5_register_driver(&cyttsp5_device_access_driver);
	if (rc) {
		pr_err("%s: Error, failed registering driver\n", __func__);
		goto fail_unregister_devices;
	}

	pr_info("%s: Cypress TTSP Device Access Driver (Built %s) rc=%d\n",
		 __func__, CY_DRIVER_DATE, rc);
	return 0;

fail_unregister_devices:
	for (i--; i <= 0; i--) {
		cyttsp5_unregister_device(cyttsp5_device_access_infos[i].name,
			cyttsp5_device_access_infos[i].core_id);
		pr_info("%s: Unregistering device access device for core_id: %s\n",
			__func__, cyttsp5_device_access_infos[i].core_id);
	}
	return rc;
}