]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blob - drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/input_system_private.h
staging/atomisp: Add support for the Intel IPU v2
[mirror_ubuntu-jammy-kernel.git] / drivers / staging / media / atomisp / pci / atomisp2 / css2400 / hive_isp_css_common / host / input_system_private.h
1 /*
2 * Support for Intel Camera Imaging ISP subsystem.
3 * Copyright (c) 2010-2015, Intel Corporation.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 */
14
15 #ifndef __INPUT_SYSTEM_PRIVATE_H_INCLUDED__
16 #define __INPUT_SYSTEM_PRIVATE_H_INCLUDED__
17
18 #include "input_system_public.h"
19
20 #include "device_access.h"
21
22 #include "assert_support.h"
23
24 STORAGE_CLASS_INPUT_SYSTEM_C void input_system_reg_store(
25 const input_system_ID_t ID,
26 const hrt_address reg,
27 const hrt_data value)
28 {
29 assert(ID < N_INPUT_SYSTEM_ID);
30 assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1);
31 ia_css_device_store_uint32(INPUT_SYSTEM_BASE[ID] + reg*sizeof(hrt_data), value);
32 return;
33 }
34
35 STORAGE_CLASS_INPUT_SYSTEM_C hrt_data input_system_reg_load(
36 const input_system_ID_t ID,
37 const hrt_address reg)
38 {
39 assert(ID < N_INPUT_SYSTEM_ID);
40 assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1);
41 return ia_css_device_load_uint32(INPUT_SYSTEM_BASE[ID] + reg*sizeof(hrt_data));
42 }
43
44 STORAGE_CLASS_INPUT_SYSTEM_C void receiver_reg_store(
45 const rx_ID_t ID,
46 const hrt_address reg,
47 const hrt_data value)
48 {
49 assert(ID < N_RX_ID);
50 assert(RX_BASE[ID] != (hrt_address)-1);
51 ia_css_device_store_uint32(RX_BASE[ID] + reg*sizeof(hrt_data), value);
52 return;
53 }
54
55 STORAGE_CLASS_INPUT_SYSTEM_C hrt_data receiver_reg_load(
56 const rx_ID_t ID,
57 const hrt_address reg)
58 {
59 assert(ID < N_RX_ID);
60 assert(RX_BASE[ID] != (hrt_address)-1);
61 return ia_css_device_load_uint32(RX_BASE[ID] + reg*sizeof(hrt_data));
62 }
63
64 STORAGE_CLASS_INPUT_SYSTEM_C void receiver_port_reg_store(
65 const rx_ID_t ID,
66 const mipi_port_ID_t port_ID,
67 const hrt_address reg,
68 const hrt_data value)
69 {
70 assert(ID < N_RX_ID);
71 assert(port_ID < N_MIPI_PORT_ID);
72 assert(RX_BASE[ID] != (hrt_address)-1);
73 assert(MIPI_PORT_OFFSET[port_ID] != (hrt_address)-1);
74 ia_css_device_store_uint32(RX_BASE[ID] + MIPI_PORT_OFFSET[port_ID] + reg*sizeof(hrt_data), value);
75 return;
76 }
77
78 STORAGE_CLASS_INPUT_SYSTEM_C hrt_data receiver_port_reg_load(
79 const rx_ID_t ID,
80 const mipi_port_ID_t port_ID,
81 const hrt_address reg)
82 {
83 assert(ID < N_RX_ID);
84 assert(port_ID < N_MIPI_PORT_ID);
85 assert(RX_BASE[ID] != (hrt_address)-1);
86 assert(MIPI_PORT_OFFSET[port_ID] != (hrt_address)-1);
87 return ia_css_device_load_uint32(RX_BASE[ID] + MIPI_PORT_OFFSET[port_ID] + reg*sizeof(hrt_data));
88 }
89
90 STORAGE_CLASS_INPUT_SYSTEM_C void input_system_sub_system_reg_store(
91 const input_system_ID_t ID,
92 const sub_system_ID_t sub_ID,
93 const hrt_address reg,
94 const hrt_data value)
95 {
96 assert(ID < N_INPUT_SYSTEM_ID);
97 assert(sub_ID < N_SUB_SYSTEM_ID);
98 assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1);
99 assert(SUB_SYSTEM_OFFSET[sub_ID] != (hrt_address)-1);
100 ia_css_device_store_uint32(INPUT_SYSTEM_BASE[ID] + SUB_SYSTEM_OFFSET[sub_ID] + reg*sizeof(hrt_data), value);
101 return;
102 }
103
104 STORAGE_CLASS_INPUT_SYSTEM_C hrt_data input_system_sub_system_reg_load(
105 const input_system_ID_t ID,
106 const sub_system_ID_t sub_ID,
107 const hrt_address reg)
108 {
109 assert(ID < N_INPUT_SYSTEM_ID);
110 assert(sub_ID < N_SUB_SYSTEM_ID);
111 assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1);
112 assert(SUB_SYSTEM_OFFSET[sub_ID] != (hrt_address)-1);
113 return ia_css_device_load_uint32(INPUT_SYSTEM_BASE[ID] + SUB_SYSTEM_OFFSET[sub_ID] + reg*sizeof(hrt_data));
114 }
115
116 #endif /* __INPUT_SYSTEM_PRIVATE_H_INCLUDED__ */