1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2018-2021, Arm Limited and Contributors. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 #include <i2c_api.h>
9 
10 #include <mod_f_i2c.h>
11 
12 #include <fwk_id.h>
13 #include <fwk_log.h>
14 #include <fwk_module.h>
15 #include <fwk_status.h>
16 
17 static struct mod_f_i2c_api module_api = {
18     .init = i2c_construction,
19     .recv_data = f_i2c_api_recv_data,
20     .send_data = f_i2c_api_send_data,
21 };
22 
23 /*
24  * Framework handlers
25  */
26 
f_i2c_init(fwk_id_t module_id,unsigned int element_count,const void * data)27 static int f_i2c_init(
28     fwk_id_t module_id,
29     unsigned int element_count,
30     const void *data)
31 {
32     return FWK_SUCCESS;
33 }
34 
f_i2c_element_init(fwk_id_t element_id,unsigned int unused,const void * data)35 static int f_i2c_element_init(
36     fwk_id_t element_id,
37     unsigned int unused,
38     const void *data)
39 {
40     return FWK_SUCCESS;
41 }
42 
f_i2c_process_bind_request(fwk_id_t requester_id,fwk_id_t target_id,fwk_id_t api_id,const void ** api)43 static int f_i2c_process_bind_request(
44     fwk_id_t requester_id,
45     fwk_id_t target_id,
46     fwk_id_t api_id,
47     const void **api)
48 {
49     *api = &module_api;
50 
51     return FWK_SUCCESS;
52 }
53 
f_i2c_start(fwk_id_t id)54 static int f_i2c_start(fwk_id_t id)
55 {
56     return FWK_SUCCESS;
57 }
58 
59 const struct fwk_module module_f_i2c = {
60     .type = FWK_MODULE_TYPE_DRIVER,
61     .api_count = 1,
62     .init = f_i2c_init,
63     .element_init = f_i2c_element_init,
64     .start = f_i2c_start,
65     .process_bind_request = f_i2c_process_bind_request,
66 };
67