Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
m5pm1.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2026 The Zephyr Project Contributors
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12
13#ifndef ZEPHYR_INCLUDE_DRIVERS_MFD_M5PM1_H_
14#define ZEPHYR_INCLUDE_DRIVERS_MFD_M5PM1_H_
15
16#include <stddef.h>
17#include <stdint.h>
18
19#include <zephyr/device.h>
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
38
49int mfd_m5pm1_read_reg(const struct device *dev, uint8_t reg, uint8_t *val);
50
61int mfd_m5pm1_write_reg(const struct device *dev, uint8_t reg, uint8_t val);
62
77int mfd_m5pm1_update_reg(const struct device *dev, uint8_t reg, uint8_t mask, uint8_t val);
78
93int mfd_m5pm1_toggle_reg(const struct device *dev, uint8_t reg, uint8_t mask);
94
112int mfd_m5pm1_burst_read(const struct device *dev, uint8_t reg, uint8_t *buf, size_t len);
113
130int mfd_m5pm1_burst_write(const struct device *dev, uint8_t reg, const uint8_t *buf, size_t len);
131
150
174int mfd_m5pm1_pin_request(const struct device *dev, const struct device *client, uint8_t pin,
175 enum m5pm1_pin_func func);
176
191int mfd_m5pm1_pin_release(const struct device *dev, const struct device *client, uint8_t pin);
192
194
195#ifdef __cplusplus
196}
197#endif
198
199#endif /* ZEPHYR_INCLUDE_DRIVERS_MFD_M5PM1_H_ */
int mfd_m5pm1_burst_write(const struct device *dev, uint8_t reg, const uint8_t *buf, size_t len)
Write multiple consecutive M5PM1 registers in a single I2C transaction.
int mfd_m5pm1_toggle_reg(const struct device *dev, uint8_t reg, uint8_t mask)
Toggle selected bits of an M5PM1 register.
int mfd_m5pm1_update_reg(const struct device *dev, uint8_t reg, uint8_t mask, uint8_t val)
Read-modify-write selected bits of an M5PM1 register.
int mfd_m5pm1_write_reg(const struct device *dev, uint8_t reg, uint8_t val)
Write a single 8-bit M5PM1 register.
m5pm1_pin_func
Semantic function of an M5PM1 multiplexed pin.
Definition m5pm1.h:143
int mfd_m5pm1_read_reg(const struct device *dev, uint8_t reg, uint8_t *val)
Read a single 8-bit M5PM1 register.
int mfd_m5pm1_burst_read(const struct device *dev, uint8_t reg, uint8_t *buf, size_t len)
Read multiple consecutive M5PM1 registers in a single I2C transaction.
int mfd_m5pm1_pin_request(const struct device *dev, const struct device *client, uint8_t pin, enum m5pm1_pin_func func)
Claim a pin for a given function on behalf of a sibling driver.
int mfd_m5pm1_pin_release(const struct device *dev, const struct device *client, uint8_t pin)
Release a pin previously claimed with mfd_m5pm1_pin_request().
@ M5PM1_PIN_FUNC_GPIO
Standard GPIO (FUNC field 0b00).
Definition m5pm1.h:144
@ M5PM1_PIN_FUNC_NEOPIXEL
NeoPixel output (FUNC field 0b11, IO0 only).
Definition m5pm1.h:148
@ M5PM1_PIN_FUNC_IRQ
IRQ input (FUNC field 0b01).
Definition m5pm1.h:145
@ M5PM1_PIN_FUNC_PWM
PWM output (FUNC field 0b11, IO3/IO4 only).
Definition m5pm1.h:147
@ M5PM1_PIN_FUNC_ADC
ADC input (FUNC field 0b11, IO1/IO2 only).
Definition m5pm1.h:146
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Runtime device structure (in ROM) per driver instance.
Definition device.h:513