1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Support for Intel Camera Imaging ISP subsystem.
4  * Copyright (c) 2015, Intel Corporation.
5  */
6 
7 #ifndef __ISYS_STREAM2MMIO_PUBLIC_H_INCLUDED__
8 #define __ISYS_STREAM2MMIO_PUBLIC_H_INCLUDED__
9 
10 /*****************************************************
11  *
12  * Native command interface (NCI).
13  *
14  *****************************************************/
15 /**
16  * @brief Get the stream2mmio-controller state.
17  * Get the state of the stream2mmio-controller regiester-set.
18  *
19  * @param[in]	id		The global unique ID of the steeam2mmio controller.
20  * @param[out]	state	Point to the register-state.
21  */
22 STORAGE_CLASS_STREAM2MMIO_H void stream2mmio_get_state(
23     const stream2mmio_ID_t ID,
24     stream2mmio_state_t *state);
25 
26 /**
27  * @brief Get the state of the stream2mmio-controller sidess.
28  * Get the state of the register set per buf-controller sidess.
29  *
30  * @param[in]	id		The global unique ID of the steeam2mmio controller.
31  * @param[in]	sid_id		The sid ID.
32  * @param[out]	state		Point to the sid state.
33  */
34 STORAGE_CLASS_STREAM2MMIO_H void stream2mmio_get_sid_state(
35     const stream2mmio_ID_t ID,
36     const stream2mmio_sid_ID_t sid_id,
37     stream2mmio_sid_state_t *state);
38 /* end of NCI */
39 
40 /*****************************************************
41  *
42  * Device level interface (DLI).
43  *
44  *****************************************************/
45 /**
46  * @brief Load the register value.
47  * Load the value of the register of the stream2mmio-controller.
48  *
49  * @param[in]	ID	The global unique ID for the stream2mmio-controller instance.
50  * @param[in]	sid_id	The SID in question.
51  * @param[in]	reg_idx	The offset address of the register.
52  *
53  * @return the value of the register.
54  */
55 STORAGE_CLASS_STREAM2MMIO_H hrt_data stream2mmio_reg_load(
56     const stream2mmio_ID_t ID,
57     const stream2mmio_sid_ID_t sid_id,
58     const uint32_t reg_idx);
59 
60 /**
61  * @brief Dump the SID processor state.
62  * Dump the state of the sid regiester-set.
63  *
64  * @param[in]	state		Pointer to the register-state.
65  */
66 STORAGE_CLASS_STREAM2MMIO_H void stream2mmio_print_sid_state(
67     stream2mmio_sid_state_t	*state);
68 /**
69  * @brief Dump the stream2mmio state.
70  * Dump the state of the ibuf-controller regiester-set.
71  *
72  * @param[in]	id		The global unique ID of the st2mmio
73  * @param[in]	state		Pointer to the register-state.
74  */
75 STORAGE_CLASS_STREAM2MMIO_H void stream2mmio_dump_state(
76     const stream2mmio_ID_t ID,
77     stream2mmio_state_t *state);
78 /**
79  * @brief Store a value to the register.
80  * Store a value to the registe of the stream2mmio-controller.
81  *
82  * @param[in]	ID		The global unique ID for the stream2mmio-controller instance.
83  * @param[in]	reg		The offset address of the register.
84  * @param[in]	value	The value to be stored.
85  *
86  */
87 STORAGE_CLASS_STREAM2MMIO_H void stream2mmio_reg_store(
88     const stream2mmio_ID_t ID,
89     const hrt_address reg,
90     const hrt_data value);
91 /* end of DLI */
92 
93 #endif /* __ISYS_STREAM2MMIO_PUBLIC_H_INCLUDED__ */
94