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; }
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; }