Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
mux.h File Reference

Public API for MUX (Multiplexer) controllers. More...

#include <errno.h>
#include <stddef.h>
#include <zephyr/types.h>
#include <zephyr/device.h>
#include <zephyr/devicetree.h>
#include <zephyr/devicetree/mux.h>
#include <zephyr/sys/util.h>
#include <zephyr/syscalls/mux.h>

Go to the source code of this file.

Data Structures

struct  mux_control
 Addressing-only specifier for a single MUX control line. More...
struct  mux_state
 Addressing + default state pair for a MUX control line. More...
struct  mux_control_driver_api
 MUX controller driver API. More...

Macros

#define MUX_CONTROL_DT_SPEC_DEFINE_BY_IDX(node_id, idx)
 Define a mux_control object from a mux-controls entry.
#define MUX_CONTROL_DT_SPEC_DEFINE(node_id)
 Equivalent to MUX_CONTROL_DT_SPEC_DEFINE_BY_IDX(node_id, 0).
#define MUX_CONTROL_DT_SPEC_DEFINE_BY_NAME(node_id, name)
 Define a mux_control object by name from a mux-control-names entry.
#define MUX_STATE_DT_SPEC_DEFINE_BY_IDX(node_id, idx)
 Define a mux_state object from a mux-states entry.
#define MUX_STATE_DT_SPEC_DEFINE(node_id)
 Equivalent to MUX_STATE_DT_SPEC_DEFINE_BY_IDX(node_id, 0).
#define MUX_STATE_DT_SPEC_DEFINE_BY_NAME(node_id, name)
 Define a mux_state object by name from a mux-state-names entry.

Functions

int mux_control_set (const struct device *dev, const struct mux_control *control, uint32_t state)
 Drive a MUX control line to the given state.
int mux_state_apply (const struct device *dev, const struct mux_state *mstate)
 Apply a devicetree-defined default state to a MUX control line.
int mux_state_get (const struct device *dev, const struct mux_control *control, uint32_t *state)
 Read back the current state of a MUX control line.
int mux_control_disconnect (const struct device *dev, const struct mux_control *control)
 Physically disconnect a MUX control line.

Detailed Description

Public API for MUX (Multiplexer) controllers.