no-OS
Loading...
Searching...
No Matches
pico_i2c.c File Reference

Implementation of pico i2c driver. More...

#include "no_os_util.h"
#include "no_os_error.h"
#include "no_os_alloc.h"
#include "pico_i2c.h"
#include "pico/stdlib.h"
Include dependency graph for pico_i2c.c:

Macros

#define PICO_I2C_MAX_INSTANCES   2U
 

Functions

int32_t pico_i2c_init (struct no_os_i2c_desc **desc, const struct no_os_i2c_init_param *param)
 Initialize the I2C communication peripheral.
 
int32_t pico_i2c_remove (struct no_os_i2c_desc *desc)
 Free the resources allocated by no_os_i2c_init().
 
int32_t pico_i2c_write (struct no_os_i2c_desc *desc, uint8_t *data, uint8_t bytes_number, uint8_t stop_bit)
 I2C write transaction as master.
 
int32_t pico_i2c_read (struct no_os_i2c_desc *desc, uint8_t *data, uint8_t bytes_number, uint8_t stop_bit)
 I2C read transaction as master.
 

Variables

const struct no_os_i2c_platform_ops pico_i2c_ops
 pico platform specific I2C platform ops structure
 

Detailed Description

Implementation of pico i2c driver.

Author
RBolboac (ramon.nosp@m.a.bo.nosp@m.lboac.nosp@m.a@an.nosp@m.alog..nosp@m.com)

Copyright 2022(c) Analog Devices, Inc.

SPDX-License-Identifier: BSD-3-Clause

Macro Definition Documentation

◆ PICO_I2C_MAX_INSTANCES

#define PICO_I2C_MAX_INSTANCES   2U

Function Documentation

◆ pico_i2c_init()

int32_t pico_i2c_init ( struct no_os_i2c_desc ** desc,
const struct no_os_i2c_init_param * param )

Initialize the I2C communication peripheral.

Parameters
desc- The I2C descriptor.
param- The structure that contains the I2C parameters.
Returns
0 in case of success, error code otherwise.

◆ pico_i2c_read()

int32_t pico_i2c_read ( struct no_os_i2c_desc * desc,
uint8_t * data,
uint8_t bytes_number,
uint8_t stop_bit )

I2C read transaction as master.

Parameters
desc- The I2C descriptor.
data- The buffer where received data is to be stored.
bytes_number- Number of bytes to receive.
stop_bit- Specifies whether to end the transaction with a stop bit.
Returns
0 in case of success, error code otherwise.

◆ pico_i2c_remove()

int32_t pico_i2c_remove ( struct no_os_i2c_desc * desc)

Free the resources allocated by no_os_i2c_init().

Parameters
desc- The I2C descriptor.
Returns
0 in case of success, error code otherwise.

◆ pico_i2c_write()

int32_t pico_i2c_write ( struct no_os_i2c_desc * desc,
uint8_t * data,
uint8_t bytes_number,
uint8_t stop_bit )

I2C write transaction as master.

Parameters
desc- The I2C descriptor.
data- The buffer with the data to transmit.
bytes_number- Number of bytes in the buffer.
stop_bit- Specifies whether to end the transaction with a stop bit.
Returns
0 in case of success, error code otherwise.

Variable Documentation

◆ pico_i2c_ops

const struct no_os_i2c_platform_ops pico_i2c_ops
Initial value:
= {
.i2c_ops_init = &pico_i2c_init,
.i2c_ops_write = &pico_i2c_write,
.i2c_ops_read = &pico_i2c_read,
.i2c_ops_remove = &pico_i2c_remove
}
int32_t pico_i2c_remove(struct no_os_i2c_desc *desc)
Free the resources allocated by no_os_i2c_init().
Definition pico_i2c.c:99
int32_t pico_i2c_init(struct no_os_i2c_desc **desc, const struct no_os_i2c_init_param *param)
Initialize the I2C communication peripheral.
Definition pico_i2c.c:39
int32_t pico_i2c_write(struct no_os_i2c_desc *desc, uint8_t *data, uint8_t bytes_number, uint8_t stop_bit)
I2C write transaction as master.
Definition pico_i2c.c:123
int32_t pico_i2c_read(struct no_os_i2c_desc *desc, uint8_t *data, uint8_t bytes_number, uint8_t stop_bit)
I2C read transaction as master.
Definition pico_i2c.c:161

pico platform specific I2C platform ops structure

pico specific I2C platform ops structure