xref: /rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-uaa.h (revision 12d80bbbf6031228bdd910eccb03bb185e8df527)
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