Software APIs
pwm_regs.h
Go to the documentation of this file.
1/**
2 * @file
3 * @brief Generated register defines for pwm
4 */
5
6// Copyright information found in source file:
7// Copyright lowRISC contributors (OpenTitan project).
8
9// Licensing information found in source file:
10// Licensed under the Apache License, Version 2.0, see LICENSE for details.
11// SPDX-License-Identifier: Apache-2.0
12
13#ifndef _PWM_REG_DEFS_
14#define _PWM_REG_DEFS_
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19// Number of PWM outputs
20#define PWM_PARAM_N_OUTPUTS 6
21
22// Number of alerts
23#define PWM_PARAM_NUM_ALERTS 1
24
25// Register width
26#define PWM_PARAM_REG_WIDTH 32
27
28// Alert Test Register
29#define PWM_ALERT_TEST_REG_OFFSET 0x0
30#define PWM_ALERT_TEST_REG_RESVAL 0x0u
31#define PWM_ALERT_TEST_FATAL_FAULT_BIT 0
32
33// Register write enable for all control registers
34#define PWM_REGWEN_REG_OFFSET 0x4
35#define PWM_REGWEN_REG_RESVAL 0x1u
36#define PWM_REGWEN_REGWEN_BIT 0
37
38// Configuration register
39#define PWM_CFG_REG_OFFSET 0x8
40#define PWM_CFG_REG_RESVAL 0x38008000u
41#define PWM_CFG_CLK_DIV_MASK 0x7ffffffu
42#define PWM_CFG_CLK_DIV_OFFSET 0
43#define PWM_CFG_CLK_DIV_FIELD \
44 ((bitfield_field32_t) { .mask = PWM_CFG_CLK_DIV_MASK, .index = PWM_CFG_CLK_DIV_OFFSET })
45#define PWM_CFG_DC_RESN_MASK 0xfu
46#define PWM_CFG_DC_RESN_OFFSET 27
47#define PWM_CFG_DC_RESN_FIELD \
48 ((bitfield_field32_t) { .mask = PWM_CFG_DC_RESN_MASK, .index = PWM_CFG_DC_RESN_OFFSET })
49#define PWM_CFG_CNTR_EN_BIT 31
50
51// Enable PWM operation for each channel (common parameters)
52#define PWM_PWM_EN_EN_FIELD_WIDTH 1
53#define PWM_PWM_EN_MULTIREG_COUNT 1
54
55// Enable PWM operation for each channel
56#define PWM_PWM_EN_REG_OFFSET 0xc
57#define PWM_PWM_EN_REG_RESVAL 0x0u
58#define PWM_PWM_EN_EN_0_BIT 0
59#define PWM_PWM_EN_EN_1_BIT 1
60#define PWM_PWM_EN_EN_2_BIT 2
61#define PWM_PWM_EN_EN_3_BIT 3
62#define PWM_PWM_EN_EN_4_BIT 4
63#define PWM_PWM_EN_EN_5_BIT 5
64
65// Invert the PWM output for each channel (common parameters)
66#define PWM_INVERT_INVERT_FIELD_WIDTH 1
67#define PWM_INVERT_MULTIREG_COUNT 1
68
69// Invert the PWM output for each channel
70#define PWM_INVERT_REG_OFFSET 0x10
71#define PWM_INVERT_REG_RESVAL 0x0u
72#define PWM_INVERT_INVERT_0_BIT 0
73#define PWM_INVERT_INVERT_1_BIT 1
74#define PWM_INVERT_INVERT_2_BIT 2
75#define PWM_INVERT_INVERT_3_BIT 3
76#define PWM_INVERT_INVERT_4_BIT 4
77#define PWM_INVERT_INVERT_5_BIT 5
78
79// Basic PWM Channel Parameters (common parameters)
80#define PWM_PWM_PARAM_PHASE_DELAY_FIELD_WIDTH 16
81#define PWM_PWM_PARAM_HTBT_EN_FIELD_WIDTH 1
82#define PWM_PWM_PARAM_BLINK_EN_FIELD_WIDTH 1
83#define PWM_PWM_PARAM_MULTIREG_COUNT 6
84
85// Basic PWM Channel Parameters
86#define PWM_PWM_PARAM_0_REG_OFFSET 0x14
87#define PWM_PWM_PARAM_0_REG_RESVAL 0x0u
88#define PWM_PWM_PARAM_0_PHASE_DELAY_0_MASK 0xffffu
89#define PWM_PWM_PARAM_0_PHASE_DELAY_0_OFFSET 0
90#define PWM_PWM_PARAM_0_PHASE_DELAY_0_FIELD \
91 ((bitfield_field32_t) { .mask = PWM_PWM_PARAM_0_PHASE_DELAY_0_MASK, .index = PWM_PWM_PARAM_0_PHASE_DELAY_0_OFFSET })
92#define PWM_PWM_PARAM_0_HTBT_EN_0_BIT 30
93#define PWM_PWM_PARAM_0_BLINK_EN_0_BIT 31
94
95// Basic PWM Channel Parameters
96#define PWM_PWM_PARAM_1_REG_OFFSET 0x18
97#define PWM_PWM_PARAM_1_REG_RESVAL 0x0u
98#define PWM_PWM_PARAM_1_PHASE_DELAY_1_MASK 0xffffu
99#define PWM_PWM_PARAM_1_PHASE_DELAY_1_OFFSET 0
100#define PWM_PWM_PARAM_1_PHASE_DELAY_1_FIELD \
101 ((bitfield_field32_t) { .mask = PWM_PWM_PARAM_1_PHASE_DELAY_1_MASK, .index = PWM_PWM_PARAM_1_PHASE_DELAY_1_OFFSET })
102#define PWM_PWM_PARAM_1_HTBT_EN_1_BIT 30
103#define PWM_PWM_PARAM_1_BLINK_EN_1_BIT 31
104
105// Basic PWM Channel Parameters
106#define PWM_PWM_PARAM_2_REG_OFFSET 0x1c
107#define PWM_PWM_PARAM_2_REG_RESVAL 0x0u
108#define PWM_PWM_PARAM_2_PHASE_DELAY_2_MASK 0xffffu
109#define PWM_PWM_PARAM_2_PHASE_DELAY_2_OFFSET 0
110#define PWM_PWM_PARAM_2_PHASE_DELAY_2_FIELD \
111 ((bitfield_field32_t) { .mask = PWM_PWM_PARAM_2_PHASE_DELAY_2_MASK, .index = PWM_PWM_PARAM_2_PHASE_DELAY_2_OFFSET })
112#define PWM_PWM_PARAM_2_HTBT_EN_2_BIT 30
113#define PWM_PWM_PARAM_2_BLINK_EN_2_BIT 31
114
115// Basic PWM Channel Parameters
116#define PWM_PWM_PARAM_3_REG_OFFSET 0x20
117#define PWM_PWM_PARAM_3_REG_RESVAL 0x0u
118#define PWM_PWM_PARAM_3_PHASE_DELAY_3_MASK 0xffffu
119#define PWM_PWM_PARAM_3_PHASE_DELAY_3_OFFSET 0
120#define PWM_PWM_PARAM_3_PHASE_DELAY_3_FIELD \
121 ((bitfield_field32_t) { .mask = PWM_PWM_PARAM_3_PHASE_DELAY_3_MASK, .index = PWM_PWM_PARAM_3_PHASE_DELAY_3_OFFSET })
122#define PWM_PWM_PARAM_3_HTBT_EN_3_BIT 30
123#define PWM_PWM_PARAM_3_BLINK_EN_3_BIT 31
124
125// Basic PWM Channel Parameters
126#define PWM_PWM_PARAM_4_REG_OFFSET 0x24
127#define PWM_PWM_PARAM_4_REG_RESVAL 0x0u
128#define PWM_PWM_PARAM_4_PHASE_DELAY_4_MASK 0xffffu
129#define PWM_PWM_PARAM_4_PHASE_DELAY_4_OFFSET 0
130#define PWM_PWM_PARAM_4_PHASE_DELAY_4_FIELD \
131 ((bitfield_field32_t) { .mask = PWM_PWM_PARAM_4_PHASE_DELAY_4_MASK, .index = PWM_PWM_PARAM_4_PHASE_DELAY_4_OFFSET })
132#define PWM_PWM_PARAM_4_HTBT_EN_4_BIT 30
133#define PWM_PWM_PARAM_4_BLINK_EN_4_BIT 31
134
135// Basic PWM Channel Parameters
136#define PWM_PWM_PARAM_5_REG_OFFSET 0x28
137#define PWM_PWM_PARAM_5_REG_RESVAL 0x0u
138#define PWM_PWM_PARAM_5_PHASE_DELAY_5_MASK 0xffffu
139#define PWM_PWM_PARAM_5_PHASE_DELAY_5_OFFSET 0
140#define PWM_PWM_PARAM_5_PHASE_DELAY_5_FIELD \
141 ((bitfield_field32_t) { .mask = PWM_PWM_PARAM_5_PHASE_DELAY_5_MASK, .index = PWM_PWM_PARAM_5_PHASE_DELAY_5_OFFSET })
142#define PWM_PWM_PARAM_5_HTBT_EN_5_BIT 30
143#define PWM_PWM_PARAM_5_BLINK_EN_5_BIT 31
144
145// Controls the duty_cycle of each channel. (common parameters)
146#define PWM_DUTY_CYCLE_A_FIELD_WIDTH 16
147#define PWM_DUTY_CYCLE_B_FIELD_WIDTH 16
148#define PWM_DUTY_CYCLE_MULTIREG_COUNT 6
149
150// Controls the duty_cycle of each channel.
151#define PWM_DUTY_CYCLE_0_REG_OFFSET 0x2c
152#define PWM_DUTY_CYCLE_0_REG_RESVAL 0x7fff7fffu
153#define PWM_DUTY_CYCLE_0_A_0_MASK 0xffffu
154#define PWM_DUTY_CYCLE_0_A_0_OFFSET 0
155#define PWM_DUTY_CYCLE_0_A_0_FIELD \
156 ((bitfield_field32_t) { .mask = PWM_DUTY_CYCLE_0_A_0_MASK, .index = PWM_DUTY_CYCLE_0_A_0_OFFSET })
157#define PWM_DUTY_CYCLE_0_B_0_MASK 0xffffu
158#define PWM_DUTY_CYCLE_0_B_0_OFFSET 16
159#define PWM_DUTY_CYCLE_0_B_0_FIELD \
160 ((bitfield_field32_t) { .mask = PWM_DUTY_CYCLE_0_B_0_MASK, .index = PWM_DUTY_CYCLE_0_B_0_OFFSET })
161
162// Controls the duty_cycle of each channel.
163#define PWM_DUTY_CYCLE_1_REG_OFFSET 0x30
164#define PWM_DUTY_CYCLE_1_REG_RESVAL 0x7fff7fffu
165#define PWM_DUTY_CYCLE_1_A_1_MASK 0xffffu
166#define PWM_DUTY_CYCLE_1_A_1_OFFSET 0
167#define PWM_DUTY_CYCLE_1_A_1_FIELD \
168 ((bitfield_field32_t) { .mask = PWM_DUTY_CYCLE_1_A_1_MASK, .index = PWM_DUTY_CYCLE_1_A_1_OFFSET })
169#define PWM_DUTY_CYCLE_1_B_1_MASK 0xffffu
170#define PWM_DUTY_CYCLE_1_B_1_OFFSET 16
171#define PWM_DUTY_CYCLE_1_B_1_FIELD \
172 ((bitfield_field32_t) { .mask = PWM_DUTY_CYCLE_1_B_1_MASK, .index = PWM_DUTY_CYCLE_1_B_1_OFFSET })
173
174// Controls the duty_cycle of each channel.
175#define PWM_DUTY_CYCLE_2_REG_OFFSET 0x34
176#define PWM_DUTY_CYCLE_2_REG_RESVAL 0x7fff7fffu
177#define PWM_DUTY_CYCLE_2_A_2_MASK 0xffffu
178#define PWM_DUTY_CYCLE_2_A_2_OFFSET 0
179#define PWM_DUTY_CYCLE_2_A_2_FIELD \
180 ((bitfield_field32_t) { .mask = PWM_DUTY_CYCLE_2_A_2_MASK, .index = PWM_DUTY_CYCLE_2_A_2_OFFSET })
181#define PWM_DUTY_CYCLE_2_B_2_MASK 0xffffu
182#define PWM_DUTY_CYCLE_2_B_2_OFFSET 16
183#define PWM_DUTY_CYCLE_2_B_2_FIELD \
184 ((bitfield_field32_t) { .mask = PWM_DUTY_CYCLE_2_B_2_MASK, .index = PWM_DUTY_CYCLE_2_B_2_OFFSET })
185
186// Controls the duty_cycle of each channel.
187#define PWM_DUTY_CYCLE_3_REG_OFFSET 0x38
188#define PWM_DUTY_CYCLE_3_REG_RESVAL 0x7fff7fffu
189#define PWM_DUTY_CYCLE_3_A_3_MASK 0xffffu
190#define PWM_DUTY_CYCLE_3_A_3_OFFSET 0
191#define PWM_DUTY_CYCLE_3_A_3_FIELD \
192 ((bitfield_field32_t) { .mask = PWM_DUTY_CYCLE_3_A_3_MASK, .index = PWM_DUTY_CYCLE_3_A_3_OFFSET })
193#define PWM_DUTY_CYCLE_3_B_3_MASK 0xffffu
194#define PWM_DUTY_CYCLE_3_B_3_OFFSET 16
195#define PWM_DUTY_CYCLE_3_B_3_FIELD \
196 ((bitfield_field32_t) { .mask = PWM_DUTY_CYCLE_3_B_3_MASK, .index = PWM_DUTY_CYCLE_3_B_3_OFFSET })
197
198// Controls the duty_cycle of each channel.
199#define PWM_DUTY_CYCLE_4_REG_OFFSET 0x3c
200#define PWM_DUTY_CYCLE_4_REG_RESVAL 0x7fff7fffu
201#define PWM_DUTY_CYCLE_4_A_4_MASK 0xffffu
202#define PWM_DUTY_CYCLE_4_A_4_OFFSET 0
203#define PWM_DUTY_CYCLE_4_A_4_FIELD \
204 ((bitfield_field32_t) { .mask = PWM_DUTY_CYCLE_4_A_4_MASK, .index = PWM_DUTY_CYCLE_4_A_4_OFFSET })
205#define PWM_DUTY_CYCLE_4_B_4_MASK 0xffffu
206#define PWM_DUTY_CYCLE_4_B_4_OFFSET 16
207#define PWM_DUTY_CYCLE_4_B_4_FIELD \
208 ((bitfield_field32_t) { .mask = PWM_DUTY_CYCLE_4_B_4_MASK, .index = PWM_DUTY_CYCLE_4_B_4_OFFSET })
209
210// Controls the duty_cycle of each channel.
211#define PWM_DUTY_CYCLE_5_REG_OFFSET 0x40
212#define PWM_DUTY_CYCLE_5_REG_RESVAL 0x7fff7fffu
213#define PWM_DUTY_CYCLE_5_A_5_MASK 0xffffu
214#define PWM_DUTY_CYCLE_5_A_5_OFFSET 0
215#define PWM_DUTY_CYCLE_5_A_5_FIELD \
216 ((bitfield_field32_t) { .mask = PWM_DUTY_CYCLE_5_A_5_MASK, .index = PWM_DUTY_CYCLE_5_A_5_OFFSET })
217#define PWM_DUTY_CYCLE_5_B_5_MASK 0xffffu
218#define PWM_DUTY_CYCLE_5_B_5_OFFSET 16
219#define PWM_DUTY_CYCLE_5_B_5_FIELD \
220 ((bitfield_field32_t) { .mask = PWM_DUTY_CYCLE_5_B_5_MASK, .index = PWM_DUTY_CYCLE_5_B_5_OFFSET })
221
222// Hardware controlled blink/heartbeat parameters. (common parameters)
223#define PWM_BLINK_PARAM_X_FIELD_WIDTH 16
224#define PWM_BLINK_PARAM_Y_FIELD_WIDTH 16
225#define PWM_BLINK_PARAM_MULTIREG_COUNT 6
226
227// Hardware controlled blink/heartbeat parameters.
228#define PWM_BLINK_PARAM_0_REG_OFFSET 0x44
229#define PWM_BLINK_PARAM_0_REG_RESVAL 0x0u
230#define PWM_BLINK_PARAM_0_X_0_MASK 0xffffu
231#define PWM_BLINK_PARAM_0_X_0_OFFSET 0
232#define PWM_BLINK_PARAM_0_X_0_FIELD \
233 ((bitfield_field32_t) { .mask = PWM_BLINK_PARAM_0_X_0_MASK, .index = PWM_BLINK_PARAM_0_X_0_OFFSET })
234#define PWM_BLINK_PARAM_0_Y_0_MASK 0xffffu
235#define PWM_BLINK_PARAM_0_Y_0_OFFSET 16
236#define PWM_BLINK_PARAM_0_Y_0_FIELD \
237 ((bitfield_field32_t) { .mask = PWM_BLINK_PARAM_0_Y_0_MASK, .index = PWM_BLINK_PARAM_0_Y_0_OFFSET })
238
239// Hardware controlled blink/heartbeat parameters.
240#define PWM_BLINK_PARAM_1_REG_OFFSET 0x48
241#define PWM_BLINK_PARAM_1_REG_RESVAL 0x0u
242#define PWM_BLINK_PARAM_1_X_1_MASK 0xffffu
243#define PWM_BLINK_PARAM_1_X_1_OFFSET 0
244#define PWM_BLINK_PARAM_1_X_1_FIELD \
245 ((bitfield_field32_t) { .mask = PWM_BLINK_PARAM_1_X_1_MASK, .index = PWM_BLINK_PARAM_1_X_1_OFFSET })
246#define PWM_BLINK_PARAM_1_Y_1_MASK 0xffffu
247#define PWM_BLINK_PARAM_1_Y_1_OFFSET 16
248#define PWM_BLINK_PARAM_1_Y_1_FIELD \
249 ((bitfield_field32_t) { .mask = PWM_BLINK_PARAM_1_Y_1_MASK, .index = PWM_BLINK_PARAM_1_Y_1_OFFSET })
250
251// Hardware controlled blink/heartbeat parameters.
252#define PWM_BLINK_PARAM_2_REG_OFFSET 0x4c
253#define PWM_BLINK_PARAM_2_REG_RESVAL 0x0u
254#define PWM_BLINK_PARAM_2_X_2_MASK 0xffffu
255#define PWM_BLINK_PARAM_2_X_2_OFFSET 0
256#define PWM_BLINK_PARAM_2_X_2_FIELD \
257 ((bitfield_field32_t) { .mask = PWM_BLINK_PARAM_2_X_2_MASK, .index = PWM_BLINK_PARAM_2_X_2_OFFSET })
258#define PWM_BLINK_PARAM_2_Y_2_MASK 0xffffu
259#define PWM_BLINK_PARAM_2_Y_2_OFFSET 16
260#define PWM_BLINK_PARAM_2_Y_2_FIELD \
261 ((bitfield_field32_t) { .mask = PWM_BLINK_PARAM_2_Y_2_MASK, .index = PWM_BLINK_PARAM_2_Y_2_OFFSET })
262
263// Hardware controlled blink/heartbeat parameters.
264#define PWM_BLINK_PARAM_3_REG_OFFSET 0x50
265#define PWM_BLINK_PARAM_3_REG_RESVAL 0x0u
266#define PWM_BLINK_PARAM_3_X_3_MASK 0xffffu
267#define PWM_BLINK_PARAM_3_X_3_OFFSET 0
268#define PWM_BLINK_PARAM_3_X_3_FIELD \
269 ((bitfield_field32_t) { .mask = PWM_BLINK_PARAM_3_X_3_MASK, .index = PWM_BLINK_PARAM_3_X_3_OFFSET })
270#define PWM_BLINK_PARAM_3_Y_3_MASK 0xffffu
271#define PWM_BLINK_PARAM_3_Y_3_OFFSET 16
272#define PWM_BLINK_PARAM_3_Y_3_FIELD \
273 ((bitfield_field32_t) { .mask = PWM_BLINK_PARAM_3_Y_3_MASK, .index = PWM_BLINK_PARAM_3_Y_3_OFFSET })
274
275// Hardware controlled blink/heartbeat parameters.
276#define PWM_BLINK_PARAM_4_REG_OFFSET 0x54
277#define PWM_BLINK_PARAM_4_REG_RESVAL 0x0u
278#define PWM_BLINK_PARAM_4_X_4_MASK 0xffffu
279#define PWM_BLINK_PARAM_4_X_4_OFFSET 0
280#define PWM_BLINK_PARAM_4_X_4_FIELD \
281 ((bitfield_field32_t) { .mask = PWM_BLINK_PARAM_4_X_4_MASK, .index = PWM_BLINK_PARAM_4_X_4_OFFSET })
282#define PWM_BLINK_PARAM_4_Y_4_MASK 0xffffu
283#define PWM_BLINK_PARAM_4_Y_4_OFFSET 16
284#define PWM_BLINK_PARAM_4_Y_4_FIELD \
285 ((bitfield_field32_t) { .mask = PWM_BLINK_PARAM_4_Y_4_MASK, .index = PWM_BLINK_PARAM_4_Y_4_OFFSET })
286
287// Hardware controlled blink/heartbeat parameters.
288#define PWM_BLINK_PARAM_5_REG_OFFSET 0x58
289#define PWM_BLINK_PARAM_5_REG_RESVAL 0x0u
290#define PWM_BLINK_PARAM_5_X_5_MASK 0xffffu
291#define PWM_BLINK_PARAM_5_X_5_OFFSET 0
292#define PWM_BLINK_PARAM_5_X_5_FIELD \
293 ((bitfield_field32_t) { .mask = PWM_BLINK_PARAM_5_X_5_MASK, .index = PWM_BLINK_PARAM_5_X_5_OFFSET })
294#define PWM_BLINK_PARAM_5_Y_5_MASK 0xffffu
295#define PWM_BLINK_PARAM_5_Y_5_OFFSET 16
296#define PWM_BLINK_PARAM_5_Y_5_FIELD \
297 ((bitfield_field32_t) { .mask = PWM_BLINK_PARAM_5_Y_5_MASK, .index = PWM_BLINK_PARAM_5_Y_5_OFFSET })
298
299#ifdef __cplusplus
300} // extern "C"
301#endif
302#endif // _PWM_REG_DEFS_
303// End generated register defines for pwm