Developer World
Spresense SDK Library v3.3.0-375c679
cxd56_i2cdev.h
1/****************************************************************************
2 * boards/arm/cxd56xx/spresense/include/cxd56_i2cdev.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_I2CDEV_H
22#define __BOARDS_ARM_CXD56XX_SPRESENSE_INCLUDE_CXD56_I2CDEV_H
23
24/****************************************************************************
25 * Included Files
26 ****************************************************************************/
27
28#include <nuttx/config.h>
29#include <stdint.h>
30
31/****************************************************************************
32 * Public Types
33 ****************************************************************************/
34
35#ifndef __ASSEMBLY__
36
37/****************************************************************************
38 * Public Data
39 ****************************************************************************/
40
41#undef EXTERN
42#if defined(__cplusplus)
43#define EXTERN extern "C"
44extern "C"
45{
46#else
47#define EXTERN extern
48#endif
49
50/****************************************************************************
51 * Public Function Prototypes
52 ****************************************************************************/
53
54/****************************************************************************
55 * Name: board_i2cdev_initialize
56 *
57 * Description:
58 * Initialize i2c driver and register the /dev/i2c device.
59 *
60 ****************************************************************************/
61
62#ifdef CONFIG_CXD56_I2C_DRIVER
63int board_i2cdev_initialize(int bus);
64#endif
65
66/****************************************************************************
67 * Name: board_i2cdev_bitbang_initialize
68 *
69 * Description:
70 * Initialize i2c bitbang driver and register as the /dev/i2c device.
71 *
72 * Input Parameters:
73 * sda_pin - The pin number used as I2C SDA signal
74 * scl_pin - The pin number used as I2C SCL signal
75 *
76 * Returned Value:
77 * OK on success; Negated errno on failure.
78 *
79 ****************************************************************************/
80
81#ifdef CONFIG_I2C_BITBANG
82int board_i2cdev_bitbang_initialize(uint32_t sda_pin, uint32_t scl_pin);
83#endif
84
85#undef EXTERN
86#if defined(__cplusplus)
87}
88#endif
89
90#endif /* __ASSEMBLY__ */
91#endif /* __BOARDS_ARM_CXD56XX_SPRESENSE_INCLUDE_CXD56_I2CDEV_H */