Loading...
Searching...
No Matches
gp8xxx_params.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2025 Bas Stottelaar <basstottelaar@gmail.com>
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
17
18#include "board.h"
19
20#include "saul_reg.h"
21
22#include "gp8xxx.h"
23#include "gp8xxx_constants.h"
24#include "gp8xxx_info.h"
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
34#ifdef MODULE_GP8503
35# ifndef GP8503_PARAM_I2C_DEV
36# define GP8503_PARAM_I2C_DEV I2C_DEV(0)
37# endif
38# ifndef GP8503_PARAM_ADDR
39# define GP8503_PARAM_ADDR (0x5f)
40# endif
41# ifndef GP8503_PARAM_RANGE
42# define GP8503_PARAM_RANGE GP8XXX_OUTPUT_RANGE_2_5V
43# endif
44
45# ifndef GP8503_PARAMS
46# define GP8503_PARAMS { .i2c_dev = GP8503_PARAM_I2C_DEV, \
47 .address = GP8503_PARAM_ADDR, \
48 .range = GP8503_PARAM_RANGE, \
49 .info = &gp8503_info }
50# endif
51
52# ifndef GP8503_SAUL_PARAMS
53# define GP8503_SAUL_PARAMS { .name = "gp8503-0" }, \
54 { .name = "gp8503-1" }
55# endif
56#endif /* MODULE_GP8503 */
57
58#ifdef MODULE_GP8512
59# ifndef GP8512_PARAM_I2C_DEV
60# define GP8512_PARAM_I2C_DEV I2C_DEV(0)
61# endif
62# ifndef GP8512_PARAM_ADDR
63# define GP8512_PARAM_ADDR (0x5f)
64# endif
65# ifndef GP8512_PARAM_RANGE
66# define GP8512_PARAM_RANGE GP8XXX_OUTPUT_RANGE_2_5V
67# endif
68
69# ifndef GP8512_PARAMS
70# define GP8512_PARAMS { .i2c_dev = GP8512_PARAM_I2C_DEV, \
71 .address = GP8512_PARAM_ADDR, \
72 .range = GP8512_PARAM_RANGE, \
73 .info = &gp8512_info }
74# endif
75
76# ifndef GP8512_SAUL_PARAMS
77# define GP8512_SAUL_PARAMS { .name = "gp8512-0" }
78# endif
79#endif /* MODULE_GP8512 */
80
81#ifdef MODULE_GP8403
82# ifndef GP8403_PARAM_I2C_DEV
83# define GP8403_PARAM_I2C_DEV I2C_DEV(0)
84# endif
85# ifndef GP8403_PARAM_ADDR
86# define GP8403_PARAM_ADDR (0x5f)
87# endif
88# ifndef GP8403_PARAM_RANGE
89# define GP8403_PARAM_RANGE GP8XXX_OUTPUT_RANGE_10V
90# endif
91
92# ifndef GP8403_PARAMS
93# define GP8403_PARAMS { .i2c_dev = GP8403_PARAM_I2C_DEV, \
94 .address = GP8403_PARAM_ADDR, \
95 .range = GP8403_PARAM_RANGE, \
96 .info = &gp8403_info }
97# endif
98
99# ifndef GP8403_SAUL_PARAMS
100# define GP8403_SAUL_PARAMS { .name = "gp8403-0" }, \
101 { .name = "gp8403-1" }
102# endif
103#endif /* MODULE_GP8403 */
104
105#ifdef MODULE_GP8413
106# ifndef GP8413_PARAM_I2C_DEV
107# define GP8413_PARAM_I2C_DEV I2C_DEV(0)
108# endif
109# ifndef GP8413_PARAM_ADDR
110# define GP8413_PARAM_ADDR (0x5f)
111# endif
112# ifndef GP8413_PARAM_RANGE
113# define GP8413_PARAM_RANGE GP8XXX_OUTPUT_RANGE_10V
114# endif
115
116# ifndef GP8413_PARAMS
117# define GP8413_PARAMS { .i2c_dev = GP8413_PARAM_I2C_DEV, \
118 .address = GP8413_PARAM_ADDR, \
119 .range = GP8413_PARAM_RANGE, \
120 .info = &gp8413_info }
121# endif
122
123# ifndef GP8413_SAUL_PARAMS
124# define GP8413_SAUL_PARAMS { .name = "gp8413-0" }, \
125 { .name = "gp8413-1" }
126# endif
127#endif /* MODULE_GP8413 */
128
129#ifdef MODULE_GP8211S
130# ifndef GP8211S_PARAM_I2C_DEV
131# define GP8211S_PARAM_I2C_DEV I2C_DEV(0)
132# endif
133# ifndef GP8211S_PARAM_ADDR
134# define GP8211S_PARAM_ADDR (0x5f)
135# endif
136# ifndef GP8211S_PARAM_RANGE
137# define GP8211S_PARAM_RANGE GP8XXX_OUTPUT_RANGE_10V
138# endif
139
140# ifndef GP8211S_PARAMS
141# define GP8211S_PARAMS { .i2c_dev = GP8211S_PARAM_I2C_DEV, \
142 .address = GP8211S_PARAM_ADDR, \
143 .range = GP8211S_PARAM_RANGE, \
144 .info = &gp8211s_info }
145# endif
146
147# ifndef GP8211S_SAUL_PARAMS
148# define GP8211S_SAUL_PARAMS { .name = "gp8211s-0" }
149# endif
150#endif /* MODULE_GP8211S */
151
152#ifdef MODULE_GP8302
153# ifndef GP8302_PARAM_I2C_DEV
154# define GP8302_PARAM_I2C_DEV I2C_DEV(0)
155# endif
156# ifndef GP8302_PARAM_ADDR
157# define GP8302_PARAM_ADDR (0x58)
158# endif
159
160# ifndef GP8302_PARAMS
161# define GP8302_PARAMS { .i2c_dev = GP8302_PARAM_I2C_DEV, \
162 .address = GP8302_PARAM_ADDR, \
163 .info = &gp8302_info }
164# endif
165
166# ifndef GP8302_SAUL_PARAMS
167# define GP8302_SAUL_PARAMS { .name = "gp8302-0" }
168# endif
169#endif /* MODULE_GP8302 */
171
176{
177#if MODULE_GP8503
178 GP8503_PARAMS,
179#endif
180#if MODULE_GP8512
181 GP8512_PARAMS,
182#endif
183#if MODULE_GP8211S
184 GP8211S_PARAMS,
185#endif
186#if MODULE_GP8403
187 GP8403_PARAMS,
188#endif
189#if MODULE_GP8413
190 GP8413_PARAMS,
191#endif
192#if MODULE_GP8302
193 GP8302_PARAMS,
194#endif
195};
196
204{
205#if MODULE_GP8503
206 GP8503_SAUL_PARAMS,
207#endif
208#if MODULE_GP8512
209 GP8512_SAUL_PARAMS,
210#endif
211#if MODULE_GP8211S
212 GP8211S_SAUL_PARAMS,
213#endif
214#if MODULE_GP8403
215 GP8403_SAUL_PARAMS,
216#endif
217#if MODULE_GP8413
218 GP8413_SAUL_PARAMS,
219#endif
220#if MODULE_GP8302
221 GP8302_SAUL_PARAMS,
222#endif
223};
224
225#ifdef __cplusplus
226}
227#endif
228
Internal addresses, registers and constants.
Definitions of the Guestgood GP8xxx I2C DACs.
static const gp8xxx_params_t gp8xxx_params[]
Configuration struct.
static const saul_reg_info_t gp8xxx_saul_info[]
Configure SAUL registry entries.
SAUL registry interface definition.
Device initialization parameters.
Definition gp8xxx.h:85
Additional data to collect for each entry.
Definition saul_reg.h:48