Developer World
Spresense SDK Library v3.3.0-375c679
cxd56_isx012.h
1/****************************************************************************
2 * boards/arm/cxd56xx/spresense/include/cxd56_isx012.h
3 *
4 * Licensed to the Apache Software Foundation (ASF) under one or more
5 * contributor license agreements. See the NOTICE file distributed with
6 * this work for additional information regarding copyright ownership. The
7 * ASF licenses this file to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance with the
9 * License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
15 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
16 * License for the specific language governing permissions and limitations
17 * under the License.
18 *
19 ****************************************************************************/
20
21#ifndef __BOARDS_ARM_CXD56XX_SPRESENSE_INCLUDE_CXD56_ISX012_H
22#define __BOARDS_ARM_CXD56XX_SPRESENSE_INCLUDE_CXD56_ISX012_H
23
24/****************************************************************************
25 * Included Files
26 ****************************************************************************/
27
28#include <nuttx/config.h>
29#include <nuttx/video/isx012.h>
30#include <nuttx/video/video.h>
31#include <nuttx/i2c/i2c_master.h>
32
33/****************************************************************************
34 * Public Types
35 ****************************************************************************/
36
37#ifndef __ASSEMBLY__
38
39/****************************************************************************
40 * Public Data
41 ****************************************************************************/
42
43#undef EXTERN
44#if defined(__cplusplus)
45#define EXTERN extern "C"
46extern "C"
47{
48#else
49#define EXTERN extern
50#endif
51
52/****************************************************************************
53 * Public Function Prototypes
54 ****************************************************************************/
55
56/****************************************************************************
57 * Name: board_isx012_power_on
58 *
59 * Description:
60 * Power on ISX012
61 *
62 ****************************************************************************/
63
64int board_isx012_power_on(void);
65
66/****************************************************************************
67 * Name: board_isx012_power_off
68 *
69 * Description:
70 * Power off ISX012
71 *
72 ****************************************************************************/
73
74int board_isx012_power_off(void);
75
76/****************************************************************************
77 * Name: board_isx012_set_reset
78 *
79 * Description:
80 * Set reset ISX012
81 *
82 ****************************************************************************/
83
84void board_isx012_set_reset(void);
85
86/****************************************************************************
87 * Name: board_isx012_release_reset
88 *
89 * Description:
90 * Release reset ISX012
91 *
92 ****************************************************************************/
93
94void board_isx012_release_reset(void);
95
96/****************************************************************************
97 * Name: board_isx012_set_sleep
98 *
99 * Description:
100 * Set sleep ISX012
101 *
102 ****************************************************************************/
103
104void board_isx012_set_sleep(int kind);
105
106/****************************************************************************
107 * Name: board_isx012_release_sleep
108 *
109 * Description:
110 * Release sleep ISX012
111 *
112 ****************************************************************************/
113
114void board_isx012_release_sleep(void);
115
116/****************************************************************************
117 * Name: board_isx012_initialize
118 *
119 * Description:
120 * Initialize ISX012 i2c driver and register the ISX012 device.
121 *
122 ****************************************************************************/
123
124struct i2c_master_s *board_isx012_initialize(void);
125
126/****************************************************************************
127 * Name: board_isx012_uninitialize
128 *
129 * Description:
130 * Uninitialize ISX012 i2c driver and register the ISX012 device.
131 *
132 ****************************************************************************/
133
134int board_isx012_uninitialize(struct i2c_master_s *i2c);
135
136#undef EXTERN
137#if defined(__cplusplus)
138}
139#endif
140
141#endif /* __ASSEMBLY__ */
142#endif /* __BOARDS_ARM_CXD56XX_SPRESENSE_INCLUDE_CXD56_ISX012_H */