Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
adp5585.h
Go to the documentation of this file.
1/*
2 * Copyright 2024 NXP
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#ifndef ZEPHYR_INCLUDE_DRIVERS_MFD_ADP5585_H_
7#define ZEPHYR_INCLUDE_DRIVERS_MFD_ADP5585_H_
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13#include <zephyr/device.h>
14#define ADP5585_ID 0x00
15#define ADP5585_INT_STATUS 0x01
16#define ADP5585_STATUS 0x02
17#define ADP5585_FIFO_1 0x03
18#define ADP5585_FIFO_2 0x04
19#define ADP5585_FIFO_3 0x05
20#define ADP5585_FIFO_4 0x06
21#define ADP5585_FIFO_5 0x07
22#define ADP5585_FIFO_6 0x08
23#define ADP5585_FIFO_7 0x09
24#define ADP5585_FIFO_8 0x0A
25#define ADP5585_FIFO_9 0x0B
26#define ADP5585_FIFO_10 0x0C
27#define ADP5585_FIFO_11 0x0D
28#define ADP5585_FIFO_12 0x0E
29#define ADP5585_FIFO_13 0x0F
30#define ADP5585_FIFO_14 0x10
31#define ADP5585_FIFO_15 0x11
32#define ADP5585_FIFO_16 0x12
33#define ADP5585_GPI_INT_STAT_A 0x13
34#define ADP5585_GPI_INT_STAT_B 0x14
35#define ADP5585_GPI_STATUS_A 0x15
36#define ADP5585_GPI_STATUS_B 0x16
37#define ADP5585_RPULL_CONFIG_A 0x17
38#define ADP5585_RPULL_CONFIG_B 0x18
39#define ADP5585_RPULL_CONFIG_C 0x19
40#define ADP5585_RPULL_CONFIG_D 0x1A
41#define ADP5585_GPI_INT_LEVEL_A 0x1B
42#define ADP5585_GPI_INT_LEVEL_B 0x1C
43#define ADP5585_GPI_EVENT_EN_A 0x1D
44#define ADP5585_GPI_EVENT_EN_B 0x1E
45#define ADP5585_GPI_INTERRUPT_EN_A 0x1F
46#define ADP5585_GPI_INTERRUPT_EN_B 0x20
47#define ADP5585_DEBOUNCE_DIS_A 0x21
48#define ADP5585_DEBOUNCE_DIS_B 0x22
49#define ADP5585_GPO_DATA_OUT_A 0x23
50#define ADP5585_GPO_DATA_OUT_B 0x24
51#define ADP5585_GPO_OUT_MODE_A 0x25
52#define ADP5585_GPO_OUT_MODE_B 0x26
53#define ADP5585_GPIO_DIRECTION_A 0x27
54#define ADP5585_GPIO_DIRECTION_B 0x28
55#define ADP5585_RESET1_EVENT_A 0x29
56#define ADP5585_RESET1_EVENT_B 0x2A
57#define ADP5585_RESET1_EVENT_C 0x2B
58#define ADP5585_RESET2_EVENT_A 0x2C
59#define ADP5585_RESET2_EVENT_B 0x2D
60#define ADP5585_RESET_CFG 0x2E
61#define ADP5585_PWM_OFFT_LOW 0x2F
62#define ADP5585_PWM_OFFT_HIGH 0x30
63#define ADP5585_PWM_ONT_LOW 0x31
64#define ADP5585_PWM_ONT_HIGH 0x32
65#define ADP5585_PWM_CFG 0x33
66#define ADP5585_LOGIC_CFG 0x34
67#define ADP5585_LOGIC_FF_CFG 0x35
68#define ADP5585_LOGIC_INT_EVENT_EN 0x36
69#define ADP5585_POLL_PTIME_CFG 0x37
70#define ADP5585_PIN_CONFIG_A 0x38
71#define ADP5585_PIN_CONFIG_B 0x39
72#define ADP5585_PIN_CONFIG_C 0x3A
73#define ADP5585_GENERAL_CFG 0x3B
74#define ADP5585_INT_EN 0x3C
75
76/* ID Register */
77#define ADP5585_DEVICE_ID_MASK 0xF
78#define ADP5585_MAN_ID_MASK 0xF
79#define ADP5585_MAN_ID_SHIFT 4
80#define ADP5585_MAN_ID 0x02
81
82#define ADP5585_PWM_CFG_EN 0x1
83#define ADP5585_PWM_CFG_MODE 0x2
84#define ADP5585_PIN_CONFIG_R3_PWM 0x8
85#define ADP5585_PIN_CONFIG_R3_MASK 0xC
86#define ADP5585_GENERAL_CFG_OSC_EN 0x80
87
88/* INT_EN and INT_STATUS Register */
89#define ADP5585_INT_EVENT (1U << 0)
90#define ADP5585_INT_GPI (1U << 1)
91#define ADP5585_INT_OVERFLOW (1U << 2)
92#define ADP5585_INT_LOGIC (1U << 4)
93
94#define ADP5585_REG_MASK 0xFF
95
101
103 struct k_work work;
104 struct k_sem lock;
105 const struct device *dev;
106 struct {
107#ifdef CONFIG_GPIO_ADP5585
108 const struct device *gpio_dev;
109#endif /* CONFIG_GPIO_ADP5585 */
112};
113
118#ifdef CONFIG_GPIO_ADP5585
119void gpio_adp5585_irq_handler(const struct device *dev);
120#endif /* CONFIG_GPIO_ADP5585 */
121
122#ifdef __cplusplus
123}
124#endif
125
126#endif /* ZEPHYR_INCLUDE_DRIVERS_MFD_AD5952_H_ */
Runtime device structure (in ROM) per driver instance.
Definition device.h:403
GPIO callback structure.
Definition gpio.h:740
Container for GPIO pin information specified in devicetree.
Definition gpio.h:288
Complete I2C DT information.
Definition i2c.h:77
A structure used to submit work.
Definition kernel.h:3880
Definition adp5585.h:96
struct gpio_dt_spec nint_gpio
Definition adp5585.h:98
struct i2c_dt_spec i2c_bus
Definition adp5585.h:99
struct gpio_dt_spec reset_gpio
Definition adp5585.h:97
Definition adp5585.h:102
struct gpio_callback int_gpio_cb
Definition adp5585.h:111
struct k_sem lock
Definition adp5585.h:104
const struct device * dev
Definition adp5585.h:105
struct k_work work
Definition adp5585.h:103
struct mfd_adp5585_data::@191 child