1*4b8b8d74SJaiprakash Singh #ifndef __ODY_CSRS_UAA_H__
2*4b8b8d74SJaiprakash Singh #define __ODY_CSRS_UAA_H__
3*4b8b8d74SJaiprakash Singh /* This file is auto-generated. Do not edit */
4*4b8b8d74SJaiprakash Singh
5*4b8b8d74SJaiprakash Singh /***********************license start***********************************
6*4b8b8d74SJaiprakash Singh * Copyright (C) 2021-2026 Marvell.
7*4b8b8d74SJaiprakash Singh * SPDX-License-Identifier: BSD-3-Clause
8*4b8b8d74SJaiprakash Singh * https://spdx.org/licenses
9*4b8b8d74SJaiprakash Singh ***********************license end**************************************/
10*4b8b8d74SJaiprakash Singh
11*4b8b8d74SJaiprakash Singh
12*4b8b8d74SJaiprakash Singh /**
13*4b8b8d74SJaiprakash Singh * @file
14*4b8b8d74SJaiprakash Singh *
15*4b8b8d74SJaiprakash Singh * Configuration and status register (CSR) address and type definitions for
16*4b8b8d74SJaiprakash Singh * UAA.
17*4b8b8d74SJaiprakash Singh *
18*4b8b8d74SJaiprakash Singh * This file is auto generated. Do not edit.
19*4b8b8d74SJaiprakash Singh *
20*4b8b8d74SJaiprakash Singh */
21*4b8b8d74SJaiprakash Singh
22*4b8b8d74SJaiprakash Singh /**
23*4b8b8d74SJaiprakash Singh * Enumeration uaa_bar_e
24*4b8b8d74SJaiprakash Singh *
25*4b8b8d74SJaiprakash Singh * UART Base Address Register Enumeration
26*4b8b8d74SJaiprakash Singh * Enumerates the base address registers.
27*4b8b8d74SJaiprakash Singh */
28*4b8b8d74SJaiprakash Singh #define ODY_UAA_BAR_E_UAAX_PF_BAR0(a) (0x87e028000000ll + 0x1000000ll * (a))
29*4b8b8d74SJaiprakash Singh #define ODY_UAA_BAR_E_UAAX_PF_BAR0_SIZE 0x10000ull
30*4b8b8d74SJaiprakash Singh #define ODY_UAA_BAR_E_UAAX_PF_BAR4(a) (0x87e028f00000ll + 0x1000000ll * (a))
31*4b8b8d74SJaiprakash Singh #define ODY_UAA_BAR_E_UAAX_PF_BAR4_SIZE 0x100000ull
32*4b8b8d74SJaiprakash Singh
33*4b8b8d74SJaiprakash Singh /**
34*4b8b8d74SJaiprakash Singh * Enumeration uaa_int_vec_e
35*4b8b8d74SJaiprakash Singh *
36*4b8b8d74SJaiprakash Singh * UART MSI-X Vector Enumeration
37*4b8b8d74SJaiprakash Singh * Enumerates the MSI-X interrupt vectors.
38*4b8b8d74SJaiprakash Singh */
39*4b8b8d74SJaiprakash Singh #define ODY_UAA_INT_VEC_E_INTS (0)
40*4b8b8d74SJaiprakash Singh #define ODY_UAA_INT_VEC_E_INTS_CLEAR (1)
41*4b8b8d74SJaiprakash Singh
42*4b8b8d74SJaiprakash Singh /**
43*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_cidr0
44*4b8b8d74SJaiprakash Singh *
45*4b8b8d74SJaiprakash Singh * UART Component Identification Register 0
46*4b8b8d74SJaiprakash Singh */
47*4b8b8d74SJaiprakash Singh union ody_uaax_cidr0 {
48*4b8b8d74SJaiprakash Singh uint32_t u;
49*4b8b8d74SJaiprakash Singh struct ody_uaax_cidr0_s {
50*4b8b8d74SJaiprakash Singh uint32_t preamble : 8;
51*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
52*4b8b8d74SJaiprakash Singh } s;
53*4b8b8d74SJaiprakash Singh /* struct ody_uaax_cidr0_s cn; */
54*4b8b8d74SJaiprakash Singh };
55*4b8b8d74SJaiprakash Singh typedef union ody_uaax_cidr0 ody_uaax_cidr0_t;
56*4b8b8d74SJaiprakash Singh
57*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_CIDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_CIDR0(uint64_t a)58*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_CIDR0(uint64_t a)
59*4b8b8d74SJaiprakash Singh {
60*4b8b8d74SJaiprakash Singh if (a <= 7)
61*4b8b8d74SJaiprakash Singh return 0x87e028000ff0ll + 0x1000000ll * ((a) & 0x7);
62*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_CIDR0", 1, a, 0, 0, 0, 0, 0);
63*4b8b8d74SJaiprakash Singh }
64*4b8b8d74SJaiprakash Singh
65*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_CIDR0(a) ody_uaax_cidr0_t
66*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_CIDR0(a) CSR_TYPE_RSL32b
67*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_CIDR0(a) "UAAX_CIDR0"
68*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_CIDR0(a) 0x0 /* PF_BAR0 */
69*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_CIDR0(a) (a)
70*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_CIDR0(a) (a), -1, -1, -1
71*4b8b8d74SJaiprakash Singh
72*4b8b8d74SJaiprakash Singh /**
73*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_cidr1
74*4b8b8d74SJaiprakash Singh *
75*4b8b8d74SJaiprakash Singh * UART Component Identification Register 1
76*4b8b8d74SJaiprakash Singh */
77*4b8b8d74SJaiprakash Singh union ody_uaax_cidr1 {
78*4b8b8d74SJaiprakash Singh uint32_t u;
79*4b8b8d74SJaiprakash Singh struct ody_uaax_cidr1_s {
80*4b8b8d74SJaiprakash Singh uint32_t preamble : 8;
81*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
82*4b8b8d74SJaiprakash Singh } s;
83*4b8b8d74SJaiprakash Singh /* struct ody_uaax_cidr1_s cn; */
84*4b8b8d74SJaiprakash Singh };
85*4b8b8d74SJaiprakash Singh typedef union ody_uaax_cidr1 ody_uaax_cidr1_t;
86*4b8b8d74SJaiprakash Singh
87*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_CIDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_CIDR1(uint64_t a)88*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_CIDR1(uint64_t a)
89*4b8b8d74SJaiprakash Singh {
90*4b8b8d74SJaiprakash Singh if (a <= 7)
91*4b8b8d74SJaiprakash Singh return 0x87e028000ff4ll + 0x1000000ll * ((a) & 0x7);
92*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_CIDR1", 1, a, 0, 0, 0, 0, 0);
93*4b8b8d74SJaiprakash Singh }
94*4b8b8d74SJaiprakash Singh
95*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_CIDR1(a) ody_uaax_cidr1_t
96*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_CIDR1(a) CSR_TYPE_RSL32b
97*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_CIDR1(a) "UAAX_CIDR1"
98*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_CIDR1(a) 0x0 /* PF_BAR0 */
99*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_CIDR1(a) (a)
100*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_CIDR1(a) (a), -1, -1, -1
101*4b8b8d74SJaiprakash Singh
102*4b8b8d74SJaiprakash Singh /**
103*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_cidr2
104*4b8b8d74SJaiprakash Singh *
105*4b8b8d74SJaiprakash Singh * UART Component Identification Register 2
106*4b8b8d74SJaiprakash Singh */
107*4b8b8d74SJaiprakash Singh union ody_uaax_cidr2 {
108*4b8b8d74SJaiprakash Singh uint32_t u;
109*4b8b8d74SJaiprakash Singh struct ody_uaax_cidr2_s {
110*4b8b8d74SJaiprakash Singh uint32_t preamble : 8;
111*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
112*4b8b8d74SJaiprakash Singh } s;
113*4b8b8d74SJaiprakash Singh /* struct ody_uaax_cidr2_s cn; */
114*4b8b8d74SJaiprakash Singh };
115*4b8b8d74SJaiprakash Singh typedef union ody_uaax_cidr2 ody_uaax_cidr2_t;
116*4b8b8d74SJaiprakash Singh
117*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_CIDR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_CIDR2(uint64_t a)118*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_CIDR2(uint64_t a)
119*4b8b8d74SJaiprakash Singh {
120*4b8b8d74SJaiprakash Singh if (a <= 7)
121*4b8b8d74SJaiprakash Singh return 0x87e028000ff8ll + 0x1000000ll * ((a) & 0x7);
122*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_CIDR2", 1, a, 0, 0, 0, 0, 0);
123*4b8b8d74SJaiprakash Singh }
124*4b8b8d74SJaiprakash Singh
125*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_CIDR2(a) ody_uaax_cidr2_t
126*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_CIDR2(a) CSR_TYPE_RSL32b
127*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_CIDR2(a) "UAAX_CIDR2"
128*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_CIDR2(a) 0x0 /* PF_BAR0 */
129*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_CIDR2(a) (a)
130*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_CIDR2(a) (a), -1, -1, -1
131*4b8b8d74SJaiprakash Singh
132*4b8b8d74SJaiprakash Singh /**
133*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_cidr3
134*4b8b8d74SJaiprakash Singh *
135*4b8b8d74SJaiprakash Singh * UART Component Identification Register 3
136*4b8b8d74SJaiprakash Singh */
137*4b8b8d74SJaiprakash Singh union ody_uaax_cidr3 {
138*4b8b8d74SJaiprakash Singh uint32_t u;
139*4b8b8d74SJaiprakash Singh struct ody_uaax_cidr3_s {
140*4b8b8d74SJaiprakash Singh uint32_t preamble : 8;
141*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
142*4b8b8d74SJaiprakash Singh } s;
143*4b8b8d74SJaiprakash Singh /* struct ody_uaax_cidr3_s cn; */
144*4b8b8d74SJaiprakash Singh };
145*4b8b8d74SJaiprakash Singh typedef union ody_uaax_cidr3 ody_uaax_cidr3_t;
146*4b8b8d74SJaiprakash Singh
147*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_CIDR3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_CIDR3(uint64_t a)148*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_CIDR3(uint64_t a)
149*4b8b8d74SJaiprakash Singh {
150*4b8b8d74SJaiprakash Singh if (a <= 7)
151*4b8b8d74SJaiprakash Singh return 0x87e028000ffcll + 0x1000000ll * ((a) & 0x7);
152*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_CIDR3", 1, a, 0, 0, 0, 0, 0);
153*4b8b8d74SJaiprakash Singh }
154*4b8b8d74SJaiprakash Singh
155*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_CIDR3(a) ody_uaax_cidr3_t
156*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_CIDR3(a) CSR_TYPE_RSL32b
157*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_CIDR3(a) "UAAX_CIDR3"
158*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_CIDR3(a) 0x0 /* PF_BAR0 */
159*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_CIDR3(a) (a)
160*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_CIDR3(a) (a), -1, -1, -1
161*4b8b8d74SJaiprakash Singh
162*4b8b8d74SJaiprakash Singh /**
163*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_cr
164*4b8b8d74SJaiprakash Singh *
165*4b8b8d74SJaiprakash Singh * UART Control Register
166*4b8b8d74SJaiprakash Singh */
167*4b8b8d74SJaiprakash Singh union ody_uaax_cr {
168*4b8b8d74SJaiprakash Singh uint32_t u;
169*4b8b8d74SJaiprakash Singh struct ody_uaax_cr_s {
170*4b8b8d74SJaiprakash Singh uint32_t uarten : 1;
171*4b8b8d74SJaiprakash Singh uint32_t reserved_1_6 : 6;
172*4b8b8d74SJaiprakash Singh uint32_t lbe : 1;
173*4b8b8d74SJaiprakash Singh uint32_t txe : 1;
174*4b8b8d74SJaiprakash Singh uint32_t rxe : 1;
175*4b8b8d74SJaiprakash Singh uint32_t dtr : 1;
176*4b8b8d74SJaiprakash Singh uint32_t rts : 1;
177*4b8b8d74SJaiprakash Singh uint32_t out1 : 1;
178*4b8b8d74SJaiprakash Singh uint32_t out2 : 1;
179*4b8b8d74SJaiprakash Singh uint32_t rtsen : 1;
180*4b8b8d74SJaiprakash Singh uint32_t ctsen : 1;
181*4b8b8d74SJaiprakash Singh uint32_t reserved_16_31 : 16;
182*4b8b8d74SJaiprakash Singh } s;
183*4b8b8d74SJaiprakash Singh struct ody_uaax_cr_cn {
184*4b8b8d74SJaiprakash Singh uint32_t uarten : 1;
185*4b8b8d74SJaiprakash Singh uint32_t reserved_1 : 1;
186*4b8b8d74SJaiprakash Singh uint32_t reserved_2 : 1;
187*4b8b8d74SJaiprakash Singh uint32_t reserved_3_6 : 4;
188*4b8b8d74SJaiprakash Singh uint32_t lbe : 1;
189*4b8b8d74SJaiprakash Singh uint32_t txe : 1;
190*4b8b8d74SJaiprakash Singh uint32_t rxe : 1;
191*4b8b8d74SJaiprakash Singh uint32_t dtr : 1;
192*4b8b8d74SJaiprakash Singh uint32_t rts : 1;
193*4b8b8d74SJaiprakash Singh uint32_t out1 : 1;
194*4b8b8d74SJaiprakash Singh uint32_t out2 : 1;
195*4b8b8d74SJaiprakash Singh uint32_t rtsen : 1;
196*4b8b8d74SJaiprakash Singh uint32_t ctsen : 1;
197*4b8b8d74SJaiprakash Singh uint32_t reserved_16_31 : 16;
198*4b8b8d74SJaiprakash Singh } cn;
199*4b8b8d74SJaiprakash Singh };
200*4b8b8d74SJaiprakash Singh typedef union ody_uaax_cr ody_uaax_cr_t;
201*4b8b8d74SJaiprakash Singh
202*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_CR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_CR(uint64_t a)203*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_CR(uint64_t a)
204*4b8b8d74SJaiprakash Singh {
205*4b8b8d74SJaiprakash Singh if (a <= 7)
206*4b8b8d74SJaiprakash Singh return 0x87e028000030ll + 0x1000000ll * ((a) & 0x7);
207*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_CR", 1, a, 0, 0, 0, 0, 0);
208*4b8b8d74SJaiprakash Singh }
209*4b8b8d74SJaiprakash Singh
210*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_CR(a) ody_uaax_cr_t
211*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_CR(a) CSR_TYPE_RSL32b
212*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_CR(a) "UAAX_CR"
213*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_CR(a) 0x0 /* PF_BAR0 */
214*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_CR(a) (a)
215*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_CR(a) (a), -1, -1, -1
216*4b8b8d74SJaiprakash Singh
217*4b8b8d74SJaiprakash Singh /**
218*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_dr
219*4b8b8d74SJaiprakash Singh *
220*4b8b8d74SJaiprakash Singh * UART Data Register
221*4b8b8d74SJaiprakash Singh * Writing to this register pushes data to the FIFO for transmission. Reading it retrieves
222*4b8b8d74SJaiprakash Singh * received data from the receive FIFO.
223*4b8b8d74SJaiprakash Singh */
224*4b8b8d74SJaiprakash Singh union ody_uaax_dr {
225*4b8b8d74SJaiprakash Singh uint32_t u;
226*4b8b8d74SJaiprakash Singh struct ody_uaax_dr_s {
227*4b8b8d74SJaiprakash Singh uint32_t data : 8;
228*4b8b8d74SJaiprakash Singh uint32_t fe : 1;
229*4b8b8d74SJaiprakash Singh uint32_t pe : 1;
230*4b8b8d74SJaiprakash Singh uint32_t be : 1;
231*4b8b8d74SJaiprakash Singh uint32_t oe : 1;
232*4b8b8d74SJaiprakash Singh uint32_t reserved_12_31 : 20;
233*4b8b8d74SJaiprakash Singh } s;
234*4b8b8d74SJaiprakash Singh /* struct ody_uaax_dr_s cn; */
235*4b8b8d74SJaiprakash Singh };
236*4b8b8d74SJaiprakash Singh typedef union ody_uaax_dr ody_uaax_dr_t;
237*4b8b8d74SJaiprakash Singh
238*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_DR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_DR(uint64_t a)239*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_DR(uint64_t a)
240*4b8b8d74SJaiprakash Singh {
241*4b8b8d74SJaiprakash Singh if (a <= 7)
242*4b8b8d74SJaiprakash Singh return 0x87e028000000ll + 0x1000000ll * ((a) & 0x7);
243*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_DR", 1, a, 0, 0, 0, 0, 0);
244*4b8b8d74SJaiprakash Singh }
245*4b8b8d74SJaiprakash Singh
246*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_DR(a) ody_uaax_dr_t
247*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_DR(a) CSR_TYPE_RSL32b
248*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_DR(a) "UAAX_DR"
249*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_DR(a) 0x0 /* PF_BAR0 */
250*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_DR(a) (a)
251*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_DR(a) (a), -1, -1, -1
252*4b8b8d74SJaiprakash Singh
253*4b8b8d74SJaiprakash Singh /**
254*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_fbrd
255*4b8b8d74SJaiprakash Singh *
256*4b8b8d74SJaiprakash Singh * UART Fractional Baud Rate Register
257*4b8b8d74SJaiprakash Singh */
258*4b8b8d74SJaiprakash Singh union ody_uaax_fbrd {
259*4b8b8d74SJaiprakash Singh uint32_t u;
260*4b8b8d74SJaiprakash Singh struct ody_uaax_fbrd_s {
261*4b8b8d74SJaiprakash Singh uint32_t baud_divfrac : 6;
262*4b8b8d74SJaiprakash Singh uint32_t reserved_6_31 : 26;
263*4b8b8d74SJaiprakash Singh } s;
264*4b8b8d74SJaiprakash Singh /* struct ody_uaax_fbrd_s cn; */
265*4b8b8d74SJaiprakash Singh };
266*4b8b8d74SJaiprakash Singh typedef union ody_uaax_fbrd ody_uaax_fbrd_t;
267*4b8b8d74SJaiprakash Singh
268*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_FBRD(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_FBRD(uint64_t a)269*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_FBRD(uint64_t a)
270*4b8b8d74SJaiprakash Singh {
271*4b8b8d74SJaiprakash Singh if (a <= 7)
272*4b8b8d74SJaiprakash Singh return 0x87e028000028ll + 0x1000000ll * ((a) & 0x7);
273*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_FBRD", 1, a, 0, 0, 0, 0, 0);
274*4b8b8d74SJaiprakash Singh }
275*4b8b8d74SJaiprakash Singh
276*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_FBRD(a) ody_uaax_fbrd_t
277*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_FBRD(a) CSR_TYPE_RSL32b
278*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_FBRD(a) "UAAX_FBRD"
279*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_FBRD(a) 0x0 /* PF_BAR0 */
280*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_FBRD(a) (a)
281*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_FBRD(a) (a), -1, -1, -1
282*4b8b8d74SJaiprakash Singh
283*4b8b8d74SJaiprakash Singh /**
284*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_fr
285*4b8b8d74SJaiprakash Singh *
286*4b8b8d74SJaiprakash Singh * UART Flag Register
287*4b8b8d74SJaiprakash Singh */
288*4b8b8d74SJaiprakash Singh union ody_uaax_fr {
289*4b8b8d74SJaiprakash Singh uint32_t u;
290*4b8b8d74SJaiprakash Singh struct ody_uaax_fr_s {
291*4b8b8d74SJaiprakash Singh uint32_t cts : 1;
292*4b8b8d74SJaiprakash Singh uint32_t dsr : 1;
293*4b8b8d74SJaiprakash Singh uint32_t dcd : 1;
294*4b8b8d74SJaiprakash Singh uint32_t busy : 1;
295*4b8b8d74SJaiprakash Singh uint32_t rxfe : 1;
296*4b8b8d74SJaiprakash Singh uint32_t txff : 1;
297*4b8b8d74SJaiprakash Singh uint32_t rxff : 1;
298*4b8b8d74SJaiprakash Singh uint32_t txfe : 1;
299*4b8b8d74SJaiprakash Singh uint32_t ri : 1;
300*4b8b8d74SJaiprakash Singh uint32_t reserved_9_31 : 23;
301*4b8b8d74SJaiprakash Singh } s;
302*4b8b8d74SJaiprakash Singh /* struct ody_uaax_fr_s cn; */
303*4b8b8d74SJaiprakash Singh };
304*4b8b8d74SJaiprakash Singh typedef union ody_uaax_fr ody_uaax_fr_t;
305*4b8b8d74SJaiprakash Singh
306*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_FR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_FR(uint64_t a)307*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_FR(uint64_t a)
308*4b8b8d74SJaiprakash Singh {
309*4b8b8d74SJaiprakash Singh if (a <= 7)
310*4b8b8d74SJaiprakash Singh return 0x87e028000018ll + 0x1000000ll * ((a) & 0x7);
311*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_FR", 1, a, 0, 0, 0, 0, 0);
312*4b8b8d74SJaiprakash Singh }
313*4b8b8d74SJaiprakash Singh
314*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_FR(a) ody_uaax_fr_t
315*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_FR(a) CSR_TYPE_RSL32b
316*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_FR(a) "UAAX_FR"
317*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_FR(a) 0x0 /* PF_BAR0 */
318*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_FR(a) (a)
319*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_FR(a) (a), -1, -1, -1
320*4b8b8d74SJaiprakash Singh
321*4b8b8d74SJaiprakash Singh /**
322*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_ibrd
323*4b8b8d74SJaiprakash Singh *
324*4b8b8d74SJaiprakash Singh * UART Integer Baud Rate Register
325*4b8b8d74SJaiprakash Singh */
326*4b8b8d74SJaiprakash Singh union ody_uaax_ibrd {
327*4b8b8d74SJaiprakash Singh uint32_t u;
328*4b8b8d74SJaiprakash Singh struct ody_uaax_ibrd_s {
329*4b8b8d74SJaiprakash Singh uint32_t baud_divint : 16;
330*4b8b8d74SJaiprakash Singh uint32_t reserved_16_31 : 16;
331*4b8b8d74SJaiprakash Singh } s;
332*4b8b8d74SJaiprakash Singh /* struct ody_uaax_ibrd_s cn; */
333*4b8b8d74SJaiprakash Singh };
334*4b8b8d74SJaiprakash Singh typedef union ody_uaax_ibrd ody_uaax_ibrd_t;
335*4b8b8d74SJaiprakash Singh
336*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_IBRD(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_IBRD(uint64_t a)337*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_IBRD(uint64_t a)
338*4b8b8d74SJaiprakash Singh {
339*4b8b8d74SJaiprakash Singh if (a <= 7)
340*4b8b8d74SJaiprakash Singh return 0x87e028000024ll + 0x1000000ll * ((a) & 0x7);
341*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_IBRD", 1, a, 0, 0, 0, 0, 0);
342*4b8b8d74SJaiprakash Singh }
343*4b8b8d74SJaiprakash Singh
344*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_IBRD(a) ody_uaax_ibrd_t
345*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_IBRD(a) CSR_TYPE_RSL32b
346*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_IBRD(a) "UAAX_IBRD"
347*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_IBRD(a) 0x0 /* PF_BAR0 */
348*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_IBRD(a) (a)
349*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_IBRD(a) (a), -1, -1, -1
350*4b8b8d74SJaiprakash Singh
351*4b8b8d74SJaiprakash Singh /**
352*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_icr
353*4b8b8d74SJaiprakash Singh *
354*4b8b8d74SJaiprakash Singh * UART Interrupt Clear Register
355*4b8b8d74SJaiprakash Singh * Read value is zero for this register, not the interrupt state.
356*4b8b8d74SJaiprakash Singh */
357*4b8b8d74SJaiprakash Singh union ody_uaax_icr {
358*4b8b8d74SJaiprakash Singh uint32_t u;
359*4b8b8d74SJaiprakash Singh struct ody_uaax_icr_s {
360*4b8b8d74SJaiprakash Singh uint32_t rimic : 1;
361*4b8b8d74SJaiprakash Singh uint32_t ctsmic : 1;
362*4b8b8d74SJaiprakash Singh uint32_t dcdmic : 1;
363*4b8b8d74SJaiprakash Singh uint32_t dsrmic : 1;
364*4b8b8d74SJaiprakash Singh uint32_t rxic : 1;
365*4b8b8d74SJaiprakash Singh uint32_t txic : 1;
366*4b8b8d74SJaiprakash Singh uint32_t rtic : 1;
367*4b8b8d74SJaiprakash Singh uint32_t feic : 1;
368*4b8b8d74SJaiprakash Singh uint32_t peic : 1;
369*4b8b8d74SJaiprakash Singh uint32_t beic : 1;
370*4b8b8d74SJaiprakash Singh uint32_t oeic : 1;
371*4b8b8d74SJaiprakash Singh uint32_t reserved_11_31 : 21;
372*4b8b8d74SJaiprakash Singh } s;
373*4b8b8d74SJaiprakash Singh /* struct ody_uaax_icr_s cn; */
374*4b8b8d74SJaiprakash Singh };
375*4b8b8d74SJaiprakash Singh typedef union ody_uaax_icr ody_uaax_icr_t;
376*4b8b8d74SJaiprakash Singh
377*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_ICR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_ICR(uint64_t a)378*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_ICR(uint64_t a)
379*4b8b8d74SJaiprakash Singh {
380*4b8b8d74SJaiprakash Singh if (a <= 7)
381*4b8b8d74SJaiprakash Singh return 0x87e028000044ll + 0x1000000ll * ((a) & 0x7);
382*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_ICR", 1, a, 0, 0, 0, 0, 0);
383*4b8b8d74SJaiprakash Singh }
384*4b8b8d74SJaiprakash Singh
385*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_ICR(a) ody_uaax_icr_t
386*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_ICR(a) CSR_TYPE_RSL32b
387*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_ICR(a) "UAAX_ICR"
388*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_ICR(a) 0x0 /* PF_BAR0 */
389*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_ICR(a) (a)
390*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_ICR(a) (a), -1, -1, -1
391*4b8b8d74SJaiprakash Singh
392*4b8b8d74SJaiprakash Singh /**
393*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_ifls
394*4b8b8d74SJaiprakash Singh *
395*4b8b8d74SJaiprakash Singh * UART Interrupt FIFO Level Select Register
396*4b8b8d74SJaiprakash Singh */
397*4b8b8d74SJaiprakash Singh union ody_uaax_ifls {
398*4b8b8d74SJaiprakash Singh uint32_t u;
399*4b8b8d74SJaiprakash Singh struct ody_uaax_ifls_s {
400*4b8b8d74SJaiprakash Singh uint32_t txiflsel : 3;
401*4b8b8d74SJaiprakash Singh uint32_t rxiflsel : 3;
402*4b8b8d74SJaiprakash Singh uint32_t reserved_6_31 : 26;
403*4b8b8d74SJaiprakash Singh } s;
404*4b8b8d74SJaiprakash Singh /* struct ody_uaax_ifls_s cn; */
405*4b8b8d74SJaiprakash Singh };
406*4b8b8d74SJaiprakash Singh typedef union ody_uaax_ifls ody_uaax_ifls_t;
407*4b8b8d74SJaiprakash Singh
408*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_IFLS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_IFLS(uint64_t a)409*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_IFLS(uint64_t a)
410*4b8b8d74SJaiprakash Singh {
411*4b8b8d74SJaiprakash Singh if (a <= 7)
412*4b8b8d74SJaiprakash Singh return 0x87e028000034ll + 0x1000000ll * ((a) & 0x7);
413*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_IFLS", 1, a, 0, 0, 0, 0, 0);
414*4b8b8d74SJaiprakash Singh }
415*4b8b8d74SJaiprakash Singh
416*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_IFLS(a) ody_uaax_ifls_t
417*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_IFLS(a) CSR_TYPE_RSL32b
418*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_IFLS(a) "UAAX_IFLS"
419*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_IFLS(a) 0x0 /* PF_BAR0 */
420*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_IFLS(a) (a)
421*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_IFLS(a) (a), -1, -1, -1
422*4b8b8d74SJaiprakash Singh
423*4b8b8d74SJaiprakash Singh /**
424*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_imsc
425*4b8b8d74SJaiprakash Singh *
426*4b8b8d74SJaiprakash Singh * UART Interrupt Mask Set/Clear Register
427*4b8b8d74SJaiprakash Singh */
428*4b8b8d74SJaiprakash Singh union ody_uaax_imsc {
429*4b8b8d74SJaiprakash Singh uint32_t u;
430*4b8b8d74SJaiprakash Singh struct ody_uaax_imsc_s {
431*4b8b8d74SJaiprakash Singh uint32_t rimim : 1;
432*4b8b8d74SJaiprakash Singh uint32_t ctsmim : 1;
433*4b8b8d74SJaiprakash Singh uint32_t dcdmim : 1;
434*4b8b8d74SJaiprakash Singh uint32_t dsrmim : 1;
435*4b8b8d74SJaiprakash Singh uint32_t rxim : 1;
436*4b8b8d74SJaiprakash Singh uint32_t txim : 1;
437*4b8b8d74SJaiprakash Singh uint32_t rtim : 1;
438*4b8b8d74SJaiprakash Singh uint32_t feim : 1;
439*4b8b8d74SJaiprakash Singh uint32_t peim : 1;
440*4b8b8d74SJaiprakash Singh uint32_t beim : 1;
441*4b8b8d74SJaiprakash Singh uint32_t oeim : 1;
442*4b8b8d74SJaiprakash Singh uint32_t reserved_11_31 : 21;
443*4b8b8d74SJaiprakash Singh } s;
444*4b8b8d74SJaiprakash Singh /* struct ody_uaax_imsc_s cn; */
445*4b8b8d74SJaiprakash Singh };
446*4b8b8d74SJaiprakash Singh typedef union ody_uaax_imsc ody_uaax_imsc_t;
447*4b8b8d74SJaiprakash Singh
448*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_IMSC(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_IMSC(uint64_t a)449*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_IMSC(uint64_t a)
450*4b8b8d74SJaiprakash Singh {
451*4b8b8d74SJaiprakash Singh if (a <= 7)
452*4b8b8d74SJaiprakash Singh return 0x87e028000038ll + 0x1000000ll * ((a) & 0x7);
453*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_IMSC", 1, a, 0, 0, 0, 0, 0);
454*4b8b8d74SJaiprakash Singh }
455*4b8b8d74SJaiprakash Singh
456*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_IMSC(a) ody_uaax_imsc_t
457*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_IMSC(a) CSR_TYPE_RSL32b
458*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_IMSC(a) "UAAX_IMSC"
459*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_IMSC(a) 0x0 /* PF_BAR0 */
460*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_IMSC(a) (a)
461*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_IMSC(a) (a), -1, -1, -1
462*4b8b8d74SJaiprakash Singh
463*4b8b8d74SJaiprakash Singh /**
464*4b8b8d74SJaiprakash Singh * Register (RSL) uaa#_io_ctl
465*4b8b8d74SJaiprakash Singh *
466*4b8b8d74SJaiprakash Singh * UART IO Control Register
467*4b8b8d74SJaiprakash Singh * This register controls the UAA[0..1] IO drive strength and slew rates. The additional
468*4b8b8d74SJaiprakash Singh * UAA interfaces are controlled by GPIO_IO_CTL[DRIVEx] and GPIO_IO_CTL[SLEWx] based
469*4b8b8d74SJaiprakash Singh * on the selected pins.
470*4b8b8d74SJaiprakash Singh */
471*4b8b8d74SJaiprakash Singh union ody_uaax_io_ctl {
472*4b8b8d74SJaiprakash Singh uint64_t u;
473*4b8b8d74SJaiprakash Singh struct ody_uaax_io_ctl_s {
474*4b8b8d74SJaiprakash Singh uint64_t slew : 2;
475*4b8b8d74SJaiprakash Singh uint64_t drive : 2;
476*4b8b8d74SJaiprakash Singh uint64_t reserved_4_63 : 60;
477*4b8b8d74SJaiprakash Singh } s;
478*4b8b8d74SJaiprakash Singh /* struct ody_uaax_io_ctl_s cn; */
479*4b8b8d74SJaiprakash Singh };
480*4b8b8d74SJaiprakash Singh typedef union ody_uaax_io_ctl ody_uaax_io_ctl_t;
481*4b8b8d74SJaiprakash Singh
482*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_IO_CTL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_IO_CTL(uint64_t a)483*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_IO_CTL(uint64_t a)
484*4b8b8d74SJaiprakash Singh {
485*4b8b8d74SJaiprakash Singh if (a <= 7)
486*4b8b8d74SJaiprakash Singh return 0x87e028001028ll + 0x1000000ll * ((a) & 0x7);
487*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_IO_CTL", 1, a, 0, 0, 0, 0, 0);
488*4b8b8d74SJaiprakash Singh }
489*4b8b8d74SJaiprakash Singh
490*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_IO_CTL(a) ody_uaax_io_ctl_t
491*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_IO_CTL(a) CSR_TYPE_RSL
492*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_IO_CTL(a) "UAAX_IO_CTL"
493*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_IO_CTL(a) 0x0 /* PF_BAR0 */
494*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_IO_CTL(a) (a)
495*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_IO_CTL(a) (a), -1, -1, -1
496*4b8b8d74SJaiprakash Singh
497*4b8b8d74SJaiprakash Singh /**
498*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_lcr_h
499*4b8b8d74SJaiprakash Singh *
500*4b8b8d74SJaiprakash Singh * UART Line Control Register
501*4b8b8d74SJaiprakash Singh */
502*4b8b8d74SJaiprakash Singh union ody_uaax_lcr_h {
503*4b8b8d74SJaiprakash Singh uint32_t u;
504*4b8b8d74SJaiprakash Singh struct ody_uaax_lcr_h_s {
505*4b8b8d74SJaiprakash Singh uint32_t brk : 1;
506*4b8b8d74SJaiprakash Singh uint32_t pen : 1;
507*4b8b8d74SJaiprakash Singh uint32_t eps : 1;
508*4b8b8d74SJaiprakash Singh uint32_t stp2 : 1;
509*4b8b8d74SJaiprakash Singh uint32_t fen : 1;
510*4b8b8d74SJaiprakash Singh uint32_t wlen : 2;
511*4b8b8d74SJaiprakash Singh uint32_t sps : 1;
512*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
513*4b8b8d74SJaiprakash Singh } s;
514*4b8b8d74SJaiprakash Singh /* struct ody_uaax_lcr_h_s cn; */
515*4b8b8d74SJaiprakash Singh };
516*4b8b8d74SJaiprakash Singh typedef union ody_uaax_lcr_h ody_uaax_lcr_h_t;
517*4b8b8d74SJaiprakash Singh
518*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_LCR_H(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_LCR_H(uint64_t a)519*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_LCR_H(uint64_t a)
520*4b8b8d74SJaiprakash Singh {
521*4b8b8d74SJaiprakash Singh if (a <= 7)
522*4b8b8d74SJaiprakash Singh return 0x87e02800002cll + 0x1000000ll * ((a) & 0x7);
523*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_LCR_H", 1, a, 0, 0, 0, 0, 0);
524*4b8b8d74SJaiprakash Singh }
525*4b8b8d74SJaiprakash Singh
526*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_LCR_H(a) ody_uaax_lcr_h_t
527*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_LCR_H(a) CSR_TYPE_RSL32b
528*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_LCR_H(a) "UAAX_LCR_H"
529*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_LCR_H(a) 0x0 /* PF_BAR0 */
530*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_LCR_H(a) (a)
531*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_LCR_H(a) (a), -1, -1, -1
532*4b8b8d74SJaiprakash Singh
533*4b8b8d74SJaiprakash Singh /**
534*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_mis
535*4b8b8d74SJaiprakash Singh *
536*4b8b8d74SJaiprakash Singh * UART Masked Interrupt Status Register
537*4b8b8d74SJaiprakash Singh * Indicates state of interrupts after masking.
538*4b8b8d74SJaiprakash Singh */
539*4b8b8d74SJaiprakash Singh union ody_uaax_mis {
540*4b8b8d74SJaiprakash Singh uint32_t u;
541*4b8b8d74SJaiprakash Singh struct ody_uaax_mis_s {
542*4b8b8d74SJaiprakash Singh uint32_t rimmis : 1;
543*4b8b8d74SJaiprakash Singh uint32_t ctsmmis : 1;
544*4b8b8d74SJaiprakash Singh uint32_t dcdmmis : 1;
545*4b8b8d74SJaiprakash Singh uint32_t dsrmmis : 1;
546*4b8b8d74SJaiprakash Singh uint32_t rxmis : 1;
547*4b8b8d74SJaiprakash Singh uint32_t txmis : 1;
548*4b8b8d74SJaiprakash Singh uint32_t rtmis : 1;
549*4b8b8d74SJaiprakash Singh uint32_t femis : 1;
550*4b8b8d74SJaiprakash Singh uint32_t pemis : 1;
551*4b8b8d74SJaiprakash Singh uint32_t bemis : 1;
552*4b8b8d74SJaiprakash Singh uint32_t oemis : 1;
553*4b8b8d74SJaiprakash Singh uint32_t reserved_11_31 : 21;
554*4b8b8d74SJaiprakash Singh } s;
555*4b8b8d74SJaiprakash Singh /* struct ody_uaax_mis_s cn; */
556*4b8b8d74SJaiprakash Singh };
557*4b8b8d74SJaiprakash Singh typedef union ody_uaax_mis ody_uaax_mis_t;
558*4b8b8d74SJaiprakash Singh
559*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_MIS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_MIS(uint64_t a)560*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_MIS(uint64_t a)
561*4b8b8d74SJaiprakash Singh {
562*4b8b8d74SJaiprakash Singh if (a <= 7)
563*4b8b8d74SJaiprakash Singh return 0x87e028000040ll + 0x1000000ll * ((a) & 0x7);
564*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_MIS", 1, a, 0, 0, 0, 0, 0);
565*4b8b8d74SJaiprakash Singh }
566*4b8b8d74SJaiprakash Singh
567*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_MIS(a) ody_uaax_mis_t
568*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_MIS(a) CSR_TYPE_RSL32b
569*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_MIS(a) "UAAX_MIS"
570*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_MIS(a) 0x0 /* PF_BAR0 */
571*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_MIS(a) (a)
572*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_MIS(a) (a), -1, -1, -1
573*4b8b8d74SJaiprakash Singh
574*4b8b8d74SJaiprakash Singh /**
575*4b8b8d74SJaiprakash Singh * Register (RSL) uaa#_msix_pba#
576*4b8b8d74SJaiprakash Singh *
577*4b8b8d74SJaiprakash Singh * UART MSI-X Pending Bit Array Registers
578*4b8b8d74SJaiprakash Singh * This register is the MSI-X PBA table, the bit number is indexed by the UAA_INT_VEC_E enumeration.
579*4b8b8d74SJaiprakash Singh */
580*4b8b8d74SJaiprakash Singh union ody_uaax_msix_pbax {
581*4b8b8d74SJaiprakash Singh uint64_t u;
582*4b8b8d74SJaiprakash Singh struct ody_uaax_msix_pbax_s {
583*4b8b8d74SJaiprakash Singh uint64_t pend : 64;
584*4b8b8d74SJaiprakash Singh } s;
585*4b8b8d74SJaiprakash Singh /* struct ody_uaax_msix_pbax_s cn; */
586*4b8b8d74SJaiprakash Singh };
587*4b8b8d74SJaiprakash Singh typedef union ody_uaax_msix_pbax ody_uaax_msix_pbax_t;
588*4b8b8d74SJaiprakash Singh
589*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_MSIX_PBAX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_UAAX_MSIX_PBAX(uint64_t a,uint64_t b)590*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_MSIX_PBAX(uint64_t a, uint64_t b)
591*4b8b8d74SJaiprakash Singh {
592*4b8b8d74SJaiprakash Singh if ((a <= 7) && (b == 0))
593*4b8b8d74SJaiprakash Singh return 0x87e028ff0000ll + 0x1000000ll * ((a) & 0x7);
594*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_MSIX_PBAX", 2, a, b, 0, 0, 0, 0);
595*4b8b8d74SJaiprakash Singh }
596*4b8b8d74SJaiprakash Singh
597*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_MSIX_PBAX(a, b) ody_uaax_msix_pbax_t
598*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_MSIX_PBAX(a, b) CSR_TYPE_RSL
599*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_MSIX_PBAX(a, b) "UAAX_MSIX_PBAX"
600*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_MSIX_PBAX(a, b) 0x4 /* PF_BAR4 */
601*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_MSIX_PBAX(a, b) (a)
602*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_MSIX_PBAX(a, b) (a), (b), -1, -1
603*4b8b8d74SJaiprakash Singh
604*4b8b8d74SJaiprakash Singh /**
605*4b8b8d74SJaiprakash Singh * Register (RSL) uaa#_msix_vec#_addr
606*4b8b8d74SJaiprakash Singh *
607*4b8b8d74SJaiprakash Singh * UART MSI-X Vector Table Address Registers
608*4b8b8d74SJaiprakash Singh * This register is the MSI-X vector table, indexed by the UAA_INT_VEC_E enumeration.
609*4b8b8d74SJaiprakash Singh */
610*4b8b8d74SJaiprakash Singh union ody_uaax_msix_vecx_addr {
611*4b8b8d74SJaiprakash Singh uint64_t u;
612*4b8b8d74SJaiprakash Singh struct ody_uaax_msix_vecx_addr_s {
613*4b8b8d74SJaiprakash Singh uint64_t secvec : 1;
614*4b8b8d74SJaiprakash Singh uint64_t reserved_1 : 1;
615*4b8b8d74SJaiprakash Singh uint64_t addr : 51;
616*4b8b8d74SJaiprakash Singh uint64_t reserved_53_63 : 11;
617*4b8b8d74SJaiprakash Singh } s;
618*4b8b8d74SJaiprakash Singh /* struct ody_uaax_msix_vecx_addr_s cn; */
619*4b8b8d74SJaiprakash Singh };
620*4b8b8d74SJaiprakash Singh typedef union ody_uaax_msix_vecx_addr ody_uaax_msix_vecx_addr_t;
621*4b8b8d74SJaiprakash Singh
622*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_MSIX_VECX_ADDR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_UAAX_MSIX_VECX_ADDR(uint64_t a,uint64_t b)623*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_MSIX_VECX_ADDR(uint64_t a, uint64_t b)
624*4b8b8d74SJaiprakash Singh {
625*4b8b8d74SJaiprakash Singh if ((a <= 7) && (b <= 1))
626*4b8b8d74SJaiprakash Singh return 0x87e028f00000ll + 0x1000000ll * ((a) & 0x7) + 0x10ll * ((b) & 0x1);
627*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_MSIX_VECX_ADDR", 2, a, b, 0, 0, 0, 0);
628*4b8b8d74SJaiprakash Singh }
629*4b8b8d74SJaiprakash Singh
630*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_MSIX_VECX_ADDR(a, b) ody_uaax_msix_vecx_addr_t
631*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_MSIX_VECX_ADDR(a, b) CSR_TYPE_RSL
632*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_MSIX_VECX_ADDR(a, b) "UAAX_MSIX_VECX_ADDR"
633*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_MSIX_VECX_ADDR(a, b) 0x4 /* PF_BAR4 */
634*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_MSIX_VECX_ADDR(a, b) (a)
635*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_MSIX_VECX_ADDR(a, b) (a), (b), -1, -1
636*4b8b8d74SJaiprakash Singh
637*4b8b8d74SJaiprakash Singh /**
638*4b8b8d74SJaiprakash Singh * Register (RSL) uaa#_msix_vec#_ctl
639*4b8b8d74SJaiprakash Singh *
640*4b8b8d74SJaiprakash Singh * UART MSI-X Vector Table Control and Data Registers
641*4b8b8d74SJaiprakash Singh * This register is the MSI-X vector table, indexed by the UAA_INT_VEC_E enumeration.
642*4b8b8d74SJaiprakash Singh */
643*4b8b8d74SJaiprakash Singh union ody_uaax_msix_vecx_ctl {
644*4b8b8d74SJaiprakash Singh uint64_t u;
645*4b8b8d74SJaiprakash Singh struct ody_uaax_msix_vecx_ctl_s {
646*4b8b8d74SJaiprakash Singh uint64_t data : 32;
647*4b8b8d74SJaiprakash Singh uint64_t mask : 1;
648*4b8b8d74SJaiprakash Singh uint64_t reserved_33_63 : 31;
649*4b8b8d74SJaiprakash Singh } s;
650*4b8b8d74SJaiprakash Singh /* struct ody_uaax_msix_vecx_ctl_s cn; */
651*4b8b8d74SJaiprakash Singh };
652*4b8b8d74SJaiprakash Singh typedef union ody_uaax_msix_vecx_ctl ody_uaax_msix_vecx_ctl_t;
653*4b8b8d74SJaiprakash Singh
654*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_MSIX_VECX_CTL(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_UAAX_MSIX_VECX_CTL(uint64_t a,uint64_t b)655*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_MSIX_VECX_CTL(uint64_t a, uint64_t b)
656*4b8b8d74SJaiprakash Singh {
657*4b8b8d74SJaiprakash Singh if ((a <= 7) && (b <= 1))
658*4b8b8d74SJaiprakash Singh return 0x87e028f00008ll + 0x1000000ll * ((a) & 0x7) + 0x10ll * ((b) & 0x1);
659*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_MSIX_VECX_CTL", 2, a, b, 0, 0, 0, 0);
660*4b8b8d74SJaiprakash Singh }
661*4b8b8d74SJaiprakash Singh
662*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_MSIX_VECX_CTL(a, b) ody_uaax_msix_vecx_ctl_t
663*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_MSIX_VECX_CTL(a, b) CSR_TYPE_RSL
664*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_MSIX_VECX_CTL(a, b) "UAAX_MSIX_VECX_CTL"
665*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_MSIX_VECX_CTL(a, b) 0x4 /* PF_BAR4 */
666*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_MSIX_VECX_CTL(a, b) (a)
667*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_MSIX_VECX_CTL(a, b) (a), (b), -1, -1
668*4b8b8d74SJaiprakash Singh
669*4b8b8d74SJaiprakash Singh /**
670*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_pidr0
671*4b8b8d74SJaiprakash Singh *
672*4b8b8d74SJaiprakash Singh * UART Component Identification Register 0
673*4b8b8d74SJaiprakash Singh */
674*4b8b8d74SJaiprakash Singh union ody_uaax_pidr0 {
675*4b8b8d74SJaiprakash Singh uint32_t u;
676*4b8b8d74SJaiprakash Singh struct ody_uaax_pidr0_s {
677*4b8b8d74SJaiprakash Singh uint32_t partnum0 : 8;
678*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
679*4b8b8d74SJaiprakash Singh } s;
680*4b8b8d74SJaiprakash Singh /* struct ody_uaax_pidr0_s cn; */
681*4b8b8d74SJaiprakash Singh };
682*4b8b8d74SJaiprakash Singh typedef union ody_uaax_pidr0 ody_uaax_pidr0_t;
683*4b8b8d74SJaiprakash Singh
684*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_PIDR0(uint64_t a)685*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR0(uint64_t a)
686*4b8b8d74SJaiprakash Singh {
687*4b8b8d74SJaiprakash Singh if (a <= 7)
688*4b8b8d74SJaiprakash Singh return 0x87e028000fe0ll + 0x1000000ll * ((a) & 0x7);
689*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_PIDR0", 1, a, 0, 0, 0, 0, 0);
690*4b8b8d74SJaiprakash Singh }
691*4b8b8d74SJaiprakash Singh
692*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_PIDR0(a) ody_uaax_pidr0_t
693*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_PIDR0(a) CSR_TYPE_RSL32b
694*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_PIDR0(a) "UAAX_PIDR0"
695*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_PIDR0(a) 0x0 /* PF_BAR0 */
696*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_PIDR0(a) (a)
697*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_PIDR0(a) (a), -1, -1, -1
698*4b8b8d74SJaiprakash Singh
699*4b8b8d74SJaiprakash Singh /**
700*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_pidr1
701*4b8b8d74SJaiprakash Singh *
702*4b8b8d74SJaiprakash Singh * UART Peripheral Identification Register 1
703*4b8b8d74SJaiprakash Singh */
704*4b8b8d74SJaiprakash Singh union ody_uaax_pidr1 {
705*4b8b8d74SJaiprakash Singh uint32_t u;
706*4b8b8d74SJaiprakash Singh struct ody_uaax_pidr1_s {
707*4b8b8d74SJaiprakash Singh uint32_t partnum1 : 4;
708*4b8b8d74SJaiprakash Singh uint32_t idcode : 4;
709*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
710*4b8b8d74SJaiprakash Singh } s;
711*4b8b8d74SJaiprakash Singh /* struct ody_uaax_pidr1_s cn; */
712*4b8b8d74SJaiprakash Singh };
713*4b8b8d74SJaiprakash Singh typedef union ody_uaax_pidr1 ody_uaax_pidr1_t;
714*4b8b8d74SJaiprakash Singh
715*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_PIDR1(uint64_t a)716*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR1(uint64_t a)
717*4b8b8d74SJaiprakash Singh {
718*4b8b8d74SJaiprakash Singh if (a <= 7)
719*4b8b8d74SJaiprakash Singh return 0x87e028000fe4ll + 0x1000000ll * ((a) & 0x7);
720*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_PIDR1", 1, a, 0, 0, 0, 0, 0);
721*4b8b8d74SJaiprakash Singh }
722*4b8b8d74SJaiprakash Singh
723*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_PIDR1(a) ody_uaax_pidr1_t
724*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_PIDR1(a) CSR_TYPE_RSL32b
725*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_PIDR1(a) "UAAX_PIDR1"
726*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_PIDR1(a) 0x0 /* PF_BAR0 */
727*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_PIDR1(a) (a)
728*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_PIDR1(a) (a), -1, -1, -1
729*4b8b8d74SJaiprakash Singh
730*4b8b8d74SJaiprakash Singh /**
731*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_pidr2
732*4b8b8d74SJaiprakash Singh *
733*4b8b8d74SJaiprakash Singh * UART Peripheral Identification Register 2
734*4b8b8d74SJaiprakash Singh */
735*4b8b8d74SJaiprakash Singh union ody_uaax_pidr2 {
736*4b8b8d74SJaiprakash Singh uint32_t u;
737*4b8b8d74SJaiprakash Singh struct ody_uaax_pidr2_s {
738*4b8b8d74SJaiprakash Singh uint32_t idcode : 3;
739*4b8b8d74SJaiprakash Singh uint32_t jedec : 1;
740*4b8b8d74SJaiprakash Singh uint32_t revision : 4;
741*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
742*4b8b8d74SJaiprakash Singh } s;
743*4b8b8d74SJaiprakash Singh /* struct ody_uaax_pidr2_s cn; */
744*4b8b8d74SJaiprakash Singh };
745*4b8b8d74SJaiprakash Singh typedef union ody_uaax_pidr2 ody_uaax_pidr2_t;
746*4b8b8d74SJaiprakash Singh
747*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_PIDR2(uint64_t a)748*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR2(uint64_t a)
749*4b8b8d74SJaiprakash Singh {
750*4b8b8d74SJaiprakash Singh if (a <= 7)
751*4b8b8d74SJaiprakash Singh return 0x87e028000fe8ll + 0x1000000ll * ((a) & 0x7);
752*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_PIDR2", 1, a, 0, 0, 0, 0, 0);
753*4b8b8d74SJaiprakash Singh }
754*4b8b8d74SJaiprakash Singh
755*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_PIDR2(a) ody_uaax_pidr2_t
756*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_PIDR2(a) CSR_TYPE_RSL32b
757*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_PIDR2(a) "UAAX_PIDR2"
758*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_PIDR2(a) 0x0 /* PF_BAR0 */
759*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_PIDR2(a) (a)
760*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_PIDR2(a) (a), -1, -1, -1
761*4b8b8d74SJaiprakash Singh
762*4b8b8d74SJaiprakash Singh /**
763*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_pidr3
764*4b8b8d74SJaiprakash Singh *
765*4b8b8d74SJaiprakash Singh * UART Peripheral Identification Register 3
766*4b8b8d74SJaiprakash Singh */
767*4b8b8d74SJaiprakash Singh union ody_uaax_pidr3 {
768*4b8b8d74SJaiprakash Singh uint32_t u;
769*4b8b8d74SJaiprakash Singh struct ody_uaax_pidr3_s {
770*4b8b8d74SJaiprakash Singh uint32_t cust : 4;
771*4b8b8d74SJaiprakash Singh uint32_t revand : 4;
772*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
773*4b8b8d74SJaiprakash Singh } s;
774*4b8b8d74SJaiprakash Singh /* struct ody_uaax_pidr3_s cn; */
775*4b8b8d74SJaiprakash Singh };
776*4b8b8d74SJaiprakash Singh typedef union ody_uaax_pidr3 ody_uaax_pidr3_t;
777*4b8b8d74SJaiprakash Singh
778*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_PIDR3(uint64_t a)779*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR3(uint64_t a)
780*4b8b8d74SJaiprakash Singh {
781*4b8b8d74SJaiprakash Singh if (a <= 7)
782*4b8b8d74SJaiprakash Singh return 0x87e028000fecll + 0x1000000ll * ((a) & 0x7);
783*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_PIDR3", 1, a, 0, 0, 0, 0, 0);
784*4b8b8d74SJaiprakash Singh }
785*4b8b8d74SJaiprakash Singh
786*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_PIDR3(a) ody_uaax_pidr3_t
787*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_PIDR3(a) CSR_TYPE_RSL32b
788*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_PIDR3(a) "UAAX_PIDR3"
789*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_PIDR3(a) 0x0 /* PF_BAR0 */
790*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_PIDR3(a) (a)
791*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_PIDR3(a) (a), -1, -1, -1
792*4b8b8d74SJaiprakash Singh
793*4b8b8d74SJaiprakash Singh /**
794*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_pidr4
795*4b8b8d74SJaiprakash Singh *
796*4b8b8d74SJaiprakash Singh * UART Peripheral Identification Register 4
797*4b8b8d74SJaiprakash Singh */
798*4b8b8d74SJaiprakash Singh union ody_uaax_pidr4 {
799*4b8b8d74SJaiprakash Singh uint32_t u;
800*4b8b8d74SJaiprakash Singh struct ody_uaax_pidr4_s {
801*4b8b8d74SJaiprakash Singh uint32_t reserved_0_31 : 32;
802*4b8b8d74SJaiprakash Singh } s;
803*4b8b8d74SJaiprakash Singh /* struct ody_uaax_pidr4_s cn; */
804*4b8b8d74SJaiprakash Singh };
805*4b8b8d74SJaiprakash Singh typedef union ody_uaax_pidr4 ody_uaax_pidr4_t;
806*4b8b8d74SJaiprakash Singh
807*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR4(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_PIDR4(uint64_t a)808*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR4(uint64_t a)
809*4b8b8d74SJaiprakash Singh {
810*4b8b8d74SJaiprakash Singh if (a <= 7)
811*4b8b8d74SJaiprakash Singh return 0x87e028000fd0ll + 0x1000000ll * ((a) & 0x7);
812*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_PIDR4", 1, a, 0, 0, 0, 0, 0);
813*4b8b8d74SJaiprakash Singh }
814*4b8b8d74SJaiprakash Singh
815*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_PIDR4(a) ody_uaax_pidr4_t
816*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_PIDR4(a) CSR_TYPE_RSL32b
817*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_PIDR4(a) "UAAX_PIDR4"
818*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_PIDR4(a) 0x0 /* PF_BAR0 */
819*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_PIDR4(a) (a)
820*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_PIDR4(a) (a), -1, -1, -1
821*4b8b8d74SJaiprakash Singh
822*4b8b8d74SJaiprakash Singh /**
823*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_pidr5
824*4b8b8d74SJaiprakash Singh *
825*4b8b8d74SJaiprakash Singh * UART Peripheral Identification Register 5
826*4b8b8d74SJaiprakash Singh */
827*4b8b8d74SJaiprakash Singh union ody_uaax_pidr5 {
828*4b8b8d74SJaiprakash Singh uint32_t u;
829*4b8b8d74SJaiprakash Singh struct ody_uaax_pidr5_s {
830*4b8b8d74SJaiprakash Singh uint32_t reserved_0_31 : 32;
831*4b8b8d74SJaiprakash Singh } s;
832*4b8b8d74SJaiprakash Singh /* struct ody_uaax_pidr5_s cn; */
833*4b8b8d74SJaiprakash Singh };
834*4b8b8d74SJaiprakash Singh typedef union ody_uaax_pidr5 ody_uaax_pidr5_t;
835*4b8b8d74SJaiprakash Singh
836*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR5(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_PIDR5(uint64_t a)837*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR5(uint64_t a)
838*4b8b8d74SJaiprakash Singh {
839*4b8b8d74SJaiprakash Singh if (a <= 7)
840*4b8b8d74SJaiprakash Singh return 0x87e028000fd4ll + 0x1000000ll * ((a) & 0x7);
841*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_PIDR5", 1, a, 0, 0, 0, 0, 0);
842*4b8b8d74SJaiprakash Singh }
843*4b8b8d74SJaiprakash Singh
844*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_PIDR5(a) ody_uaax_pidr5_t
845*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_PIDR5(a) CSR_TYPE_RSL32b
846*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_PIDR5(a) "UAAX_PIDR5"
847*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_PIDR5(a) 0x0 /* PF_BAR0 */
848*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_PIDR5(a) (a)
849*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_PIDR5(a) (a), -1, -1, -1
850*4b8b8d74SJaiprakash Singh
851*4b8b8d74SJaiprakash Singh /**
852*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_pidr6
853*4b8b8d74SJaiprakash Singh *
854*4b8b8d74SJaiprakash Singh * UART Peripheral Identification Register 6
855*4b8b8d74SJaiprakash Singh */
856*4b8b8d74SJaiprakash Singh union ody_uaax_pidr6 {
857*4b8b8d74SJaiprakash Singh uint32_t u;
858*4b8b8d74SJaiprakash Singh struct ody_uaax_pidr6_s {
859*4b8b8d74SJaiprakash Singh uint32_t reserved_0_31 : 32;
860*4b8b8d74SJaiprakash Singh } s;
861*4b8b8d74SJaiprakash Singh /* struct ody_uaax_pidr6_s cn; */
862*4b8b8d74SJaiprakash Singh };
863*4b8b8d74SJaiprakash Singh typedef union ody_uaax_pidr6 ody_uaax_pidr6_t;
864*4b8b8d74SJaiprakash Singh
865*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR6(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_PIDR6(uint64_t a)866*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR6(uint64_t a)
867*4b8b8d74SJaiprakash Singh {
868*4b8b8d74SJaiprakash Singh if (a <= 7)
869*4b8b8d74SJaiprakash Singh return 0x87e028000fd8ll + 0x1000000ll * ((a) & 0x7);
870*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_PIDR6", 1, a, 0, 0, 0, 0, 0);
871*4b8b8d74SJaiprakash Singh }
872*4b8b8d74SJaiprakash Singh
873*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_PIDR6(a) ody_uaax_pidr6_t
874*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_PIDR6(a) CSR_TYPE_RSL32b
875*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_PIDR6(a) "UAAX_PIDR6"
876*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_PIDR6(a) 0x0 /* PF_BAR0 */
877*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_PIDR6(a) (a)
878*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_PIDR6(a) (a), -1, -1, -1
879*4b8b8d74SJaiprakash Singh
880*4b8b8d74SJaiprakash Singh /**
881*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_pidr7
882*4b8b8d74SJaiprakash Singh *
883*4b8b8d74SJaiprakash Singh * UART Peripheral Identification Register 7
884*4b8b8d74SJaiprakash Singh */
885*4b8b8d74SJaiprakash Singh union ody_uaax_pidr7 {
886*4b8b8d74SJaiprakash Singh uint32_t u;
887*4b8b8d74SJaiprakash Singh struct ody_uaax_pidr7_s {
888*4b8b8d74SJaiprakash Singh uint32_t reserved_0_31 : 32;
889*4b8b8d74SJaiprakash Singh } s;
890*4b8b8d74SJaiprakash Singh /* struct ody_uaax_pidr7_s cn; */
891*4b8b8d74SJaiprakash Singh };
892*4b8b8d74SJaiprakash Singh typedef union ody_uaax_pidr7 ody_uaax_pidr7_t;
893*4b8b8d74SJaiprakash Singh
894*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR7(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_PIDR7(uint64_t a)895*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_PIDR7(uint64_t a)
896*4b8b8d74SJaiprakash Singh {
897*4b8b8d74SJaiprakash Singh if (a <= 7)
898*4b8b8d74SJaiprakash Singh return 0x87e028000fdcll + 0x1000000ll * ((a) & 0x7);
899*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_PIDR7", 1, a, 0, 0, 0, 0, 0);
900*4b8b8d74SJaiprakash Singh }
901*4b8b8d74SJaiprakash Singh
902*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_PIDR7(a) ody_uaax_pidr7_t
903*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_PIDR7(a) CSR_TYPE_RSL32b
904*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_PIDR7(a) "UAAX_PIDR7"
905*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_PIDR7(a) 0x0 /* PF_BAR0 */
906*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_PIDR7(a) (a)
907*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_PIDR7(a) (a), -1, -1, -1
908*4b8b8d74SJaiprakash Singh
909*4b8b8d74SJaiprakash Singh /**
910*4b8b8d74SJaiprakash Singh * Register (RSL) uaa#_redirect
911*4b8b8d74SJaiprakash Singh *
912*4b8b8d74SJaiprakash Singh * UART REDIRECT Control Register
913*4b8b8d74SJaiprakash Singh */
914*4b8b8d74SJaiprakash Singh union ody_uaax_redirect {
915*4b8b8d74SJaiprakash Singh uint64_t u;
916*4b8b8d74SJaiprakash Singh struct ody_uaax_redirect_s {
917*4b8b8d74SJaiprakash Singh uint64_t in_sel : 3;
918*4b8b8d74SJaiprakash Singh uint64_t in_ena : 1;
919*4b8b8d74SJaiprakash Singh uint64_t out_dis : 1;
920*4b8b8d74SJaiprakash Singh uint64_t reserved_5_63 : 59;
921*4b8b8d74SJaiprakash Singh } s;
922*4b8b8d74SJaiprakash Singh /* struct ody_uaax_redirect_s cn; */
923*4b8b8d74SJaiprakash Singh };
924*4b8b8d74SJaiprakash Singh typedef union ody_uaax_redirect ody_uaax_redirect_t;
925*4b8b8d74SJaiprakash Singh
926*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_REDIRECT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_REDIRECT(uint64_t a)927*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_REDIRECT(uint64_t a)
928*4b8b8d74SJaiprakash Singh {
929*4b8b8d74SJaiprakash Singh if (a <= 7)
930*4b8b8d74SJaiprakash Singh return 0x87e028001020ll + 0x1000000ll * ((a) & 0x7);
931*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_REDIRECT", 1, a, 0, 0, 0, 0, 0);
932*4b8b8d74SJaiprakash Singh }
933*4b8b8d74SJaiprakash Singh
934*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_REDIRECT(a) ody_uaax_redirect_t
935*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_REDIRECT(a) CSR_TYPE_RSL
936*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_REDIRECT(a) "UAAX_REDIRECT"
937*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_REDIRECT(a) 0x0 /* PF_BAR0 */
938*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_REDIRECT(a) (a)
939*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_REDIRECT(a) (a), -1, -1, -1
940*4b8b8d74SJaiprakash Singh
941*4b8b8d74SJaiprakash Singh /**
942*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_ris
943*4b8b8d74SJaiprakash Singh *
944*4b8b8d74SJaiprakash Singh * UART Raw Interrupt Status Register
945*4b8b8d74SJaiprakash Singh * Indicates state of interrupts before masking.
946*4b8b8d74SJaiprakash Singh */
947*4b8b8d74SJaiprakash Singh union ody_uaax_ris {
948*4b8b8d74SJaiprakash Singh uint32_t u;
949*4b8b8d74SJaiprakash Singh struct ody_uaax_ris_s {
950*4b8b8d74SJaiprakash Singh uint32_t rirmis : 1;
951*4b8b8d74SJaiprakash Singh uint32_t ctsrmis : 1;
952*4b8b8d74SJaiprakash Singh uint32_t dcdrmis : 1;
953*4b8b8d74SJaiprakash Singh uint32_t dsrrmis : 1;
954*4b8b8d74SJaiprakash Singh uint32_t rxris : 1;
955*4b8b8d74SJaiprakash Singh uint32_t txris : 1;
956*4b8b8d74SJaiprakash Singh uint32_t rtris : 1;
957*4b8b8d74SJaiprakash Singh uint32_t feris : 1;
958*4b8b8d74SJaiprakash Singh uint32_t peris : 1;
959*4b8b8d74SJaiprakash Singh uint32_t beris : 1;
960*4b8b8d74SJaiprakash Singh uint32_t oeris : 1;
961*4b8b8d74SJaiprakash Singh uint32_t reserved_11_31 : 21;
962*4b8b8d74SJaiprakash Singh } s;
963*4b8b8d74SJaiprakash Singh /* struct ody_uaax_ris_s cn; */
964*4b8b8d74SJaiprakash Singh };
965*4b8b8d74SJaiprakash Singh typedef union ody_uaax_ris ody_uaax_ris_t;
966*4b8b8d74SJaiprakash Singh
967*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_RIS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_RIS(uint64_t a)968*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_RIS(uint64_t a)
969*4b8b8d74SJaiprakash Singh {
970*4b8b8d74SJaiprakash Singh if (a <= 7)
971*4b8b8d74SJaiprakash Singh return 0x87e02800003cll + 0x1000000ll * ((a) & 0x7);
972*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_RIS", 1, a, 0, 0, 0, 0, 0);
973*4b8b8d74SJaiprakash Singh }
974*4b8b8d74SJaiprakash Singh
975*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_RIS(a) ody_uaax_ris_t
976*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_RIS(a) CSR_TYPE_RSL32b
977*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_RIS(a) "UAAX_RIS"
978*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_RIS(a) 0x0 /* PF_BAR0 */
979*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_RIS(a) (a)
980*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_RIS(a) (a), -1, -1, -1
981*4b8b8d74SJaiprakash Singh
982*4b8b8d74SJaiprakash Singh /**
983*4b8b8d74SJaiprakash Singh * Register (RSL32b) uaa#_rsr_ecr
984*4b8b8d74SJaiprakash Singh *
985*4b8b8d74SJaiprakash Singh * UART Receive Status Register/Error Clear Register
986*4b8b8d74SJaiprakash Singh */
987*4b8b8d74SJaiprakash Singh union ody_uaax_rsr_ecr {
988*4b8b8d74SJaiprakash Singh uint32_t u;
989*4b8b8d74SJaiprakash Singh struct ody_uaax_rsr_ecr_s {
990*4b8b8d74SJaiprakash Singh uint32_t fe : 1;
991*4b8b8d74SJaiprakash Singh uint32_t pe : 1;
992*4b8b8d74SJaiprakash Singh uint32_t be : 1;
993*4b8b8d74SJaiprakash Singh uint32_t oe : 1;
994*4b8b8d74SJaiprakash Singh uint32_t reserved_4_31 : 28;
995*4b8b8d74SJaiprakash Singh } s;
996*4b8b8d74SJaiprakash Singh /* struct ody_uaax_rsr_ecr_s cn; */
997*4b8b8d74SJaiprakash Singh };
998*4b8b8d74SJaiprakash Singh typedef union ody_uaax_rsr_ecr ody_uaax_rsr_ecr_t;
999*4b8b8d74SJaiprakash Singh
1000*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_RSR_ECR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_RSR_ECR(uint64_t a)1001*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_RSR_ECR(uint64_t a)
1002*4b8b8d74SJaiprakash Singh {
1003*4b8b8d74SJaiprakash Singh if (a <= 7)
1004*4b8b8d74SJaiprakash Singh return 0x87e028000004ll + 0x1000000ll * ((a) & 0x7);
1005*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_RSR_ECR", 1, a, 0, 0, 0, 0, 0);
1006*4b8b8d74SJaiprakash Singh }
1007*4b8b8d74SJaiprakash Singh
1008*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_RSR_ECR(a) ody_uaax_rsr_ecr_t
1009*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_RSR_ECR(a) CSR_TYPE_RSL32b
1010*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_RSR_ECR(a) "UAAX_RSR_ECR"
1011*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_RSR_ECR(a) 0x0 /* PF_BAR0 */
1012*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_RSR_ECR(a) (a)
1013*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_RSR_ECR(a) (a), -1, -1, -1
1014*4b8b8d74SJaiprakash Singh
1015*4b8b8d74SJaiprakash Singh /**
1016*4b8b8d74SJaiprakash Singh * Register (RSL) uaa#_uctl_csclk_active_pc
1017*4b8b8d74SJaiprakash Singh *
1018*4b8b8d74SJaiprakash Singh * UAA UCTL Conditional Clock Counter Register
1019*4b8b8d74SJaiprakash Singh * This register counts conditional clocks, for power analysis.
1020*4b8b8d74SJaiprakash Singh * Reset by RSL reset.
1021*4b8b8d74SJaiprakash Singh */
1022*4b8b8d74SJaiprakash Singh union ody_uaax_uctl_csclk_active_pc {
1023*4b8b8d74SJaiprakash Singh uint64_t u;
1024*4b8b8d74SJaiprakash Singh struct ody_uaax_uctl_csclk_active_pc_s {
1025*4b8b8d74SJaiprakash Singh uint64_t count : 64;
1026*4b8b8d74SJaiprakash Singh } s;
1027*4b8b8d74SJaiprakash Singh /* struct ody_uaax_uctl_csclk_active_pc_s cn; */
1028*4b8b8d74SJaiprakash Singh };
1029*4b8b8d74SJaiprakash Singh typedef union ody_uaax_uctl_csclk_active_pc ody_uaax_uctl_csclk_active_pc_t;
1030*4b8b8d74SJaiprakash Singh
1031*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_UCTL_CSCLK_ACTIVE_PC(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_UCTL_CSCLK_ACTIVE_PC(uint64_t a)1032*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_UCTL_CSCLK_ACTIVE_PC(uint64_t a)
1033*4b8b8d74SJaiprakash Singh {
1034*4b8b8d74SJaiprakash Singh if (a <= 7)
1035*4b8b8d74SJaiprakash Singh return 0x87e028001018ll + 0x1000000ll * ((a) & 0x7);
1036*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_UCTL_CSCLK_ACTIVE_PC", 1, a, 0, 0, 0, 0, 0);
1037*4b8b8d74SJaiprakash Singh }
1038*4b8b8d74SJaiprakash Singh
1039*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_UCTL_CSCLK_ACTIVE_PC(a) ody_uaax_uctl_csclk_active_pc_t
1040*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_UCTL_CSCLK_ACTIVE_PC(a) CSR_TYPE_RSL
1041*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_UCTL_CSCLK_ACTIVE_PC(a) "UAAX_UCTL_CSCLK_ACTIVE_PC"
1042*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_UCTL_CSCLK_ACTIVE_PC(a) 0x0 /* PF_BAR0 */
1043*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_UCTL_CSCLK_ACTIVE_PC(a) (a)
1044*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_UCTL_CSCLK_ACTIVE_PC(a) (a), -1, -1, -1
1045*4b8b8d74SJaiprakash Singh
1046*4b8b8d74SJaiprakash Singh /**
1047*4b8b8d74SJaiprakash Singh * Register (RSL) uaa#_uctl_ctl
1048*4b8b8d74SJaiprakash Singh *
1049*4b8b8d74SJaiprakash Singh * UART UCTL Control Register
1050*4b8b8d74SJaiprakash Singh */
1051*4b8b8d74SJaiprakash Singh union ody_uaax_uctl_ctl {
1052*4b8b8d74SJaiprakash Singh uint64_t u;
1053*4b8b8d74SJaiprakash Singh struct ody_uaax_uctl_ctl_s {
1054*4b8b8d74SJaiprakash Singh uint64_t uctl_rst : 1;
1055*4b8b8d74SJaiprakash Singh uint64_t uaa_rst : 1;
1056*4b8b8d74SJaiprakash Singh uint64_t reserved_2_3 : 2;
1057*4b8b8d74SJaiprakash Singh uint64_t csclk_en : 1;
1058*4b8b8d74SJaiprakash Singh uint64_t reserved_5_23 : 19;
1059*4b8b8d74SJaiprakash Singh uint64_t h_clkdiv_sel : 3;
1060*4b8b8d74SJaiprakash Singh uint64_t reserved_27 : 1;
1061*4b8b8d74SJaiprakash Singh uint64_t h_clkdiv_rst : 1;
1062*4b8b8d74SJaiprakash Singh uint64_t h_clk_byp_sel : 1;
1063*4b8b8d74SJaiprakash Singh uint64_t h_clk_en : 1;
1064*4b8b8d74SJaiprakash Singh uint64_t reserved_31_63 : 33;
1065*4b8b8d74SJaiprakash Singh } s;
1066*4b8b8d74SJaiprakash Singh /* struct ody_uaax_uctl_ctl_s cn; */
1067*4b8b8d74SJaiprakash Singh };
1068*4b8b8d74SJaiprakash Singh typedef union ody_uaax_uctl_ctl ody_uaax_uctl_ctl_t;
1069*4b8b8d74SJaiprakash Singh
1070*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_UCTL_CTL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_UCTL_CTL(uint64_t a)1071*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_UCTL_CTL(uint64_t a)
1072*4b8b8d74SJaiprakash Singh {
1073*4b8b8d74SJaiprakash Singh if (a <= 7)
1074*4b8b8d74SJaiprakash Singh return 0x87e028001000ll + 0x1000000ll * ((a) & 0x7);
1075*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_UCTL_CTL", 1, a, 0, 0, 0, 0, 0);
1076*4b8b8d74SJaiprakash Singh }
1077*4b8b8d74SJaiprakash Singh
1078*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_UCTL_CTL(a) ody_uaax_uctl_ctl_t
1079*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_UCTL_CTL(a) CSR_TYPE_RSL
1080*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_UCTL_CTL(a) "UAAX_UCTL_CTL"
1081*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_UCTL_CTL(a) 0x0 /* PF_BAR0 */
1082*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_UCTL_CTL(a) (a)
1083*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_UCTL_CTL(a) (a), -1, -1, -1
1084*4b8b8d74SJaiprakash Singh
1085*4b8b8d74SJaiprakash Singh /**
1086*4b8b8d74SJaiprakash Singh * Register (RSL) uaa#_uctl_spare0
1087*4b8b8d74SJaiprakash Singh *
1088*4b8b8d74SJaiprakash Singh * UART UCTL Spare Register 0
1089*4b8b8d74SJaiprakash Singh * This register is a spare register. This register can be reset by NCB reset.
1090*4b8b8d74SJaiprakash Singh */
1091*4b8b8d74SJaiprakash Singh union ody_uaax_uctl_spare0 {
1092*4b8b8d74SJaiprakash Singh uint64_t u;
1093*4b8b8d74SJaiprakash Singh struct ody_uaax_uctl_spare0_s {
1094*4b8b8d74SJaiprakash Singh uint64_t spare : 64;
1095*4b8b8d74SJaiprakash Singh } s;
1096*4b8b8d74SJaiprakash Singh /* struct ody_uaax_uctl_spare0_s cn; */
1097*4b8b8d74SJaiprakash Singh };
1098*4b8b8d74SJaiprakash Singh typedef union ody_uaax_uctl_spare0 ody_uaax_uctl_spare0_t;
1099*4b8b8d74SJaiprakash Singh
1100*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_UCTL_SPARE0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_UCTL_SPARE0(uint64_t a)1101*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_UCTL_SPARE0(uint64_t a)
1102*4b8b8d74SJaiprakash Singh {
1103*4b8b8d74SJaiprakash Singh if (a <= 7)
1104*4b8b8d74SJaiprakash Singh return 0x87e028001010ll + 0x1000000ll * ((a) & 0x7);
1105*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_UCTL_SPARE0", 1, a, 0, 0, 0, 0, 0);
1106*4b8b8d74SJaiprakash Singh }
1107*4b8b8d74SJaiprakash Singh
1108*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_UCTL_SPARE0(a) ody_uaax_uctl_spare0_t
1109*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_UCTL_SPARE0(a) CSR_TYPE_RSL
1110*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_UCTL_SPARE0(a) "UAAX_UCTL_SPARE0"
1111*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_UCTL_SPARE0(a) 0x0 /* PF_BAR0 */
1112*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_UCTL_SPARE0(a) (a)
1113*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_UCTL_SPARE0(a) (a), -1, -1, -1
1114*4b8b8d74SJaiprakash Singh
1115*4b8b8d74SJaiprakash Singh /**
1116*4b8b8d74SJaiprakash Singh * Register (RSL) uaa#_uctl_spare1
1117*4b8b8d74SJaiprakash Singh *
1118*4b8b8d74SJaiprakash Singh * UART UCTL Spare Register 1
1119*4b8b8d74SJaiprakash Singh * This register is a spare register. This register can be reset by NCB reset.
1120*4b8b8d74SJaiprakash Singh */
1121*4b8b8d74SJaiprakash Singh union ody_uaax_uctl_spare1 {
1122*4b8b8d74SJaiprakash Singh uint64_t u;
1123*4b8b8d74SJaiprakash Singh struct ody_uaax_uctl_spare1_s {
1124*4b8b8d74SJaiprakash Singh uint64_t spare : 64;
1125*4b8b8d74SJaiprakash Singh } s;
1126*4b8b8d74SJaiprakash Singh /* struct ody_uaax_uctl_spare1_s cn; */
1127*4b8b8d74SJaiprakash Singh };
1128*4b8b8d74SJaiprakash Singh typedef union ody_uaax_uctl_spare1 ody_uaax_uctl_spare1_t;
1129*4b8b8d74SJaiprakash Singh
1130*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_UCTL_SPARE1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_UAAX_UCTL_SPARE1(uint64_t a)1131*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_UAAX_UCTL_SPARE1(uint64_t a)
1132*4b8b8d74SJaiprakash Singh {
1133*4b8b8d74SJaiprakash Singh if (a <= 7)
1134*4b8b8d74SJaiprakash Singh return 0x87e0280010f8ll + 0x1000000ll * ((a) & 0x7);
1135*4b8b8d74SJaiprakash Singh __ody_csr_fatal("UAAX_UCTL_SPARE1", 1, a, 0, 0, 0, 0, 0);
1136*4b8b8d74SJaiprakash Singh }
1137*4b8b8d74SJaiprakash Singh
1138*4b8b8d74SJaiprakash Singh #define typedef_ODY_UAAX_UCTL_SPARE1(a) ody_uaax_uctl_spare1_t
1139*4b8b8d74SJaiprakash Singh #define bustype_ODY_UAAX_UCTL_SPARE1(a) CSR_TYPE_RSL
1140*4b8b8d74SJaiprakash Singh #define basename_ODY_UAAX_UCTL_SPARE1(a) "UAAX_UCTL_SPARE1"
1141*4b8b8d74SJaiprakash Singh #define device_bar_ODY_UAAX_UCTL_SPARE1(a) 0x0 /* PF_BAR0 */
1142*4b8b8d74SJaiprakash Singh #define busnum_ODY_UAAX_UCTL_SPARE1(a) (a)
1143*4b8b8d74SJaiprakash Singh #define arguments_ODY_UAAX_UCTL_SPARE1(a) (a), -1, -1, -1
1144*4b8b8d74SJaiprakash Singh
1145*4b8b8d74SJaiprakash Singh #endif /* __ODY_CSRS_UAA_H__ */
1146