1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3 * Support for Intel Camera Imaging ISP subsystem.
4 * Copyright (c) 2010-2015, Intel Corporation.
5 */
6
7 #ifndef __INPUT_SYSTEM_2400_PRIVATE_H_INCLUDED__
8 #define __INPUT_SYSTEM_2400_PRIVATE_H_INCLUDED__
9
10 #include "input_system_public.h"
11
12 #include "device_access.h"
13
14 #include "assert_support.h"
15
input_system_reg_store(const input_system_ID_t ID,const hrt_address reg,const hrt_data value)16 STORAGE_CLASS_INPUT_SYSTEM_C void input_system_reg_store(
17 const input_system_ID_t ID,
18 const hrt_address reg,
19 const hrt_data value)
20 {
21 assert(ID < N_INPUT_SYSTEM_ID);
22 assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1);
23 ia_css_device_store_uint32(INPUT_SYSTEM_BASE[ID] + reg * sizeof(hrt_data),
24 value);
25 return;
26 }
27
input_system_reg_load(const input_system_ID_t ID,const hrt_address reg)28 STORAGE_CLASS_INPUT_SYSTEM_C hrt_data input_system_reg_load(
29 const input_system_ID_t ID,
30 const hrt_address reg)
31 {
32 assert(ID < N_INPUT_SYSTEM_ID);
33 assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1);
34 return ia_css_device_load_uint32(INPUT_SYSTEM_BASE[ID] + reg * sizeof(
35 hrt_data));
36 }
37
receiver_reg_store(const rx_ID_t ID,const hrt_address reg,const hrt_data value)38 STORAGE_CLASS_INPUT_SYSTEM_C void receiver_reg_store(
39 const rx_ID_t ID,
40 const hrt_address reg,
41 const hrt_data value)
42 {
43 assert(ID < N_RX_ID);
44 assert(RX_BASE[ID] != (hrt_address)-1);
45 ia_css_device_store_uint32(RX_BASE[ID] + reg * sizeof(hrt_data), value);
46 return;
47 }
48
receiver_reg_load(const rx_ID_t ID,const hrt_address reg)49 STORAGE_CLASS_INPUT_SYSTEM_C hrt_data receiver_reg_load(
50 const rx_ID_t ID,
51 const hrt_address reg)
52 {
53 assert(ID < N_RX_ID);
54 assert(RX_BASE[ID] != (hrt_address)-1);
55 return ia_css_device_load_uint32(RX_BASE[ID] + reg * sizeof(hrt_data));
56 }
57
receiver_port_reg_store(const rx_ID_t ID,const enum mipi_port_id port_ID,const hrt_address reg,const hrt_data value)58 STORAGE_CLASS_INPUT_SYSTEM_C void receiver_port_reg_store(
59 const rx_ID_t ID,
60 const enum mipi_port_id port_ID,
61 const hrt_address reg,
62 const hrt_data value)
63 {
64 assert(ID < N_RX_ID);
65 assert(port_ID < N_MIPI_PORT_ID);
66 assert(RX_BASE[ID] != (hrt_address)-1);
67 assert(MIPI_PORT_OFFSET[port_ID] != (hrt_address)-1);
68 ia_css_device_store_uint32(RX_BASE[ID] + MIPI_PORT_OFFSET[port_ID] + reg *
69 sizeof(hrt_data), value);
70 return;
71 }
72
receiver_port_reg_load(const rx_ID_t ID,const enum mipi_port_id port_ID,const hrt_address reg)73 STORAGE_CLASS_INPUT_SYSTEM_C hrt_data receiver_port_reg_load(
74 const rx_ID_t ID,
75 const enum mipi_port_id port_ID,
76 const hrt_address reg)
77 {
78 assert(ID < N_RX_ID);
79 assert(port_ID < N_MIPI_PORT_ID);
80 assert(RX_BASE[ID] != (hrt_address)-1);
81 assert(MIPI_PORT_OFFSET[port_ID] != (hrt_address)-1);
82 return ia_css_device_load_uint32(RX_BASE[ID] + MIPI_PORT_OFFSET[port_ID] + reg *
83 sizeof(hrt_data));
84 }
85
input_system_sub_system_reg_store(const input_system_ID_t ID,const sub_system_ID_t sub_ID,const hrt_address reg,const hrt_data value)86 STORAGE_CLASS_INPUT_SYSTEM_C void input_system_sub_system_reg_store(
87 const input_system_ID_t ID,
88 const sub_system_ID_t sub_ID,
89 const hrt_address reg,
90 const hrt_data value)
91 {
92 assert(ID < N_INPUT_SYSTEM_ID);
93 assert(sub_ID < N_SUB_SYSTEM_ID);
94 assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1);
95 assert(SUB_SYSTEM_OFFSET[sub_ID] != (hrt_address)-1);
96 ia_css_device_store_uint32(INPUT_SYSTEM_BASE[ID] + SUB_SYSTEM_OFFSET[sub_ID] +
97 reg * sizeof(hrt_data), value);
98 return;
99 }
100
input_system_sub_system_reg_load(const input_system_ID_t ID,const sub_system_ID_t sub_ID,const hrt_address reg)101 STORAGE_CLASS_INPUT_SYSTEM_C hrt_data input_system_sub_system_reg_load(
102 const input_system_ID_t ID,
103 const sub_system_ID_t sub_ID,
104 const hrt_address reg)
105 {
106 assert(ID < N_INPUT_SYSTEM_ID);
107 assert(sub_ID < N_SUB_SYSTEM_ID);
108 assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1);
109 assert(SUB_SYSTEM_OFFSET[sub_ID] != (hrt_address)-1);
110 return ia_css_device_load_uint32(INPUT_SYSTEM_BASE[ID] +
111 SUB_SYSTEM_OFFSET[sub_ID] + reg * sizeof(hrt_data));
112 }
113
114 #endif /* __INPUT_SYSTEM_PRIVATE_H_INCLUDED__ */
115