Developer World
Spresense SDK Library v3.3.0-375c679
cxd56_isx019.h
1/****************************************************************************
2 * boards/arm/cxd56xx/spresense/include/cxd56_isx019.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_ISX019_H
22#define __BOARDS_ARM_CXD56XX_SPRESENSE_INCLUDE_CXD56_ISX019_H
23
24/****************************************************************************
25 * Included Files
26 ****************************************************************************/
27
28#include <nuttx/config.h>
29#include <nuttx/video/isx019.h>
30#include <nuttx/video/video.h>
31
32/****************************************************************************
33 * Public Types
34 ****************************************************************************/
35
36#ifndef __ASSEMBLY__
37
38/****************************************************************************
39 * Public Data
40 ****************************************************************************/
41
42#undef EXTERN
43#if defined(__cplusplus)
44#define EXTERN extern "C"
45extern "C"
46{
47#else
48#define EXTERN extern
49#endif
50
51/****************************************************************************
52 * Public Function Prototypes
53 ****************************************************************************/
54
55/****************************************************************************
56 * Name: board_isx019_power_on
57 *
58 * Description:
59 * Power on ISX019
60 *
61 ****************************************************************************/
62
63int board_isx019_power_on(void);
64
65/****************************************************************************
66 * Name: board_isx019_power_off
67 *
68 * Description:
69 * Power off ISX019
70 *
71 ****************************************************************************/
72
73int board_isx019_power_off(void);
74
75/****************************************************************************
76 * Name: board_isx019_set_reset
77 *
78 * Description:
79 * Set reset ISX019
80 *
81 ****************************************************************************/
82
83void board_isx019_set_reset(void);
84
85/****************************************************************************
86 * Name: board_isx019_release_reset
87 *
88 * Description:
89 * Release reset ISX019
90 *
91 ****************************************************************************/
92
93void board_isx019_release_reset(void);
94
95/****************************************************************************
96 * Name: board_isx019_initialize
97 *
98 * Description:
99 * Initialize ISX019 i2c driver and register the ISX019 device.
100 *
101 ****************************************************************************/
102
103struct i2c_master_s *board_isx019_initialize(void);
104
105/****************************************************************************
106 * Name: board_isx019_uninitialize
107 *
108 * Description:
109 * Uninitialize ISX019 i2c driver and register the ISX019 device.
110 *
111 ****************************************************************************/
112
113int board_isx019_uninitialize(struct i2c_master_s *i2c);
114
115/****************************************************************************
116 * Name: board_isx019_get_master_clock
117 *
118 * Description:
119 * Get ISX019 master clock.
120 *
121 ****************************************************************************/
122
123uint32_t board_isx019_get_master_clock(void);
124
125#undef EXTERN
126#if defined(__cplusplus)
127}
128#endif
129
130#endif /* __ASSEMBLY__ */
131#endif /* __BOARDS_ARM_CXD56XX_SPRESENSE_INCLUDE_CXD56_ISX019_H */