summaryrefslogtreecommitdiffstats
path: root/bsps/arm/atsam/include/bsp/atsam-i2c.h
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/arm/atsam/include/bsp/atsam-i2c.h')
-rw-r--r--bsps/arm/atsam/include/bsp/atsam-i2c.h63
1 files changed, 32 insertions, 31 deletions
diff --git a/bsps/arm/atsam/include/bsp/atsam-i2c.h b/bsps/arm/atsam/include/bsp/atsam-i2c.h
index ae0fe97584..9c6ad859dd 100644
--- a/bsps/arm/atsam/include/bsp/atsam-i2c.h
+++ b/bsps/arm/atsam/include/bsp/atsam-i2c.h
@@ -1,15 +1,28 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
/*
- * Copyright (c) 2016 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2016 embedded brains GmbH & Co. KG
*
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <info@embedded-brains.de>
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_ARM_ATSAM_ATSAM_I2C_H
@@ -28,35 +41,23 @@ extern "C" {
#define TWI_AMOUNT_PINS 2
-typedef enum {
- TX_SEND_DATA,
- TX_SEND_STOP,
- TX_CONT_MESSAGE_NEEDED,
- RX_SEND_DATA,
- RX_SEND_STOP,
- RX_CONT_MESSAGE_NEEDED,
- TX_RX_STOP_SENT
-}transfer_state;
-
-typedef struct {
- uint8_t status;
- uint8_t *data;
- bool stop_request;
- uint32_t data_size;
- uint32_t already_transferred;
- transfer_state trans_state;
-} transfer_desc;
-
typedef struct {
i2c_bus base;
- i2c_msg *msgs;
Twihs *regs;
- transfer_desc trans_desc;
+
+ /* First message and number of messages that have to be processed. */
+ i2c_msg *msgs;
uint32_t msg_todo;
+
+ /* Information about the current transfer. */
+ bool stop_request;
uint32_t current_msg_todo;
uint8_t *current_msg_byte;
+
+ /* Error information that can be returned to the task */
+ uint32_t err;
+
uint32_t output_clock;
- bool read;
rtems_binary_semaphore sem;
rtems_vector_number irq;
} atsam_i2c_bus;