Software APIs
pattgen_regs.h
Go to the documentation of this file.
1/**
2 * @file
3 * @brief Generated register defines for pattgen
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 _PATTGEN_REG_DEFS_
14#define _PATTGEN_REG_DEFS_
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19// Number of data registers per each channel
20#define PATTGEN_PARAM_NUM_REGS_DATA 2
21
22// Number of alerts
23#define PATTGEN_PARAM_NUM_ALERTS 1
24
25// Register width
26#define PATTGEN_PARAM_REG_WIDTH 32
27
28// Common Interrupt Offsets
29#define PATTGEN_INTR_COMMON_DONE_CH0_BIT 0
30#define PATTGEN_INTR_COMMON_DONE_CH1_BIT 1
31
32// Interrupt State Register
33#define PATTGEN_INTR_STATE_REG_OFFSET 0x0
34#define PATTGEN_INTR_STATE_REG_RESVAL 0x0u
35#define PATTGEN_INTR_STATE_DONE_CH0_BIT 0
36#define PATTGEN_INTR_STATE_DONE_CH1_BIT 1
37
38// Interrupt Enable Register
39#define PATTGEN_INTR_ENABLE_REG_OFFSET 0x4
40#define PATTGEN_INTR_ENABLE_REG_RESVAL 0x0u
41#define PATTGEN_INTR_ENABLE_DONE_CH0_BIT 0
42#define PATTGEN_INTR_ENABLE_DONE_CH1_BIT 1
43
44// Interrupt Test Register
45#define PATTGEN_INTR_TEST_REG_OFFSET 0x8
46#define PATTGEN_INTR_TEST_REG_RESVAL 0x0u
47#define PATTGEN_INTR_TEST_DONE_CH0_BIT 0
48#define PATTGEN_INTR_TEST_DONE_CH1_BIT 1
49
50// Alert Test Register
51#define PATTGEN_ALERT_TEST_REG_OFFSET 0xc
52#define PATTGEN_ALERT_TEST_REG_RESVAL 0x0u
53#define PATTGEN_ALERT_TEST_FATAL_FAULT_BIT 0
54
55// PATTGEN control register
56#define PATTGEN_CTRL_REG_OFFSET 0x10
57#define PATTGEN_CTRL_REG_RESVAL 0x0u
58#define PATTGEN_CTRL_ENABLE_CH0_BIT 0
59#define PATTGEN_CTRL_ENABLE_CH1_BIT 1
60#define PATTGEN_CTRL_POLARITY_CH0_BIT 2
61#define PATTGEN_CTRL_POLARITY_CH1_BIT 3
62#define PATTGEN_CTRL_INACTIVE_LEVEL_PCL_CH0_BIT 4
63#define PATTGEN_CTRL_INACTIVE_LEVEL_PDA_CH0_BIT 5
64#define PATTGEN_CTRL_INACTIVE_LEVEL_PCL_CH1_BIT 6
65#define PATTGEN_CTRL_INACTIVE_LEVEL_PDA_CH1_BIT 7
66
67// PATTGEN pre-divider register for Channel 0
68#define PATTGEN_PREDIV_CH0_REG_OFFSET 0x14
69#define PATTGEN_PREDIV_CH0_REG_RESVAL 0x0u
70
71// PATTGEN pre-divider register for Channel 1
72#define PATTGEN_PREDIV_CH1_REG_OFFSET 0x18
73#define PATTGEN_PREDIV_CH1_REG_RESVAL 0x0u
74
75// PATTGEN seed pattern multi-registers for Channel 0. (common parameters)
76#define PATTGEN_DATA_CH0_DATA_FIELD_WIDTH 32
77#define PATTGEN_DATA_CH0_MULTIREG_COUNT 2
78
79// PATTGEN seed pattern multi-registers for Channel 0.
80#define PATTGEN_DATA_CH0_0_REG_OFFSET 0x1c
81#define PATTGEN_DATA_CH0_0_REG_RESVAL 0x0u
82
83// PATTGEN seed pattern multi-registers for Channel 0.
84#define PATTGEN_DATA_CH0_1_REG_OFFSET 0x20
85#define PATTGEN_DATA_CH0_1_REG_RESVAL 0x0u
86
87// PATTGEN seed pattern multi-registers for Channel 1. (common parameters)
88#define PATTGEN_DATA_CH1_DATA_FIELD_WIDTH 32
89#define PATTGEN_DATA_CH1_MULTIREG_COUNT 2
90
91// PATTGEN seed pattern multi-registers for Channel 1.
92#define PATTGEN_DATA_CH1_0_REG_OFFSET 0x24
93#define PATTGEN_DATA_CH1_0_REG_RESVAL 0x0u
94
95// PATTGEN seed pattern multi-registers for Channel 1.
96#define PATTGEN_DATA_CH1_1_REG_OFFSET 0x28
97#define PATTGEN_DATA_CH1_1_REG_RESVAL 0x0u
98
99// PATTGEN pattern length
100#define PATTGEN_SIZE_REG_OFFSET 0x2c
101#define PATTGEN_SIZE_REG_RESVAL 0x0u
102#define PATTGEN_SIZE_LEN_CH0_MASK 0x3fu
103#define PATTGEN_SIZE_LEN_CH0_OFFSET 0
104#define PATTGEN_SIZE_LEN_CH0_FIELD \
105 ((bitfield_field32_t) { .mask = PATTGEN_SIZE_LEN_CH0_MASK, .index = PATTGEN_SIZE_LEN_CH0_OFFSET })
106#define PATTGEN_SIZE_REPS_CH0_MASK 0x3ffu
107#define PATTGEN_SIZE_REPS_CH0_OFFSET 6
108#define PATTGEN_SIZE_REPS_CH0_FIELD \
109 ((bitfield_field32_t) { .mask = PATTGEN_SIZE_REPS_CH0_MASK, .index = PATTGEN_SIZE_REPS_CH0_OFFSET })
110#define PATTGEN_SIZE_LEN_CH1_MASK 0x3fu
111#define PATTGEN_SIZE_LEN_CH1_OFFSET 16
112#define PATTGEN_SIZE_LEN_CH1_FIELD \
113 ((bitfield_field32_t) { .mask = PATTGEN_SIZE_LEN_CH1_MASK, .index = PATTGEN_SIZE_LEN_CH1_OFFSET })
114#define PATTGEN_SIZE_REPS_CH1_MASK 0x3ffu
115#define PATTGEN_SIZE_REPS_CH1_OFFSET 22
116#define PATTGEN_SIZE_REPS_CH1_FIELD \
117 ((bitfield_field32_t) { .mask = PATTGEN_SIZE_REPS_CH1_MASK, .index = PATTGEN_SIZE_REPS_CH1_OFFSET })
118
119#ifdef __cplusplus
120} // extern "C"
121#endif
122#endif // _PATTGEN_REG_DEFS_
123// End generated register defines for pattgen