Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
mbox_rpi_pico.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025 Igalia S.L.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12
13#ifndef ZEPHYR_DRIVERS_MISC_MBOX_PICO_RPI_PIO_PICO_RPI_H_
14#define ZEPHYR_DRIVERS_MISC_MBOX_PICO_RPI_PIO_PICO_RPI_H_
15
23
24#include <hardware/structs/sio.h>
25
33static inline bool rpi_pico_mbox_write_ready(sio_hw_t *const sio_block)
34{
35 return sio_block->fifo_st & SIO_FIFO_ST_RDY_BITS;
36}
37
45static inline bool rpi_pico_mbox_read_valid(sio_hw_t *const sio_block)
46{
47 return sio_block->fifo_st & SIO_FIFO_ST_VLD_BITS;
48}
49
55static inline void rpi_pico_mbox_drain(sio_hw_t *const sio_block)
56{
57 while (rpi_pico_mbox_read_valid(sio_block)) {
58 (void)sio_block->fifo_rd;
59 }
60}
61
68static inline void rpi_pico_mbox_write(sio_hw_t *const sio_block, uint32_t value)
69{
70 sio_block->fifo_wr = value;
71}
72
79static inline uint32_t rpi_pico_mbox_read(sio_hw_t *const sio_block)
80{
81 return sio_block->fifo_rd;
82}
83
87
88#endif /* ZEPHYR_DRIVERS_MISC_MBOX_PICO_RPI_PIO_PICO_RPI_H_ */
static bool rpi_pico_mbox_read_valid(sio_hw_t *const sio_block)
Check if FIFO is readable.
Definition mbox_rpi_pico.h:45
static void rpi_pico_mbox_write(sio_hw_t *const sio_block, uint32_t value)
Check if FIFO is writeable.
Definition mbox_rpi_pico.h:68
static bool rpi_pico_mbox_write_ready(sio_hw_t *const sio_block)
Check if FIFO is writeable.
Definition mbox_rpi_pico.h:33
static void rpi_pico_mbox_drain(sio_hw_t *const sio_block)
Discard pending messages in FIFO.
Definition mbox_rpi_pico.h:55
static uint32_t rpi_pico_mbox_read(sio_hw_t *const sio_block)
Check if FIFO is readable.
Definition mbox_rpi_pico.h:79
__UINT32_TYPE__ uint32_t
Definition stdint.h:90