1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Support for Intel Camera Imaging ISP subsystem.
4 * Copyright (c) 2010-2015, Intel Corporation.
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License,
8 * version 2, as published by the Free Software Foundation.
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
16 #ifndef __INPUT_SYSTEM_PRIVATE_H_INCLUDED__
17 #define __INPUT_SYSTEM_PRIVATE_H_INCLUDED__
19 #include "input_system_public.h"
21 #include "device_access.h"
23 #include "assert_support.h"
25 STORAGE_CLASS_INPUT_SYSTEM_C void input_system_reg_store(
26 const input_system_ID_t ID,
27 const hrt_address reg,
30 assert(ID < N_INPUT_SYSTEM_ID);
31 assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1);
32 ia_css_device_store_uint32(INPUT_SYSTEM_BASE[ID] + reg * sizeof(hrt_data),
37 STORAGE_CLASS_INPUT_SYSTEM_C hrt_data input_system_reg_load(
38 const input_system_ID_t ID,
39 const hrt_address reg)
41 assert(ID < N_INPUT_SYSTEM_ID);
42 assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1);
43 return ia_css_device_load_uint32(INPUT_SYSTEM_BASE[ID] + reg * sizeof(
47 STORAGE_CLASS_INPUT_SYSTEM_C void receiver_reg_store(
49 const hrt_address reg,
53 assert(RX_BASE[ID] != (hrt_address)-1);
54 ia_css_device_store_uint32(RX_BASE[ID] + reg * sizeof(hrt_data), value);
58 STORAGE_CLASS_INPUT_SYSTEM_C hrt_data receiver_reg_load(
60 const hrt_address reg)
63 assert(RX_BASE[ID] != (hrt_address)-1);
64 return ia_css_device_load_uint32(RX_BASE[ID] + reg * sizeof(hrt_data));
67 STORAGE_CLASS_INPUT_SYSTEM_C void receiver_port_reg_store(
69 const enum mipi_port_id port_ID,
70 const hrt_address reg,
74 assert(port_ID < N_MIPI_PORT_ID);
75 assert(RX_BASE[ID] != (hrt_address)-1);
76 assert(MIPI_PORT_OFFSET[port_ID] != (hrt_address)-1);
77 ia_css_device_store_uint32(RX_BASE[ID] + MIPI_PORT_OFFSET[port_ID] + reg *
78 sizeof(hrt_data), value);
82 STORAGE_CLASS_INPUT_SYSTEM_C hrt_data receiver_port_reg_load(
84 const enum mipi_port_id port_ID,
85 const hrt_address reg)
88 assert(port_ID < N_MIPI_PORT_ID);
89 assert(RX_BASE[ID] != (hrt_address)-1);
90 assert(MIPI_PORT_OFFSET[port_ID] != (hrt_address)-1);
91 return ia_css_device_load_uint32(RX_BASE[ID] + MIPI_PORT_OFFSET[port_ID] + reg *
95 STORAGE_CLASS_INPUT_SYSTEM_C void input_system_sub_system_reg_store(
96 const input_system_ID_t ID,
97 const sub_system_ID_t sub_ID,
98 const hrt_address reg,
101 assert(ID < N_INPUT_SYSTEM_ID);
102 assert(sub_ID < N_SUB_SYSTEM_ID);
103 assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1);
104 assert(SUB_SYSTEM_OFFSET[sub_ID] != (hrt_address)-1);
105 ia_css_device_store_uint32(INPUT_SYSTEM_BASE[ID] + SUB_SYSTEM_OFFSET[sub_ID] +
106 reg * sizeof(hrt_data), value);
110 STORAGE_CLASS_INPUT_SYSTEM_C hrt_data input_system_sub_system_reg_load(
111 const input_system_ID_t ID,
112 const sub_system_ID_t sub_ID,
113 const hrt_address reg)
115 assert(ID < N_INPUT_SYSTEM_ID);
116 assert(sub_ID < N_SUB_SYSTEM_ID);
117 assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1);
118 assert(SUB_SYSTEM_OFFSET[sub_ID] != (hrt_address)-1);
119 return ia_css_device_load_uint32(INPUT_SYSTEM_BASE[ID] +
120 SUB_SYSTEM_OFFSET[sub_ID] + reg * sizeof(hrt_data));
123 #endif /* __INPUT_SYSTEM_PRIVATE_H_INCLUDED__ */