1*4b8b8d74SJaiprakash Singh #ifndef __ODY_CSRS_SPI_H__
2*4b8b8d74SJaiprakash Singh #define __ODY_CSRS_SPI_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 * SPI.
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 spi_bar_e
24*4b8b8d74SJaiprakash Singh *
25*4b8b8d74SJaiprakash Singh * SPI Base Address Register Enumeration
26*4b8b8d74SJaiprakash Singh * Enumerates the base address registers.
27*4b8b8d74SJaiprakash Singh */
28*4b8b8d74SJaiprakash Singh #define ODY_SPI_BAR_E_SPIX_PF_BAR0(a) (0x804000000000ll + 0x1000000000ll * (a))
29*4b8b8d74SJaiprakash Singh #define ODY_SPI_BAR_E_SPIX_PF_BAR0_SIZE 0x40000000ull
30*4b8b8d74SJaiprakash Singh #define ODY_SPI_BAR_E_SPIX_PF_BAR4(a) (0x804100000000ll + 0x1000000000ll * (a))
31*4b8b8d74SJaiprakash Singh #define ODY_SPI_BAR_E_SPIX_PF_BAR4_SIZE 0x100000ull
32*4b8b8d74SJaiprakash Singh
33*4b8b8d74SJaiprakash Singh /**
34*4b8b8d74SJaiprakash Singh * Enumeration spi_int_vec_e
35*4b8b8d74SJaiprakash Singh *
36*4b8b8d74SJaiprakash Singh * SPI MSI-X Vector Enumeration
37*4b8b8d74SJaiprakash Singh * Enumerates the MSI-X interrupt vectors.
38*4b8b8d74SJaiprakash Singh */
39*4b8b8d74SJaiprakash Singh #define ODY_SPI_INT_VEC_E_SPI_INTR (0)
40*4b8b8d74SJaiprakash Singh
41*4b8b8d74SJaiprakash Singh /**
42*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_clk_ctrl
43*4b8b8d74SJaiprakash Singh *
44*4b8b8d74SJaiprakash Singh * SPI Clock Control Register
45*4b8b8d74SJaiprakash Singh */
46*4b8b8d74SJaiprakash Singh union ody_spix_clk_ctrl {
47*4b8b8d74SJaiprakash Singh uint64_t u;
48*4b8b8d74SJaiprakash Singh struct ody_spix_clk_ctrl_s {
49*4b8b8d74SJaiprakash Singh uint64_t spi_clk_en : 1;
50*4b8b8d74SJaiprakash Singh uint64_t spi_io_clk_div : 4;
51*4b8b8d74SJaiprakash Singh uint64_t spi_sclk_force : 1;
52*4b8b8d74SJaiprakash Singh uint64_t spi_imsc_shadow : 1;
53*4b8b8d74SJaiprakash Singh uint64_t xspi_supports_xfer : 1;
54*4b8b8d74SJaiprakash Singh uint64_t reserved_8_63 : 56;
55*4b8b8d74SJaiprakash Singh } s;
56*4b8b8d74SJaiprakash Singh /* struct ody_spix_clk_ctrl_s cn; */
57*4b8b8d74SJaiprakash Singh };
58*4b8b8d74SJaiprakash Singh typedef union ody_spix_clk_ctrl ody_spix_clk_ctrl_t;
59*4b8b8d74SJaiprakash Singh
60*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CLK_CTRL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CLK_CTRL(uint64_t a)61*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CLK_CTRL(uint64_t a)
62*4b8b8d74SJaiprakash Singh {
63*4b8b8d74SJaiprakash Singh if (a <= 1)
64*4b8b8d74SJaiprakash Singh return 0x804000004020ll + 0x1000000000ll * ((a) & 0x1);
65*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CLK_CTRL", 1, a, 0, 0, 0, 0, 0);
66*4b8b8d74SJaiprakash Singh }
67*4b8b8d74SJaiprakash Singh
68*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CLK_CTRL(a) ody_spix_clk_ctrl_t
69*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CLK_CTRL(a) CSR_TYPE_NCB
70*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CLK_CTRL(a) "SPIX_CLK_CTRL"
71*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CLK_CTRL(a) 0x0 /* PF_BAR0 */
72*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CLK_CTRL(a) (a)
73*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CLK_CTRL(a) (a), -1, -1, -1
74*4b8b8d74SJaiprakash Singh
75*4b8b8d74SJaiprakash Singh /**
76*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_cmn_seq_regs_direct_access_cfg
77*4b8b8d74SJaiprakash Singh *
78*4b8b8d74SJaiprakash Singh * SPI Cmn Seq Regs Direct Access Cfg Register
79*4b8b8d74SJaiprakash Singh * to hold configuration required only by DIRECT work mode.
80*4b8b8d74SJaiprakash Singh */
81*4b8b8d74SJaiprakash Singh union ody_spix_cmn_seq_regs_direct_access_cfg {
82*4b8b8d74SJaiprakash Singh uint32_t u;
83*4b8b8d74SJaiprakash Singh struct ody_spix_cmn_seq_regs_direct_access_cfg_s {
84*4b8b8d74SJaiprakash Singh uint32_t dac_bank_num : 3;
85*4b8b8d74SJaiprakash Singh uint32_t reserved_3_7 : 5;
86*4b8b8d74SJaiprakash Singh uint32_t mode_bit_xip_en : 1;
87*4b8b8d74SJaiprakash Singh uint32_t mode_bit_xip_dis : 1;
88*4b8b8d74SJaiprakash Singh uint32_t reserved_10_11 : 2;
89*4b8b8d74SJaiprakash Singh uint32_t rmp_addr_en : 1;
90*4b8b8d74SJaiprakash Singh uint32_t reserved_13_15 : 3;
91*4b8b8d74SJaiprakash Singh uint32_t dac_addr_mask : 13;
92*4b8b8d74SJaiprakash Singh uint32_t reserved_29_31 : 3;
93*4b8b8d74SJaiprakash Singh } s;
94*4b8b8d74SJaiprakash Singh /* struct ody_spix_cmn_seq_regs_direct_access_cfg_s cn; */
95*4b8b8d74SJaiprakash Singh };
96*4b8b8d74SJaiprakash Singh typedef union ody_spix_cmn_seq_regs_direct_access_cfg ody_spix_cmn_seq_regs_direct_access_cfg_t;
97*4b8b8d74SJaiprakash Singh
98*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_CFG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_CFG(uint64_t a)99*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_CFG(uint64_t a)
100*4b8b8d74SJaiprakash Singh {
101*4b8b8d74SJaiprakash Singh if (a <= 1)
102*4b8b8d74SJaiprakash Singh return 0x804000000398ll + 0x1000000000ll * ((a) & 0x1);
103*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_CFG", 1, a, 0, 0, 0, 0, 0);
104*4b8b8d74SJaiprakash Singh }
105*4b8b8d74SJaiprakash Singh
106*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_CFG(a) ody_spix_cmn_seq_regs_direct_access_cfg_t
107*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_CFG(a) CSR_TYPE_NCB32b
108*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_CFG(a) "SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_CFG"
109*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_CFG(a) 0x0 /* PF_BAR0 */
110*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_CFG(a) (a)
111*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_CFG(a) (a), -1, -1, -1
112*4b8b8d74SJaiprakash Singh
113*4b8b8d74SJaiprakash Singh /**
114*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_cmn_seq_regs_direct_access_rmp
115*4b8b8d74SJaiprakash Singh *
116*4b8b8d74SJaiprakash Singh * SPI Cmn Seq Regs Direct Access Rmp Register
117*4b8b8d74SJaiprakash Singh * This register allows to the user to define the address offset for DIRECT work mode
118*4b8b8d74SJaiprakash Singh * for lower part of
119*4b8b8d74SJaiprakash Singh * input address on slave data interface.
120*4b8b8d74SJaiprakash Singh */
121*4b8b8d74SJaiprakash Singh union ody_spix_cmn_seq_regs_direct_access_rmp {
122*4b8b8d74SJaiprakash Singh uint32_t u;
123*4b8b8d74SJaiprakash Singh struct ody_spix_cmn_seq_regs_direct_access_rmp_s {
124*4b8b8d74SJaiprakash Singh uint32_t rmp_addr_val : 32;
125*4b8b8d74SJaiprakash Singh } s;
126*4b8b8d74SJaiprakash Singh /* struct ody_spix_cmn_seq_regs_direct_access_rmp_s cn; */
127*4b8b8d74SJaiprakash Singh };
128*4b8b8d74SJaiprakash Singh typedef union ody_spix_cmn_seq_regs_direct_access_rmp ody_spix_cmn_seq_regs_direct_access_rmp_t;
129*4b8b8d74SJaiprakash Singh
130*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP(uint64_t a)131*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP(uint64_t a)
132*4b8b8d74SJaiprakash Singh {
133*4b8b8d74SJaiprakash Singh if (a <= 1)
134*4b8b8d74SJaiprakash Singh return 0x80400000039cll + 0x1000000000ll * ((a) & 0x1);
135*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP", 1, a, 0, 0, 0, 0, 0);
136*4b8b8d74SJaiprakash Singh }
137*4b8b8d74SJaiprakash Singh
138*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP(a) ody_spix_cmn_seq_regs_direct_access_rmp_t
139*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP(a) CSR_TYPE_NCB32b
140*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP(a) "SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP"
141*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP(a) 0x0 /* PF_BAR0 */
142*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP(a) (a)
143*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP(a) (a), -1, -1, -1
144*4b8b8d74SJaiprakash Singh
145*4b8b8d74SJaiprakash Singh /**
146*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_cmn_seq_regs_direct_access_rmp_1
147*4b8b8d74SJaiprakash Singh *
148*4b8b8d74SJaiprakash Singh * SPI Cmn Seq Regs Direct Access Rmp 1 Register
149*4b8b8d74SJaiprakash Singh * This register allows to the user to define the address offset for DIRECT work mode
150*4b8b8d74SJaiprakash Singh * for upper part of
151*4b8b8d74SJaiprakash Singh * input address on Slave Data Interface.
152*4b8b8d74SJaiprakash Singh */
153*4b8b8d74SJaiprakash Singh union ody_spix_cmn_seq_regs_direct_access_rmp_1 {
154*4b8b8d74SJaiprakash Singh uint32_t u;
155*4b8b8d74SJaiprakash Singh struct ody_spix_cmn_seq_regs_direct_access_rmp_1_s {
156*4b8b8d74SJaiprakash Singh uint32_t rmp_addr_val_1 : 32;
157*4b8b8d74SJaiprakash Singh } s;
158*4b8b8d74SJaiprakash Singh /* struct ody_spix_cmn_seq_regs_direct_access_rmp_1_s cn; */
159*4b8b8d74SJaiprakash Singh };
160*4b8b8d74SJaiprakash Singh typedef union ody_spix_cmn_seq_regs_direct_access_rmp_1 ody_spix_cmn_seq_regs_direct_access_rmp_1_t;
161*4b8b8d74SJaiprakash Singh
162*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP_1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP_1(uint64_t a)163*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP_1(uint64_t a)
164*4b8b8d74SJaiprakash Singh {
165*4b8b8d74SJaiprakash Singh if (a <= 1)
166*4b8b8d74SJaiprakash Singh return 0x8040000003a0ll + 0x1000000000ll * ((a) & 0x1);
167*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP_1", 1, a, 0, 0, 0, 0, 0);
168*4b8b8d74SJaiprakash Singh }
169*4b8b8d74SJaiprakash Singh
170*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP_1(a) ody_spix_cmn_seq_regs_direct_access_rmp_1_t
171*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP_1(a) CSR_TYPE_NCB32b
172*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP_1(a) "SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP_1"
173*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP_1(a) 0x0 /* PF_BAR0 */
174*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP_1(a) (a)
175*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CMN_SEQ_REGS_DIRECT_ACCESS_RMP_1(a) (a), -1, -1, -1
176*4b8b8d74SJaiprakash Singh
177*4b8b8d74SJaiprakash Singh /**
178*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_cmn_seq_regs_global_seq_cfg
179*4b8b8d74SJaiprakash Singh *
180*4b8b8d74SJaiprakash Singh * SPI Cmn Seq Regs Global Seq Cfg Register
181*4b8b8d74SJaiprakash Singh * to configure common values for sequences in CDMA, PIO and DIRECT work mode.
182*4b8b8d74SJaiprakash Singh */
183*4b8b8d74SJaiprakash Singh union ody_spix_cmn_seq_regs_global_seq_cfg {
184*4b8b8d74SJaiprakash Singh uint32_t u;
185*4b8b8d74SJaiprakash Singh struct ody_spix_cmn_seq_regs_global_seq_cfg_s {
186*4b8b8d74SJaiprakash Singh uint32_t seq_page_size_rd : 4;
187*4b8b8d74SJaiprakash Singh uint32_t seq_page_size_pgm : 4;
188*4b8b8d74SJaiprakash Singh uint32_t seq_crc_en : 1;
189*4b8b8d74SJaiprakash Singh uint32_t seq_crc_variant : 1;
190*4b8b8d74SJaiprakash Singh uint32_t seq_crc_oe : 1;
191*4b8b8d74SJaiprakash Singh uint32_t reserved_11 : 1;
192*4b8b8d74SJaiprakash Singh uint32_t seq_crc_chunk_size : 3;
193*4b8b8d74SJaiprakash Singh uint32_t reserved_15 : 1;
194*4b8b8d74SJaiprakash Singh uint32_t seq_crc_ual_chunk_en : 1;
195*4b8b8d74SJaiprakash Singh uint32_t seq_crc_ual_chunk_chk : 1;
196*4b8b8d74SJaiprakash Singh uint32_t seq_tcms_en : 1;
197*4b8b8d74SJaiprakash Singh uint32_t reserved_19 : 1;
198*4b8b8d74SJaiprakash Singh uint32_t seq_data_swap : 1;
199*4b8b8d74SJaiprakash Singh uint32_t seq_data_per_addr : 1;
200*4b8b8d74SJaiprakash Singh uint32_t reserved_22 : 1;
201*4b8b8d74SJaiprakash Singh uint32_t seq_type : 2;
202*4b8b8d74SJaiprakash Singh uint32_t reserved_25_31 : 7;
203*4b8b8d74SJaiprakash Singh } s;
204*4b8b8d74SJaiprakash Singh /* struct ody_spix_cmn_seq_regs_global_seq_cfg_s cn; */
205*4b8b8d74SJaiprakash Singh };
206*4b8b8d74SJaiprakash Singh typedef union ody_spix_cmn_seq_regs_global_seq_cfg ody_spix_cmn_seq_regs_global_seq_cfg_t;
207*4b8b8d74SJaiprakash Singh
208*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG(uint64_t a)209*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG(uint64_t a)
210*4b8b8d74SJaiprakash Singh {
211*4b8b8d74SJaiprakash Singh if (a <= 1)
212*4b8b8d74SJaiprakash Singh return 0x804000000390ll + 0x1000000000ll * ((a) & 0x1);
213*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG", 1, a, 0, 0, 0, 0, 0);
214*4b8b8d74SJaiprakash Singh }
215*4b8b8d74SJaiprakash Singh
216*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG(a) ody_spix_cmn_seq_regs_global_seq_cfg_t
217*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG(a) CSR_TYPE_NCB32b
218*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG(a) "SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG"
219*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG(a) 0x0 /* PF_BAR0 */
220*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG(a) (a)
221*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG(a) (a), -1, -1, -1
222*4b8b8d74SJaiprakash Singh
223*4b8b8d74SJaiprakash Singh /**
224*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_cmn_seq_regs_global_seq_cfg_1
225*4b8b8d74SJaiprakash Singh *
226*4b8b8d74SJaiprakash Singh * SPI Cmn Seq Regs Global Seq Cfg 1 Register
227*4b8b8d74SJaiprakash Singh * to configure common values for sequences in CDMA, PIO and DIRECT work mode.
228*4b8b8d74SJaiprakash Singh */
229*4b8b8d74SJaiprakash Singh union ody_spix_cmn_seq_regs_global_seq_cfg_1 {
230*4b8b8d74SJaiprakash Singh uint32_t u;
231*4b8b8d74SJaiprakash Singh struct ody_spix_cmn_seq_regs_global_seq_cfg_1_s {
232*4b8b8d74SJaiprakash Singh uint32_t seq_page_size_ext : 9;
233*4b8b8d74SJaiprakash Singh uint32_t reserved_9_15 : 7;
234*4b8b8d74SJaiprakash Singh uint32_t seq_page_ca_size : 1;
235*4b8b8d74SJaiprakash Singh uint32_t reserved_17_23 : 7;
236*4b8b8d74SJaiprakash Singh uint32_t seq_page_per_block : 3;
237*4b8b8d74SJaiprakash Singh uint32_t reserved_27 : 1;
238*4b8b8d74SJaiprakash Singh uint32_t seq_plane_cnt : 2;
239*4b8b8d74SJaiprakash Singh uint32_t reserved_30_31 : 2;
240*4b8b8d74SJaiprakash Singh } s;
241*4b8b8d74SJaiprakash Singh /* struct ody_spix_cmn_seq_regs_global_seq_cfg_1_s cn; */
242*4b8b8d74SJaiprakash Singh };
243*4b8b8d74SJaiprakash Singh typedef union ody_spix_cmn_seq_regs_global_seq_cfg_1 ody_spix_cmn_seq_regs_global_seq_cfg_1_t;
244*4b8b8d74SJaiprakash Singh
245*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG_1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG_1(uint64_t a)246*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG_1(uint64_t a)
247*4b8b8d74SJaiprakash Singh {
248*4b8b8d74SJaiprakash Singh if (a <= 1)
249*4b8b8d74SJaiprakash Singh return 0x804000000394ll + 0x1000000000ll * ((a) & 0x1);
250*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG_1", 1, a, 0, 0, 0, 0, 0);
251*4b8b8d74SJaiprakash Singh }
252*4b8b8d74SJaiprakash Singh
253*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG_1(a) ody_spix_cmn_seq_regs_global_seq_cfg_1_t
254*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG_1(a) CSR_TYPE_NCB32b
255*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG_1(a) "SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG_1"
256*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG_1(a) 0x0 /* PF_BAR0 */
257*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG_1(a) (a)
258*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CMN_SEQ_REGS_GLOBAL_SEQ_CFG_1(a) (a), -1, -1, -1
259*4b8b8d74SJaiprakash Singh
260*4b8b8d74SJaiprakash Singh /**
261*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_cmn_seq_regs_xip_mode_cfg
262*4b8b8d74SJaiprakash Singh *
263*4b8b8d74SJaiprakash Singh * SPI Cmn Seq Regs XIP Mode Cfg Register
264*4b8b8d74SJaiprakash Singh * designated to configure controller in XIP work mode in CDMA, PIO and DIRECT work mode.
265*4b8b8d74SJaiprakash Singh */
266*4b8b8d74SJaiprakash Singh union ody_spix_cmn_seq_regs_xip_mode_cfg {
267*4b8b8d74SJaiprakash Singh uint32_t u;
268*4b8b8d74SJaiprakash Singh struct ody_spix_cmn_seq_regs_xip_mode_cfg_s {
269*4b8b8d74SJaiprakash Singh uint32_t xip_en : 8;
270*4b8b8d74SJaiprakash Singh uint32_t xip_en_mb_val : 8;
271*4b8b8d74SJaiprakash Singh uint32_t xip_dis_mb_val : 8;
272*4b8b8d74SJaiprakash Singh uint32_t reserved_24_31 : 8;
273*4b8b8d74SJaiprakash Singh } s;
274*4b8b8d74SJaiprakash Singh /* struct ody_spix_cmn_seq_regs_xip_mode_cfg_s cn; */
275*4b8b8d74SJaiprakash Singh };
276*4b8b8d74SJaiprakash Singh typedef union ody_spix_cmn_seq_regs_xip_mode_cfg ody_spix_cmn_seq_regs_xip_mode_cfg_t;
277*4b8b8d74SJaiprakash Singh
278*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CMN_SEQ_REGS_XIP_MODE_CFG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CMN_SEQ_REGS_XIP_MODE_CFG(uint64_t a)279*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CMN_SEQ_REGS_XIP_MODE_CFG(uint64_t a)
280*4b8b8d74SJaiprakash Singh {
281*4b8b8d74SJaiprakash Singh if (a <= 1)
282*4b8b8d74SJaiprakash Singh return 0x804000000388ll + 0x1000000000ll * ((a) & 0x1);
283*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CMN_SEQ_REGS_XIP_MODE_CFG", 1, a, 0, 0, 0, 0, 0);
284*4b8b8d74SJaiprakash Singh }
285*4b8b8d74SJaiprakash Singh
286*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CMN_SEQ_REGS_XIP_MODE_CFG(a) ody_spix_cmn_seq_regs_xip_mode_cfg_t
287*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CMN_SEQ_REGS_XIP_MODE_CFG(a) CSR_TYPE_NCB32b
288*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CMN_SEQ_REGS_XIP_MODE_CFG(a) "SPIX_CMN_SEQ_REGS_XIP_MODE_CFG"
289*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CMN_SEQ_REGS_XIP_MODE_CFG(a) 0x0 /* PF_BAR0 */
290*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CMN_SEQ_REGS_XIP_MODE_CFG(a) (a)
291*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CMN_SEQ_REGS_XIP_MODE_CFG(a) (a), -1, -1, -1
292*4b8b8d74SJaiprakash Singh
293*4b8b8d74SJaiprakash Singh /**
294*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_const
295*4b8b8d74SJaiprakash Singh *
296*4b8b8d74SJaiprakash Singh * SPI Constants Register
297*4b8b8d74SJaiprakash Singh */
298*4b8b8d74SJaiprakash Singh union ody_spix_const {
299*4b8b8d74SJaiprakash Singh uint64_t u;
300*4b8b8d74SJaiprakash Singh struct ody_spix_const_s {
301*4b8b8d74SJaiprakash Singh uint64_t reserved_0_63 : 64;
302*4b8b8d74SJaiprakash Singh } s;
303*4b8b8d74SJaiprakash Singh /* struct ody_spix_const_s cn; */
304*4b8b8d74SJaiprakash Singh };
305*4b8b8d74SJaiprakash Singh typedef union ody_spix_const ody_spix_const_t;
306*4b8b8d74SJaiprakash Singh
307*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CONST(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CONST(uint64_t a)308*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CONST(uint64_t a)
309*4b8b8d74SJaiprakash Singh {
310*4b8b8d74SJaiprakash Singh if (a <= 1)
311*4b8b8d74SJaiprakash Singh return 0x804000001058ll + 0x1000000000ll * ((a) & 0x1);
312*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CONST", 1, a, 0, 0, 0, 0, 0);
313*4b8b8d74SJaiprakash Singh }
314*4b8b8d74SJaiprakash Singh
315*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CONST(a) ody_spix_const_t
316*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CONST(a) CSR_TYPE_NCB
317*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CONST(a) "SPIX_CONST"
318*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CONST(a) 0x0 /* PF_BAR0 */
319*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CONST(a) (a)
320*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CONST(a) (a), -1, -1, -1
321*4b8b8d74SJaiprakash Singh
322*4b8b8d74SJaiprakash Singh /**
323*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cfg_common_ctrl_config
324*4b8b8d74SJaiprakash Singh *
325*4b8b8d74SJaiprakash Singh * SPI Control Cfg Common Control Config Register
326*4b8b8d74SJaiprakash Singh * Device control register.
327*4b8b8d74SJaiprakash Singh */
328*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cfg_common_ctrl_config {
329*4b8b8d74SJaiprakash Singh uint32_t u;
330*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cfg_common_ctrl_config_s {
331*4b8b8d74SJaiprakash Singh uint32_t reserved_0_2 : 3;
332*4b8b8d74SJaiprakash Singh uint32_t cont_on_err : 1;
333*4b8b8d74SJaiprakash Singh uint32_t reserved_4 : 1;
334*4b8b8d74SJaiprakash Singh uint32_t work_mode : 2;
335*4b8b8d74SJaiprakash Singh uint32_t reserved_7_31 : 25;
336*4b8b8d74SJaiprakash Singh } s;
337*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cfg_common_ctrl_config_s cn; */
338*4b8b8d74SJaiprakash Singh };
339*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cfg_common_ctrl_config ody_spix_ctrl_cfg_common_ctrl_config_t;
340*4b8b8d74SJaiprakash Singh
341*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_CTRL_CONFIG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CFG_COMMON_CTRL_CONFIG(uint64_t a)342*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_CTRL_CONFIG(uint64_t a)
343*4b8b8d74SJaiprakash Singh {
344*4b8b8d74SJaiprakash Singh if (a <= 1)
345*4b8b8d74SJaiprakash Singh return 0x804000000230ll + 0x1000000000ll * ((a) & 0x1);
346*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CFG_COMMON_CTRL_CONFIG", 1, a, 0, 0, 0, 0, 0);
347*4b8b8d74SJaiprakash Singh }
348*4b8b8d74SJaiprakash Singh
349*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CFG_COMMON_CTRL_CONFIG(a) ody_spix_ctrl_cfg_common_ctrl_config_t
350*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CFG_COMMON_CTRL_CONFIG(a) CSR_TYPE_NCB32b
351*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CFG_COMMON_CTRL_CONFIG(a) "SPIX_CTRL_CFG_COMMON_CTRL_CONFIG"
352*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CFG_COMMON_CTRL_CONFIG(a) 0x0 /* PF_BAR0 */
353*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CFG_COMMON_CTRL_CONFIG(a) (a)
354*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CFG_COMMON_CTRL_CONFIG(a) (a), -1, -1, -1
355*4b8b8d74SJaiprakash Singh
356*4b8b8d74SJaiprakash Singh /**
357*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cfg_common_discovery_control
358*4b8b8d74SJaiprakash Singh *
359*4b8b8d74SJaiprakash Singh * SPI Control Cfg Common Discovery Control Register
360*4b8b8d74SJaiprakash Singh * Device discovery control register.
361*4b8b8d74SJaiprakash Singh */
362*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cfg_common_discovery_control {
363*4b8b8d74SJaiprakash Singh uint32_t u;
364*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cfg_common_discovery_control_s {
365*4b8b8d74SJaiprakash Singh uint32_t discovery_req : 1;
366*4b8b8d74SJaiprakash Singh uint32_t discovery_req_type : 1;
367*4b8b8d74SJaiprakash Singh uint32_t discovery_comp : 1;
368*4b8b8d74SJaiprakash Singh uint32_t discovery_fail : 2;
369*4b8b8d74SJaiprakash Singh uint32_t discovery_inhibit : 1;
370*4b8b8d74SJaiprakash Singh uint32_t discovery_extop_val : 1;
371*4b8b8d74SJaiprakash Singh uint32_t discovery_extop_en : 1;
372*4b8b8d74SJaiprakash Singh uint32_t discovery_cmd_type : 2;
373*4b8b8d74SJaiprakash Singh uint32_t discovery_dummy_cnt : 1;
374*4b8b8d74SJaiprakash Singh uint32_t discovery_abnum : 1;
375*4b8b8d74SJaiprakash Singh uint32_t discovery_num_lines : 4;
376*4b8b8d74SJaiprakash Singh uint32_t discovery_bank : 3;
377*4b8b8d74SJaiprakash Singh uint32_t reserved_19_31 : 13;
378*4b8b8d74SJaiprakash Singh } s;
379*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cfg_common_discovery_control_s cn; */
380*4b8b8d74SJaiprakash Singh };
381*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cfg_common_discovery_control ody_spix_ctrl_cfg_common_discovery_control_t;
382*4b8b8d74SJaiprakash Singh
383*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_DISCOVERY_CONTROL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CFG_COMMON_DISCOVERY_CONTROL(uint64_t a)384*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_DISCOVERY_CONTROL(uint64_t a)
385*4b8b8d74SJaiprakash Singh {
386*4b8b8d74SJaiprakash Singh if (a <= 1)
387*4b8b8d74SJaiprakash Singh return 0x804000000260ll + 0x1000000000ll * ((a) & 0x1);
388*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CFG_COMMON_DISCOVERY_CONTROL", 1, a, 0, 0, 0, 0, 0);
389*4b8b8d74SJaiprakash Singh }
390*4b8b8d74SJaiprakash Singh
391*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CFG_COMMON_DISCOVERY_CONTROL(a) ody_spix_ctrl_cfg_common_discovery_control_t
392*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CFG_COMMON_DISCOVERY_CONTROL(a) CSR_TYPE_NCB32b
393*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CFG_COMMON_DISCOVERY_CONTROL(a) "SPIX_CTRL_CFG_COMMON_DISCOVERY_CONTROL"
394*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CFG_COMMON_DISCOVERY_CONTROL(a) 0x0 /* PF_BAR0 */
395*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CFG_COMMON_DISCOVERY_CONTROL(a) (a)
396*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CFG_COMMON_DISCOVERY_CONTROL(a) (a), -1, -1, -1
397*4b8b8d74SJaiprakash Singh
398*4b8b8d74SJaiprakash Singh /**
399*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cfg_common_dma_settings
400*4b8b8d74SJaiprakash Singh *
401*4b8b8d74SJaiprakash Singh * SPI Control Cfg Common DMA Settings Register
402*4b8b8d74SJaiprakash Singh * DMA settings register. It is common register for both master and slave interface.
403*4b8b8d74SJaiprakash Singh */
404*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cfg_common_dma_settings {
405*4b8b8d74SJaiprakash Singh uint32_t u;
406*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cfg_common_dma_settings_s {
407*4b8b8d74SJaiprakash Singh uint32_t burst_sel : 8;
408*4b8b8d74SJaiprakash Singh uint32_t reserved_8_15 : 8;
409*4b8b8d74SJaiprakash Singh uint32_t ote : 1;
410*4b8b8d74SJaiprakash Singh uint32_t sdma_err_rsp : 1;
411*4b8b8d74SJaiprakash Singh uint32_t word_size : 2;
412*4b8b8d74SJaiprakash Singh uint32_t reserved_20_31 : 12;
413*4b8b8d74SJaiprakash Singh } s;
414*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cfg_common_dma_settings_s cn; */
415*4b8b8d74SJaiprakash Singh };
416*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cfg_common_dma_settings ody_spix_ctrl_cfg_common_dma_settings_t;
417*4b8b8d74SJaiprakash Singh
418*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_DMA_SETTINGS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CFG_COMMON_DMA_SETTINGS(uint64_t a)419*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_DMA_SETTINGS(uint64_t a)
420*4b8b8d74SJaiprakash Singh {
421*4b8b8d74SJaiprakash Singh if (a <= 1)
422*4b8b8d74SJaiprakash Singh return 0x80400000023cll + 0x1000000000ll * ((a) & 0x1);
423*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CFG_COMMON_DMA_SETTINGS", 1, a, 0, 0, 0, 0, 0);
424*4b8b8d74SJaiprakash Singh }
425*4b8b8d74SJaiprakash Singh
426*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CFG_COMMON_DMA_SETTINGS(a) ody_spix_ctrl_cfg_common_dma_settings_t
427*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CFG_COMMON_DMA_SETTINGS(a) CSR_TYPE_NCB32b
428*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CFG_COMMON_DMA_SETTINGS(a) "SPIX_CTRL_CFG_COMMON_DMA_SETTINGS"
429*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CFG_COMMON_DMA_SETTINGS(a) 0x0 /* PF_BAR0 */
430*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CFG_COMMON_DMA_SETTINGS(a) (a)
431*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CFG_COMMON_DMA_SETTINGS(a) (a), -1, -1, -1
432*4b8b8d74SJaiprakash Singh
433*4b8b8d74SJaiprakash Singh /**
434*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cfg_common_long_polling
435*4b8b8d74SJaiprakash Singh *
436*4b8b8d74SJaiprakash Singh * SPI Control Cfg Common Long Polling Register
437*4b8b8d74SJaiprakash Singh * Wait count value for long polling.
438*4b8b8d74SJaiprakash Singh */
439*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cfg_common_long_polling {
440*4b8b8d74SJaiprakash Singh uint32_t u;
441*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cfg_common_long_polling_s {
442*4b8b8d74SJaiprakash Singh uint32_t long_polling : 16;
443*4b8b8d74SJaiprakash Singh uint32_t reserved_16_31 : 16;
444*4b8b8d74SJaiprakash Singh } s;
445*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cfg_common_long_polling_s cn; */
446*4b8b8d74SJaiprakash Singh };
447*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cfg_common_long_polling ody_spix_ctrl_cfg_common_long_polling_t;
448*4b8b8d74SJaiprakash Singh
449*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_LONG_POLLING(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CFG_COMMON_LONG_POLLING(uint64_t a)450*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_LONG_POLLING(uint64_t a)
451*4b8b8d74SJaiprakash Singh {
452*4b8b8d74SJaiprakash Singh if (a <= 1)
453*4b8b8d74SJaiprakash Singh return 0x804000000208ll + 0x1000000000ll * ((a) & 0x1);
454*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CFG_COMMON_LONG_POLLING", 1, a, 0, 0, 0, 0, 0);
455*4b8b8d74SJaiprakash Singh }
456*4b8b8d74SJaiprakash Singh
457*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CFG_COMMON_LONG_POLLING(a) ody_spix_ctrl_cfg_common_long_polling_t
458*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CFG_COMMON_LONG_POLLING(a) CSR_TYPE_NCB32b
459*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CFG_COMMON_LONG_POLLING(a) "SPIX_CTRL_CFG_COMMON_LONG_POLLING"
460*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CFG_COMMON_LONG_POLLING(a) 0x0 /* PF_BAR0 */
461*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CFG_COMMON_LONG_POLLING(a) (a)
462*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CFG_COMMON_LONG_POLLING(a) (a), -1, -1, -1
463*4b8b8d74SJaiprakash Singh
464*4b8b8d74SJaiprakash Singh /**
465*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cfg_common_sdma_addr0
466*4b8b8d74SJaiprakash Singh *
467*4b8b8d74SJaiprakash Singh * SPI Control Cfg Common SDMA Addr0 Register
468*4b8b8d74SJaiprakash Singh * This register stores the buffer address in the host memory that will be used as a
469*4b8b8d74SJaiprakash Singh * sink/source for the
470*4b8b8d74SJaiprakash Singh * SDMA transfer. The SDMA address is based on the Memory Pointer field that was
471*4b8b8d74SJaiprakash Singh * programed by the host as
472*4b8b8d74SJaiprakash Singh * part of the CDMA/PIO command. A single CDMA/PIO command can trigger multiple transfers on the slave
473*4b8b8d74SJaiprakash Singh * interface, so the SDMA address value will be automatically incremented and updated before each SDMA
474*4b8b8d74SJaiprakash Singh * transfer.
475*4b8b8d74SJaiprakash Singh */
476*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cfg_common_sdma_addr0 {
477*4b8b8d74SJaiprakash Singh uint32_t u;
478*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cfg_common_sdma_addr0_s {
479*4b8b8d74SJaiprakash Singh uint32_t sdma_addr_l : 32;
480*4b8b8d74SJaiprakash Singh } s;
481*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cfg_common_sdma_addr0_s cn; */
482*4b8b8d74SJaiprakash Singh };
483*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cfg_common_sdma_addr0 ody_spix_ctrl_cfg_common_sdma_addr0_t;
484*4b8b8d74SJaiprakash Singh
485*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR0(uint64_t a)486*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR0(uint64_t a)
487*4b8b8d74SJaiprakash Singh {
488*4b8b8d74SJaiprakash Singh if (a <= 1)
489*4b8b8d74SJaiprakash Singh return 0x80400000024cll + 0x1000000000ll * ((a) & 0x1);
490*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CFG_COMMON_SDMA_ADDR0", 1, a, 0, 0, 0, 0, 0);
491*4b8b8d74SJaiprakash Singh }
492*4b8b8d74SJaiprakash Singh
493*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR0(a) ody_spix_ctrl_cfg_common_sdma_addr0_t
494*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR0(a) CSR_TYPE_NCB32b
495*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR0(a) "SPIX_CTRL_CFG_COMMON_SDMA_ADDR0"
496*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR0(a) 0x0 /* PF_BAR0 */
497*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR0(a) (a)
498*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR0(a) (a), -1, -1, -1
499*4b8b8d74SJaiprakash Singh
500*4b8b8d74SJaiprakash Singh /**
501*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cfg_common_sdma_addr1
502*4b8b8d74SJaiprakash Singh *
503*4b8b8d74SJaiprakash Singh * SPI Control Cfg Common SDMA Addr1 Register
504*4b8b8d74SJaiprakash Singh * This register stores the buffer address in the host memory that will be used as a
505*4b8b8d74SJaiprakash Singh * sink/source for the
506*4b8b8d74SJaiprakash Singh * SDMA transfer. The SDMA address is based on the Memory Pointer field that was
507*4b8b8d74SJaiprakash Singh * programed by the host as
508*4b8b8d74SJaiprakash Singh * part of the CDMA/PIO command. A single CDMA/PIO command can trigger multiple transfers on the slave
509*4b8b8d74SJaiprakash Singh * interface, so the SDMA address value will be automatically incremented and updated before each SDMA
510*4b8b8d74SJaiprakash Singh * transfer.
511*4b8b8d74SJaiprakash Singh */
512*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cfg_common_sdma_addr1 {
513*4b8b8d74SJaiprakash Singh uint32_t u;
514*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cfg_common_sdma_addr1_s {
515*4b8b8d74SJaiprakash Singh uint32_t sdma_addr_h : 32;
516*4b8b8d74SJaiprakash Singh } s;
517*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cfg_common_sdma_addr1_s cn; */
518*4b8b8d74SJaiprakash Singh };
519*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cfg_common_sdma_addr1 ody_spix_ctrl_cfg_common_sdma_addr1_t;
520*4b8b8d74SJaiprakash Singh
521*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR1(uint64_t a)522*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR1(uint64_t a)
523*4b8b8d74SJaiprakash Singh {
524*4b8b8d74SJaiprakash Singh if (a <= 1)
525*4b8b8d74SJaiprakash Singh return 0x804000000250ll + 0x1000000000ll * ((a) & 0x1);
526*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CFG_COMMON_SDMA_ADDR1", 1, a, 0, 0, 0, 0, 0);
527*4b8b8d74SJaiprakash Singh }
528*4b8b8d74SJaiprakash Singh
529*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR1(a) ody_spix_ctrl_cfg_common_sdma_addr1_t
530*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR1(a) CSR_TYPE_NCB32b
531*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR1(a) "SPIX_CTRL_CFG_COMMON_SDMA_ADDR1"
532*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR1(a) 0x0 /* PF_BAR0 */
533*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR1(a) (a)
534*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CFG_COMMON_SDMA_ADDR1(a) (a), -1, -1, -1
535*4b8b8d74SJaiprakash Singh
536*4b8b8d74SJaiprakash Singh /**
537*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cfg_common_sdma_size
538*4b8b8d74SJaiprakash Singh *
539*4b8b8d74SJaiprakash Singh * SPI Control Cfg Common SDMA Size Register
540*4b8b8d74SJaiprakash Singh * Transferred data block size for the slave DMA module.
541*4b8b8d74SJaiprakash Singh */
542*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cfg_common_sdma_size {
543*4b8b8d74SJaiprakash Singh uint32_t u;
544*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cfg_common_sdma_size_s {
545*4b8b8d74SJaiprakash Singh uint32_t sdma_size : 32;
546*4b8b8d74SJaiprakash Singh } s;
547*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cfg_common_sdma_size_s cn; */
548*4b8b8d74SJaiprakash Singh };
549*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cfg_common_sdma_size ody_spix_ctrl_cfg_common_sdma_size_t;
550*4b8b8d74SJaiprakash Singh
551*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_SDMA_SIZE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CFG_COMMON_SDMA_SIZE(uint64_t a)552*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_SDMA_SIZE(uint64_t a)
553*4b8b8d74SJaiprakash Singh {
554*4b8b8d74SJaiprakash Singh if (a <= 1)
555*4b8b8d74SJaiprakash Singh return 0x804000000240ll + 0x1000000000ll * ((a) & 0x1);
556*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CFG_COMMON_SDMA_SIZE", 1, a, 0, 0, 0, 0, 0);
557*4b8b8d74SJaiprakash Singh }
558*4b8b8d74SJaiprakash Singh
559*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CFG_COMMON_SDMA_SIZE(a) ody_spix_ctrl_cfg_common_sdma_size_t
560*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CFG_COMMON_SDMA_SIZE(a) CSR_TYPE_NCB32b
561*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CFG_COMMON_SDMA_SIZE(a) "SPIX_CTRL_CFG_COMMON_SDMA_SIZE"
562*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CFG_COMMON_SDMA_SIZE(a) 0x0 /* PF_BAR0 */
563*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CFG_COMMON_SDMA_SIZE(a) (a)
564*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CFG_COMMON_SDMA_SIZE(a) (a), -1, -1, -1
565*4b8b8d74SJaiprakash Singh
566*4b8b8d74SJaiprakash Singh /**
567*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cfg_common_sdma_trd_info
568*4b8b8d74SJaiprakash Singh *
569*4b8b8d74SJaiprakash Singh * SPI Control Cfg Common SDMA Thread Info Register
570*4b8b8d74SJaiprakash Singh * Information for current slave DMA transaction related with execution thread.
571*4b8b8d74SJaiprakash Singh */
572*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cfg_common_sdma_trd_info {
573*4b8b8d74SJaiprakash Singh uint32_t u;
574*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cfg_common_sdma_trd_info_s {
575*4b8b8d74SJaiprakash Singh uint32_t sdma_trd : 3;
576*4b8b8d74SJaiprakash Singh uint32_t reserved_3_7 : 5;
577*4b8b8d74SJaiprakash Singh uint32_t sdma_dir : 1;
578*4b8b8d74SJaiprakash Singh uint32_t reserved_9_31 : 23;
579*4b8b8d74SJaiprakash Singh } s;
580*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cfg_common_sdma_trd_info_s cn; */
581*4b8b8d74SJaiprakash Singh };
582*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cfg_common_sdma_trd_info ody_spix_ctrl_cfg_common_sdma_trd_info_t;
583*4b8b8d74SJaiprakash Singh
584*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_SDMA_TRD_INFO(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CFG_COMMON_SDMA_TRD_INFO(uint64_t a)585*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_SDMA_TRD_INFO(uint64_t a)
586*4b8b8d74SJaiprakash Singh {
587*4b8b8d74SJaiprakash Singh if (a <= 1)
588*4b8b8d74SJaiprakash Singh return 0x804000000244ll + 0x1000000000ll * ((a) & 0x1);
589*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CFG_COMMON_SDMA_TRD_INFO", 1, a, 0, 0, 0, 0, 0);
590*4b8b8d74SJaiprakash Singh }
591*4b8b8d74SJaiprakash Singh
592*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CFG_COMMON_SDMA_TRD_INFO(a) ody_spix_ctrl_cfg_common_sdma_trd_info_t
593*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CFG_COMMON_SDMA_TRD_INFO(a) CSR_TYPE_NCB32b
594*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CFG_COMMON_SDMA_TRD_INFO(a) "SPIX_CTRL_CFG_COMMON_SDMA_TRD_INFO"
595*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CFG_COMMON_SDMA_TRD_INFO(a) 0x0 /* PF_BAR0 */
596*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CFG_COMMON_SDMA_TRD_INFO(a) (a)
597*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CFG_COMMON_SDMA_TRD_INFO(a) (a), -1, -1, -1
598*4b8b8d74SJaiprakash Singh
599*4b8b8d74SJaiprakash Singh /**
600*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cfg_common_short_polling
601*4b8b8d74SJaiprakash Singh *
602*4b8b8d74SJaiprakash Singh * SPI Control Cfg Common Short Polling Register
603*4b8b8d74SJaiprakash Singh * Status monitor cycle count value.
604*4b8b8d74SJaiprakash Singh */
605*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cfg_common_short_polling {
606*4b8b8d74SJaiprakash Singh uint32_t u;
607*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cfg_common_short_polling_s {
608*4b8b8d74SJaiprakash Singh uint32_t short_polling : 16;
609*4b8b8d74SJaiprakash Singh uint32_t reserved_16_31 : 16;
610*4b8b8d74SJaiprakash Singh } s;
611*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cfg_common_short_polling_s cn; */
612*4b8b8d74SJaiprakash Singh };
613*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cfg_common_short_polling ody_spix_ctrl_cfg_common_short_polling_t;
614*4b8b8d74SJaiprakash Singh
615*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_SHORT_POLLING(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CFG_COMMON_SHORT_POLLING(uint64_t a)616*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CFG_COMMON_SHORT_POLLING(uint64_t a)
617*4b8b8d74SJaiprakash Singh {
618*4b8b8d74SJaiprakash Singh if (a <= 1)
619*4b8b8d74SJaiprakash Singh return 0x80400000020cll + 0x1000000000ll * ((a) & 0x1);
620*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CFG_COMMON_SHORT_POLLING", 1, a, 0, 0, 0, 0, 0);
621*4b8b8d74SJaiprakash Singh }
622*4b8b8d74SJaiprakash Singh
623*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CFG_COMMON_SHORT_POLLING(a) ody_spix_ctrl_cfg_common_short_polling_t
624*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CFG_COMMON_SHORT_POLLING(a) CSR_TYPE_NCB32b
625*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CFG_COMMON_SHORT_POLLING(a) "SPIX_CTRL_CFG_COMMON_SHORT_POLLING"
626*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CFG_COMMON_SHORT_POLLING(a) 0x0 /* PF_BAR0 */
627*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CFG_COMMON_SHORT_POLLING(a) (a)
628*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CFG_COMMON_SHORT_POLLING(a) (a), -1, -1, -1
629*4b8b8d74SJaiprakash Singh
630*4b8b8d74SJaiprakash Singh /**
631*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_boot_status
632*4b8b8d74SJaiprakash Singh *
633*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Boot Status Register
634*4b8b8d74SJaiprakash Singh * This register provides status of the latest boot operation.
635*4b8b8d74SJaiprakash Singh */
636*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_boot_status {
637*4b8b8d74SJaiprakash Singh uint32_t u;
638*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_boot_status_s {
639*4b8b8d74SJaiprakash Singh uint32_t boot_dqs_err : 1;
640*4b8b8d74SJaiprakash Singh uint32_t boot_crc_err : 1;
641*4b8b8d74SJaiprakash Singh uint32_t boot_bus_err : 1;
642*4b8b8d74SJaiprakash Singh uint32_t reserved_3_31 : 29;
643*4b8b8d74SJaiprakash Singh } s;
644*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_boot_status_s cn; */
645*4b8b8d74SJaiprakash Singh };
646*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_boot_status ody_spix_ctrl_cmd_stat_boot_status_t;
647*4b8b8d74SJaiprakash Singh
648*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_BOOT_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_BOOT_STATUS(uint64_t a)649*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_BOOT_STATUS(uint64_t a)
650*4b8b8d74SJaiprakash Singh {
651*4b8b8d74SJaiprakash Singh if (a <= 1)
652*4b8b8d74SJaiprakash Singh return 0x804000000158ll + 0x1000000000ll * ((a) & 0x1);
653*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_BOOT_STATUS", 1, a, 0, 0, 0, 0, 0);
654*4b8b8d74SJaiprakash Singh }
655*4b8b8d74SJaiprakash Singh
656*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_BOOT_STATUS(a) ody_spix_ctrl_cmd_stat_boot_status_t
657*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_BOOT_STATUS(a) CSR_TYPE_NCB32b
658*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_BOOT_STATUS(a) "SPIX_CTRL_CMD_STAT_BOOT_STATUS"
659*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_BOOT_STATUS(a) 0x0 /* PF_BAR0 */
660*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_BOOT_STATUS(a) (a)
661*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_BOOT_STATUS(a) (a), -1, -1, -1
662*4b8b8d74SJaiprakash Singh
663*4b8b8d74SJaiprakash Singh /**
664*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_cmd_reg0
665*4b8b8d74SJaiprakash Singh *
666*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Command Register 0
667*4b8b8d74SJaiprakash Singh * Command register 0. Writing data to this register will initiate a new transaction of the xSPI Flash
668*4b8b8d74SJaiprakash Singh * Controller in CDMA/PIO and STIG work mode. Fields encoding of those registers
669*4b8b8d74SJaiprakash Singh * depends on selected work
670*4b8b8d74SJaiprakash Singh * mode.
671*4b8b8d74SJaiprakash Singh */
672*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_cmd_reg0 {
673*4b8b8d74SJaiprakash Singh uint32_t u;
674*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_cmd_reg0_s {
675*4b8b8d74SJaiprakash Singh uint32_t cmd0 : 32;
676*4b8b8d74SJaiprakash Singh } s;
677*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_cmd_reg0_s cn; */
678*4b8b8d74SJaiprakash Singh };
679*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_cmd_reg0 ody_spix_ctrl_cmd_stat_cmd_reg0_t;
680*4b8b8d74SJaiprakash Singh
681*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_REG0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_CMD_REG0(uint64_t a)682*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_REG0(uint64_t a)
683*4b8b8d74SJaiprakash Singh {
684*4b8b8d74SJaiprakash Singh if (a <= 1)
685*4b8b8d74SJaiprakash Singh return 0x804000000000ll + 0x1000000000ll * ((a) & 0x1);
686*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_CMD_REG0", 1, a, 0, 0, 0, 0, 0);
687*4b8b8d74SJaiprakash Singh }
688*4b8b8d74SJaiprakash Singh
689*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_CMD_REG0(a) ody_spix_ctrl_cmd_stat_cmd_reg0_t
690*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_CMD_REG0(a) CSR_TYPE_NCB32b
691*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_CMD_REG0(a) "SPIX_CTRL_CMD_STAT_CMD_REG0"
692*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_CMD_REG0(a) 0x0 /* PF_BAR0 */
693*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_CMD_REG0(a) (a)
694*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_CMD_REG0(a) (a), -1, -1, -1
695*4b8b8d74SJaiprakash Singh
696*4b8b8d74SJaiprakash Singh /**
697*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_cmd_reg1
698*4b8b8d74SJaiprakash Singh *
699*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Command Register 1
700*4b8b8d74SJaiprakash Singh * Command register 1.
701*4b8b8d74SJaiprakash Singh */
702*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_cmd_reg1 {
703*4b8b8d74SJaiprakash Singh uint32_t u;
704*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_cmd_reg1_s {
705*4b8b8d74SJaiprakash Singh uint32_t cmd1 : 32;
706*4b8b8d74SJaiprakash Singh } s;
707*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_cmd_reg1_s cn; */
708*4b8b8d74SJaiprakash Singh };
709*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_cmd_reg1 ody_spix_ctrl_cmd_stat_cmd_reg1_t;
710*4b8b8d74SJaiprakash Singh
711*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_REG1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_CMD_REG1(uint64_t a)712*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_REG1(uint64_t a)
713*4b8b8d74SJaiprakash Singh {
714*4b8b8d74SJaiprakash Singh if (a <= 1)
715*4b8b8d74SJaiprakash Singh return 0x804000000004ll + 0x1000000000ll * ((a) & 0x1);
716*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_CMD_REG1", 1, a, 0, 0, 0, 0, 0);
717*4b8b8d74SJaiprakash Singh }
718*4b8b8d74SJaiprakash Singh
719*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_CMD_REG1(a) ody_spix_ctrl_cmd_stat_cmd_reg1_t
720*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_CMD_REG1(a) CSR_TYPE_NCB32b
721*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_CMD_REG1(a) "SPIX_CTRL_CMD_STAT_CMD_REG1"
722*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_CMD_REG1(a) 0x0 /* PF_BAR0 */
723*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_CMD_REG1(a) (a)
724*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_CMD_REG1(a) (a), -1, -1, -1
725*4b8b8d74SJaiprakash Singh
726*4b8b8d74SJaiprakash Singh /**
727*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_cmd_reg2
728*4b8b8d74SJaiprakash Singh *
729*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Command Register 2
730*4b8b8d74SJaiprakash Singh * Command register 2.
731*4b8b8d74SJaiprakash Singh */
732*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_cmd_reg2 {
733*4b8b8d74SJaiprakash Singh uint32_t u;
734*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_cmd_reg2_s {
735*4b8b8d74SJaiprakash Singh uint32_t cmd2 : 32;
736*4b8b8d74SJaiprakash Singh } s;
737*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_cmd_reg2_s cn; */
738*4b8b8d74SJaiprakash Singh };
739*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_cmd_reg2 ody_spix_ctrl_cmd_stat_cmd_reg2_t;
740*4b8b8d74SJaiprakash Singh
741*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_REG2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_CMD_REG2(uint64_t a)742*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_REG2(uint64_t a)
743*4b8b8d74SJaiprakash Singh {
744*4b8b8d74SJaiprakash Singh if (a <= 1)
745*4b8b8d74SJaiprakash Singh return 0x804000000008ll + 0x1000000000ll * ((a) & 0x1);
746*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_CMD_REG2", 1, a, 0, 0, 0, 0, 0);
747*4b8b8d74SJaiprakash Singh }
748*4b8b8d74SJaiprakash Singh
749*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_CMD_REG2(a) ody_spix_ctrl_cmd_stat_cmd_reg2_t
750*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_CMD_REG2(a) CSR_TYPE_NCB32b
751*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_CMD_REG2(a) "SPIX_CTRL_CMD_STAT_CMD_REG2"
752*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_CMD_REG2(a) 0x0 /* PF_BAR0 */
753*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_CMD_REG2(a) (a)
754*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_CMD_REG2(a) (a), -1, -1, -1
755*4b8b8d74SJaiprakash Singh
756*4b8b8d74SJaiprakash Singh /**
757*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_cmd_reg3
758*4b8b8d74SJaiprakash Singh *
759*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Command Register 3
760*4b8b8d74SJaiprakash Singh * Command register 3.
761*4b8b8d74SJaiprakash Singh */
762*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_cmd_reg3 {
763*4b8b8d74SJaiprakash Singh uint32_t u;
764*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_cmd_reg3_s {
765*4b8b8d74SJaiprakash Singh uint32_t cmd3 : 32;
766*4b8b8d74SJaiprakash Singh } s;
767*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_cmd_reg3_s cn; */
768*4b8b8d74SJaiprakash Singh };
769*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_cmd_reg3 ody_spix_ctrl_cmd_stat_cmd_reg3_t;
770*4b8b8d74SJaiprakash Singh
771*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_REG3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_CMD_REG3(uint64_t a)772*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_REG3(uint64_t a)
773*4b8b8d74SJaiprakash Singh {
774*4b8b8d74SJaiprakash Singh if (a <= 1)
775*4b8b8d74SJaiprakash Singh return 0x80400000000cll + 0x1000000000ll * ((a) & 0x1);
776*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_CMD_REG3", 1, a, 0, 0, 0, 0, 0);
777*4b8b8d74SJaiprakash Singh }
778*4b8b8d74SJaiprakash Singh
779*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_CMD_REG3(a) ody_spix_ctrl_cmd_stat_cmd_reg3_t
780*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_CMD_REG3(a) CSR_TYPE_NCB32b
781*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_CMD_REG3(a) "SPIX_CTRL_CMD_STAT_CMD_REG3"
782*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_CMD_REG3(a) 0x0 /* PF_BAR0 */
783*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_CMD_REG3(a) (a)
784*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_CMD_REG3(a) (a), -1, -1, -1
785*4b8b8d74SJaiprakash Singh
786*4b8b8d74SJaiprakash Singh /**
787*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_cmd_reg4
788*4b8b8d74SJaiprakash Singh *
789*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Command Register 4
790*4b8b8d74SJaiprakash Singh * Command register 4.
791*4b8b8d74SJaiprakash Singh */
792*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_cmd_reg4 {
793*4b8b8d74SJaiprakash Singh uint32_t u;
794*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_cmd_reg4_s {
795*4b8b8d74SJaiprakash Singh uint32_t cmd4 : 32;
796*4b8b8d74SJaiprakash Singh } s;
797*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_cmd_reg4_s cn; */
798*4b8b8d74SJaiprakash Singh };
799*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_cmd_reg4 ody_spix_ctrl_cmd_stat_cmd_reg4_t;
800*4b8b8d74SJaiprakash Singh
801*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_REG4(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_CMD_REG4(uint64_t a)802*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_REG4(uint64_t a)
803*4b8b8d74SJaiprakash Singh {
804*4b8b8d74SJaiprakash Singh if (a <= 1)
805*4b8b8d74SJaiprakash Singh return 0x804000000010ll + 0x1000000000ll * ((a) & 0x1);
806*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_CMD_REG4", 1, a, 0, 0, 0, 0, 0);
807*4b8b8d74SJaiprakash Singh }
808*4b8b8d74SJaiprakash Singh
809*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_CMD_REG4(a) ody_spix_ctrl_cmd_stat_cmd_reg4_t
810*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_CMD_REG4(a) CSR_TYPE_NCB32b
811*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_CMD_REG4(a) "SPIX_CTRL_CMD_STAT_CMD_REG4"
812*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_CMD_REG4(a) 0x0 /* PF_BAR0 */
813*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_CMD_REG4(a) (a)
814*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_CMD_REG4(a) (a), -1, -1, -1
815*4b8b8d74SJaiprakash Singh
816*4b8b8d74SJaiprakash Singh /**
817*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_cmd_reg5
818*4b8b8d74SJaiprakash Singh *
819*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Command Register 5
820*4b8b8d74SJaiprakash Singh * Command register 5.
821*4b8b8d74SJaiprakash Singh */
822*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_cmd_reg5 {
823*4b8b8d74SJaiprakash Singh uint32_t u;
824*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_cmd_reg5_s {
825*4b8b8d74SJaiprakash Singh uint32_t cmd5 : 32;
826*4b8b8d74SJaiprakash Singh } s;
827*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_cmd_reg5_s cn; */
828*4b8b8d74SJaiprakash Singh };
829*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_cmd_reg5 ody_spix_ctrl_cmd_stat_cmd_reg5_t;
830*4b8b8d74SJaiprakash Singh
831*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_REG5(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_CMD_REG5(uint64_t a)832*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_REG5(uint64_t a)
833*4b8b8d74SJaiprakash Singh {
834*4b8b8d74SJaiprakash Singh if (a <= 1)
835*4b8b8d74SJaiprakash Singh return 0x804000000014ll + 0x1000000000ll * ((a) & 0x1);
836*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_CMD_REG5", 1, a, 0, 0, 0, 0, 0);
837*4b8b8d74SJaiprakash Singh }
838*4b8b8d74SJaiprakash Singh
839*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_CMD_REG5(a) ody_spix_ctrl_cmd_stat_cmd_reg5_t
840*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_CMD_REG5(a) CSR_TYPE_NCB32b
841*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_CMD_REG5(a) "SPIX_CTRL_CMD_STAT_CMD_REG5"
842*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_CMD_REG5(a) 0x0 /* PF_BAR0 */
843*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_CMD_REG5(a) (a)
844*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_CMD_REG5(a) (a), -1, -1, -1
845*4b8b8d74SJaiprakash Singh
846*4b8b8d74SJaiprakash Singh /**
847*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_cmd_status
848*4b8b8d74SJaiprakash Singh *
849*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Command Status Register
850*4b8b8d74SJaiprakash Singh * Command status register for selected thread in ACMD work mode and for STIG work mode
851*4b8b8d74SJaiprakash Singh * when xSPI flash
852*4b8b8d74SJaiprakash Singh * transaction is completed.
853*4b8b8d74SJaiprakash Singh */
854*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_cmd_status {
855*4b8b8d74SJaiprakash Singh uint32_t u;
856*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_cmd_status_s {
857*4b8b8d74SJaiprakash Singh uint32_t cmd_status : 32;
858*4b8b8d74SJaiprakash Singh } s;
859*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_cmd_status_s cn; */
860*4b8b8d74SJaiprakash Singh };
861*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_cmd_status ody_spix_ctrl_cmd_stat_cmd_status_t;
862*4b8b8d74SJaiprakash Singh
863*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS(uint64_t a)864*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS(uint64_t a)
865*4b8b8d74SJaiprakash Singh {
866*4b8b8d74SJaiprakash Singh if (a <= 1)
867*4b8b8d74SJaiprakash Singh return 0x804000000044ll + 0x1000000000ll * ((a) & 0x1);
868*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_CMD_STATUS", 1, a, 0, 0, 0, 0, 0);
869*4b8b8d74SJaiprakash Singh }
870*4b8b8d74SJaiprakash Singh
871*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS(a) ody_spix_ctrl_cmd_stat_cmd_status_t
872*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS(a) CSR_TYPE_NCB32b
873*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS(a) "SPIX_CTRL_CMD_STAT_CMD_STATUS"
874*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS(a) 0x0 /* PF_BAR0 */
875*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS(a) (a)
876*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS(a) (a), -1, -1, -1
877*4b8b8d74SJaiprakash Singh
878*4b8b8d74SJaiprakash Singh /**
879*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_cmd_status_ptr
880*4b8b8d74SJaiprakash Singh *
881*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Command Status Ptr Register
882*4b8b8d74SJaiprakash Singh * Pointer register to select which thread status will be selected for ACMD work mode
883*4b8b8d74SJaiprakash Singh * (not applicable for
884*4b8b8d74SJaiprakash Singh * STIG and DIRECT work modes).
885*4b8b8d74SJaiprakash Singh */
886*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_cmd_status_ptr {
887*4b8b8d74SJaiprakash Singh uint32_t u;
888*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_cmd_status_ptr_s {
889*4b8b8d74SJaiprakash Singh uint32_t thrd_status_sel : 3;
890*4b8b8d74SJaiprakash Singh uint32_t reserved_3_31 : 29;
891*4b8b8d74SJaiprakash Singh } s;
892*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_cmd_status_ptr_s cn; */
893*4b8b8d74SJaiprakash Singh };
894*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_cmd_status_ptr ody_spix_ctrl_cmd_stat_cmd_status_ptr_t;
895*4b8b8d74SJaiprakash Singh
896*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS_PTR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS_PTR(uint64_t a)897*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS_PTR(uint64_t a)
898*4b8b8d74SJaiprakash Singh {
899*4b8b8d74SJaiprakash Singh if (a <= 1)
900*4b8b8d74SJaiprakash Singh return 0x804000000040ll + 0x1000000000ll * ((a) & 0x1);
901*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_CMD_STATUS_PTR", 1, a, 0, 0, 0, 0, 0);
902*4b8b8d74SJaiprakash Singh }
903*4b8b8d74SJaiprakash Singh
904*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS_PTR(a) ody_spix_ctrl_cmd_stat_cmd_status_ptr_t
905*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS_PTR(a) CSR_TYPE_NCB32b
906*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS_PTR(a) "SPIX_CTRL_CMD_STAT_CMD_STATUS_PTR"
907*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS_PTR(a) 0x0 /* PF_BAR0 */
908*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS_PTR(a) (a)
909*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_CMD_STATUS_PTR(a) (a), -1, -1, -1
910*4b8b8d74SJaiprakash Singh
911*4b8b8d74SJaiprakash Singh /**
912*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_ctrl_status
913*4b8b8d74SJaiprakash Singh *
914*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Control Status Register
915*4b8b8d74SJaiprakash Singh * Controller internal state.
916*4b8b8d74SJaiprakash Singh */
917*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_ctrl_status {
918*4b8b8d74SJaiprakash Singh uint32_t u;
919*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_ctrl_status_s {
920*4b8b8d74SJaiprakash Singh uint32_t sdma_busy : 1;
921*4b8b8d74SJaiprakash Singh uint32_t mdma_busy : 1;
922*4b8b8d74SJaiprakash Singh uint32_t acmd_eng_busy : 1;
923*4b8b8d74SJaiprakash Singh uint32_t gcmd_eng_busy : 1;
924*4b8b8d74SJaiprakash Singh uint32_t gcmd_eng_mc_busy : 1;
925*4b8b8d74SJaiprakash Singh uint32_t reserved_5 : 1;
926*4b8b8d74SJaiprakash Singh uint32_t discovery_busy : 1;
927*4b8b8d74SJaiprakash Singh uint32_t ctrl_busy : 1;
928*4b8b8d74SJaiprakash Singh uint32_t init_fail : 2;
929*4b8b8d74SJaiprakash Singh uint32_t reserved_10_15 : 6;
930*4b8b8d74SJaiprakash Singh uint32_t init_comp : 1;
931*4b8b8d74SJaiprakash Singh uint32_t reserved_17_31 : 15;
932*4b8b8d74SJaiprakash Singh } s;
933*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_ctrl_status_s cn; */
934*4b8b8d74SJaiprakash Singh };
935*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_ctrl_status ody_spix_ctrl_cmd_stat_ctrl_status_t;
936*4b8b8d74SJaiprakash Singh
937*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CTRL_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_CTRL_STATUS(uint64_t a)938*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_CTRL_STATUS(uint64_t a)
939*4b8b8d74SJaiprakash Singh {
940*4b8b8d74SJaiprakash Singh if (a <= 1)
941*4b8b8d74SJaiprakash Singh return 0x804000000100ll + 0x1000000000ll * ((a) & 0x1);
942*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_CTRL_STATUS", 1, a, 0, 0, 0, 0, 0);
943*4b8b8d74SJaiprakash Singh }
944*4b8b8d74SJaiprakash Singh
945*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_CTRL_STATUS(a) ody_spix_ctrl_cmd_stat_ctrl_status_t
946*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_CTRL_STATUS(a) CSR_TYPE_NCB32b
947*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_CTRL_STATUS(a) "SPIX_CTRL_CMD_STAT_CTRL_STATUS"
948*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_CTRL_STATUS(a) 0x0 /* PF_BAR0 */
949*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_CTRL_STATUS(a) (a)
950*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_CTRL_STATUS(a) (a), -1, -1, -1
951*4b8b8d74SJaiprakash Singh
952*4b8b8d74SJaiprakash Singh /**
953*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_dma_target_error_h
954*4b8b8d74SJaiprakash Singh *
955*4b8b8d74SJaiprakash Singh * SPI Control Command Stat DMA Target Error H Register
956*4b8b8d74SJaiprakash Singh * Master data interface error address [63:32]. This register store address of request on the system
957*4b8b8d74SJaiprakash Singh * master data interface that caused setting [CDMA_TERR] or [DDMA_TERR] in
958*4b8b8d74SJaiprakash Singh * SPI()_CTRL_CMD_STAT_INTR_STATUS.
959*4b8b8d74SJaiprakash Singh * Address can be overwritten if error response is detected for the following command sequences.
960*4b8b8d74SJaiprakash Singh */
961*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_dma_target_error_h {
962*4b8b8d74SJaiprakash Singh uint32_t u;
963*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_dma_target_error_h_s {
964*4b8b8d74SJaiprakash Singh uint32_t target_err_h : 32;
965*4b8b8d74SJaiprakash Singh } s;
966*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_dma_target_error_h_s cn; */
967*4b8b8d74SJaiprakash Singh };
968*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_dma_target_error_h ody_spix_ctrl_cmd_stat_dma_target_error_h_t;
969*4b8b8d74SJaiprakash Singh
970*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_H(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_H(uint64_t a)971*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_H(uint64_t a)
972*4b8b8d74SJaiprakash Singh {
973*4b8b8d74SJaiprakash Singh if (a <= 1)
974*4b8b8d74SJaiprakash Singh return 0x804000000154ll + 0x1000000000ll * ((a) & 0x1);
975*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_H", 1, a, 0, 0, 0, 0, 0);
976*4b8b8d74SJaiprakash Singh }
977*4b8b8d74SJaiprakash Singh
978*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_H(a) ody_spix_ctrl_cmd_stat_dma_target_error_h_t
979*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_H(a) CSR_TYPE_NCB32b
980*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_H(a) "SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_H"
981*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_H(a) 0x0 /* PF_BAR0 */
982*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_H(a) (a)
983*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_H(a) (a), -1, -1, -1
984*4b8b8d74SJaiprakash Singh
985*4b8b8d74SJaiprakash Singh /**
986*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_dma_target_error_l
987*4b8b8d74SJaiprakash Singh *
988*4b8b8d74SJaiprakash Singh * SPI Control Command Stat DMA Target Error L Register
989*4b8b8d74SJaiprakash Singh * Master data interface error address [31:0]. This register store address of request on the system
990*4b8b8d74SJaiprakash Singh * master data interface that caused setting [CDMA_TERR] or [DDMA_TERR] in
991*4b8b8d74SJaiprakash Singh * SPI()_CTRL_CMD_STAT_INTR_STATUS.
992*4b8b8d74SJaiprakash Singh * Address can be overwritten if an error response is detected for the following command sequences.
993*4b8b8d74SJaiprakash Singh */
994*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_dma_target_error_l {
995*4b8b8d74SJaiprakash Singh uint32_t u;
996*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_dma_target_error_l_s {
997*4b8b8d74SJaiprakash Singh uint32_t target_err_l : 32;
998*4b8b8d74SJaiprakash Singh } s;
999*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_dma_target_error_l_s cn; */
1000*4b8b8d74SJaiprakash Singh };
1001*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_dma_target_error_l ody_spix_ctrl_cmd_stat_dma_target_error_l_t;
1002*4b8b8d74SJaiprakash Singh
1003*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_L(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_L(uint64_t a)1004*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_L(uint64_t a)
1005*4b8b8d74SJaiprakash Singh {
1006*4b8b8d74SJaiprakash Singh if (a <= 1)
1007*4b8b8d74SJaiprakash Singh return 0x804000000150ll + 0x1000000000ll * ((a) & 0x1);
1008*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_L", 1, a, 0, 0, 0, 0, 0);
1009*4b8b8d74SJaiprakash Singh }
1010*4b8b8d74SJaiprakash Singh
1011*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_L(a) ody_spix_ctrl_cmd_stat_dma_target_error_l_t
1012*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_L(a) CSR_TYPE_NCB32b
1013*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_L(a) "SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_L"
1014*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_L(a) 0x0 /* PF_BAR0 */
1015*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_L(a) (a)
1016*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_DMA_TARGET_ERROR_L(a) (a), -1, -1, -1
1017*4b8b8d74SJaiprakash Singh
1018*4b8b8d74SJaiprakash Singh /**
1019*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_intr_enable
1020*4b8b8d74SJaiprakash Singh *
1021*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Interrupt Enable Register
1022*4b8b8d74SJaiprakash Singh * Interrupt enable register. If selected bit of this register is set, rising edge of
1023*4b8b8d74SJaiprakash Singh * the corresponding
1024*4b8b8d74SJaiprakash Singh * bit in SPI(()_CTRL_CMD_STAT_INTR_STATUS will generate setting of external interrupt line.
1025*4b8b8d74SJaiprakash Singh */
1026*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_intr_enable {
1027*4b8b8d74SJaiprakash Singh uint32_t u;
1028*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_intr_enable_s {
1029*4b8b8d74SJaiprakash Singh uint32_t reserved_0_11 : 12;
1030*4b8b8d74SJaiprakash Singh uint32_t gp_open_drain_0_en : 1;
1031*4b8b8d74SJaiprakash Singh uint32_t gp_open_drain_1_en : 1;
1032*4b8b8d74SJaiprakash Singh uint32_t gp_open_drain_2_en : 1;
1033*4b8b8d74SJaiprakash Singh uint32_t gp_open_drain_3_en : 1;
1034*4b8b8d74SJaiprakash Singh uint32_t ctrl_idle_en : 1;
1035*4b8b8d74SJaiprakash Singh uint32_t cdma_terr_en : 1;
1036*4b8b8d74SJaiprakash Singh uint32_t ddma_terr_en : 1;
1037*4b8b8d74SJaiprakash Singh uint32_t reserved_19 : 1;
1038*4b8b8d74SJaiprakash Singh uint32_t cmd_ignored_en : 1;
1039*4b8b8d74SJaiprakash Singh uint32_t sdma_trigg_en : 1;
1040*4b8b8d74SJaiprakash Singh uint32_t sdma_err_en : 1;
1041*4b8b8d74SJaiprakash Singh uint32_t stig_done_en : 1;
1042*4b8b8d74SJaiprakash Singh uint32_t dir_crc_err_en : 1;
1043*4b8b8d74SJaiprakash Singh uint32_t dir_dqs_err_en : 1;
1044*4b8b8d74SJaiprakash Singh uint32_t dir_cmd_err_en : 1;
1045*4b8b8d74SJaiprakash Singh uint32_t dir_ecc_corr_err_en : 1;
1046*4b8b8d74SJaiprakash Singh uint32_t dir_dev_err_en : 1;
1047*4b8b8d74SJaiprakash Singh uint32_t reserved_29_30 : 2;
1048*4b8b8d74SJaiprakash Singh uint32_t intr_en : 1;
1049*4b8b8d74SJaiprakash Singh } s;
1050*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_intr_enable_s cn; */
1051*4b8b8d74SJaiprakash Singh };
1052*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_intr_enable ody_spix_ctrl_cmd_stat_intr_enable_t;
1053*4b8b8d74SJaiprakash Singh
1054*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_INTR_ENABLE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_INTR_ENABLE(uint64_t a)1055*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_INTR_ENABLE(uint64_t a)
1056*4b8b8d74SJaiprakash Singh {
1057*4b8b8d74SJaiprakash Singh if (a <= 1)
1058*4b8b8d74SJaiprakash Singh return 0x804000000114ll + 0x1000000000ll * ((a) & 0x1);
1059*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_INTR_ENABLE", 1, a, 0, 0, 0, 0, 0);
1060*4b8b8d74SJaiprakash Singh }
1061*4b8b8d74SJaiprakash Singh
1062*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_INTR_ENABLE(a) ody_spix_ctrl_cmd_stat_intr_enable_t
1063*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_INTR_ENABLE(a) CSR_TYPE_NCB32b
1064*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_INTR_ENABLE(a) "SPIX_CTRL_CMD_STAT_INTR_ENABLE"
1065*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_INTR_ENABLE(a) 0x0 /* PF_BAR0 */
1066*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_INTR_ENABLE(a) (a)
1067*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_INTR_ENABLE(a) (a), -1, -1, -1
1068*4b8b8d74SJaiprakash Singh
1069*4b8b8d74SJaiprakash Singh /**
1070*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_intr_status
1071*4b8b8d74SJaiprakash Singh *
1072*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Interrupt Status Register
1073*4b8b8d74SJaiprakash Singh * Controller status register.
1074*4b8b8d74SJaiprakash Singh */
1075*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_intr_status {
1076*4b8b8d74SJaiprakash Singh uint32_t u;
1077*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_intr_status_s {
1078*4b8b8d74SJaiprakash Singh uint32_t reserved_0_11 : 12;
1079*4b8b8d74SJaiprakash Singh uint32_t gp_open_drain_0 : 1;
1080*4b8b8d74SJaiprakash Singh uint32_t gp_open_drain_1 : 1;
1081*4b8b8d74SJaiprakash Singh uint32_t gp_open_drain_2 : 1;
1082*4b8b8d74SJaiprakash Singh uint32_t gp_open_drain_3 : 1;
1083*4b8b8d74SJaiprakash Singh uint32_t ctrl_idle : 1;
1084*4b8b8d74SJaiprakash Singh uint32_t cdma_terr : 1;
1085*4b8b8d74SJaiprakash Singh uint32_t ddma_terr : 1;
1086*4b8b8d74SJaiprakash Singh uint32_t reserved_19 : 1;
1087*4b8b8d74SJaiprakash Singh uint32_t cmd_ignored : 1;
1088*4b8b8d74SJaiprakash Singh uint32_t sdma_trigg : 1;
1089*4b8b8d74SJaiprakash Singh uint32_t sdma_err : 1;
1090*4b8b8d74SJaiprakash Singh uint32_t stig_done : 1;
1091*4b8b8d74SJaiprakash Singh uint32_t dir_crc_err : 1;
1092*4b8b8d74SJaiprakash Singh uint32_t dir_dqs_err : 1;
1093*4b8b8d74SJaiprakash Singh uint32_t dir_cmd_err : 1;
1094*4b8b8d74SJaiprakash Singh uint32_t dir_ecc_corr_err : 1;
1095*4b8b8d74SJaiprakash Singh uint32_t dir_dev_err : 1;
1096*4b8b8d74SJaiprakash Singh uint32_t reserved_29_31 : 3;
1097*4b8b8d74SJaiprakash Singh } s;
1098*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_intr_status_s cn; */
1099*4b8b8d74SJaiprakash Singh };
1100*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_intr_status ody_spix_ctrl_cmd_stat_intr_status_t;
1101*4b8b8d74SJaiprakash Singh
1102*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_INTR_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_INTR_STATUS(uint64_t a)1103*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_INTR_STATUS(uint64_t a)
1104*4b8b8d74SJaiprakash Singh {
1105*4b8b8d74SJaiprakash Singh if (a <= 1)
1106*4b8b8d74SJaiprakash Singh return 0x804000000110ll + 0x1000000000ll * ((a) & 0x1);
1107*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_INTR_STATUS", 1, a, 0, 0, 0, 0, 0);
1108*4b8b8d74SJaiprakash Singh }
1109*4b8b8d74SJaiprakash Singh
1110*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_INTR_STATUS(a) ody_spix_ctrl_cmd_stat_intr_status_t
1111*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_INTR_STATUS(a) CSR_TYPE_NCB32b
1112*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_INTR_STATUS(a) "SPIX_CTRL_CMD_STAT_INTR_STATUS"
1113*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_INTR_STATUS(a) 0x0 /* PF_BAR0 */
1114*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_INTR_STATUS(a) (a)
1115*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_INTR_STATUS(a) (a), -1, -1, -1
1116*4b8b8d74SJaiprakash Singh
1117*4b8b8d74SJaiprakash Singh /**
1118*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_trd_comp_intr_status
1119*4b8b8d74SJaiprakash Singh *
1120*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Thread Comp Interrupt Status Register
1121*4b8b8d74SJaiprakash Singh * Each bit of this field correspond to the auto command engine thread. Each bit
1122*4b8b8d74SJaiprakash Singh * informs about descriptor
1123*4b8b8d74SJaiprakash Singh * status for selected thread. It is set only when INT bit of the descriptor is set.
1124*4b8b8d74SJaiprakash Singh */
1125*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_trd_comp_intr_status {
1126*4b8b8d74SJaiprakash Singh uint32_t u;
1127*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_trd_comp_intr_status_s {
1128*4b8b8d74SJaiprakash Singh uint32_t trd0_comp : 1;
1129*4b8b8d74SJaiprakash Singh uint32_t trd1_comp : 1;
1130*4b8b8d74SJaiprakash Singh uint32_t trd2_comp : 1;
1131*4b8b8d74SJaiprakash Singh uint32_t trd3_comp : 1;
1132*4b8b8d74SJaiprakash Singh uint32_t trd4_comp : 1;
1133*4b8b8d74SJaiprakash Singh uint32_t trd5_comp : 1;
1134*4b8b8d74SJaiprakash Singh uint32_t trd6_comp : 1;
1135*4b8b8d74SJaiprakash Singh uint32_t trd7_comp : 1;
1136*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
1137*4b8b8d74SJaiprakash Singh } s;
1138*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_trd_comp_intr_status_s cn; */
1139*4b8b8d74SJaiprakash Singh };
1140*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_trd_comp_intr_status ody_spix_ctrl_cmd_stat_trd_comp_intr_status_t;
1141*4b8b8d74SJaiprakash Singh
1142*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_TRD_COMP_INTR_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_TRD_COMP_INTR_STATUS(uint64_t a)1143*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_TRD_COMP_INTR_STATUS(uint64_t a)
1144*4b8b8d74SJaiprakash Singh {
1145*4b8b8d74SJaiprakash Singh if (a <= 1)
1146*4b8b8d74SJaiprakash Singh return 0x804000000120ll + 0x1000000000ll * ((a) & 0x1);
1147*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_TRD_COMP_INTR_STATUS", 1, a, 0, 0, 0, 0, 0);
1148*4b8b8d74SJaiprakash Singh }
1149*4b8b8d74SJaiprakash Singh
1150*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_TRD_COMP_INTR_STATUS(a) ody_spix_ctrl_cmd_stat_trd_comp_intr_status_t
1151*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_TRD_COMP_INTR_STATUS(a) CSR_TYPE_NCB32b
1152*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_TRD_COMP_INTR_STATUS(a) "SPIX_CTRL_CMD_STAT_TRD_COMP_INTR_STATUS"
1153*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_TRD_COMP_INTR_STATUS(a) 0x0 /* PF_BAR0 */
1154*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_TRD_COMP_INTR_STATUS(a) (a)
1155*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_TRD_COMP_INTR_STATUS(a) (a), -1, -1, -1
1156*4b8b8d74SJaiprakash Singh
1157*4b8b8d74SJaiprakash Singh /**
1158*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_trd_error_intr_en
1159*4b8b8d74SJaiprakash Singh *
1160*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Thread Error Interrupt En Register
1161*4b8b8d74SJaiprakash Singh * Interrupt enable register. If the selected bit of this register is set, the rising edge of
1162*4b8b8d74SJaiprakash Singh * corresponding bit
1163*4b8b8d74SJaiprakash Singh * in SPI()_CTRL_CMD_STAT_TRD_ERROR_INTR_STATUS will cause setting of the external interrupt line.
1164*4b8b8d74SJaiprakash Singh */
1165*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_trd_error_intr_en {
1166*4b8b8d74SJaiprakash Singh uint32_t u;
1167*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_trd_error_intr_en_s {
1168*4b8b8d74SJaiprakash Singh uint32_t trd_error_intr_en : 8;
1169*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
1170*4b8b8d74SJaiprakash Singh } s;
1171*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_trd_error_intr_en_s cn; */
1172*4b8b8d74SJaiprakash Singh };
1173*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_trd_error_intr_en ody_spix_ctrl_cmd_stat_trd_error_intr_en_t;
1174*4b8b8d74SJaiprakash Singh
1175*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_EN(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_EN(uint64_t a)1176*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_EN(uint64_t a)
1177*4b8b8d74SJaiprakash Singh {
1178*4b8b8d74SJaiprakash Singh if (a <= 1)
1179*4b8b8d74SJaiprakash Singh return 0x804000000134ll + 0x1000000000ll * ((a) & 0x1);
1180*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_EN", 1, a, 0, 0, 0, 0, 0);
1181*4b8b8d74SJaiprakash Singh }
1182*4b8b8d74SJaiprakash Singh
1183*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_EN(a) ody_spix_ctrl_cmd_stat_trd_error_intr_en_t
1184*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_EN(a) CSR_TYPE_NCB32b
1185*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_EN(a) "SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_EN"
1186*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_EN(a) 0x0 /* PF_BAR0 */
1187*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_EN(a) (a)
1188*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_EN(a) (a), -1, -1, -1
1189*4b8b8d74SJaiprakash Singh
1190*4b8b8d74SJaiprakash Singh /**
1191*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_trd_error_intr_status
1192*4b8b8d74SJaiprakash Singh *
1193*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Thread Error Interrupt Status Register
1194*4b8b8d74SJaiprakash Singh * Thread error indicates that the auto command engine thread detected an error condition. To get more
1195*4b8b8d74SJaiprakash Singh * information on the error, software must read the status field of the descriptor or
1196*4b8b8d74SJaiprakash Singh * appropriate status
1197*4b8b8d74SJaiprakash Singh * register depending on the current work mode.
1198*4b8b8d74SJaiprakash Singh */
1199*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_trd_error_intr_status {
1200*4b8b8d74SJaiprakash Singh uint32_t u;
1201*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_trd_error_intr_status_s {
1202*4b8b8d74SJaiprakash Singh uint32_t trd0_error_stat : 1;
1203*4b8b8d74SJaiprakash Singh uint32_t trd1_error_stat : 1;
1204*4b8b8d74SJaiprakash Singh uint32_t trd2_error_stat : 1;
1205*4b8b8d74SJaiprakash Singh uint32_t trd3_error_stat : 1;
1206*4b8b8d74SJaiprakash Singh uint32_t trd4_error_stat : 1;
1207*4b8b8d74SJaiprakash Singh uint32_t trd5_error_stat : 1;
1208*4b8b8d74SJaiprakash Singh uint32_t trd6_error_stat : 1;
1209*4b8b8d74SJaiprakash Singh uint32_t trd7_error_stat : 1;
1210*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
1211*4b8b8d74SJaiprakash Singh } s;
1212*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_trd_error_intr_status_s cn; */
1213*4b8b8d74SJaiprakash Singh };
1214*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_trd_error_intr_status ody_spix_ctrl_cmd_stat_trd_error_intr_status_t;
1215*4b8b8d74SJaiprakash Singh
1216*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_STATUS(uint64_t a)1217*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_STATUS(uint64_t a)
1218*4b8b8d74SJaiprakash Singh {
1219*4b8b8d74SJaiprakash Singh if (a <= 1)
1220*4b8b8d74SJaiprakash Singh return 0x804000000130ll + 0x1000000000ll * ((a) & 0x1);
1221*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_STATUS", 1, a, 0, 0, 0, 0, 0);
1222*4b8b8d74SJaiprakash Singh }
1223*4b8b8d74SJaiprakash Singh
1224*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_STATUS(a) ody_spix_ctrl_cmd_stat_trd_error_intr_status_t
1225*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_STATUS(a) CSR_TYPE_NCB32b
1226*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_STATUS(a) "SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_STATUS"
1227*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_STATUS(a) 0x0 /* PF_BAR0 */
1228*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_STATUS(a) (a)
1229*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_TRD_ERROR_INTR_STATUS(a) (a), -1, -1, -1
1230*4b8b8d74SJaiprakash Singh
1231*4b8b8d74SJaiprakash Singh /**
1232*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_cmd_stat_trd_status
1233*4b8b8d74SJaiprakash Singh *
1234*4b8b8d74SJaiprakash Singh * SPI Control Command Stat Thread Status Register
1235*4b8b8d74SJaiprakash Singh * Auto command engine threads state.
1236*4b8b8d74SJaiprakash Singh */
1237*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_cmd_stat_trd_status {
1238*4b8b8d74SJaiprakash Singh uint32_t u;
1239*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_cmd_stat_trd_status_s {
1240*4b8b8d74SJaiprakash Singh uint32_t trd_busy : 8;
1241*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
1242*4b8b8d74SJaiprakash Singh } s;
1243*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_cmd_stat_trd_status_s cn; */
1244*4b8b8d74SJaiprakash Singh };
1245*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_cmd_stat_trd_status ody_spix_ctrl_cmd_stat_trd_status_t;
1246*4b8b8d74SJaiprakash Singh
1247*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_TRD_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CMD_STAT_TRD_STATUS(uint64_t a)1248*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CMD_STAT_TRD_STATUS(uint64_t a)
1249*4b8b8d74SJaiprakash Singh {
1250*4b8b8d74SJaiprakash Singh if (a <= 1)
1251*4b8b8d74SJaiprakash Singh return 0x804000000104ll + 0x1000000000ll * ((a) & 0x1);
1252*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CMD_STAT_TRD_STATUS", 1, a, 0, 0, 0, 0, 0);
1253*4b8b8d74SJaiprakash Singh }
1254*4b8b8d74SJaiprakash Singh
1255*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CMD_STAT_TRD_STATUS(a) ody_spix_ctrl_cmd_stat_trd_status_t
1256*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CMD_STAT_TRD_STATUS(a) CSR_TYPE_NCB32b
1257*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CMD_STAT_TRD_STATUS(a) "SPIX_CTRL_CMD_STAT_TRD_STATUS"
1258*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CMD_STAT_TRD_STATUS(a) 0x0 /* PF_BAR0 */
1259*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CMD_STAT_TRD_STATUS(a) (a)
1260*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CMD_STAT_TRD_STATUS(a) (a), -1, -1, -1
1261*4b8b8d74SJaiprakash Singh
1262*4b8b8d74SJaiprakash Singh /**
1263*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_consts_ctrl_features_reg
1264*4b8b8d74SJaiprakash Singh *
1265*4b8b8d74SJaiprakash Singh * SPI Control Consts Control Features Register
1266*4b8b8d74SJaiprakash Singh * Shows available hardware features of the controller.
1267*4b8b8d74SJaiprakash Singh */
1268*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_consts_ctrl_features_reg {
1269*4b8b8d74SJaiprakash Singh uint32_t u;
1270*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_consts_ctrl_features_reg_s {
1271*4b8b8d74SJaiprakash Singh uint32_t n_threads : 4;
1272*4b8b8d74SJaiprakash Singh uint32_t reserved_4_11 : 8;
1273*4b8b8d74SJaiprakash Singh uint32_t asf_available : 1;
1274*4b8b8d74SJaiprakash Singh uint32_t reserved_13_15 : 3;
1275*4b8b8d74SJaiprakash Singh uint32_t boot_available : 1;
1276*4b8b8d74SJaiprakash Singh uint32_t reserved_17 : 1;
1277*4b8b8d74SJaiprakash Singh uint32_t dma_intf : 2;
1278*4b8b8d74SJaiprakash Singh uint32_t dma_addr_width : 1;
1279*4b8b8d74SJaiprakash Singh uint32_t dma_data_width : 1;
1280*4b8b8d74SJaiprakash Singh uint32_t sfr_intf : 2;
1281*4b8b8d74SJaiprakash Singh uint32_t n_banks : 2;
1282*4b8b8d74SJaiprakash Singh uint32_t reserved_26_31 : 6;
1283*4b8b8d74SJaiprakash Singh } s;
1284*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_consts_ctrl_features_reg_s cn; */
1285*4b8b8d74SJaiprakash Singh };
1286*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_consts_ctrl_features_reg ody_spix_ctrl_consts_ctrl_features_reg_t;
1287*4b8b8d74SJaiprakash Singh
1288*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CONSTS_CTRL_FEATURES_REG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CONSTS_CTRL_FEATURES_REG(uint64_t a)1289*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CONSTS_CTRL_FEATURES_REG(uint64_t a)
1290*4b8b8d74SJaiprakash Singh {
1291*4b8b8d74SJaiprakash Singh if (a <= 1)
1292*4b8b8d74SJaiprakash Singh return 0x804000000f04ll + 0x1000000000ll * ((a) & 0x1);
1293*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CONSTS_CTRL_FEATURES_REG", 1, a, 0, 0, 0, 0, 0);
1294*4b8b8d74SJaiprakash Singh }
1295*4b8b8d74SJaiprakash Singh
1296*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CONSTS_CTRL_FEATURES_REG(a) ody_spix_ctrl_consts_ctrl_features_reg_t
1297*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CONSTS_CTRL_FEATURES_REG(a) CSR_TYPE_NCB32b
1298*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CONSTS_CTRL_FEATURES_REG(a) "SPIX_CTRL_CONSTS_CTRL_FEATURES_REG"
1299*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CONSTS_CTRL_FEATURES_REG(a) 0x0 /* PF_BAR0 */
1300*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CONSTS_CTRL_FEATURES_REG(a) (a)
1301*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CONSTS_CTRL_FEATURES_REG(a) (a), -1, -1, -1
1302*4b8b8d74SJaiprakash Singh
1303*4b8b8d74SJaiprakash Singh /**
1304*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_ctrl_consts_spi_ctrl_version
1305*4b8b8d74SJaiprakash Singh *
1306*4b8b8d74SJaiprakash Singh * SPI Control Consts xSPI Control Version Register
1307*4b8b8d74SJaiprakash Singh * contains release identification number.
1308*4b8b8d74SJaiprakash Singh */
1309*4b8b8d74SJaiprakash Singh union ody_spix_ctrl_consts_spi_ctrl_version {
1310*4b8b8d74SJaiprakash Singh uint32_t u;
1311*4b8b8d74SJaiprakash Singh struct ody_spix_ctrl_consts_spi_ctrl_version_s {
1312*4b8b8d74SJaiprakash Singh uint32_t spi_ctrl_rev : 8;
1313*4b8b8d74SJaiprakash Singh uint32_t spi_ctrl_fix : 8;
1314*4b8b8d74SJaiprakash Singh uint32_t spi_ctrl_magic_number : 16;
1315*4b8b8d74SJaiprakash Singh } s;
1316*4b8b8d74SJaiprakash Singh /* struct ody_spix_ctrl_consts_spi_ctrl_version_s cn; */
1317*4b8b8d74SJaiprakash Singh };
1318*4b8b8d74SJaiprakash Singh typedef union ody_spix_ctrl_consts_spi_ctrl_version ody_spix_ctrl_consts_spi_ctrl_version_t;
1319*4b8b8d74SJaiprakash Singh
1320*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CONSTS_SPI_CTRL_VERSION(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_CTRL_CONSTS_SPI_CTRL_VERSION(uint64_t a)1321*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_CTRL_CONSTS_SPI_CTRL_VERSION(uint64_t a)
1322*4b8b8d74SJaiprakash Singh {
1323*4b8b8d74SJaiprakash Singh if (a <= 1)
1324*4b8b8d74SJaiprakash Singh return 0x804000000f00ll + 0x1000000000ll * ((a) & 0x1);
1325*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_CTRL_CONSTS_SPI_CTRL_VERSION", 1, a, 0, 0, 0, 0, 0);
1326*4b8b8d74SJaiprakash Singh }
1327*4b8b8d74SJaiprakash Singh
1328*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_CTRL_CONSTS_SPI_CTRL_VERSION(a) ody_spix_ctrl_consts_spi_ctrl_version_t
1329*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_CTRL_CONSTS_SPI_CTRL_VERSION(a) CSR_TYPE_NCB32b
1330*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_CTRL_CONSTS_SPI_CTRL_VERSION(a) "SPIX_CTRL_CONSTS_SPI_CTRL_VERSION"
1331*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_CTRL_CONSTS_SPI_CTRL_VERSION(a) 0x0 /* PF_BAR0 */
1332*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_CTRL_CONSTS_SPI_CTRL_VERSION(a) (a)
1333*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_CTRL_CONSTS_SPI_CTRL_VERSION(a) (a), -1, -1, -1
1334*4b8b8d74SJaiprakash Singh
1335*4b8b8d74SJaiprakash Singh /**
1336*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_ers_seq_cfg_0
1337*4b8b8d74SJaiprakash Singh *
1338*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Ers Seq Cfg 0 Register
1339*4b8b8d74SJaiprakash Singh * to configure ERASE_SECTOR sequence for PROFILE 1 and SPI NAND in ACMD work mode.
1340*4b8b8d74SJaiprakash Singh */
1341*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_ers_seq_cfg_0 {
1342*4b8b8d74SJaiprakash Singh uint32_t u;
1343*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_ers_seq_cfg_0_s {
1344*4b8b8d74SJaiprakash Singh uint32_t erss_seq_p1_cmd_val : 8;
1345*4b8b8d74SJaiprakash Singh uint32_t erss_seq_p1_cmd_ios : 2;
1346*4b8b8d74SJaiprakash Singh uint32_t reserved_10 : 1;
1347*4b8b8d74SJaiprakash Singh uint32_t erss_seq_p1_cmd_edge : 1;
1348*4b8b8d74SJaiprakash Singh uint32_t erss_seq_p1_addr_cnt : 3;
1349*4b8b8d74SJaiprakash Singh uint32_t erss_seq_p1_cmd_ext_en : 1;
1350*4b8b8d74SJaiprakash Singh uint32_t erss_seq_p1_cmd_ext_val : 8;
1351*4b8b8d74SJaiprakash Singh uint32_t erss_seq_p1_addr_ios : 2;
1352*4b8b8d74SJaiprakash Singh uint32_t reserved_26_27 : 2;
1353*4b8b8d74SJaiprakash Singh uint32_t erss_seq_p1_addr_edge : 1;
1354*4b8b8d74SJaiprakash Singh uint32_t reserved_29_31 : 3;
1355*4b8b8d74SJaiprakash Singh } s;
1356*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_ers_seq_cfg_0_s cn; */
1357*4b8b8d74SJaiprakash Singh };
1358*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_ers_seq_cfg_0 ody_spix_dev_seq_regs_ers_seq_cfg_0_t;
1359*4b8b8d74SJaiprakash Singh
1360*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_0(uint64_t a)1361*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_0(uint64_t a)
1362*4b8b8d74SJaiprakash Singh {
1363*4b8b8d74SJaiprakash Singh if (a <= 1)
1364*4b8b8d74SJaiprakash Singh return 0x804000000410ll + 0x1000000000ll * ((a) & 0x1);
1365*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_0", 1, a, 0, 0, 0, 0, 0);
1366*4b8b8d74SJaiprakash Singh }
1367*4b8b8d74SJaiprakash Singh
1368*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_0(a) ody_spix_dev_seq_regs_ers_seq_cfg_0_t
1369*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_0(a) CSR_TYPE_NCB32b
1370*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_0(a) "SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_0"
1371*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_0(a) 0x0 /* PF_BAR0 */
1372*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_0(a) (a)
1373*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_0(a) (a), -1, -1, -1
1374*4b8b8d74SJaiprakash Singh
1375*4b8b8d74SJaiprakash Singh /**
1376*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_ers_seq_cfg_1
1377*4b8b8d74SJaiprakash Singh *
1378*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Ers Seq Cfg 1 Register
1379*4b8b8d74SJaiprakash Singh * to configure ERASE_SECTOR sequence for PROFILE 1 and SPI NAND in ACMD work mode.
1380*4b8b8d74SJaiprakash Singh */
1381*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_ers_seq_cfg_1 {
1382*4b8b8d74SJaiprakash Singh uint32_t u;
1383*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_ers_seq_cfg_1_s {
1384*4b8b8d74SJaiprakash Singh uint32_t erss_seq_p1_sect_size : 5;
1385*4b8b8d74SJaiprakash Singh uint32_t reserved_5_31 : 27;
1386*4b8b8d74SJaiprakash Singh } s;
1387*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_ers_seq_cfg_1_s cn; */
1388*4b8b8d74SJaiprakash Singh };
1389*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_ers_seq_cfg_1 ody_spix_dev_seq_regs_ers_seq_cfg_1_t;
1390*4b8b8d74SJaiprakash Singh
1391*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_1(uint64_t a)1392*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_1(uint64_t a)
1393*4b8b8d74SJaiprakash Singh {
1394*4b8b8d74SJaiprakash Singh if (a <= 1)
1395*4b8b8d74SJaiprakash Singh return 0x804000000414ll + 0x1000000000ll * ((a) & 0x1);
1396*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_1", 1, a, 0, 0, 0, 0, 0);
1397*4b8b8d74SJaiprakash Singh }
1398*4b8b8d74SJaiprakash Singh
1399*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_1(a) ody_spix_dev_seq_regs_ers_seq_cfg_1_t
1400*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_1(a) CSR_TYPE_NCB32b
1401*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_1(a) "SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_1"
1402*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_1(a) 0x0 /* PF_BAR0 */
1403*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_1(a) (a)
1404*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_1(a) (a), -1, -1, -1
1405*4b8b8d74SJaiprakash Singh
1406*4b8b8d74SJaiprakash Singh /**
1407*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_ers_seq_cfg_2
1408*4b8b8d74SJaiprakash Singh *
1409*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Ers Seq Cfg 2 Register
1410*4b8b8d74SJaiprakash Singh * to configure ERASE_ALL sequence for PROFILE 1 in ACMD work mode.
1411*4b8b8d74SJaiprakash Singh */
1412*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_ers_seq_cfg_2 {
1413*4b8b8d74SJaiprakash Singh uint32_t u;
1414*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_ers_seq_cfg_2_s {
1415*4b8b8d74SJaiprakash Singh uint32_t ersa_seq_p1_cmd_val : 8;
1416*4b8b8d74SJaiprakash Singh uint32_t ersa_seq_p1_cmd_ios : 2;
1417*4b8b8d74SJaiprakash Singh uint32_t reserved_10 : 1;
1418*4b8b8d74SJaiprakash Singh uint32_t ersa_seq_p1_cmd_edge : 1;
1419*4b8b8d74SJaiprakash Singh uint32_t reserved_12_14 : 3;
1420*4b8b8d74SJaiprakash Singh uint32_t ersa_seq_p1_cmd_ext_en : 1;
1421*4b8b8d74SJaiprakash Singh uint32_t ersa_seq_p1_cmd_ext_val : 8;
1422*4b8b8d74SJaiprakash Singh uint32_t reserved_24_31 : 8;
1423*4b8b8d74SJaiprakash Singh } s;
1424*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_ers_seq_cfg_2_s cn; */
1425*4b8b8d74SJaiprakash Singh };
1426*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_ers_seq_cfg_2 ody_spix_dev_seq_regs_ers_seq_cfg_2_t;
1427*4b8b8d74SJaiprakash Singh
1428*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_2(uint64_t a)1429*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_2(uint64_t a)
1430*4b8b8d74SJaiprakash Singh {
1431*4b8b8d74SJaiprakash Singh if (a <= 1)
1432*4b8b8d74SJaiprakash Singh return 0x804000000418ll + 0x1000000000ll * ((a) & 0x1);
1433*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_2", 1, a, 0, 0, 0, 0, 0);
1434*4b8b8d74SJaiprakash Singh }
1435*4b8b8d74SJaiprakash Singh
1436*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_2(a) ody_spix_dev_seq_regs_ers_seq_cfg_2_t
1437*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_2(a) CSR_TYPE_NCB32b
1438*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_2(a) "SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_2"
1439*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_2(a) 0x0 /* PF_BAR0 */
1440*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_2(a) (a)
1441*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_ERS_SEQ_CFG_2(a) (a), -1, -1, -1
1442*4b8b8d74SJaiprakash Singh
1443*4b8b8d74SJaiprakash Singh /**
1444*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_prog_seq_cfg_0
1445*4b8b8d74SJaiprakash Singh *
1446*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Prog Seq Cfg 0 Register
1447*4b8b8d74SJaiprakash Singh * to configure PROGRAM sequence for PROFILE 1 and SPI NAND in ACMD and DIRECT work modes.
1448*4b8b8d74SJaiprakash Singh */
1449*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_prog_seq_cfg_0 {
1450*4b8b8d74SJaiprakash Singh uint32_t u;
1451*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_prog_seq_cfg_0_s {
1452*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p1_cmd_val : 8;
1453*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p1_cmd_ios : 2;
1454*4b8b8d74SJaiprakash Singh uint32_t reserved_10 : 1;
1455*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p1_cmd_edge : 1;
1456*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p1_addr_cnt : 3;
1457*4b8b8d74SJaiprakash Singh uint32_t reserved_15 : 1;
1458*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p1_addr_ios : 2;
1459*4b8b8d74SJaiprakash Singh uint32_t reserved_18 : 1;
1460*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p1_addr_edge : 1;
1461*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p1_data_ios : 2;
1462*4b8b8d74SJaiprakash Singh uint32_t reserved_22 : 1;
1463*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p1_data_edge : 1;
1464*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p1_dummy_cnt : 6;
1465*4b8b8d74SJaiprakash Singh uint32_t reserved_30_31 : 2;
1466*4b8b8d74SJaiprakash Singh } s;
1467*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_prog_seq_cfg_0_s cn; */
1468*4b8b8d74SJaiprakash Singh };
1469*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_prog_seq_cfg_0 ody_spix_dev_seq_regs_prog_seq_cfg_0_t;
1470*4b8b8d74SJaiprakash Singh
1471*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_0(uint64_t a)1472*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_0(uint64_t a)
1473*4b8b8d74SJaiprakash Singh {
1474*4b8b8d74SJaiprakash Singh if (a <= 1)
1475*4b8b8d74SJaiprakash Singh return 0x804000000420ll + 0x1000000000ll * ((a) & 0x1);
1476*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_0", 1, a, 0, 0, 0, 0, 0);
1477*4b8b8d74SJaiprakash Singh }
1478*4b8b8d74SJaiprakash Singh
1479*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_0(a) ody_spix_dev_seq_regs_prog_seq_cfg_0_t
1480*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_0(a) CSR_TYPE_NCB32b
1481*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_0(a) "SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_0"
1482*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_0(a) 0x0 /* PF_BAR0 */
1483*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_0(a) (a)
1484*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_0(a) (a), -1, -1, -1
1485*4b8b8d74SJaiprakash Singh
1486*4b8b8d74SJaiprakash Singh /**
1487*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_prog_seq_cfg_1
1488*4b8b8d74SJaiprakash Singh *
1489*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Prog Seq Cfg 1 Register
1490*4b8b8d74SJaiprakash Singh * to configure PROGRAM sequence for PROFILE 1 and SPI NAND in ACMD and DIRECT work modes.
1491*4b8b8d74SJaiprakash Singh */
1492*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_prog_seq_cfg_1 {
1493*4b8b8d74SJaiprakash Singh uint32_t u;
1494*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_prog_seq_cfg_1_s {
1495*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p1_cmd_ext_en : 1;
1496*4b8b8d74SJaiprakash Singh uint32_t reserved_1_7 : 7;
1497*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p1_cmd_ext_val : 8;
1498*4b8b8d74SJaiprakash Singh uint32_t reserved_16_31 : 16;
1499*4b8b8d74SJaiprakash Singh } s;
1500*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_prog_seq_cfg_1_s cn; */
1501*4b8b8d74SJaiprakash Singh };
1502*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_prog_seq_cfg_1 ody_spix_dev_seq_regs_prog_seq_cfg_1_t;
1503*4b8b8d74SJaiprakash Singh
1504*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_1(uint64_t a)1505*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_1(uint64_t a)
1506*4b8b8d74SJaiprakash Singh {
1507*4b8b8d74SJaiprakash Singh if (a <= 1)
1508*4b8b8d74SJaiprakash Singh return 0x804000000424ll + 0x1000000000ll * ((a) & 0x1);
1509*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_1", 1, a, 0, 0, 0, 0, 0);
1510*4b8b8d74SJaiprakash Singh }
1511*4b8b8d74SJaiprakash Singh
1512*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_1(a) ody_spix_dev_seq_regs_prog_seq_cfg_1_t
1513*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_1(a) CSR_TYPE_NCB32b
1514*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_1(a) "SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_1"
1515*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_1(a) 0x0 /* PF_BAR0 */
1516*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_1(a) (a)
1517*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_1(a) (a), -1, -1, -1
1518*4b8b8d74SJaiprakash Singh
1519*4b8b8d74SJaiprakash Singh /**
1520*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_prog_seq_cfg_2
1521*4b8b8d74SJaiprakash Singh *
1522*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Prog Seq Cfg 2 Register
1523*4b8b8d74SJaiprakash Singh * to configure PROGRAM sequence for PROFILE 2 in ACMD and DIRECT work modes.
1524*4b8b8d74SJaiprakash Singh */
1525*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_prog_seq_cfg_2 {
1526*4b8b8d74SJaiprakash Singh uint32_t u;
1527*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_prog_seq_cfg_2_s {
1528*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p2_target : 1;
1529*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p2_burst_type : 1;
1530*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p2_mask_cmd_mod : 1;
1531*4b8b8d74SJaiprakash Singh uint32_t reserved_3_7 : 5;
1532*4b8b8d74SJaiprakash Singh uint32_t prog_seq_p2_latency_cnt : 6;
1533*4b8b8d74SJaiprakash Singh uint32_t reserved_14_31 : 18;
1534*4b8b8d74SJaiprakash Singh } s;
1535*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_prog_seq_cfg_2_s cn; */
1536*4b8b8d74SJaiprakash Singh };
1537*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_prog_seq_cfg_2 ody_spix_dev_seq_regs_prog_seq_cfg_2_t;
1538*4b8b8d74SJaiprakash Singh
1539*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_2(uint64_t a)1540*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_2(uint64_t a)
1541*4b8b8d74SJaiprakash Singh {
1542*4b8b8d74SJaiprakash Singh if (a <= 1)
1543*4b8b8d74SJaiprakash Singh return 0x804000000428ll + 0x1000000000ll * ((a) & 0x1);
1544*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_2", 1, a, 0, 0, 0, 0, 0);
1545*4b8b8d74SJaiprakash Singh }
1546*4b8b8d74SJaiprakash Singh
1547*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_2(a) ody_spix_dev_seq_regs_prog_seq_cfg_2_t
1548*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_2(a) CSR_TYPE_NCB32b
1549*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_2(a) "SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_2"
1550*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_2(a) 0x0 /* PF_BAR0 */
1551*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_2(a) (a)
1552*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_PROG_SEQ_CFG_2(a) (a), -1, -1, -1
1553*4b8b8d74SJaiprakash Singh
1554*4b8b8d74SJaiprakash Singh /**
1555*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_read_seq_cfg_0
1556*4b8b8d74SJaiprakash Singh *
1557*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Read Seq Cfg 0 Register
1558*4b8b8d74SJaiprakash Singh * to configure READ sequence for PROFILE 1 and SPI NAND in ACMD and DIRECT work modes.
1559*4b8b8d74SJaiprakash Singh */
1560*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_read_seq_cfg_0 {
1561*4b8b8d74SJaiprakash Singh uint32_t u;
1562*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_read_seq_cfg_0_s {
1563*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_cmd_val : 8;
1564*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_cmd_ios : 2;
1565*4b8b8d74SJaiprakash Singh uint32_t reserved_10 : 1;
1566*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_cmd_edge : 1;
1567*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_addr_cnt : 3;
1568*4b8b8d74SJaiprakash Singh uint32_t reserved_15 : 1;
1569*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_addr_ios : 2;
1570*4b8b8d74SJaiprakash Singh uint32_t reserved_18 : 1;
1571*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_addr_edge : 1;
1572*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_data_ios : 2;
1573*4b8b8d74SJaiprakash Singh uint32_t reserved_22 : 1;
1574*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_data_edge : 1;
1575*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_dummy_cnt : 6;
1576*4b8b8d74SJaiprakash Singh uint32_t reserved_30_31 : 2;
1577*4b8b8d74SJaiprakash Singh } s;
1578*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_read_seq_cfg_0_s cn; */
1579*4b8b8d74SJaiprakash Singh };
1580*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_read_seq_cfg_0 ody_spix_dev_seq_regs_read_seq_cfg_0_t;
1581*4b8b8d74SJaiprakash Singh
1582*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_0(uint64_t a)1583*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_0(uint64_t a)
1584*4b8b8d74SJaiprakash Singh {
1585*4b8b8d74SJaiprakash Singh if (a <= 1)
1586*4b8b8d74SJaiprakash Singh return 0x804000000430ll + 0x1000000000ll * ((a) & 0x1);
1587*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_0", 1, a, 0, 0, 0, 0, 0);
1588*4b8b8d74SJaiprakash Singh }
1589*4b8b8d74SJaiprakash Singh
1590*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_0(a) ody_spix_dev_seq_regs_read_seq_cfg_0_t
1591*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_0(a) CSR_TYPE_NCB32b
1592*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_0(a) "SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_0"
1593*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_0(a) 0x0 /* PF_BAR0 */
1594*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_0(a) (a)
1595*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_0(a) (a), -1, -1, -1
1596*4b8b8d74SJaiprakash Singh
1597*4b8b8d74SJaiprakash Singh /**
1598*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_read_seq_cfg_1
1599*4b8b8d74SJaiprakash Singh *
1600*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Read Seq Cfg 1 Register
1601*4b8b8d74SJaiprakash Singh * to configure READ sequence for PROFILE 1 and SPI NAND in ACMD and DIRECT work modes.
1602*4b8b8d74SJaiprakash Singh */
1603*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_read_seq_cfg_1 {
1604*4b8b8d74SJaiprakash Singh uint32_t u;
1605*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_read_seq_cfg_1_s {
1606*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_cmd_ext_en : 1;
1607*4b8b8d74SJaiprakash Singh uint32_t reserved_1_3 : 3;
1608*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_cache_random_read_en : 1;
1609*4b8b8d74SJaiprakash Singh uint32_t reserved_5_7 : 3;
1610*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_cmd_ext_val : 8;
1611*4b8b8d74SJaiprakash Singh uint32_t reserved_16_23 : 8;
1612*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_mb_dummy_cnt : 6;
1613*4b8b8d74SJaiprakash Singh uint32_t reserved_30 : 1;
1614*4b8b8d74SJaiprakash Singh uint32_t read_seq_p1_mb_en : 1;
1615*4b8b8d74SJaiprakash Singh } s;
1616*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_read_seq_cfg_1_s cn; */
1617*4b8b8d74SJaiprakash Singh };
1618*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_read_seq_cfg_1 ody_spix_dev_seq_regs_read_seq_cfg_1_t;
1619*4b8b8d74SJaiprakash Singh
1620*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_1(uint64_t a)1621*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_1(uint64_t a)
1622*4b8b8d74SJaiprakash Singh {
1623*4b8b8d74SJaiprakash Singh if (a <= 1)
1624*4b8b8d74SJaiprakash Singh return 0x804000000434ll + 0x1000000000ll * ((a) & 0x1);
1625*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_1", 1, a, 0, 0, 0, 0, 0);
1626*4b8b8d74SJaiprakash Singh }
1627*4b8b8d74SJaiprakash Singh
1628*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_1(a) ody_spix_dev_seq_regs_read_seq_cfg_1_t
1629*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_1(a) CSR_TYPE_NCB32b
1630*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_1(a) "SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_1"
1631*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_1(a) 0x0 /* PF_BAR0 */
1632*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_1(a) (a)
1633*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_1(a) (a), -1, -1, -1
1634*4b8b8d74SJaiprakash Singh
1635*4b8b8d74SJaiprakash Singh /**
1636*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_read_seq_cfg_2
1637*4b8b8d74SJaiprakash Singh *
1638*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Read Seq Cfg 2 Register
1639*4b8b8d74SJaiprakash Singh * to configure READ sequence for PROFILE 2 in ACMD and DIRECT work modes.
1640*4b8b8d74SJaiprakash Singh */
1641*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_read_seq_cfg_2 {
1642*4b8b8d74SJaiprakash Singh uint32_t u;
1643*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_read_seq_cfg_2_s {
1644*4b8b8d74SJaiprakash Singh uint32_t read_seq_p2_target : 1;
1645*4b8b8d74SJaiprakash Singh uint32_t read_seq_p2_burst_type : 1;
1646*4b8b8d74SJaiprakash Singh uint32_t read_seq_p2_mask_cmd_mod : 1;
1647*4b8b8d74SJaiprakash Singh uint32_t read_seq_p2_hf_bound_en : 1;
1648*4b8b8d74SJaiprakash Singh uint32_t reserved_4_7 : 4;
1649*4b8b8d74SJaiprakash Singh uint32_t read_seq_p2_latency_cnt : 6;
1650*4b8b8d74SJaiprakash Singh uint32_t reserved_14_31 : 18;
1651*4b8b8d74SJaiprakash Singh } s;
1652*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_read_seq_cfg_2_s cn; */
1653*4b8b8d74SJaiprakash Singh };
1654*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_read_seq_cfg_2 ody_spix_dev_seq_regs_read_seq_cfg_2_t;
1655*4b8b8d74SJaiprakash Singh
1656*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_2(uint64_t a)1657*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_2(uint64_t a)
1658*4b8b8d74SJaiprakash Singh {
1659*4b8b8d74SJaiprakash Singh if (a <= 1)
1660*4b8b8d74SJaiprakash Singh return 0x804000000438ll + 0x1000000000ll * ((a) & 0x1);
1661*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_2", 1, a, 0, 0, 0, 0, 0);
1662*4b8b8d74SJaiprakash Singh }
1663*4b8b8d74SJaiprakash Singh
1664*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_2(a) ody_spix_dev_seq_regs_read_seq_cfg_2_t
1665*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_2(a) CSR_TYPE_NCB32b
1666*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_2(a) "SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_2"
1667*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_2(a) 0x0 /* PF_BAR0 */
1668*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_2(a) (a)
1669*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_READ_SEQ_CFG_2(a) (a), -1, -1, -1
1670*4b8b8d74SJaiprakash Singh
1671*4b8b8d74SJaiprakash Singh /**
1672*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_rst_seq_cfg_0
1673*4b8b8d74SJaiprakash Singh *
1674*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Rst Seq Cfg 0 Register
1675*4b8b8d74SJaiprakash Singh * to configure RESET sequence for PROFILE 1 and SPI NAND in ACMD work mode.
1676*4b8b8d74SJaiprakash Singh */
1677*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_rst_seq_cfg_0 {
1678*4b8b8d74SJaiprakash Singh uint32_t u;
1679*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_rst_seq_cfg_0_s {
1680*4b8b8d74SJaiprakash Singh uint32_t rst_seq_p1_cmd0_val : 8;
1681*4b8b8d74SJaiprakash Singh uint32_t rst_seq_p1_cmd1_val : 8;
1682*4b8b8d74SJaiprakash Singh uint32_t rst_seq_p1_cmd0_en : 1;
1683*4b8b8d74SJaiprakash Singh uint32_t reserved_17 : 1;
1684*4b8b8d74SJaiprakash Singh uint32_t rst_seq_p1_data_ios : 2;
1685*4b8b8d74SJaiprakash Singh uint32_t reserved_20 : 1;
1686*4b8b8d74SJaiprakash Singh uint32_t rst_seq_p1_data_edge : 1;
1687*4b8b8d74SJaiprakash Singh uint32_t rst_seq_p1_data_en : 1;
1688*4b8b8d74SJaiprakash Singh uint32_t reserved_23 : 1;
1689*4b8b8d74SJaiprakash Singh uint32_t rst_seq_p1_cmd_ios : 2;
1690*4b8b8d74SJaiprakash Singh uint32_t reserved_26_27 : 2;
1691*4b8b8d74SJaiprakash Singh uint32_t rst_seq_p1_cmd_edge : 1;
1692*4b8b8d74SJaiprakash Singh uint32_t reserved_29_31 : 3;
1693*4b8b8d74SJaiprakash Singh } s;
1694*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_rst_seq_cfg_0_s cn; */
1695*4b8b8d74SJaiprakash Singh };
1696*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_rst_seq_cfg_0 ody_spix_dev_seq_regs_rst_seq_cfg_0_t;
1697*4b8b8d74SJaiprakash Singh
1698*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_0(uint64_t a)1699*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_0(uint64_t a)
1700*4b8b8d74SJaiprakash Singh {
1701*4b8b8d74SJaiprakash Singh if (a <= 1)
1702*4b8b8d74SJaiprakash Singh return 0x804000000400ll + 0x1000000000ll * ((a) & 0x1);
1703*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_0", 1, a, 0, 0, 0, 0, 0);
1704*4b8b8d74SJaiprakash Singh }
1705*4b8b8d74SJaiprakash Singh
1706*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_0(a) ody_spix_dev_seq_regs_rst_seq_cfg_0_t
1707*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_0(a) CSR_TYPE_NCB32b
1708*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_0(a) "SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_0"
1709*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_0(a) 0x0 /* PF_BAR0 */
1710*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_0(a) (a)
1711*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_0(a) (a), -1, -1, -1
1712*4b8b8d74SJaiprakash Singh
1713*4b8b8d74SJaiprakash Singh /**
1714*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_rst_seq_cfg_1
1715*4b8b8d74SJaiprakash Singh *
1716*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Rst Seq Cfg 1 Register
1717*4b8b8d74SJaiprakash Singh * to configure RESET sequence for PROFILE 1 and SPI NAND in ACMD work mode.
1718*4b8b8d74SJaiprakash Singh */
1719*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_rst_seq_cfg_1 {
1720*4b8b8d74SJaiprakash Singh uint32_t u;
1721*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_rst_seq_cfg_1_s {
1722*4b8b8d74SJaiprakash Singh uint32_t rst_seq_p1_cmd0_ext_en : 1;
1723*4b8b8d74SJaiprakash Singh uint32_t rst_seq_p1_cmd1_ext_en : 1;
1724*4b8b8d74SJaiprakash Singh uint32_t reserved_2_7 : 6;
1725*4b8b8d74SJaiprakash Singh uint32_t rst_seq_p1_cmd0_ext_val : 8;
1726*4b8b8d74SJaiprakash Singh uint32_t rst_seq_p1_cmd1_ext_val : 8;
1727*4b8b8d74SJaiprakash Singh uint32_t rst_seq_p1_data_val : 8;
1728*4b8b8d74SJaiprakash Singh } s;
1729*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_rst_seq_cfg_1_s cn; */
1730*4b8b8d74SJaiprakash Singh };
1731*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_rst_seq_cfg_1 ody_spix_dev_seq_regs_rst_seq_cfg_1_t;
1732*4b8b8d74SJaiprakash Singh
1733*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_1(uint64_t a)1734*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_1(uint64_t a)
1735*4b8b8d74SJaiprakash Singh {
1736*4b8b8d74SJaiprakash Singh if (a <= 1)
1737*4b8b8d74SJaiprakash Singh return 0x804000000404ll + 0x1000000000ll * ((a) & 0x1);
1738*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_1", 1, a, 0, 0, 0, 0, 0);
1739*4b8b8d74SJaiprakash Singh }
1740*4b8b8d74SJaiprakash Singh
1741*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_1(a) ody_spix_dev_seq_regs_rst_seq_cfg_1_t
1742*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_1(a) CSR_TYPE_NCB32b
1743*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_1(a) "SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_1"
1744*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_1(a) 0x0 /* PF_BAR0 */
1745*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_1(a) (a)
1746*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_RST_SEQ_CFG_1(a) (a), -1, -1, -1
1747*4b8b8d74SJaiprakash Singh
1748*4b8b8d74SJaiprakash Singh /**
1749*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_stat_seq_cfg_0
1750*4b8b8d74SJaiprakash Singh *
1751*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Stat Seq Cfg 0 Register
1752*4b8b8d74SJaiprakash Singh * to configure status checking sequence for PROFILE 1 and SPI NAND in ACMD and DIRECT work
1753*4b8b8d74SJaiprakash Singh * modes.
1754*4b8b8d74SJaiprakash Singh */
1755*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_stat_seq_cfg_0 {
1756*4b8b8d74SJaiprakash Singh uint32_t u;
1757*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_stat_seq_cfg_0_s {
1758*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_cmd_ios : 2;
1759*4b8b8d74SJaiprakash Singh uint32_t reserved_2_3 : 2;
1760*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_cmd_edge : 1;
1761*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_cmd_ext_en : 1;
1762*4b8b8d74SJaiprakash Singh uint32_t reserved_6_7 : 2;
1763*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_addr_cnt : 2;
1764*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_addr_ios : 2;
1765*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_addr_edge : 1;
1766*4b8b8d74SJaiprakash Singh uint32_t reserved_13_19 : 7;
1767*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_data_ios : 2;
1768*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_data_edge : 1;
1769*4b8b8d74SJaiprakash Singh uint32_t reserved_23_31 : 9;
1770*4b8b8d74SJaiprakash Singh } s;
1771*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_stat_seq_cfg_0_s cn; */
1772*4b8b8d74SJaiprakash Singh };
1773*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_stat_seq_cfg_0 ody_spix_dev_seq_regs_stat_seq_cfg_0_t;
1774*4b8b8d74SJaiprakash Singh
1775*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_0(uint64_t a)1776*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_0(uint64_t a)
1777*4b8b8d74SJaiprakash Singh {
1778*4b8b8d74SJaiprakash Singh if (a <= 1)
1779*4b8b8d74SJaiprakash Singh return 0x804000000450ll + 0x1000000000ll * ((a) & 0x1);
1780*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_0", 1, a, 0, 0, 0, 0, 0);
1781*4b8b8d74SJaiprakash Singh }
1782*4b8b8d74SJaiprakash Singh
1783*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_0(a) ody_spix_dev_seq_regs_stat_seq_cfg_0_t
1784*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_0(a) CSR_TYPE_NCB32b
1785*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_0(a) "SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_0"
1786*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_0(a) 0x0 /* PF_BAR0 */
1787*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_0(a) (a)
1788*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_0(a) (a), -1, -1, -1
1789*4b8b8d74SJaiprakash Singh
1790*4b8b8d74SJaiprakash Singh /**
1791*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_stat_seq_cfg_1
1792*4b8b8d74SJaiprakash Singh *
1793*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Stat Seq Cfg 1 Register
1794*4b8b8d74SJaiprakash Singh * to configure status checking sequence for PROFILE 1 and SPI NAND ACMD and
1795*4b8b8d74SJaiprakash Singh * DIRECT work modes.
1796*4b8b8d74SJaiprakash Singh */
1797*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_stat_seq_cfg_1 {
1798*4b8b8d74SJaiprakash Singh uint32_t u;
1799*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_stat_seq_cfg_1_s {
1800*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_dev_rdy_dummy_cnt : 6;
1801*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_dev_rdy_addr_en : 1;
1802*4b8b8d74SJaiprakash Singh uint32_t reserved_7_15 : 9;
1803*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_prog_fail_dummy_cnt : 6;
1804*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_prog_fail_addr_en : 1;
1805*4b8b8d74SJaiprakash Singh uint32_t reserved_23 : 1;
1806*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_ers_fail_dummy_cnt : 6;
1807*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_ers_fail_addr_en : 1;
1808*4b8b8d74SJaiprakash Singh uint32_t reserved_31 : 1;
1809*4b8b8d74SJaiprakash Singh } s;
1810*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_stat_seq_cfg_1_s cn; */
1811*4b8b8d74SJaiprakash Singh };
1812*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_stat_seq_cfg_1 ody_spix_dev_seq_regs_stat_seq_cfg_1_t;
1813*4b8b8d74SJaiprakash Singh
1814*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_1(uint64_t a)1815*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_1(uint64_t a)
1816*4b8b8d74SJaiprakash Singh {
1817*4b8b8d74SJaiprakash Singh if (a <= 1)
1818*4b8b8d74SJaiprakash Singh return 0x804000000454ll + 0x1000000000ll * ((a) & 0x1);
1819*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_1", 1, a, 0, 0, 0, 0, 0);
1820*4b8b8d74SJaiprakash Singh }
1821*4b8b8d74SJaiprakash Singh
1822*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_1(a) ody_spix_dev_seq_regs_stat_seq_cfg_1_t
1823*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_1(a) CSR_TYPE_NCB32b
1824*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_1(a) "SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_1"
1825*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_1(a) 0x0 /* PF_BAR0 */
1826*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_1(a) (a)
1827*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_1(a) (a), -1, -1, -1
1828*4b8b8d74SJaiprakash Singh
1829*4b8b8d74SJaiprakash Singh /**
1830*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_stat_seq_cfg_10
1831*4b8b8d74SJaiprakash Singh *
1832*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Stat Seq Cfg 10 Register
1833*4b8b8d74SJaiprakash Singh * to configure status checking sequence for SPI NAND devices in ACMD and DIRECT work modes.
1834*4b8b8d74SJaiprakash Singh */
1835*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_stat_seq_cfg_10 {
1836*4b8b8d74SJaiprakash Singh uint32_t u;
1837*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_stat_seq_cfg_10_s {
1838*4b8b8d74SJaiprakash Singh uint32_t stat_seq_ecc_fail_mask : 8;
1839*4b8b8d74SJaiprakash Singh uint32_t stat_seq_ecc_fail_val : 8;
1840*4b8b8d74SJaiprakash Singh uint32_t stat_seq_ecc_corr_val : 8;
1841*4b8b8d74SJaiprakash Singh uint32_t stat_seq_crdy_idx : 3;
1842*4b8b8d74SJaiprakash Singh uint32_t stat_seq_crdy_val : 1;
1843*4b8b8d74SJaiprakash Singh uint32_t reserved_28_30 : 3;
1844*4b8b8d74SJaiprakash Singh uint32_t stat_seq_ecc_fail_en : 1;
1845*4b8b8d74SJaiprakash Singh } s;
1846*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_stat_seq_cfg_10_s cn; */
1847*4b8b8d74SJaiprakash Singh };
1848*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_stat_seq_cfg_10 ody_spix_dev_seq_regs_stat_seq_cfg_10_t;
1849*4b8b8d74SJaiprakash Singh
1850*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_10(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_10(uint64_t a)1851*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_10(uint64_t a)
1852*4b8b8d74SJaiprakash Singh {
1853*4b8b8d74SJaiprakash Singh if (a <= 1)
1854*4b8b8d74SJaiprakash Singh return 0x804000000478ll + 0x1000000000ll * ((a) & 0x1);
1855*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_10", 1, a, 0, 0, 0, 0, 0);
1856*4b8b8d74SJaiprakash Singh }
1857*4b8b8d74SJaiprakash Singh
1858*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_10(a) ody_spix_dev_seq_regs_stat_seq_cfg_10_t
1859*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_10(a) CSR_TYPE_NCB32b
1860*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_10(a) "SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_10"
1861*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_10(a) 0x0 /* PF_BAR0 */
1862*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_10(a) (a)
1863*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_10(a) (a), -1, -1, -1
1864*4b8b8d74SJaiprakash Singh
1865*4b8b8d74SJaiprakash Singh /**
1866*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_stat_seq_cfg_2
1867*4b8b8d74SJaiprakash Singh *
1868*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Stat Seq Cfg 2 Register
1869*4b8b8d74SJaiprakash Singh * to configure status checking sequence for PROFILE 1 and SPI NAND in ACMD and DIRECT work
1870*4b8b8d74SJaiprakash Singh * modes.
1871*4b8b8d74SJaiprakash Singh */
1872*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_stat_seq_cfg_2 {
1873*4b8b8d74SJaiprakash Singh uint32_t u;
1874*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_stat_seq_cfg_2_s {
1875*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_dev_rdy_cmd_val : 8;
1876*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_ers_fail_cmd_val : 8;
1877*4b8b8d74SJaiprakash Singh uint32_t reserved_16_23 : 8;
1878*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_prog_fail_cmd_val : 8;
1879*4b8b8d74SJaiprakash Singh } s;
1880*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_stat_seq_cfg_2_s cn; */
1881*4b8b8d74SJaiprakash Singh };
1882*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_stat_seq_cfg_2 ody_spix_dev_seq_regs_stat_seq_cfg_2_t;
1883*4b8b8d74SJaiprakash Singh
1884*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_2(uint64_t a)1885*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_2(uint64_t a)
1886*4b8b8d74SJaiprakash Singh {
1887*4b8b8d74SJaiprakash Singh if (a <= 1)
1888*4b8b8d74SJaiprakash Singh return 0x804000000458ll + 0x1000000000ll * ((a) & 0x1);
1889*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_2", 1, a, 0, 0, 0, 0, 0);
1890*4b8b8d74SJaiprakash Singh }
1891*4b8b8d74SJaiprakash Singh
1892*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_2(a) ody_spix_dev_seq_regs_stat_seq_cfg_2_t
1893*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_2(a) CSR_TYPE_NCB32b
1894*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_2(a) "SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_2"
1895*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_2(a) 0x0 /* PF_BAR0 */
1896*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_2(a) (a)
1897*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_2(a) (a), -1, -1, -1
1898*4b8b8d74SJaiprakash Singh
1899*4b8b8d74SJaiprakash Singh /**
1900*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_stat_seq_cfg_3
1901*4b8b8d74SJaiprakash Singh *
1902*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Stat Seq Cfg 3 Register
1903*4b8b8d74SJaiprakash Singh * to configure status checking sequence for PROFILE 1 and SPI NAND in ACMD and DIRECT work
1904*4b8b8d74SJaiprakash Singh * modes.
1905*4b8b8d74SJaiprakash Singh */
1906*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_stat_seq_cfg_3 {
1907*4b8b8d74SJaiprakash Singh uint32_t u;
1908*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_stat_seq_cfg_3_s {
1909*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_dev_rdy_cmd_ext_val : 8;
1910*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_ers_fail_cmd_ext_val : 8;
1911*4b8b8d74SJaiprakash Singh uint32_t reserved_16_23 : 8;
1912*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p1_prog_fail_cmd_ext_val : 8;
1913*4b8b8d74SJaiprakash Singh } s;
1914*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_stat_seq_cfg_3_s cn; */
1915*4b8b8d74SJaiprakash Singh };
1916*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_stat_seq_cfg_3 ody_spix_dev_seq_regs_stat_seq_cfg_3_t;
1917*4b8b8d74SJaiprakash Singh
1918*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_3(uint64_t a)1919*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_3(uint64_t a)
1920*4b8b8d74SJaiprakash Singh {
1921*4b8b8d74SJaiprakash Singh if (a <= 1)
1922*4b8b8d74SJaiprakash Singh return 0x80400000045cll + 0x1000000000ll * ((a) & 0x1);
1923*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_3", 1, a, 0, 0, 0, 0, 0);
1924*4b8b8d74SJaiprakash Singh }
1925*4b8b8d74SJaiprakash Singh
1926*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_3(a) ody_spix_dev_seq_regs_stat_seq_cfg_3_t
1927*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_3(a) CSR_TYPE_NCB32b
1928*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_3(a) "SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_3"
1929*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_3(a) 0x0 /* PF_BAR0 */
1930*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_3(a) (a)
1931*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_3(a) (a), -1, -1, -1
1932*4b8b8d74SJaiprakash Singh
1933*4b8b8d74SJaiprakash Singh /**
1934*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_stat_seq_cfg_4
1935*4b8b8d74SJaiprakash Singh *
1936*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Stat Seq Cfg 4 Register
1937*4b8b8d74SJaiprakash Singh * to configure status checking sequence for PROFILE 2 - HF in ACMD and DIRECT work modes.
1938*4b8b8d74SJaiprakash Singh */
1939*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_stat_seq_cfg_4 {
1940*4b8b8d74SJaiprakash Singh uint32_t u;
1941*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_stat_seq_cfg_4_s {
1942*4b8b8d74SJaiprakash Singh uint32_t reserved_0_1 : 2;
1943*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p2_mask_cmd_mod : 1;
1944*4b8b8d74SJaiprakash Singh uint32_t reserved_3_7 : 5;
1945*4b8b8d74SJaiprakash Singh uint32_t stat_seq_p2_latency_cnt : 6;
1946*4b8b8d74SJaiprakash Singh uint32_t reserved_14_31 : 18;
1947*4b8b8d74SJaiprakash Singh } s;
1948*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_stat_seq_cfg_4_s cn; */
1949*4b8b8d74SJaiprakash Singh };
1950*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_stat_seq_cfg_4 ody_spix_dev_seq_regs_stat_seq_cfg_4_t;
1951*4b8b8d74SJaiprakash Singh
1952*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_4(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_4(uint64_t a)1953*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_4(uint64_t a)
1954*4b8b8d74SJaiprakash Singh {
1955*4b8b8d74SJaiprakash Singh if (a <= 1)
1956*4b8b8d74SJaiprakash Singh return 0x804000000460ll + 0x1000000000ll * ((a) & 0x1);
1957*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_4", 1, a, 0, 0, 0, 0, 0);
1958*4b8b8d74SJaiprakash Singh }
1959*4b8b8d74SJaiprakash Singh
1960*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_4(a) ody_spix_dev_seq_regs_stat_seq_cfg_4_t
1961*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_4(a) CSR_TYPE_NCB32b
1962*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_4(a) "SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_4"
1963*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_4(a) 0x0 /* PF_BAR0 */
1964*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_4(a) (a)
1965*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_4(a) (a), -1, -1, -1
1966*4b8b8d74SJaiprakash Singh
1967*4b8b8d74SJaiprakash Singh /**
1968*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_stat_seq_cfg_5
1969*4b8b8d74SJaiprakash Singh *
1970*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Stat Seq Cfg 5 Register
1971*4b8b8d74SJaiprakash Singh * to configure status checking sequence for PROFILE 1, SPI NAND and PROFILE 2
1972*4b8b8d74SJaiprakash Singh * - HF in ACMD and
1973*4b8b8d74SJaiprakash Singh * DIRECT work modes.
1974*4b8b8d74SJaiprakash Singh */
1975*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_stat_seq_cfg_5 {
1976*4b8b8d74SJaiprakash Singh uint32_t u;
1977*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_stat_seq_cfg_5_s {
1978*4b8b8d74SJaiprakash Singh uint32_t stat_seq_dev_rdy_idx : 4;
1979*4b8b8d74SJaiprakash Singh uint32_t stat_seq_dev_rdy_val : 1;
1980*4b8b8d74SJaiprakash Singh uint32_t stat_seq_dev_rdy_size : 1;
1981*4b8b8d74SJaiprakash Singh uint32_t stat_seq_dev_rdy_en : 1;
1982*4b8b8d74SJaiprakash Singh uint32_t reserved_7 : 1;
1983*4b8b8d74SJaiprakash Singh uint32_t stat_seq_ers_fail_idx : 4;
1984*4b8b8d74SJaiprakash Singh uint32_t stat_seq_ers_fail_val : 1;
1985*4b8b8d74SJaiprakash Singh uint32_t stat_seq_ers_fail_size : 1;
1986*4b8b8d74SJaiprakash Singh uint32_t stat_seq_ers_fail_en : 1;
1987*4b8b8d74SJaiprakash Singh uint32_t reserved_15_23 : 9;
1988*4b8b8d74SJaiprakash Singh uint32_t stat_seq_prog_fail_idx : 4;
1989*4b8b8d74SJaiprakash Singh uint32_t stat_seq_prog_fail_val : 1;
1990*4b8b8d74SJaiprakash Singh uint32_t stat_seq_prog_fail_size : 1;
1991*4b8b8d74SJaiprakash Singh uint32_t stat_seq_prog_fail_en : 1;
1992*4b8b8d74SJaiprakash Singh uint32_t reserved_31 : 1;
1993*4b8b8d74SJaiprakash Singh } s;
1994*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_stat_seq_cfg_5_s cn; */
1995*4b8b8d74SJaiprakash Singh };
1996*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_stat_seq_cfg_5 ody_spix_dev_seq_regs_stat_seq_cfg_5_t;
1997*4b8b8d74SJaiprakash Singh
1998*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_5(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_5(uint64_t a)1999*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_5(uint64_t a)
2000*4b8b8d74SJaiprakash Singh {
2001*4b8b8d74SJaiprakash Singh if (a <= 1)
2002*4b8b8d74SJaiprakash Singh return 0x804000000464ll + 0x1000000000ll * ((a) & 0x1);
2003*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_5", 1, a, 0, 0, 0, 0, 0);
2004*4b8b8d74SJaiprakash Singh }
2005*4b8b8d74SJaiprakash Singh
2006*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_5(a) ody_spix_dev_seq_regs_stat_seq_cfg_5_t
2007*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_5(a) CSR_TYPE_NCB32b
2008*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_5(a) "SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_5"
2009*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_5(a) 0x0 /* PF_BAR0 */
2010*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_5(a) (a)
2011*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_5(a) (a), -1, -1, -1
2012*4b8b8d74SJaiprakash Singh
2013*4b8b8d74SJaiprakash Singh /**
2014*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_stat_seq_cfg_7
2015*4b8b8d74SJaiprakash Singh *
2016*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Stat Seq Cfg 7 Register
2017*4b8b8d74SJaiprakash Singh * to configure status checking sequence for PROFILE 1, SPI NAND and PROFILE 2
2018*4b8b8d74SJaiprakash Singh * - HF in ACMD and
2019*4b8b8d74SJaiprakash Singh * DIRECT work modes.
2020*4b8b8d74SJaiprakash Singh */
2021*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_stat_seq_cfg_7 {
2022*4b8b8d74SJaiprakash Singh uint32_t u;
2023*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_stat_seq_cfg_7_s {
2024*4b8b8d74SJaiprakash Singh uint32_t stat_seq_dev_rdy_addr : 32;
2025*4b8b8d74SJaiprakash Singh } s;
2026*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_stat_seq_cfg_7_s cn; */
2027*4b8b8d74SJaiprakash Singh };
2028*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_stat_seq_cfg_7 ody_spix_dev_seq_regs_stat_seq_cfg_7_t;
2029*4b8b8d74SJaiprakash Singh
2030*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_7(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_7(uint64_t a)2031*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_7(uint64_t a)
2032*4b8b8d74SJaiprakash Singh {
2033*4b8b8d74SJaiprakash Singh if (a <= 1)
2034*4b8b8d74SJaiprakash Singh return 0x80400000046cll + 0x1000000000ll * ((a) & 0x1);
2035*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_7", 1, a, 0, 0, 0, 0, 0);
2036*4b8b8d74SJaiprakash Singh }
2037*4b8b8d74SJaiprakash Singh
2038*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_7(a) ody_spix_dev_seq_regs_stat_seq_cfg_7_t
2039*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_7(a) CSR_TYPE_NCB32b
2040*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_7(a) "SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_7"
2041*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_7(a) 0x0 /* PF_BAR0 */
2042*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_7(a) (a)
2043*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_7(a) (a), -1, -1, -1
2044*4b8b8d74SJaiprakash Singh
2045*4b8b8d74SJaiprakash Singh /**
2046*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_stat_seq_cfg_8
2047*4b8b8d74SJaiprakash Singh *
2048*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Stat Seq Cfg 8 Register
2049*4b8b8d74SJaiprakash Singh * to configure status checking sequence for PROFILE 1, SPI NAND and PROFILE 2
2050*4b8b8d74SJaiprakash Singh * -HF in ACMD and
2051*4b8b8d74SJaiprakash Singh * DIRECT work modes.
2052*4b8b8d74SJaiprakash Singh */
2053*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_stat_seq_cfg_8 {
2054*4b8b8d74SJaiprakash Singh uint32_t u;
2055*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_stat_seq_cfg_8_s {
2056*4b8b8d74SJaiprakash Singh uint32_t stat_seq_prog_fail_addr : 32;
2057*4b8b8d74SJaiprakash Singh } s;
2058*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_stat_seq_cfg_8_s cn; */
2059*4b8b8d74SJaiprakash Singh };
2060*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_stat_seq_cfg_8 ody_spix_dev_seq_regs_stat_seq_cfg_8_t;
2061*4b8b8d74SJaiprakash Singh
2062*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_8(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_8(uint64_t a)2063*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_8(uint64_t a)
2064*4b8b8d74SJaiprakash Singh {
2065*4b8b8d74SJaiprakash Singh if (a <= 1)
2066*4b8b8d74SJaiprakash Singh return 0x804000000470ll + 0x1000000000ll * ((a) & 0x1);
2067*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_8", 1, a, 0, 0, 0, 0, 0);
2068*4b8b8d74SJaiprakash Singh }
2069*4b8b8d74SJaiprakash Singh
2070*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_8(a) ody_spix_dev_seq_regs_stat_seq_cfg_8_t
2071*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_8(a) CSR_TYPE_NCB32b
2072*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_8(a) "SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_8"
2073*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_8(a) 0x0 /* PF_BAR0 */
2074*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_8(a) (a)
2075*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_8(a) (a), -1, -1, -1
2076*4b8b8d74SJaiprakash Singh
2077*4b8b8d74SJaiprakash Singh /**
2078*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_stat_seq_cfg_9
2079*4b8b8d74SJaiprakash Singh *
2080*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs Stat Seq Cfg 9 Register
2081*4b8b8d74SJaiprakash Singh * to configure status checking sequence for PROFILE 1, SPI NAND and PROFILE 2
2082*4b8b8d74SJaiprakash Singh * - HF in ACMD work
2083*4b8b8d74SJaiprakash Singh * mode.
2084*4b8b8d74SJaiprakash Singh */
2085*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_stat_seq_cfg_9 {
2086*4b8b8d74SJaiprakash Singh uint32_t u;
2087*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_stat_seq_cfg_9_s {
2088*4b8b8d74SJaiprakash Singh uint32_t stat_seq_ers_fail_addr : 32;
2089*4b8b8d74SJaiprakash Singh } s;
2090*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_stat_seq_cfg_9_s cn; */
2091*4b8b8d74SJaiprakash Singh };
2092*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_stat_seq_cfg_9 ody_spix_dev_seq_regs_stat_seq_cfg_9_t;
2093*4b8b8d74SJaiprakash Singh
2094*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_9(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_9(uint64_t a)2095*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_9(uint64_t a)
2096*4b8b8d74SJaiprakash Singh {
2097*4b8b8d74SJaiprakash Singh if (a <= 1)
2098*4b8b8d74SJaiprakash Singh return 0x804000000474ll + 0x1000000000ll * ((a) & 0x1);
2099*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_9", 1, a, 0, 0, 0, 0, 0);
2100*4b8b8d74SJaiprakash Singh }
2101*4b8b8d74SJaiprakash Singh
2102*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_9(a) ody_spix_dev_seq_regs_stat_seq_cfg_9_t
2103*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_9(a) CSR_TYPE_NCB32b
2104*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_9(a) "SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_9"
2105*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_9(a) 0x0 /* PF_BAR0 */
2106*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_9(a) (a)
2107*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_STAT_SEQ_CFG_9(a) (a), -1, -1, -1
2108*4b8b8d74SJaiprakash Singh
2109*4b8b8d74SJaiprakash Singh /**
2110*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_dev_seq_regs_we_seq_cfg_0
2111*4b8b8d74SJaiprakash Singh *
2112*4b8b8d74SJaiprakash Singh * SPI Dev Seq Regs We Seq Cfg 0 Register
2113*4b8b8d74SJaiprakash Singh * to configure Write Enable Latch (WEL) sequence for PROFILE 1 and SPI NAND
2114*4b8b8d74SJaiprakash Singh * in ACMD and DIRECT
2115*4b8b8d74SJaiprakash Singh * work modes.
2116*4b8b8d74SJaiprakash Singh */
2117*4b8b8d74SJaiprakash Singh union ody_spix_dev_seq_regs_we_seq_cfg_0 {
2118*4b8b8d74SJaiprakash Singh uint32_t u;
2119*4b8b8d74SJaiprakash Singh struct ody_spix_dev_seq_regs_we_seq_cfg_0_s {
2120*4b8b8d74SJaiprakash Singh uint32_t we_seq_p1_cmd_val : 8;
2121*4b8b8d74SJaiprakash Singh uint32_t we_seq_p1_cmd_ios : 2;
2122*4b8b8d74SJaiprakash Singh uint32_t reserved_10 : 1;
2123*4b8b8d74SJaiprakash Singh uint32_t we_seq_p1_cmd_edge : 1;
2124*4b8b8d74SJaiprakash Singh uint32_t reserved_12_14 : 3;
2125*4b8b8d74SJaiprakash Singh uint32_t we_seq_p1_cmd_ext_en : 1;
2126*4b8b8d74SJaiprakash Singh uint32_t we_seq_p1_cmd_ext_val : 8;
2127*4b8b8d74SJaiprakash Singh uint32_t we_seq_p1_en : 1;
2128*4b8b8d74SJaiprakash Singh uint32_t reserved_25_31 : 7;
2129*4b8b8d74SJaiprakash Singh } s;
2130*4b8b8d74SJaiprakash Singh /* struct ody_spix_dev_seq_regs_we_seq_cfg_0_s cn; */
2131*4b8b8d74SJaiprakash Singh };
2132*4b8b8d74SJaiprakash Singh typedef union ody_spix_dev_seq_regs_we_seq_cfg_0 ody_spix_dev_seq_regs_we_seq_cfg_0_t;
2133*4b8b8d74SJaiprakash Singh
2134*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_WE_SEQ_CFG_0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_DEV_SEQ_REGS_WE_SEQ_CFG_0(uint64_t a)2135*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DEV_SEQ_REGS_WE_SEQ_CFG_0(uint64_t a)
2136*4b8b8d74SJaiprakash Singh {
2137*4b8b8d74SJaiprakash Singh if (a <= 1)
2138*4b8b8d74SJaiprakash Singh return 0x804000000440ll + 0x1000000000ll * ((a) & 0x1);
2139*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DEV_SEQ_REGS_WE_SEQ_CFG_0", 1, a, 0, 0, 0, 0, 0);
2140*4b8b8d74SJaiprakash Singh }
2141*4b8b8d74SJaiprakash Singh
2142*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DEV_SEQ_REGS_WE_SEQ_CFG_0(a) ody_spix_dev_seq_regs_we_seq_cfg_0_t
2143*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DEV_SEQ_REGS_WE_SEQ_CFG_0(a) CSR_TYPE_NCB32b
2144*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DEV_SEQ_REGS_WE_SEQ_CFG_0(a) "SPIX_DEV_SEQ_REGS_WE_SEQ_CFG_0"
2145*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DEV_SEQ_REGS_WE_SEQ_CFG_0(a) 0x0 /* PF_BAR0 */
2146*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DEV_SEQ_REGS_WE_SEQ_CFG_0(a) (a)
2147*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DEV_SEQ_REGS_WE_SEQ_CFG_0(a) (a), -1, -1, -1
2148*4b8b8d74SJaiprakash Singh
2149*4b8b8d74SJaiprakash Singh /**
2150*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_direct_access#
2151*4b8b8d74SJaiprakash Singh *
2152*4b8b8d74SJaiprakash Singh * SPI Flash Direct map Registers
2153*4b8b8d74SJaiprakash Singh * This register is for memory mapping the external Flash Device to access it in direct mode.
2154*4b8b8d74SJaiprakash Singh * A read transaction to this register would initiate a SPI Read transfer.
2155*4b8b8d74SJaiprakash Singh */
2156*4b8b8d74SJaiprakash Singh union ody_spix_direct_accessx {
2157*4b8b8d74SJaiprakash Singh uint64_t u;
2158*4b8b8d74SJaiprakash Singh struct ody_spix_direct_accessx_s {
2159*4b8b8d74SJaiprakash Singh uint64_t data : 64;
2160*4b8b8d74SJaiprakash Singh } s;
2161*4b8b8d74SJaiprakash Singh /* struct ody_spix_direct_accessx_s cn; */
2162*4b8b8d74SJaiprakash Singh };
2163*4b8b8d74SJaiprakash Singh typedef union ody_spix_direct_accessx ody_spix_direct_accessx_t;
2164*4b8b8d74SJaiprakash Singh
2165*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DIRECT_ACCESSX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SPIX_DIRECT_ACCESSX(uint64_t a,uint64_t b)2166*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_DIRECT_ACCESSX(uint64_t a, uint64_t b)
2167*4b8b8d74SJaiprakash Singh {
2168*4b8b8d74SJaiprakash Singh if ((a <= 1) && (b <= 65535))
2169*4b8b8d74SJaiprakash Singh return 0x804010000000ll + 0x1000000000ll * ((a) & 0x1) + 8ll * ((b) & 0xffff);
2170*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_DIRECT_ACCESSX", 2, a, b, 0, 0, 0, 0);
2171*4b8b8d74SJaiprakash Singh }
2172*4b8b8d74SJaiprakash Singh
2173*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_DIRECT_ACCESSX(a, b) ody_spix_direct_accessx_t
2174*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_DIRECT_ACCESSX(a, b) CSR_TYPE_NCB
2175*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_DIRECT_ACCESSX(a, b) "SPIX_DIRECT_ACCESSX"
2176*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_DIRECT_ACCESSX(a, b) 0x0 /* PF_BAR0 */
2177*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_DIRECT_ACCESSX(a, b) (a)
2178*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_DIRECT_ACCESSX(a, b) (a), (b), -1, -1
2179*4b8b8d74SJaiprakash Singh
2180*4b8b8d74SJaiprakash Singh /**
2181*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_msix_pba#
2182*4b8b8d74SJaiprakash Singh *
2183*4b8b8d74SJaiprakash Singh * SPI MSI-X Pending Bit Array Registers
2184*4b8b8d74SJaiprakash Singh * This register is the MSI-X PBA table, the bit number is indexed by the SPI_INT_VEC_E enumeration.
2185*4b8b8d74SJaiprakash Singh */
2186*4b8b8d74SJaiprakash Singh union ody_spix_msix_pbax {
2187*4b8b8d74SJaiprakash Singh uint64_t u;
2188*4b8b8d74SJaiprakash Singh struct ody_spix_msix_pbax_s {
2189*4b8b8d74SJaiprakash Singh uint64_t pend : 64;
2190*4b8b8d74SJaiprakash Singh } s;
2191*4b8b8d74SJaiprakash Singh /* struct ody_spix_msix_pbax_s cn; */
2192*4b8b8d74SJaiprakash Singh };
2193*4b8b8d74SJaiprakash Singh typedef union ody_spix_msix_pbax ody_spix_msix_pbax_t;
2194*4b8b8d74SJaiprakash Singh
2195*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_MSIX_PBAX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SPIX_MSIX_PBAX(uint64_t a,uint64_t b)2196*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_MSIX_PBAX(uint64_t a, uint64_t b)
2197*4b8b8d74SJaiprakash Singh {
2198*4b8b8d74SJaiprakash Singh if ((a <= 1) && (b == 0))
2199*4b8b8d74SJaiprakash Singh return 0x8041000f0000ll + 0x1000000000ll * ((a) & 0x1);
2200*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_MSIX_PBAX", 2, a, b, 0, 0, 0, 0);
2201*4b8b8d74SJaiprakash Singh }
2202*4b8b8d74SJaiprakash Singh
2203*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_MSIX_PBAX(a, b) ody_spix_msix_pbax_t
2204*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_MSIX_PBAX(a, b) CSR_TYPE_NCB
2205*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_MSIX_PBAX(a, b) "SPIX_MSIX_PBAX"
2206*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_MSIX_PBAX(a, b) 0x4 /* PF_BAR4 */
2207*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_MSIX_PBAX(a, b) (a)
2208*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_MSIX_PBAX(a, b) (a), (b), -1, -1
2209*4b8b8d74SJaiprakash Singh
2210*4b8b8d74SJaiprakash Singh /**
2211*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_msix_vec#_addr
2212*4b8b8d74SJaiprakash Singh *
2213*4b8b8d74SJaiprakash Singh * SPI MSI-X Vector Table Address Registers
2214*4b8b8d74SJaiprakash Singh * This register is the MSI-X vector table, indexed by the SPI_INT_VEC_E enumeration.
2215*4b8b8d74SJaiprakash Singh */
2216*4b8b8d74SJaiprakash Singh union ody_spix_msix_vecx_addr {
2217*4b8b8d74SJaiprakash Singh uint64_t u;
2218*4b8b8d74SJaiprakash Singh struct ody_spix_msix_vecx_addr_s {
2219*4b8b8d74SJaiprakash Singh uint64_t secvec : 1;
2220*4b8b8d74SJaiprakash Singh uint64_t reserved_1 : 1;
2221*4b8b8d74SJaiprakash Singh uint64_t addr : 51;
2222*4b8b8d74SJaiprakash Singh uint64_t reserved_53_63 : 11;
2223*4b8b8d74SJaiprakash Singh } s;
2224*4b8b8d74SJaiprakash Singh /* struct ody_spix_msix_vecx_addr_s cn; */
2225*4b8b8d74SJaiprakash Singh };
2226*4b8b8d74SJaiprakash Singh typedef union ody_spix_msix_vecx_addr ody_spix_msix_vecx_addr_t;
2227*4b8b8d74SJaiprakash Singh
2228*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_MSIX_VECX_ADDR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SPIX_MSIX_VECX_ADDR(uint64_t a,uint64_t b)2229*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_MSIX_VECX_ADDR(uint64_t a, uint64_t b)
2230*4b8b8d74SJaiprakash Singh {
2231*4b8b8d74SJaiprakash Singh if ((a <= 1) && (b == 0))
2232*4b8b8d74SJaiprakash Singh return 0x804100000000ll + 0x1000000000ll * ((a) & 0x1);
2233*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_MSIX_VECX_ADDR", 2, a, b, 0, 0, 0, 0);
2234*4b8b8d74SJaiprakash Singh }
2235*4b8b8d74SJaiprakash Singh
2236*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_MSIX_VECX_ADDR(a, b) ody_spix_msix_vecx_addr_t
2237*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_MSIX_VECX_ADDR(a, b) CSR_TYPE_NCB
2238*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_MSIX_VECX_ADDR(a, b) "SPIX_MSIX_VECX_ADDR"
2239*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_MSIX_VECX_ADDR(a, b) 0x4 /* PF_BAR4 */
2240*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_MSIX_VECX_ADDR(a, b) (a)
2241*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_MSIX_VECX_ADDR(a, b) (a), (b), -1, -1
2242*4b8b8d74SJaiprakash Singh
2243*4b8b8d74SJaiprakash Singh /**
2244*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_msix_vec#_ctl
2245*4b8b8d74SJaiprakash Singh *
2246*4b8b8d74SJaiprakash Singh * SPI MSI-X Vector Table Control and Data Registers
2247*4b8b8d74SJaiprakash Singh * This register is the MSI-X vector table, indexed by the SPI_INT_VEC_E enumeration.
2248*4b8b8d74SJaiprakash Singh */
2249*4b8b8d74SJaiprakash Singh union ody_spix_msix_vecx_ctl {
2250*4b8b8d74SJaiprakash Singh uint64_t u;
2251*4b8b8d74SJaiprakash Singh struct ody_spix_msix_vecx_ctl_s {
2252*4b8b8d74SJaiprakash Singh uint64_t data : 32;
2253*4b8b8d74SJaiprakash Singh uint64_t mask : 1;
2254*4b8b8d74SJaiprakash Singh uint64_t reserved_33_63 : 31;
2255*4b8b8d74SJaiprakash Singh } s;
2256*4b8b8d74SJaiprakash Singh /* struct ody_spix_msix_vecx_ctl_s cn; */
2257*4b8b8d74SJaiprakash Singh };
2258*4b8b8d74SJaiprakash Singh typedef union ody_spix_msix_vecx_ctl ody_spix_msix_vecx_ctl_t;
2259*4b8b8d74SJaiprakash Singh
2260*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_MSIX_VECX_CTL(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SPIX_MSIX_VECX_CTL(uint64_t a,uint64_t b)2261*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_MSIX_VECX_CTL(uint64_t a, uint64_t b)
2262*4b8b8d74SJaiprakash Singh {
2263*4b8b8d74SJaiprakash Singh if ((a <= 1) && (b == 0))
2264*4b8b8d74SJaiprakash Singh return 0x804100000008ll + 0x1000000000ll * ((a) & 0x1);
2265*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_MSIX_VECX_CTL", 2, a, b, 0, 0, 0, 0);
2266*4b8b8d74SJaiprakash Singh }
2267*4b8b8d74SJaiprakash Singh
2268*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_MSIX_VECX_CTL(a, b) ody_spix_msix_vecx_ctl_t
2269*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_MSIX_VECX_CTL(a, b) CSR_TYPE_NCB
2270*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_MSIX_VECX_CTL(a, b) "SPIX_MSIX_VECX_CTL"
2271*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_MSIX_VECX_CTL(a, b) 0x4 /* PF_BAR4 */
2272*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_MSIX_VECX_CTL(a, b) (a)
2273*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_MSIX_VECX_CTL(a, b) (a), (b), -1, -1
2274*4b8b8d74SJaiprakash Singh
2275*4b8b8d74SJaiprakash Singh /**
2276*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_ctb_rfile_phy_ctrl
2277*4b8b8d74SJaiprakash Singh *
2278*4b8b8d74SJaiprakash Singh * SPI PHY Ctb Rfile PHY Control Register
2279*4b8b8d74SJaiprakash Singh * This register handles the global control settings for the PHY.
2280*4b8b8d74SJaiprakash Singh */
2281*4b8b8d74SJaiprakash Singh union ody_spix_phy_ctb_rfile_phy_ctrl {
2282*4b8b8d74SJaiprakash Singh uint32_t u;
2283*4b8b8d74SJaiprakash Singh struct ody_spix_phy_ctb_rfile_phy_ctrl_s {
2284*4b8b8d74SJaiprakash Singh uint32_t ctrl_clkperiod_delay : 1;
2285*4b8b8d74SJaiprakash Singh uint32_t reserved_1_3 : 3;
2286*4b8b8d74SJaiprakash Singh uint32_t phony_dqs_timing : 6;
2287*4b8b8d74SJaiprakash Singh uint32_t reserved_10_13 : 4;
2288*4b8b8d74SJaiprakash Singh uint32_t sdr_dqs_value : 1;
2289*4b8b8d74SJaiprakash Singh uint32_t reserved_15_19 : 5;
2290*4b8b8d74SJaiprakash Singh uint32_t low_freq_sel : 1;
2291*4b8b8d74SJaiprakash Singh uint32_t pu_pd_polarity : 1;
2292*4b8b8d74SJaiprakash Singh uint32_t reserved_22_31 : 10;
2293*4b8b8d74SJaiprakash Singh } s;
2294*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_ctb_rfile_phy_ctrl_s cn; */
2295*4b8b8d74SJaiprakash Singh };
2296*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_ctb_rfile_phy_ctrl ody_spix_phy_ctb_rfile_phy_ctrl_t;
2297*4b8b8d74SJaiprakash Singh
2298*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_CTB_RFILE_PHY_CTRL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_CTB_RFILE_PHY_CTRL(uint64_t a)2299*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_CTB_RFILE_PHY_CTRL(uint64_t a)
2300*4b8b8d74SJaiprakash Singh {
2301*4b8b8d74SJaiprakash Singh if (a <= 1)
2302*4b8b8d74SJaiprakash Singh return 0x804000002080ll + 0x1000000000ll * ((a) & 0x1);
2303*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_CTB_RFILE_PHY_CTRL", 1, a, 0, 0, 0, 0, 0);
2304*4b8b8d74SJaiprakash Singh }
2305*4b8b8d74SJaiprakash Singh
2306*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_CTB_RFILE_PHY_CTRL(a) ody_spix_phy_ctb_rfile_phy_ctrl_t
2307*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_CTB_RFILE_PHY_CTRL(a) CSR_TYPE_NCB32b
2308*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_CTB_RFILE_PHY_CTRL(a) "SPIX_PHY_CTB_RFILE_PHY_CTRL"
2309*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_CTB_RFILE_PHY_CTRL(a) 0x0 /* PF_BAR0 */
2310*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_CTB_RFILE_PHY_CTRL(a) (a)
2311*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_CTB_RFILE_PHY_CTRL(a) (a), -1, -1, -1
2312*4b8b8d74SJaiprakash Singh
2313*4b8b8d74SJaiprakash Singh /**
2314*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_ctb_rfile_phy_gpio_ctrl_0
2315*4b8b8d74SJaiprakash Singh *
2316*4b8b8d74SJaiprakash Singh * SPI PHY Ctb Rfile PHY Gpio Control 0 Register
2317*4b8b8d74SJaiprakash Singh * This register is a general purpose register. The [31:0]vector is brought to the PHY I/Os. User may
2318*4b8b8d74SJaiprakash Singh * choose to use these pins to control any static settings that may be required for
2319*4b8b8d74SJaiprakash Singh * connected I/O pads.
2320*4b8b8d74SJaiprakash Singh */
2321*4b8b8d74SJaiprakash Singh union ody_spix_phy_ctb_rfile_phy_gpio_ctrl_0 {
2322*4b8b8d74SJaiprakash Singh uint32_t u;
2323*4b8b8d74SJaiprakash Singh struct ody_spix_phy_ctb_rfile_phy_gpio_ctrl_0_s {
2324*4b8b8d74SJaiprakash Singh uint32_t phy_gpio_ctrl_0_value : 32;
2325*4b8b8d74SJaiprakash Singh } s;
2326*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_ctb_rfile_phy_gpio_ctrl_0_s cn; */
2327*4b8b8d74SJaiprakash Singh };
2328*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_ctb_rfile_phy_gpio_ctrl_0 ody_spix_phy_ctb_rfile_phy_gpio_ctrl_0_t;
2329*4b8b8d74SJaiprakash Singh
2330*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_0(uint64_t a)2331*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_0(uint64_t a)
2332*4b8b8d74SJaiprakash Singh {
2333*4b8b8d74SJaiprakash Singh if (a <= 1)
2334*4b8b8d74SJaiprakash Singh return 0x804000002088ll + 0x1000000000ll * ((a) & 0x1);
2335*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_0", 1, a, 0, 0, 0, 0, 0);
2336*4b8b8d74SJaiprakash Singh }
2337*4b8b8d74SJaiprakash Singh
2338*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_0(a) ody_spix_phy_ctb_rfile_phy_gpio_ctrl_0_t
2339*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_0(a) CSR_TYPE_NCB32b
2340*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_0(a) "SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_0"
2341*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_0(a) 0x0 /* PF_BAR0 */
2342*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_0(a) (a)
2343*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_0(a) (a), -1, -1, -1
2344*4b8b8d74SJaiprakash Singh
2345*4b8b8d74SJaiprakash Singh /**
2346*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_ctb_rfile_phy_gpio_ctrl_1
2347*4b8b8d74SJaiprakash Singh *
2348*4b8b8d74SJaiprakash Singh * SPI PHY Ctb Rfile PHY Gpio Control 1 Register
2349*4b8b8d74SJaiprakash Singh * This register is a general purpose register. The [31:0] vector is brought to the PHY I/Os. User may
2350*4b8b8d74SJaiprakash Singh * choose to use these pins to control any static settings that may be required for the
2351*4b8b8d74SJaiprakash Singh * connected I/O pads.
2352*4b8b8d74SJaiprakash Singh */
2353*4b8b8d74SJaiprakash Singh union ody_spix_phy_ctb_rfile_phy_gpio_ctrl_1 {
2354*4b8b8d74SJaiprakash Singh uint32_t u;
2355*4b8b8d74SJaiprakash Singh struct ody_spix_phy_ctb_rfile_phy_gpio_ctrl_1_s {
2356*4b8b8d74SJaiprakash Singh uint32_t phy_gpio_ctrl_1_value : 32;
2357*4b8b8d74SJaiprakash Singh } s;
2358*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_ctb_rfile_phy_gpio_ctrl_1_s cn; */
2359*4b8b8d74SJaiprakash Singh };
2360*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_ctb_rfile_phy_gpio_ctrl_1 ody_spix_phy_ctb_rfile_phy_gpio_ctrl_1_t;
2361*4b8b8d74SJaiprakash Singh
2362*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_1(uint64_t a)2363*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_1(uint64_t a)
2364*4b8b8d74SJaiprakash Singh {
2365*4b8b8d74SJaiprakash Singh if (a <= 1)
2366*4b8b8d74SJaiprakash Singh return 0x80400000208cll + 0x1000000000ll * ((a) & 0x1);
2367*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_1", 1, a, 0, 0, 0, 0, 0);
2368*4b8b8d74SJaiprakash Singh }
2369*4b8b8d74SJaiprakash Singh
2370*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_1(a) ody_spix_phy_ctb_rfile_phy_gpio_ctrl_1_t
2371*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_1(a) CSR_TYPE_NCB32b
2372*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_1(a) "SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_1"
2373*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_1(a) 0x0 /* PF_BAR0 */
2374*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_1(a) (a)
2375*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_CTRL_1(a) (a), -1, -1, -1
2376*4b8b8d74SJaiprakash Singh
2377*4b8b8d74SJaiprakash Singh /**
2378*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_ctb_rfile_phy_gpio_status_0
2379*4b8b8d74SJaiprakash Singh *
2380*4b8b8d74SJaiprakash Singh * SPI PHY Ctb Rfile PHY Gpio Status 0 Register
2381*4b8b8d74SJaiprakash Singh * This register is a general purpose register. A [31:0] vector is brought from the PHY I/Os to this
2382*4b8b8d74SJaiprakash Singh * register. User may choose to use this as a status register.
2383*4b8b8d74SJaiprakash Singh */
2384*4b8b8d74SJaiprakash Singh union ody_spix_phy_ctb_rfile_phy_gpio_status_0 {
2385*4b8b8d74SJaiprakash Singh uint32_t u;
2386*4b8b8d74SJaiprakash Singh struct ody_spix_phy_ctb_rfile_phy_gpio_status_0_s {
2387*4b8b8d74SJaiprakash Singh uint32_t phy_gpio_status_0_value : 32;
2388*4b8b8d74SJaiprakash Singh } s;
2389*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_ctb_rfile_phy_gpio_status_0_s cn; */
2390*4b8b8d74SJaiprakash Singh };
2391*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_ctb_rfile_phy_gpio_status_0 ody_spix_phy_ctb_rfile_phy_gpio_status_0_t;
2392*4b8b8d74SJaiprakash Singh
2393*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_0(uint64_t a)2394*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_0(uint64_t a)
2395*4b8b8d74SJaiprakash Singh {
2396*4b8b8d74SJaiprakash Singh if (a <= 1)
2397*4b8b8d74SJaiprakash Singh return 0x804000002090ll + 0x1000000000ll * ((a) & 0x1);
2398*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_0", 1, a, 0, 0, 0, 0, 0);
2399*4b8b8d74SJaiprakash Singh }
2400*4b8b8d74SJaiprakash Singh
2401*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_0(a) ody_spix_phy_ctb_rfile_phy_gpio_status_0_t
2402*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_0(a) CSR_TYPE_NCB32b
2403*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_0(a) "SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_0"
2404*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_0(a) 0x0 /* PF_BAR0 */
2405*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_0(a) (a)
2406*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_0(a) (a), -1, -1, -1
2407*4b8b8d74SJaiprakash Singh
2408*4b8b8d74SJaiprakash Singh /**
2409*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_ctb_rfile_phy_gpio_status_1
2410*4b8b8d74SJaiprakash Singh *
2411*4b8b8d74SJaiprakash Singh * SPI PHY Ctb Rfile PHY Gpio Status 1 Register
2412*4b8b8d74SJaiprakash Singh * This register is a general purpose register. A [31:0] vector is brought from the PHY IOs to this
2413*4b8b8d74SJaiprakash Singh * register. User may choose to use this as a status register.
2414*4b8b8d74SJaiprakash Singh */
2415*4b8b8d74SJaiprakash Singh union ody_spix_phy_ctb_rfile_phy_gpio_status_1 {
2416*4b8b8d74SJaiprakash Singh uint32_t u;
2417*4b8b8d74SJaiprakash Singh struct ody_spix_phy_ctb_rfile_phy_gpio_status_1_s {
2418*4b8b8d74SJaiprakash Singh uint32_t phy_gpio_status_1_value : 32;
2419*4b8b8d74SJaiprakash Singh } s;
2420*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_ctb_rfile_phy_gpio_status_1_s cn; */
2421*4b8b8d74SJaiprakash Singh };
2422*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_ctb_rfile_phy_gpio_status_1 ody_spix_phy_ctb_rfile_phy_gpio_status_1_t;
2423*4b8b8d74SJaiprakash Singh
2424*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_1(uint64_t a)2425*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_1(uint64_t a)
2426*4b8b8d74SJaiprakash Singh {
2427*4b8b8d74SJaiprakash Singh if (a <= 1)
2428*4b8b8d74SJaiprakash Singh return 0x804000002094ll + 0x1000000000ll * ((a) & 0x1);
2429*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_1", 1, a, 0, 0, 0, 0, 0);
2430*4b8b8d74SJaiprakash Singh }
2431*4b8b8d74SJaiprakash Singh
2432*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_1(a) ody_spix_phy_ctb_rfile_phy_gpio_status_1_t
2433*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_1(a) CSR_TYPE_NCB32b
2434*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_1(a) "SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_1"
2435*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_1(a) 0x0 /* PF_BAR0 */
2436*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_1(a) (a)
2437*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_CTB_RFILE_PHY_GPIO_STATUS_1(a) (a), -1, -1, -1
2438*4b8b8d74SJaiprakash Singh
2439*4b8b8d74SJaiprakash Singh /**
2440*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_ctb_rfile_phy_tsel
2441*4b8b8d74SJaiprakash Singh *
2442*4b8b8d74SJaiprakash Singh * SPI PHY Ctb Rfile PHY Tsel Register
2443*4b8b8d74SJaiprakash Singh * This register handles the global control settings for the termination selects for reads.
2444*4b8b8d74SJaiprakash Singh * For SD and XSPI controllers this should be disabled.
2445*4b8b8d74SJaiprakash Singh */
2446*4b8b8d74SJaiprakash Singh union ody_spix_phy_ctb_rfile_phy_tsel {
2447*4b8b8d74SJaiprakash Singh uint32_t u;
2448*4b8b8d74SJaiprakash Singh struct ody_spix_phy_ctb_rfile_phy_tsel_s {
2449*4b8b8d74SJaiprakash Singh uint32_t reserved_0_7 : 8;
2450*4b8b8d74SJaiprakash Singh uint32_t tsel_rd_value_dqs : 4;
2451*4b8b8d74SJaiprakash Singh uint32_t tsel_off_value_dqs : 4;
2452*4b8b8d74SJaiprakash Singh uint32_t tsel_rd_value_data : 4;
2453*4b8b8d74SJaiprakash Singh uint32_t tsel_off_value_data : 4;
2454*4b8b8d74SJaiprakash Singh uint32_t reserved_24_31 : 8;
2455*4b8b8d74SJaiprakash Singh } s;
2456*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_ctb_rfile_phy_tsel_s cn; */
2457*4b8b8d74SJaiprakash Singh };
2458*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_ctb_rfile_phy_tsel ody_spix_phy_ctb_rfile_phy_tsel_t;
2459*4b8b8d74SJaiprakash Singh
2460*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_CTB_RFILE_PHY_TSEL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_CTB_RFILE_PHY_TSEL(uint64_t a)2461*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_CTB_RFILE_PHY_TSEL(uint64_t a)
2462*4b8b8d74SJaiprakash Singh {
2463*4b8b8d74SJaiprakash Singh if (a <= 1)
2464*4b8b8d74SJaiprakash Singh return 0x804000002084ll + 0x1000000000ll * ((a) & 0x1);
2465*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_CTB_RFILE_PHY_TSEL", 1, a, 0, 0, 0, 0, 0);
2466*4b8b8d74SJaiprakash Singh }
2467*4b8b8d74SJaiprakash Singh
2468*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_CTB_RFILE_PHY_TSEL(a) ody_spix_phy_ctb_rfile_phy_tsel_t
2469*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_CTB_RFILE_PHY_TSEL(a) CSR_TYPE_NCB32b
2470*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_CTB_RFILE_PHY_TSEL(a) "SPIX_PHY_CTB_RFILE_PHY_TSEL"
2471*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_CTB_RFILE_PHY_TSEL(a) 0x0 /* PF_BAR0 */
2472*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_CTB_RFILE_PHY_TSEL(a) (a)
2473*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_CTB_RFILE_PHY_TSEL(a) (a), -1, -1, -1
2474*4b8b8d74SJaiprakash Singh
2475*4b8b8d74SJaiprakash Singh /**
2476*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_dll_master_ctrl
2477*4b8b8d74SJaiprakash Singh *
2478*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY DLL Master Control Register
2479*4b8b8d74SJaiprakash Singh * This register holds the control for the master DLL logic.
2480*4b8b8d74SJaiprakash Singh */
2481*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_dll_master_ctrl {
2482*4b8b8d74SJaiprakash Singh uint32_t u;
2483*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_dll_master_ctrl_s {
2484*4b8b8d74SJaiprakash Singh uint32_t param_dll_start_point : 8;
2485*4b8b8d74SJaiprakash Singh uint32_t reserved_8_15 : 8;
2486*4b8b8d74SJaiprakash Singh uint32_t param_dll_lock_num : 3;
2487*4b8b8d74SJaiprakash Singh uint32_t reserved_19 : 1;
2488*4b8b8d74SJaiprakash Singh uint32_t param_phase_detect_sel : 3;
2489*4b8b8d74SJaiprakash Singh uint32_t param_dll_bypass_mode : 1;
2490*4b8b8d74SJaiprakash Singh uint32_t reserved_24_31 : 8;
2491*4b8b8d74SJaiprakash Singh } s;
2492*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_dll_master_ctrl_s cn; */
2493*4b8b8d74SJaiprakash Singh };
2494*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_dll_master_ctrl ody_spix_phy_dataslice_rfile_phy_dll_master_ctrl_t;
2495*4b8b8d74SJaiprakash Singh
2496*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_MASTER_CTRL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_MASTER_CTRL(uint64_t a)2497*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_MASTER_CTRL(uint64_t a)
2498*4b8b8d74SJaiprakash Singh {
2499*4b8b8d74SJaiprakash Singh if (a <= 1)
2500*4b8b8d74SJaiprakash Singh return 0x80400000200cll + 0x1000000000ll * ((a) & 0x1);
2501*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_DLL_MASTER_CTRL", 1, a, 0, 0, 0, 0, 0);
2502*4b8b8d74SJaiprakash Singh }
2503*4b8b8d74SJaiprakash Singh
2504*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_MASTER_CTRL(a) ody_spix_phy_dataslice_rfile_phy_dll_master_ctrl_t
2505*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_MASTER_CTRL(a) CSR_TYPE_NCB32b
2506*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_MASTER_CTRL(a) "SPIX_PHY_DATASLICE_RFILE_PHY_DLL_MASTER_CTRL"
2507*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_MASTER_CTRL(a) 0x0 /* PF_BAR0 */
2508*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_MASTER_CTRL(a) (a)
2509*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_MASTER_CTRL(a) (a), -1, -1, -1
2510*4b8b8d74SJaiprakash Singh
2511*4b8b8d74SJaiprakash Singh /**
2512*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_dll_obs_reg_0
2513*4b8b8d74SJaiprakash Singh *
2514*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY DLL Obs Reg 0 Register
2515*4b8b8d74SJaiprakash Singh * This register holds the following observable points in the PHY.
2516*4b8b8d74SJaiprakash Singh */
2517*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_0 {
2518*4b8b8d74SJaiprakash Singh uint32_t u;
2519*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_0_s {
2520*4b8b8d74SJaiprakash Singh uint32_t dll_lock : 1;
2521*4b8b8d74SJaiprakash Singh uint32_t dll_locked_mode : 2;
2522*4b8b8d74SJaiprakash Singh uint32_t dll_unlock_cnt : 5;
2523*4b8b8d74SJaiprakash Singh uint32_t dll_lock_value : 8;
2524*4b8b8d74SJaiprakash Singh uint32_t lock_dec_dbg : 8;
2525*4b8b8d74SJaiprakash Singh uint32_t lock_inc_dbg : 8;
2526*4b8b8d74SJaiprakash Singh } s;
2527*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_0_s cn; */
2528*4b8b8d74SJaiprakash Singh };
2529*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_0 ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_0_t;
2530*4b8b8d74SJaiprakash Singh
2531*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_0(uint64_t a)2532*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_0(uint64_t a)
2533*4b8b8d74SJaiprakash Singh {
2534*4b8b8d74SJaiprakash Singh if (a <= 1)
2535*4b8b8d74SJaiprakash Singh return 0x80400000201cll + 0x1000000000ll * ((a) & 0x1);
2536*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_0", 1, a, 0, 0, 0, 0, 0);
2537*4b8b8d74SJaiprakash Singh }
2538*4b8b8d74SJaiprakash Singh
2539*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_0(a) ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_0_t
2540*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_0(a) CSR_TYPE_NCB32b
2541*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_0(a) "SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_0"
2542*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_0(a) 0x0 /* PF_BAR0 */
2543*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_0(a) (a)
2544*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_0(a) (a), -1, -1, -1
2545*4b8b8d74SJaiprakash Singh
2546*4b8b8d74SJaiprakash Singh /**
2547*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_dll_obs_reg_1
2548*4b8b8d74SJaiprakash Singh *
2549*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY DLL Obs Reg 1 Register
2550*4b8b8d74SJaiprakash Singh * This register holds the following observable points in the PHY.
2551*4b8b8d74SJaiprakash Singh */
2552*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_1 {
2553*4b8b8d74SJaiprakash Singh uint32_t u;
2554*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_1_s {
2555*4b8b8d74SJaiprakash Singh uint32_t decoder_out_rd : 8;
2556*4b8b8d74SJaiprakash Singh uint32_t decoder_out_rd_cmd : 8;
2557*4b8b8d74SJaiprakash Singh uint32_t decoder_out_wr : 8;
2558*4b8b8d74SJaiprakash Singh uint32_t reserved_24_31 : 8;
2559*4b8b8d74SJaiprakash Singh } s;
2560*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_1_s cn; */
2561*4b8b8d74SJaiprakash Singh };
2562*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_1 ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_1_t;
2563*4b8b8d74SJaiprakash Singh
2564*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_1(uint64_t a)2565*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_1(uint64_t a)
2566*4b8b8d74SJaiprakash Singh {
2567*4b8b8d74SJaiprakash Singh if (a <= 1)
2568*4b8b8d74SJaiprakash Singh return 0x804000002020ll + 0x1000000000ll * ((a) & 0x1);
2569*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_1", 1, a, 0, 0, 0, 0, 0);
2570*4b8b8d74SJaiprakash Singh }
2571*4b8b8d74SJaiprakash Singh
2572*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_1(a) ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_1_t
2573*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_1(a) CSR_TYPE_NCB32b
2574*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_1(a) "SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_1"
2575*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_1(a) 0x0 /* PF_BAR0 */
2576*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_1(a) (a)
2577*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_1(a) (a), -1, -1, -1
2578*4b8b8d74SJaiprakash Singh
2579*4b8b8d74SJaiprakash Singh /**
2580*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_dll_obs_reg_2
2581*4b8b8d74SJaiprakash Singh *
2582*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY DLL Obs Reg 2 Register
2583*4b8b8d74SJaiprakash Singh * This register holds the following observable points in the PHY.
2584*4b8b8d74SJaiprakash Singh */
2585*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_2 {
2586*4b8b8d74SJaiprakash Singh uint32_t u;
2587*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_2_s {
2588*4b8b8d74SJaiprakash Singh uint32_t decoder_out_wrdqs : 8;
2589*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
2590*4b8b8d74SJaiprakash Singh } s;
2591*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_2_s cn; */
2592*4b8b8d74SJaiprakash Singh };
2593*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_2 ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_2_t;
2594*4b8b8d74SJaiprakash Singh
2595*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_2(uint64_t a)2596*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_2(uint64_t a)
2597*4b8b8d74SJaiprakash Singh {
2598*4b8b8d74SJaiprakash Singh if (a <= 1)
2599*4b8b8d74SJaiprakash Singh return 0x804000002024ll + 0x1000000000ll * ((a) & 0x1);
2600*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_2", 1, a, 0, 0, 0, 0, 0);
2601*4b8b8d74SJaiprakash Singh }
2602*4b8b8d74SJaiprakash Singh
2603*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_2(a) ody_spix_phy_dataslice_rfile_phy_dll_obs_reg_2_t
2604*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_2(a) CSR_TYPE_NCB32b
2605*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_2(a) "SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_2"
2606*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_2(a) 0x0 /* PF_BAR0 */
2607*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_2(a) (a)
2608*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_OBS_REG_2(a) (a), -1, -1, -1
2609*4b8b8d74SJaiprakash Singh
2610*4b8b8d74SJaiprakash Singh /**
2611*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_dll_slave_ctrl
2612*4b8b8d74SJaiprakash Singh *
2613*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY DLL Slave Control Register
2614*4b8b8d74SJaiprakash Singh * This register holds the control for the slave DLL logic.
2615*4b8b8d74SJaiprakash Singh */
2616*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_dll_slave_ctrl {
2617*4b8b8d74SJaiprakash Singh uint32_t u;
2618*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_dll_slave_ctrl_s {
2619*4b8b8d74SJaiprakash Singh uint32_t read_dqs_delay : 8;
2620*4b8b8d74SJaiprakash Singh uint32_t clk_wr_delay : 8;
2621*4b8b8d74SJaiprakash Singh uint32_t clk_wrdqs_delay : 8;
2622*4b8b8d74SJaiprakash Singh uint32_t read_dqs_cmd_delay : 8;
2623*4b8b8d74SJaiprakash Singh } s;
2624*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_dll_slave_ctrl_s cn; */
2625*4b8b8d74SJaiprakash Singh };
2626*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_dll_slave_ctrl ody_spix_phy_dataslice_rfile_phy_dll_slave_ctrl_t;
2627*4b8b8d74SJaiprakash Singh
2628*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_SLAVE_CTRL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_SLAVE_CTRL(uint64_t a)2629*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_SLAVE_CTRL(uint64_t a)
2630*4b8b8d74SJaiprakash Singh {
2631*4b8b8d74SJaiprakash Singh if (a <= 1)
2632*4b8b8d74SJaiprakash Singh return 0x804000002010ll + 0x1000000000ll * ((a) & 0x1);
2633*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_DLL_SLAVE_CTRL", 1, a, 0, 0, 0, 0, 0);
2634*4b8b8d74SJaiprakash Singh }
2635*4b8b8d74SJaiprakash Singh
2636*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_SLAVE_CTRL(a) ody_spix_phy_dataslice_rfile_phy_dll_slave_ctrl_t
2637*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_SLAVE_CTRL(a) CSR_TYPE_NCB32b
2638*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_SLAVE_CTRL(a) "SPIX_PHY_DATASLICE_RFILE_PHY_DLL_SLAVE_CTRL"
2639*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_SLAVE_CTRL(a) 0x0 /* PF_BAR0 */
2640*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_SLAVE_CTRL(a) (a)
2641*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DLL_SLAVE_CTRL(a) (a), -1, -1, -1
2642*4b8b8d74SJaiprakash Singh
2643*4b8b8d74SJaiprakash Singh /**
2644*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_dq_timing
2645*4b8b8d74SJaiprakash Singh *
2646*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY Dq Timing Register
2647*4b8b8d74SJaiprakash Singh * This register controls the DQ related timing.
2648*4b8b8d74SJaiprakash Singh */
2649*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_dq_timing {
2650*4b8b8d74SJaiprakash Singh uint32_t u;
2651*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_dq_timing_s {
2652*4b8b8d74SJaiprakash Singh uint32_t data_select_oe_end : 3;
2653*4b8b8d74SJaiprakash Singh uint32_t reserved_3 : 1;
2654*4b8b8d74SJaiprakash Singh uint32_t data_select_oe_start : 3;
2655*4b8b8d74SJaiprakash Singh uint32_t reserved_7 : 1;
2656*4b8b8d74SJaiprakash Singh uint32_t data_select_tsel_end : 4;
2657*4b8b8d74SJaiprakash Singh uint32_t data_select_tsel_start : 4;
2658*4b8b8d74SJaiprakash Singh uint32_t data_clkperiod_delay : 8;
2659*4b8b8d74SJaiprakash Singh uint32_t io_mask_start : 3;
2660*4b8b8d74SJaiprakash Singh uint32_t io_mask_end : 3;
2661*4b8b8d74SJaiprakash Singh uint32_t reserved_30 : 1;
2662*4b8b8d74SJaiprakash Singh uint32_t io_mask_always_on : 1;
2663*4b8b8d74SJaiprakash Singh } s;
2664*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_dq_timing_s cn; */
2665*4b8b8d74SJaiprakash Singh };
2666*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_dq_timing ody_spix_phy_dataslice_rfile_phy_dq_timing_t;
2667*4b8b8d74SJaiprakash Singh
2668*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQ_TIMING(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQ_TIMING(uint64_t a)2669*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQ_TIMING(uint64_t a)
2670*4b8b8d74SJaiprakash Singh {
2671*4b8b8d74SJaiprakash Singh if (a <= 1)
2672*4b8b8d74SJaiprakash Singh return 0x804000002000ll + 0x1000000000ll * ((a) & 0x1);
2673*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_DQ_TIMING", 1, a, 0, 0, 0, 0, 0);
2674*4b8b8d74SJaiprakash Singh }
2675*4b8b8d74SJaiprakash Singh
2676*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQ_TIMING(a) ody_spix_phy_dataslice_rfile_phy_dq_timing_t
2677*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQ_TIMING(a) CSR_TYPE_NCB32b
2678*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQ_TIMING(a) "SPIX_PHY_DATASLICE_RFILE_PHY_DQ_TIMING"
2679*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQ_TIMING(a) 0x0 /* PF_BAR0 */
2680*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQ_TIMING(a) (a)
2681*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQ_TIMING(a) (a), -1, -1, -1
2682*4b8b8d74SJaiprakash Singh
2683*4b8b8d74SJaiprakash Singh /**
2684*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_dqs_timing
2685*4b8b8d74SJaiprakash Singh *
2686*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY DQS Timing Register
2687*4b8b8d74SJaiprakash Singh * This register controls the DQS related timing.
2688*4b8b8d74SJaiprakash Singh */
2689*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_dqs_timing {
2690*4b8b8d74SJaiprakash Singh uint32_t u;
2691*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_dqs_timing_s {
2692*4b8b8d74SJaiprakash Singh uint32_t dqs_select_oe_end : 4;
2693*4b8b8d74SJaiprakash Singh uint32_t dqs_select_oe_start : 4;
2694*4b8b8d74SJaiprakash Singh uint32_t dqs_select_tsel_end : 4;
2695*4b8b8d74SJaiprakash Singh uint32_t dqs_select_tsel_start : 4;
2696*4b8b8d74SJaiprakash Singh uint32_t phony_dqs_sel : 1;
2697*4b8b8d74SJaiprakash Singh uint32_t reserved_17_18 : 2;
2698*4b8b8d74SJaiprakash Singh uint32_t use_phony_dqs_cmd : 1;
2699*4b8b8d74SJaiprakash Singh uint32_t use_phony_dqs : 1;
2700*4b8b8d74SJaiprakash Singh uint32_t use_lpbk_dqs : 1;
2701*4b8b8d74SJaiprakash Singh uint32_t use_ext_lpbk_dqs : 1;
2702*4b8b8d74SJaiprakash Singh uint32_t dqs_clkperiod_delay : 1;
2703*4b8b8d74SJaiprakash Singh uint32_t reserved_24_31 : 8;
2704*4b8b8d74SJaiprakash Singh } s;
2705*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_dqs_timing_s cn; */
2706*4b8b8d74SJaiprakash Singh };
2707*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_dqs_timing ody_spix_phy_dataslice_rfile_phy_dqs_timing_t;
2708*4b8b8d74SJaiprakash Singh
2709*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQS_TIMING(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQS_TIMING(uint64_t a)2710*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQS_TIMING(uint64_t a)
2711*4b8b8d74SJaiprakash Singh {
2712*4b8b8d74SJaiprakash Singh if (a <= 1)
2713*4b8b8d74SJaiprakash Singh return 0x804000002004ll + 0x1000000000ll * ((a) & 0x1);
2714*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_DQS_TIMING", 1, a, 0, 0, 0, 0, 0);
2715*4b8b8d74SJaiprakash Singh }
2716*4b8b8d74SJaiprakash Singh
2717*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQS_TIMING(a) ody_spix_phy_dataslice_rfile_phy_dqs_timing_t
2718*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQS_TIMING(a) CSR_TYPE_NCB32b
2719*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQS_TIMING(a) "SPIX_PHY_DATASLICE_RFILE_PHY_DQS_TIMING"
2720*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQS_TIMING(a) 0x0 /* PF_BAR0 */
2721*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQS_TIMING(a) (a)
2722*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_DQS_TIMING(a) (a), -1, -1, -1
2723*4b8b8d74SJaiprakash Singh
2724*4b8b8d74SJaiprakash Singh /**
2725*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_features
2726*4b8b8d74SJaiprakash Singh *
2727*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY Features Register
2728*4b8b8d74SJaiprakash Singh * This register shows available hardware features.
2729*4b8b8d74SJaiprakash Singh */
2730*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_features {
2731*4b8b8d74SJaiprakash Singh uint32_t u;
2732*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_features_s {
2733*4b8b8d74SJaiprakash Singh uint32_t onfi_40 : 1;
2734*4b8b8d74SJaiprakash Singh uint32_t onfi_41 : 1;
2735*4b8b8d74SJaiprakash Singh uint32_t sdr_16bit : 1;
2736*4b8b8d74SJaiprakash Singh uint32_t spi : 1;
2737*4b8b8d74SJaiprakash Singh uint32_t sd_emmc : 1;
2738*4b8b8d74SJaiprakash Singh uint32_t bank_num : 2;
2739*4b8b8d74SJaiprakash Singh uint32_t dll_tap_num : 1;
2740*4b8b8d74SJaiprakash Singh uint32_t aging : 1;
2741*4b8b8d74SJaiprakash Singh uint32_t dfi_clock_ratio : 1;
2742*4b8b8d74SJaiprakash Singh uint32_t per_bit_deskew : 1;
2743*4b8b8d74SJaiprakash Singh uint32_t reg_intf : 1;
2744*4b8b8d74SJaiprakash Singh uint32_t ext_lpbk_dqs : 1;
2745*4b8b8d74SJaiprakash Singh uint32_t jtag_sup : 1;
2746*4b8b8d74SJaiprakash Singh uint32_t pll_sup : 1;
2747*4b8b8d74SJaiprakash Singh uint32_t asf_sup : 1;
2748*4b8b8d74SJaiprakash Singh uint32_t reserved_16_31 : 16;
2749*4b8b8d74SJaiprakash Singh } s;
2750*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_features_s cn; */
2751*4b8b8d74SJaiprakash Singh };
2752*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_features ody_spix_phy_dataslice_rfile_phy_features_t;
2753*4b8b8d74SJaiprakash Singh
2754*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_FEATURES(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_FEATURES(uint64_t a)2755*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_FEATURES(uint64_t a)
2756*4b8b8d74SJaiprakash Singh {
2757*4b8b8d74SJaiprakash Singh if (a <= 1)
2758*4b8b8d74SJaiprakash Singh return 0x804000002074ll + 0x1000000000ll * ((a) & 0x1);
2759*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_FEATURES", 1, a, 0, 0, 0, 0, 0);
2760*4b8b8d74SJaiprakash Singh }
2761*4b8b8d74SJaiprakash Singh
2762*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_FEATURES(a) ody_spix_phy_dataslice_rfile_phy_features_t
2763*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_FEATURES(a) CSR_TYPE_NCB32b
2764*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_FEATURES(a) "SPIX_PHY_DATASLICE_RFILE_PHY_FEATURES"
2765*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_FEATURES(a) 0x0 /* PF_BAR0 */
2766*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_FEATURES(a) (a)
2767*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_FEATURES(a) (a), -1, -1, -1
2768*4b8b8d74SJaiprakash Singh
2769*4b8b8d74SJaiprakash Singh /**
2770*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_gate_lpbk_ctrl
2771*4b8b8d74SJaiprakash Singh *
2772*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY Gate Lpbk Control Register
2773*4b8b8d74SJaiprakash Singh * This register controls the gate and loopback control related timing.
2774*4b8b8d74SJaiprakash Singh */
2775*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_gate_lpbk_ctrl {
2776*4b8b8d74SJaiprakash Singh uint32_t u;
2777*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_gate_lpbk_ctrl_s {
2778*4b8b8d74SJaiprakash Singh uint32_t gate_cfg : 4;
2779*4b8b8d74SJaiprakash Singh uint32_t gate_cfg_close : 2;
2780*4b8b8d74SJaiprakash Singh uint32_t gate_cfg_always_on : 1;
2781*4b8b8d74SJaiprakash Singh uint32_t reserved_7 : 1;
2782*4b8b8d74SJaiprakash Singh uint32_t lpbk_en : 1;
2783*4b8b8d74SJaiprakash Singh uint32_t lpbk_internal : 1;
2784*4b8b8d74SJaiprakash Singh uint32_t loopback_control : 2;
2785*4b8b8d74SJaiprakash Singh uint32_t lpbk_fail_muxsel : 1;
2786*4b8b8d74SJaiprakash Singh uint32_t lpbk_err_check_timing : 3;
2787*4b8b8d74SJaiprakash Singh uint32_t rd_del_sel_empty : 1;
2788*4b8b8d74SJaiprakash Singh uint32_t reserved_17 : 1;
2789*4b8b8d74SJaiprakash Singh uint32_t underrun_suppress : 1;
2790*4b8b8d74SJaiprakash Singh uint32_t rd_del_sel : 6;
2791*4b8b8d74SJaiprakash Singh uint32_t param_phase_detect_sel_oe : 3;
2792*4b8b8d74SJaiprakash Singh uint32_t sw_half_cycle_shift : 1;
2793*4b8b8d74SJaiprakash Singh uint32_t en_sw_half_cycle : 1;
2794*4b8b8d74SJaiprakash Singh uint32_t sw_dqs_phase_bypass : 1;
2795*4b8b8d74SJaiprakash Singh uint32_t sync_method : 1;
2796*4b8b8d74SJaiprakash Singh } s;
2797*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_gate_lpbk_ctrl_s cn; */
2798*4b8b8d74SJaiprakash Singh };
2799*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_gate_lpbk_ctrl ody_spix_phy_dataslice_rfile_phy_gate_lpbk_ctrl_t;
2800*4b8b8d74SJaiprakash Singh
2801*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_GATE_LPBK_CTRL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_GATE_LPBK_CTRL(uint64_t a)2802*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_GATE_LPBK_CTRL(uint64_t a)
2803*4b8b8d74SJaiprakash Singh {
2804*4b8b8d74SJaiprakash Singh if (a <= 1)
2805*4b8b8d74SJaiprakash Singh return 0x804000002008ll + 0x1000000000ll * ((a) & 0x1);
2806*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_GATE_LPBK_CTRL", 1, a, 0, 0, 0, 0, 0);
2807*4b8b8d74SJaiprakash Singh }
2808*4b8b8d74SJaiprakash Singh
2809*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_GATE_LPBK_CTRL(a) ody_spix_phy_dataslice_rfile_phy_gate_lpbk_ctrl_t
2810*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_GATE_LPBK_CTRL(a) CSR_TYPE_NCB32b
2811*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_GATE_LPBK_CTRL(a) "SPIX_PHY_DATASLICE_RFILE_PHY_GATE_LPBK_CTRL"
2812*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_GATE_LPBK_CTRL(a) 0x0 /* PF_BAR0 */
2813*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_GATE_LPBK_CTRL(a) (a)
2814*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_GATE_LPBK_CTRL(a) (a), -1, -1, -1
2815*4b8b8d74SJaiprakash Singh
2816*4b8b8d74SJaiprakash Singh /**
2817*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_ie_timing
2818*4b8b8d74SJaiprakash Singh *
2819*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY Ie Timing Register
2820*4b8b8d74SJaiprakash Singh * This register controls the DQS related timing.
2821*4b8b8d74SJaiprakash Singh */
2822*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_ie_timing {
2823*4b8b8d74SJaiprakash Singh uint32_t u;
2824*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_ie_timing_s {
2825*4b8b8d74SJaiprakash Singh uint32_t rddata_en_ie_dly : 4;
2826*4b8b8d74SJaiprakash Singh uint32_t dqs_ie_stop : 3;
2827*4b8b8d74SJaiprakash Singh uint32_t reserved_7 : 1;
2828*4b8b8d74SJaiprakash Singh uint32_t dqs_ie_start : 3;
2829*4b8b8d74SJaiprakash Singh uint32_t reserved_11 : 1;
2830*4b8b8d74SJaiprakash Singh uint32_t dq_ie_stop : 3;
2831*4b8b8d74SJaiprakash Singh uint32_t reserved_15 : 1;
2832*4b8b8d74SJaiprakash Singh uint32_t dq_ie_start : 3;
2833*4b8b8d74SJaiprakash Singh uint32_t reserved_19 : 1;
2834*4b8b8d74SJaiprakash Singh uint32_t ie_always_on : 1;
2835*4b8b8d74SJaiprakash Singh uint32_t reserved_21_31 : 11;
2836*4b8b8d74SJaiprakash Singh } s;
2837*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_ie_timing_s cn; */
2838*4b8b8d74SJaiprakash Singh };
2839*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_ie_timing ody_spix_phy_dataslice_rfile_phy_ie_timing_t;
2840*4b8b8d74SJaiprakash Singh
2841*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_IE_TIMING(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_IE_TIMING(uint64_t a)2842*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_IE_TIMING(uint64_t a)
2843*4b8b8d74SJaiprakash Singh {
2844*4b8b8d74SJaiprakash Singh if (a <= 1)
2845*4b8b8d74SJaiprakash Singh return 0x804000002014ll + 0x1000000000ll * ((a) & 0x1);
2846*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_IE_TIMING", 1, a, 0, 0, 0, 0, 0);
2847*4b8b8d74SJaiprakash Singh }
2848*4b8b8d74SJaiprakash Singh
2849*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_IE_TIMING(a) ody_spix_phy_dataslice_rfile_phy_ie_timing_t
2850*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_IE_TIMING(a) CSR_TYPE_NCB32b
2851*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_IE_TIMING(a) "SPIX_PHY_DATASLICE_RFILE_PHY_IE_TIMING"
2852*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_IE_TIMING(a) 0x0 /* PF_BAR0 */
2853*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_IE_TIMING(a) (a)
2854*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_IE_TIMING(a) (a), -1, -1, -1
2855*4b8b8d74SJaiprakash Singh
2856*4b8b8d74SJaiprakash Singh /**
2857*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_obs_reg_0
2858*4b8b8d74SJaiprakash Singh *
2859*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY Obs Reg 0 Register
2860*4b8b8d74SJaiprakash Singh * This register holds the following observable points in the PHY.
2861*4b8b8d74SJaiprakash Singh */
2862*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_obs_reg_0 {
2863*4b8b8d74SJaiprakash Singh uint32_t u;
2864*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_obs_reg_0_s {
2865*4b8b8d74SJaiprakash Singh uint32_t lpbk_status : 2;
2866*4b8b8d74SJaiprakash Singh uint32_t reserved_2_7 : 6;
2867*4b8b8d74SJaiprakash Singh uint32_t lpbk_dq_data : 16;
2868*4b8b8d74SJaiprakash Singh uint32_t dqs_underrun : 1;
2869*4b8b8d74SJaiprakash Singh uint32_t dqs_overflow : 1;
2870*4b8b8d74SJaiprakash Singh uint32_t dqs_cmd_underrun : 1;
2871*4b8b8d74SJaiprakash Singh uint32_t dqs_cmd_overflow : 1;
2872*4b8b8d74SJaiprakash Singh uint32_t reserved_28_31 : 4;
2873*4b8b8d74SJaiprakash Singh } s;
2874*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_obs_reg_0_s cn; */
2875*4b8b8d74SJaiprakash Singh };
2876*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_obs_reg_0 ody_spix_phy_dataslice_rfile_phy_obs_reg_0_t;
2877*4b8b8d74SJaiprakash Singh
2878*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_OBS_REG_0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_OBS_REG_0(uint64_t a)2879*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_OBS_REG_0(uint64_t a)
2880*4b8b8d74SJaiprakash Singh {
2881*4b8b8d74SJaiprakash Singh if (a <= 1)
2882*4b8b8d74SJaiprakash Singh return 0x804000002018ll + 0x1000000000ll * ((a) & 0x1);
2883*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_OBS_REG_0", 1, a, 0, 0, 0, 0, 0);
2884*4b8b8d74SJaiprakash Singh }
2885*4b8b8d74SJaiprakash Singh
2886*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_OBS_REG_0(a) ody_spix_phy_dataslice_rfile_phy_obs_reg_0_t
2887*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_OBS_REG_0(a) CSR_TYPE_NCB32b
2888*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_OBS_REG_0(a) "SPIX_PHY_DATASLICE_RFILE_PHY_OBS_REG_0"
2889*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_OBS_REG_0(a) 0x0 /* PF_BAR0 */
2890*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_OBS_REG_0(a) (a)
2891*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_OBS_REG_0(a) (a), -1, -1, -1
2892*4b8b8d74SJaiprakash Singh
2893*4b8b8d74SJaiprakash Singh /**
2894*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_rd_deskew
2895*4b8b8d74SJaiprakash Singh *
2896*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY Rd Deskew Register
2897*4b8b8d74SJaiprakash Singh * This register holds the values of delay of each DQ bit on the read path.
2898*4b8b8d74SJaiprakash Singh */
2899*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_rd_deskew {
2900*4b8b8d74SJaiprakash Singh uint32_t u;
2901*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_rd_deskew_s {
2902*4b8b8d74SJaiprakash Singh uint32_t rd_dq0_deskew_delay : 4;
2903*4b8b8d74SJaiprakash Singh uint32_t rd_dq1_deskew_delay : 4;
2904*4b8b8d74SJaiprakash Singh uint32_t rd_dq2_deskew_delay : 4;
2905*4b8b8d74SJaiprakash Singh uint32_t rd_dq3_deskew_delay : 4;
2906*4b8b8d74SJaiprakash Singh uint32_t rd_dq4_deskew_delay : 4;
2907*4b8b8d74SJaiprakash Singh uint32_t rd_dq5_deskew_delay : 4;
2908*4b8b8d74SJaiprakash Singh uint32_t rd_dq6_deskew_delay : 4;
2909*4b8b8d74SJaiprakash Singh uint32_t rd_dq7_deskew_delay : 4;
2910*4b8b8d74SJaiprakash Singh } s;
2911*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_rd_deskew_s cn; */
2912*4b8b8d74SJaiprakash Singh };
2913*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_rd_deskew ody_spix_phy_dataslice_rfile_phy_rd_deskew_t;
2914*4b8b8d74SJaiprakash Singh
2915*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_RD_DESKEW(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_RD_DESKEW(uint64_t a)2916*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_RD_DESKEW(uint64_t a)
2917*4b8b8d74SJaiprakash Singh {
2918*4b8b8d74SJaiprakash Singh if (a <= 1)
2919*4b8b8d74SJaiprakash Singh return 0x80400000203cll + 0x1000000000ll * ((a) & 0x1);
2920*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_RD_DESKEW", 1, a, 0, 0, 0, 0, 0);
2921*4b8b8d74SJaiprakash Singh }
2922*4b8b8d74SJaiprakash Singh
2923*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_RD_DESKEW(a) ody_spix_phy_dataslice_rfile_phy_rd_deskew_t
2924*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_RD_DESKEW(a) CSR_TYPE_NCB32b
2925*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_RD_DESKEW(a) "SPIX_PHY_DATASLICE_RFILE_PHY_RD_DESKEW"
2926*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_RD_DESKEW(a) 0x0 /* PF_BAR0 */
2927*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_RD_DESKEW(a) (a)
2928*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_RD_DESKEW(a) (a), -1, -1, -1
2929*4b8b8d74SJaiprakash Singh
2930*4b8b8d74SJaiprakash Singh /**
2931*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_static_togg
2932*4b8b8d74SJaiprakash Singh *
2933*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY Static Togg Register
2934*4b8b8d74SJaiprakash Singh * This register controls the static aging feature of the PHY.
2935*4b8b8d74SJaiprakash Singh */
2936*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_static_togg {
2937*4b8b8d74SJaiprakash Singh uint32_t u;
2938*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_static_togg_s {
2939*4b8b8d74SJaiprakash Singh uint32_t static_tog_clk_div : 16;
2940*4b8b8d74SJaiprakash Singh uint32_t static_togg_global_enable : 1;
2941*4b8b8d74SJaiprakash Singh uint32_t reserved_17_19 : 3;
2942*4b8b8d74SJaiprakash Singh uint32_t static_togg_enable : 4;
2943*4b8b8d74SJaiprakash Singh uint32_t read_dqs_togg_enable : 1;
2944*4b8b8d74SJaiprakash Singh uint32_t reserved_25_31 : 7;
2945*4b8b8d74SJaiprakash Singh } s;
2946*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_static_togg_s cn; */
2947*4b8b8d74SJaiprakash Singh };
2948*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_static_togg ody_spix_phy_dataslice_rfile_phy_static_togg_t;
2949*4b8b8d74SJaiprakash Singh
2950*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_STATIC_TOGG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_STATIC_TOGG(uint64_t a)2951*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_STATIC_TOGG(uint64_t a)
2952*4b8b8d74SJaiprakash Singh {
2953*4b8b8d74SJaiprakash Singh if (a <= 1)
2954*4b8b8d74SJaiprakash Singh return 0x804000002028ll + 0x1000000000ll * ((a) & 0x1);
2955*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_STATIC_TOGG", 1, a, 0, 0, 0, 0, 0);
2956*4b8b8d74SJaiprakash Singh }
2957*4b8b8d74SJaiprakash Singh
2958*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_STATIC_TOGG(a) ody_spix_phy_dataslice_rfile_phy_static_togg_t
2959*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_STATIC_TOGG(a) CSR_TYPE_NCB32b
2960*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_STATIC_TOGG(a) "SPIX_PHY_DATASLICE_RFILE_PHY_STATIC_TOGG"
2961*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_STATIC_TOGG(a) 0x0 /* PF_BAR0 */
2962*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_STATIC_TOGG(a) (a)
2963*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_STATIC_TOGG(a) (a), -1, -1, -1
2964*4b8b8d74SJaiprakash Singh
2965*4b8b8d74SJaiprakash Singh /**
2966*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_version
2967*4b8b8d74SJaiprakash Singh *
2968*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY Version Register
2969*4b8b8d74SJaiprakash Singh * This register contains release identification number.
2970*4b8b8d74SJaiprakash Singh */
2971*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_version {
2972*4b8b8d74SJaiprakash Singh uint32_t u;
2973*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_version_s {
2974*4b8b8d74SJaiprakash Singh uint32_t phy_rev : 8;
2975*4b8b8d74SJaiprakash Singh uint32_t phy_fix : 8;
2976*4b8b8d74SJaiprakash Singh uint32_t combo_phy_magic_number : 16;
2977*4b8b8d74SJaiprakash Singh } s;
2978*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_version_s cn; */
2979*4b8b8d74SJaiprakash Singh };
2980*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_version ody_spix_phy_dataslice_rfile_phy_version_t;
2981*4b8b8d74SJaiprakash Singh
2982*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_VERSION(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_VERSION(uint64_t a)2983*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_VERSION(uint64_t a)
2984*4b8b8d74SJaiprakash Singh {
2985*4b8b8d74SJaiprakash Singh if (a <= 1)
2986*4b8b8d74SJaiprakash Singh return 0x804000002070ll + 0x1000000000ll * ((a) & 0x1);
2987*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_VERSION", 1, a, 0, 0, 0, 0, 0);
2988*4b8b8d74SJaiprakash Singh }
2989*4b8b8d74SJaiprakash Singh
2990*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_VERSION(a) ody_spix_phy_dataslice_rfile_phy_version_t
2991*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_VERSION(a) CSR_TYPE_NCB32b
2992*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_VERSION(a) "SPIX_PHY_DATASLICE_RFILE_PHY_VERSION"
2993*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_VERSION(a) 0x0 /* PF_BAR0 */
2994*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_VERSION(a) (a)
2995*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_VERSION(a) (a), -1, -1, -1
2996*4b8b8d74SJaiprakash Singh
2997*4b8b8d74SJaiprakash Singh /**
2998*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_wr_deskew
2999*4b8b8d74SJaiprakash Singh *
3000*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY Wr Deskew Register
3001*4b8b8d74SJaiprakash Singh * This register holds the values of delay of each DQ bit on the write path.
3002*4b8b8d74SJaiprakash Singh */
3003*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_wr_deskew {
3004*4b8b8d74SJaiprakash Singh uint32_t u;
3005*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_wr_deskew_s {
3006*4b8b8d74SJaiprakash Singh uint32_t wr_dq0_deskew_delay : 4;
3007*4b8b8d74SJaiprakash Singh uint32_t wr_dq1_deskew_delay : 4;
3008*4b8b8d74SJaiprakash Singh uint32_t wr_dq2_deskew_delay : 4;
3009*4b8b8d74SJaiprakash Singh uint32_t wr_dq3_deskew_delay : 4;
3010*4b8b8d74SJaiprakash Singh uint32_t wr_dq4_deskew_delay : 4;
3011*4b8b8d74SJaiprakash Singh uint32_t wr_dq5_deskew_delay : 4;
3012*4b8b8d74SJaiprakash Singh uint32_t wr_dq6_deskew_delay : 4;
3013*4b8b8d74SJaiprakash Singh uint32_t wr_dq7_deskew_delay : 4;
3014*4b8b8d74SJaiprakash Singh } s;
3015*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_wr_deskew_s cn; */
3016*4b8b8d74SJaiprakash Singh };
3017*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_wr_deskew ody_spix_phy_dataslice_rfile_phy_wr_deskew_t;
3018*4b8b8d74SJaiprakash Singh
3019*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW(uint64_t a)3020*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW(uint64_t a)
3021*4b8b8d74SJaiprakash Singh {
3022*4b8b8d74SJaiprakash Singh if (a <= 1)
3023*4b8b8d74SJaiprakash Singh return 0x80400000202cll + 0x1000000000ll * ((a) & 0x1);
3024*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW", 1, a, 0, 0, 0, 0, 0);
3025*4b8b8d74SJaiprakash Singh }
3026*4b8b8d74SJaiprakash Singh
3027*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW(a) ody_spix_phy_dataslice_rfile_phy_wr_deskew_t
3028*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW(a) CSR_TYPE_NCB32b
3029*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW(a) "SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW"
3030*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW(a) 0x0 /* PF_BAR0 */
3031*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW(a) (a)
3032*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW(a) (a), -1, -1, -1
3033*4b8b8d74SJaiprakash Singh
3034*4b8b8d74SJaiprakash Singh /**
3035*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_0
3036*4b8b8d74SJaiprakash Singh *
3037*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY Wr Deskew Pd Control 0 Register
3038*4b8b8d74SJaiprakash Singh * This register holds the values of phase detect block for each DQ bit on the write path.
3039*4b8b8d74SJaiprakash Singh */
3040*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_0 {
3041*4b8b8d74SJaiprakash Singh uint32_t u;
3042*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_0_s {
3043*4b8b8d74SJaiprakash Singh uint32_t dq0_phase_detect_sel : 3;
3044*4b8b8d74SJaiprakash Singh uint32_t reserved_3 : 1;
3045*4b8b8d74SJaiprakash Singh uint32_t dq0_sw_half_cycle_shift : 1;
3046*4b8b8d74SJaiprakash Singh uint32_t dq0_en_sw_half_cycle : 1;
3047*4b8b8d74SJaiprakash Singh uint32_t dq0_sw_dq_phase_bypass : 1;
3048*4b8b8d74SJaiprakash Singh uint32_t reserved_7 : 1;
3049*4b8b8d74SJaiprakash Singh uint32_t dq1_phase_detect_sel : 3;
3050*4b8b8d74SJaiprakash Singh uint32_t reserved_11 : 1;
3051*4b8b8d74SJaiprakash Singh uint32_t dq1_sw_half_cycle_shift : 1;
3052*4b8b8d74SJaiprakash Singh uint32_t dq1_en_sw_half_cycle : 1;
3053*4b8b8d74SJaiprakash Singh uint32_t dq1_sw_dq_phase_bypass : 1;
3054*4b8b8d74SJaiprakash Singh uint32_t reserved_15 : 1;
3055*4b8b8d74SJaiprakash Singh uint32_t dq2_phase_detect_sel : 3;
3056*4b8b8d74SJaiprakash Singh uint32_t reserved_19 : 1;
3057*4b8b8d74SJaiprakash Singh uint32_t dq2_sw_half_cycle_shift : 1;
3058*4b8b8d74SJaiprakash Singh uint32_t dq2_en_sw_half_cycle : 1;
3059*4b8b8d74SJaiprakash Singh uint32_t dq2_sw_dq_phase_bypass : 1;
3060*4b8b8d74SJaiprakash Singh uint32_t reserved_23 : 1;
3061*4b8b8d74SJaiprakash Singh uint32_t dq3_phase_detect_sel : 3;
3062*4b8b8d74SJaiprakash Singh uint32_t reserved_27 : 1;
3063*4b8b8d74SJaiprakash Singh uint32_t dq3_sw_half_cycle_shift : 1;
3064*4b8b8d74SJaiprakash Singh uint32_t dq3_en_sw_half_cycle : 1;
3065*4b8b8d74SJaiprakash Singh uint32_t dq3_sw_dq_phase_bypass : 1;
3066*4b8b8d74SJaiprakash Singh uint32_t reserved_31 : 1;
3067*4b8b8d74SJaiprakash Singh } s;
3068*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_0_s cn; */
3069*4b8b8d74SJaiprakash Singh };
3070*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_0 ody_spix_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_0_t;
3071*4b8b8d74SJaiprakash Singh
3072*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_0(uint64_t a)3073*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_0(uint64_t a)
3074*4b8b8d74SJaiprakash Singh {
3075*4b8b8d74SJaiprakash Singh if (a <= 1)
3076*4b8b8d74SJaiprakash Singh return 0x804000002034ll + 0x1000000000ll * ((a) & 0x1);
3077*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_0", 1, a, 0, 0, 0, 0, 0);
3078*4b8b8d74SJaiprakash Singh }
3079*4b8b8d74SJaiprakash Singh
3080*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_0(a) ody_spix_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_0_t
3081*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_0(a) CSR_TYPE_NCB32b
3082*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_0(a) "SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_0"
3083*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_0(a) 0x0 /* PF_BAR0 */
3084*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_0(a) (a)
3085*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_0(a) (a), -1, -1, -1
3086*4b8b8d74SJaiprakash Singh
3087*4b8b8d74SJaiprakash Singh /**
3088*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_1
3089*4b8b8d74SJaiprakash Singh *
3090*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY Wr Deskew Pd Control 1 Register
3091*4b8b8d74SJaiprakash Singh * This register holds the values of phase detect block for each DQ bit on the write path.
3092*4b8b8d74SJaiprakash Singh */
3093*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_1 {
3094*4b8b8d74SJaiprakash Singh uint32_t u;
3095*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_1_s {
3096*4b8b8d74SJaiprakash Singh uint32_t dq4_phase_detect_sel : 3;
3097*4b8b8d74SJaiprakash Singh uint32_t reserved_3 : 1;
3098*4b8b8d74SJaiprakash Singh uint32_t dq4_sw_half_cycle_shift : 1;
3099*4b8b8d74SJaiprakash Singh uint32_t dq4_en_sw_half_cycle : 1;
3100*4b8b8d74SJaiprakash Singh uint32_t dq4_sw_dq_phase_bypass : 1;
3101*4b8b8d74SJaiprakash Singh uint32_t reserved_7 : 1;
3102*4b8b8d74SJaiprakash Singh uint32_t dq5_phase_detect_sel : 3;
3103*4b8b8d74SJaiprakash Singh uint32_t reserved_11 : 1;
3104*4b8b8d74SJaiprakash Singh uint32_t dq5_sw_half_cycle_shift : 1;
3105*4b8b8d74SJaiprakash Singh uint32_t dq5_en_sw_half_cycle : 1;
3106*4b8b8d74SJaiprakash Singh uint32_t dq5_sw_dq_phase_bypass : 1;
3107*4b8b8d74SJaiprakash Singh uint32_t reserved_15 : 1;
3108*4b8b8d74SJaiprakash Singh uint32_t dq6_phase_detect_sel : 3;
3109*4b8b8d74SJaiprakash Singh uint32_t reserved_19 : 1;
3110*4b8b8d74SJaiprakash Singh uint32_t dq6_sw_half_cycle_shift : 1;
3111*4b8b8d74SJaiprakash Singh uint32_t dq6_en_sw_half_cycle : 1;
3112*4b8b8d74SJaiprakash Singh uint32_t dq6_sw_dq_phase_bypass : 1;
3113*4b8b8d74SJaiprakash Singh uint32_t reserved_23 : 1;
3114*4b8b8d74SJaiprakash Singh uint32_t dq7_phase_detect_sel : 3;
3115*4b8b8d74SJaiprakash Singh uint32_t reserved_27 : 1;
3116*4b8b8d74SJaiprakash Singh uint32_t dq7_sw_half_cycle_shift : 1;
3117*4b8b8d74SJaiprakash Singh uint32_t dq7_en_sw_half_cycle : 1;
3118*4b8b8d74SJaiprakash Singh uint32_t dq7_sw_dq_phase_bypass : 1;
3119*4b8b8d74SJaiprakash Singh uint32_t reserved_31 : 1;
3120*4b8b8d74SJaiprakash Singh } s;
3121*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_1_s cn; */
3122*4b8b8d74SJaiprakash Singh };
3123*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_1 ody_spix_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_1_t;
3124*4b8b8d74SJaiprakash Singh
3125*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_1(uint64_t a)3126*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_1(uint64_t a)
3127*4b8b8d74SJaiprakash Singh {
3128*4b8b8d74SJaiprakash Singh if (a <= 1)
3129*4b8b8d74SJaiprakash Singh return 0x804000002038ll + 0x1000000000ll * ((a) & 0x1);
3130*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_1", 1, a, 0, 0, 0, 0, 0);
3131*4b8b8d74SJaiprakash Singh }
3132*4b8b8d74SJaiprakash Singh
3133*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_1(a) ody_spix_phy_dataslice_rfile_phy_wr_deskew_pd_ctrl_1_t
3134*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_1(a) CSR_TYPE_NCB32b
3135*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_1(a) "SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_1"
3136*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_1(a) 0x0 /* PF_BAR0 */
3137*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_1(a) (a)
3138*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_DESKEW_PD_CTRL_1(a) (a), -1, -1, -1
3139*4b8b8d74SJaiprakash Singh
3140*4b8b8d74SJaiprakash Singh /**
3141*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_phy_dataslice_rfile_phy_wr_rd_deskew_cmd
3142*4b8b8d74SJaiprakash Singh *
3143*4b8b8d74SJaiprakash Singh * SPI PHY Dataslice Rfile PHY Wr Rd Deskew Command Register
3144*4b8b8d74SJaiprakash Singh * This register holds the values of delay of CMD bit on the write and read path as
3145*4b8b8d74SJaiprakash Singh * well as the values of
3146*4b8b8d74SJaiprakash Singh * phase detect block for CMD bit on the write path.
3147*4b8b8d74SJaiprakash Singh */
3148*4b8b8d74SJaiprakash Singh union ody_spix_phy_dataslice_rfile_phy_wr_rd_deskew_cmd {
3149*4b8b8d74SJaiprakash Singh uint32_t u;
3150*4b8b8d74SJaiprakash Singh struct ody_spix_phy_dataslice_rfile_phy_wr_rd_deskew_cmd_s {
3151*4b8b8d74SJaiprakash Singh uint32_t wr_cmd_deskew_delay : 4;
3152*4b8b8d74SJaiprakash Singh uint32_t reserved_4_7 : 4;
3153*4b8b8d74SJaiprakash Singh uint32_t cmd_phase_detect_sel : 3;
3154*4b8b8d74SJaiprakash Singh uint32_t reserved_11 : 1;
3155*4b8b8d74SJaiprakash Singh uint32_t cmd_sw_half_cycle_shift : 1;
3156*4b8b8d74SJaiprakash Singh uint32_t cmd_en_sw_half_cycle : 1;
3157*4b8b8d74SJaiprakash Singh uint32_t cmd_sw_dq_phase_bypass : 1;
3158*4b8b8d74SJaiprakash Singh uint32_t reserved_15 : 1;
3159*4b8b8d74SJaiprakash Singh uint32_t cmd_clkperiod_delay : 1;
3160*4b8b8d74SJaiprakash Singh uint32_t reserved_17_23 : 7;
3161*4b8b8d74SJaiprakash Singh uint32_t rd_cmd_deskew_delay : 4;
3162*4b8b8d74SJaiprakash Singh uint32_t reserved_28_31 : 4;
3163*4b8b8d74SJaiprakash Singh } s;
3164*4b8b8d74SJaiprakash Singh /* struct ody_spix_phy_dataslice_rfile_phy_wr_rd_deskew_cmd_s cn; */
3165*4b8b8d74SJaiprakash Singh };
3166*4b8b8d74SJaiprakash Singh typedef union ody_spix_phy_dataslice_rfile_phy_wr_rd_deskew_cmd ody_spix_phy_dataslice_rfile_phy_wr_rd_deskew_cmd_t;
3167*4b8b8d74SJaiprakash Singh
3168*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_RD_DESKEW_CMD(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_RD_DESKEW_CMD(uint64_t a)3169*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_RD_DESKEW_CMD(uint64_t a)
3170*4b8b8d74SJaiprakash Singh {
3171*4b8b8d74SJaiprakash Singh if (a <= 1)
3172*4b8b8d74SJaiprakash Singh return 0x804000002030ll + 0x1000000000ll * ((a) & 0x1);
3173*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_PHY_DATASLICE_RFILE_PHY_WR_RD_DESKEW_CMD", 1, a, 0, 0, 0, 0, 0);
3174*4b8b8d74SJaiprakash Singh }
3175*4b8b8d74SJaiprakash Singh
3176*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_RD_DESKEW_CMD(a) ody_spix_phy_dataslice_rfile_phy_wr_rd_deskew_cmd_t
3177*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_RD_DESKEW_CMD(a) CSR_TYPE_NCB32b
3178*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_RD_DESKEW_CMD(a) "SPIX_PHY_DATASLICE_RFILE_PHY_WR_RD_DESKEW_CMD"
3179*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_RD_DESKEW_CMD(a) 0x0 /* PF_BAR0 */
3180*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_RD_DESKEW_CMD(a) (a)
3181*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_PHY_DATASLICE_RFILE_PHY_WR_RD_DESKEW_CMD(a) (a), -1, -1, -1
3182*4b8b8d74SJaiprakash Singh
3183*4b8b8d74SJaiprakash Singh /**
3184*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_rf_minictrl_regs_clock_mode_settings
3185*4b8b8d74SJaiprakash Singh *
3186*4b8b8d74SJaiprakash Singh * SPI Rf Minictrl Regs Clock Mode Settings Register
3187*4b8b8d74SJaiprakash Singh * SPI clock mode.
3188*4b8b8d74SJaiprakash Singh */
3189*4b8b8d74SJaiprakash Singh union ody_spix_rf_minictrl_regs_clock_mode_settings {
3190*4b8b8d74SJaiprakash Singh uint32_t u;
3191*4b8b8d74SJaiprakash Singh struct ody_spix_rf_minictrl_regs_clock_mode_settings_s {
3192*4b8b8d74SJaiprakash Singh uint32_t spi_clock_mode : 1;
3193*4b8b8d74SJaiprakash Singh uint32_t reserved_1_31 : 31;
3194*4b8b8d74SJaiprakash Singh } s;
3195*4b8b8d74SJaiprakash Singh /* struct ody_spix_rf_minictrl_regs_clock_mode_settings_s cn; */
3196*4b8b8d74SJaiprakash Singh };
3197*4b8b8d74SJaiprakash Singh typedef union ody_spix_rf_minictrl_regs_clock_mode_settings ody_spix_rf_minictrl_regs_clock_mode_settings_t;
3198*4b8b8d74SJaiprakash Singh
3199*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_CLOCK_MODE_SETTINGS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_RF_MINICTRL_REGS_CLOCK_MODE_SETTINGS(uint64_t a)3200*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_CLOCK_MODE_SETTINGS(uint64_t a)
3201*4b8b8d74SJaiprakash Singh {
3202*4b8b8d74SJaiprakash Singh if (a <= 1)
3203*4b8b8d74SJaiprakash Singh return 0x804000001008ll + 0x1000000000ll * ((a) & 0x1);
3204*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_RF_MINICTRL_REGS_CLOCK_MODE_SETTINGS", 1, a, 0, 0, 0, 0, 0);
3205*4b8b8d74SJaiprakash Singh }
3206*4b8b8d74SJaiprakash Singh
3207*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_RF_MINICTRL_REGS_CLOCK_MODE_SETTINGS(a) ody_spix_rf_minictrl_regs_clock_mode_settings_t
3208*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_RF_MINICTRL_REGS_CLOCK_MODE_SETTINGS(a) CSR_TYPE_NCB32b
3209*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_RF_MINICTRL_REGS_CLOCK_MODE_SETTINGS(a) "SPIX_RF_MINICTRL_REGS_CLOCK_MODE_SETTINGS"
3210*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_RF_MINICTRL_REGS_CLOCK_MODE_SETTINGS(a) 0x0 /* PF_BAR0 */
3211*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_RF_MINICTRL_REGS_CLOCK_MODE_SETTINGS(a) (a)
3212*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_RF_MINICTRL_REGS_CLOCK_MODE_SETTINGS(a) (a), -1, -1, -1
3213*4b8b8d74SJaiprakash Singh
3214*4b8b8d74SJaiprakash Singh /**
3215*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_rf_minictrl_regs_dev_active_max_reg
3216*4b8b8d74SJaiprakash Singh *
3217*4b8b8d74SJaiprakash Singh * SPI Rf Minictrl Regs Dev Active Max Register
3218*4b8b8d74SJaiprakash Singh * "This register is used to introduce maximum number of xspi_clk cycles through which
3219*4b8b8d74SJaiprakash Singh * CS# will be kept
3220*4b8b8d74SJaiprakash Singh * active (low) on memory interface."
3221*4b8b8d74SJaiprakash Singh */
3222*4b8b8d74SJaiprakash Singh union ody_spix_rf_minictrl_regs_dev_active_max_reg {
3223*4b8b8d74SJaiprakash Singh uint32_t u;
3224*4b8b8d74SJaiprakash Singh struct ody_spix_rf_minictrl_regs_dev_active_max_reg_s {
3225*4b8b8d74SJaiprakash Singh uint32_t dev_active_max : 32;
3226*4b8b8d74SJaiprakash Singh } s;
3227*4b8b8d74SJaiprakash Singh /* struct ody_spix_rf_minictrl_regs_dev_active_max_reg_s cn; */
3228*4b8b8d74SJaiprakash Singh };
3229*4b8b8d74SJaiprakash Singh typedef union ody_spix_rf_minictrl_regs_dev_active_max_reg ody_spix_rf_minictrl_regs_dev_active_max_reg_t;
3230*4b8b8d74SJaiprakash Singh
3231*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_DEV_ACTIVE_MAX_REG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_RF_MINICTRL_REGS_DEV_ACTIVE_MAX_REG(uint64_t a)3232*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_DEV_ACTIVE_MAX_REG(uint64_t a)
3233*4b8b8d74SJaiprakash Singh {
3234*4b8b8d74SJaiprakash Singh if (a <= 1)
3235*4b8b8d74SJaiprakash Singh return 0x804000001018ll + 0x1000000000ll * ((a) & 0x1);
3236*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_RF_MINICTRL_REGS_DEV_ACTIVE_MAX_REG", 1, a, 0, 0, 0, 0, 0);
3237*4b8b8d74SJaiprakash Singh }
3238*4b8b8d74SJaiprakash Singh
3239*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_RF_MINICTRL_REGS_DEV_ACTIVE_MAX_REG(a) ody_spix_rf_minictrl_regs_dev_active_max_reg_t
3240*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_RF_MINICTRL_REGS_DEV_ACTIVE_MAX_REG(a) CSR_TYPE_NCB32b
3241*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_RF_MINICTRL_REGS_DEV_ACTIVE_MAX_REG(a) "SPIX_RF_MINICTRL_REGS_DEV_ACTIVE_MAX_REG"
3242*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_RF_MINICTRL_REGS_DEV_ACTIVE_MAX_REG(a) 0x0 /* PF_BAR0 */
3243*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_RF_MINICTRL_REGS_DEV_ACTIVE_MAX_REG(a) (a)
3244*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_RF_MINICTRL_REGS_DEV_ACTIVE_MAX_REG(a) (a), -1, -1, -1
3245*4b8b8d74SJaiprakash Singh
3246*4b8b8d74SJaiprakash Singh /**
3247*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_rf_minictrl_regs_dev_delay_reg
3248*4b8b8d74SJaiprakash Singh *
3249*4b8b8d74SJaiprakash Singh * SPI Rf Minictrl Regs Dev Delay Register
3250*4b8b8d74SJaiprakash Singh * This register is used to introduce relative device selection delays with respect to generated xSPI
3251*4b8b8d74SJaiprakash Singh * Flash Interface.
3252*4b8b8d74SJaiprakash Singh */
3253*4b8b8d74SJaiprakash Singh union ody_spix_rf_minictrl_regs_dev_delay_reg {
3254*4b8b8d74SJaiprakash Singh uint32_t u;
3255*4b8b8d74SJaiprakash Singh struct ody_spix_rf_minictrl_regs_dev_delay_reg_s {
3256*4b8b8d74SJaiprakash Singh uint32_t cssot_delay : 8;
3257*4b8b8d74SJaiprakash Singh uint32_t cseot_delay : 8;
3258*4b8b8d74SJaiprakash Singh uint32_t reserved_16_23 : 8;
3259*4b8b8d74SJaiprakash Singh uint32_t csda_min_delay : 8;
3260*4b8b8d74SJaiprakash Singh } s;
3261*4b8b8d74SJaiprakash Singh /* struct ody_spix_rf_minictrl_regs_dev_delay_reg_s cn; */
3262*4b8b8d74SJaiprakash Singh };
3263*4b8b8d74SJaiprakash Singh typedef union ody_spix_rf_minictrl_regs_dev_delay_reg ody_spix_rf_minictrl_regs_dev_delay_reg_t;
3264*4b8b8d74SJaiprakash Singh
3265*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_DEV_DELAY_REG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_RF_MINICTRL_REGS_DEV_DELAY_REG(uint64_t a)3266*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_DEV_DELAY_REG(uint64_t a)
3267*4b8b8d74SJaiprakash Singh {
3268*4b8b8d74SJaiprakash Singh if (a <= 1)
3269*4b8b8d74SJaiprakash Singh return 0x804000001010ll + 0x1000000000ll * ((a) & 0x1);
3270*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_RF_MINICTRL_REGS_DEV_DELAY_REG", 1, a, 0, 0, 0, 0, 0);
3271*4b8b8d74SJaiprakash Singh }
3272*4b8b8d74SJaiprakash Singh
3273*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_RF_MINICTRL_REGS_DEV_DELAY_REG(a) ody_spix_rf_minictrl_regs_dev_delay_reg_t
3274*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_RF_MINICTRL_REGS_DEV_DELAY_REG(a) CSR_TYPE_NCB32b
3275*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_RF_MINICTRL_REGS_DEV_DELAY_REG(a) "SPIX_RF_MINICTRL_REGS_DEV_DELAY_REG"
3276*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_RF_MINICTRL_REGS_DEV_DELAY_REG(a) 0x0 /* PF_BAR0 */
3277*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_RF_MINICTRL_REGS_DEV_DELAY_REG(a) (a)
3278*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_RF_MINICTRL_REGS_DEV_DELAY_REG(a) (a), -1, -1, -1
3279*4b8b8d74SJaiprakash Singh
3280*4b8b8d74SJaiprakash Singh /**
3281*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_rf_minictrl_regs_dll_phy_ctrl
3282*4b8b8d74SJaiprakash Singh *
3283*4b8b8d74SJaiprakash Singh * SPI Rf Minictrl Regs DLL PHY Control Register
3284*4b8b8d74SJaiprakash Singh * Configuration of the resynchronization of slave DLL of PHY. When the PHY is used
3285*4b8b8d74SJaiprakash Singh * with the xSPI
3286*4b8b8d74SJaiprakash Singh * controller, this register is automatically updated by the device discovery module during
3287*4b8b8d74SJaiprakash Singh * initialization.
3288*4b8b8d74SJaiprakash Singh */
3289*4b8b8d74SJaiprakash Singh union ody_spix_rf_minictrl_regs_dll_phy_ctrl {
3290*4b8b8d74SJaiprakash Singh uint32_t u;
3291*4b8b8d74SJaiprakash Singh struct ody_spix_rf_minictrl_regs_dll_phy_ctrl_s {
3292*4b8b8d74SJaiprakash Singh uint32_t resync_idle_cnt : 8;
3293*4b8b8d74SJaiprakash Singh uint32_t resync_high_wait_cnt : 4;
3294*4b8b8d74SJaiprakash Singh uint32_t reserved_12_15 : 4;
3295*4b8b8d74SJaiprakash Singh uint32_t extended_rd_mode : 1;
3296*4b8b8d74SJaiprakash Singh uint32_t extended_wr_mode : 1;
3297*4b8b8d74SJaiprakash Singh uint32_t reserved_18_19 : 2;
3298*4b8b8d74SJaiprakash Singh uint32_t dqs_last_data_drop_en : 1;
3299*4b8b8d74SJaiprakash Singh uint32_t sdr_edge_active : 1;
3300*4b8b8d74SJaiprakash Singh uint32_t reserved_22_23 : 2;
3301*4b8b8d74SJaiprakash Singh uint32_t dll_rst_n : 1;
3302*4b8b8d74SJaiprakash Singh uint32_t dfi_ctrlupd_req : 1;
3303*4b8b8d74SJaiprakash Singh uint32_t reserved_26_31 : 6;
3304*4b8b8d74SJaiprakash Singh } s;
3305*4b8b8d74SJaiprakash Singh /* struct ody_spix_rf_minictrl_regs_dll_phy_ctrl_s cn; */
3306*4b8b8d74SJaiprakash Singh };
3307*4b8b8d74SJaiprakash Singh typedef union ody_spix_rf_minictrl_regs_dll_phy_ctrl ody_spix_rf_minictrl_regs_dll_phy_ctrl_t;
3308*4b8b8d74SJaiprakash Singh
3309*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_CTRL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_CTRL(uint64_t a)3310*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_CTRL(uint64_t a)
3311*4b8b8d74SJaiprakash Singh {
3312*4b8b8d74SJaiprakash Singh if (a <= 1)
3313*4b8b8d74SJaiprakash Singh return 0x804000001034ll + 0x1000000000ll * ((a) & 0x1);
3314*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_RF_MINICTRL_REGS_DLL_PHY_CTRL", 1, a, 0, 0, 0, 0, 0);
3315*4b8b8d74SJaiprakash Singh }
3316*4b8b8d74SJaiprakash Singh
3317*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_CTRL(a) ody_spix_rf_minictrl_regs_dll_phy_ctrl_t
3318*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_CTRL(a) CSR_TYPE_NCB32b
3319*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_CTRL(a) "SPIX_RF_MINICTRL_REGS_DLL_PHY_CTRL"
3320*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_CTRL(a) 0x0 /* PF_BAR0 */
3321*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_CTRL(a) (a)
3322*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_CTRL(a) (a), -1, -1, -1
3323*4b8b8d74SJaiprakash Singh
3324*4b8b8d74SJaiprakash Singh /**
3325*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_rf_minictrl_regs_dll_phy_update_cnt
3326*4b8b8d74SJaiprakash Singh *
3327*4b8b8d74SJaiprakash Singh * SPI Rf Minictrl Regs DLL PHY Update Cnt Register
3328*4b8b8d74SJaiprakash Singh * Configuration of the resynchronization of slave DLL of PHY.
3329*4b8b8d74SJaiprakash Singh */
3330*4b8b8d74SJaiprakash Singh union ody_spix_rf_minictrl_regs_dll_phy_update_cnt {
3331*4b8b8d74SJaiprakash Singh uint32_t u;
3332*4b8b8d74SJaiprakash Singh struct ody_spix_rf_minictrl_regs_dll_phy_update_cnt_s {
3333*4b8b8d74SJaiprakash Singh uint32_t resync_cnt : 32;
3334*4b8b8d74SJaiprakash Singh } s;
3335*4b8b8d74SJaiprakash Singh /* struct ody_spix_rf_minictrl_regs_dll_phy_update_cnt_s cn; */
3336*4b8b8d74SJaiprakash Singh };
3337*4b8b8d74SJaiprakash Singh typedef union ody_spix_rf_minictrl_regs_dll_phy_update_cnt ody_spix_rf_minictrl_regs_dll_phy_update_cnt_t;
3338*4b8b8d74SJaiprakash Singh
3339*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_UPDATE_CNT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_UPDATE_CNT(uint64_t a)3340*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_UPDATE_CNT(uint64_t a)
3341*4b8b8d74SJaiprakash Singh {
3342*4b8b8d74SJaiprakash Singh if (a <= 1)
3343*4b8b8d74SJaiprakash Singh return 0x804000001030ll + 0x1000000000ll * ((a) & 0x1);
3344*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_RF_MINICTRL_REGS_DLL_PHY_UPDATE_CNT", 1, a, 0, 0, 0, 0, 0);
3345*4b8b8d74SJaiprakash Singh }
3346*4b8b8d74SJaiprakash Singh
3347*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_UPDATE_CNT(a) ody_spix_rf_minictrl_regs_dll_phy_update_cnt_t
3348*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_UPDATE_CNT(a) CSR_TYPE_NCB32b
3349*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_UPDATE_CNT(a) "SPIX_RF_MINICTRL_REGS_DLL_PHY_UPDATE_CNT"
3350*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_UPDATE_CNT(a) 0x0 /* PF_BAR0 */
3351*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_UPDATE_CNT(a) (a)
3352*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_RF_MINICTRL_REGS_DLL_PHY_UPDATE_CNT(a) (a), -1, -1, -1
3353*4b8b8d74SJaiprakash Singh
3354*4b8b8d74SJaiprakash Singh /**
3355*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_rf_minictrl_regs_hf_offset_reg
3356*4b8b8d74SJaiprakash Singh *
3357*4b8b8d74SJaiprakash Singh * SPI Rf Minictrl Regs Hf Offset Register
3358*4b8b8d74SJaiprakash Singh * This register is used to decode Legacy Hyper Flash and xSPI Profile 2.0 address into
3359*4b8b8d74SJaiprakash Singh * interface address
3360*4b8b8d74SJaiprakash Singh * taking into account "reserved" area in command format.
3361*4b8b8d74SJaiprakash Singh */
3362*4b8b8d74SJaiprakash Singh union ody_spix_rf_minictrl_regs_hf_offset_reg {
3363*4b8b8d74SJaiprakash Singh uint32_t u;
3364*4b8b8d74SJaiprakash Singh struct ody_spix_rf_minictrl_regs_hf_offset_reg_s {
3365*4b8b8d74SJaiprakash Singh uint32_t hf_offset_index : 6;
3366*4b8b8d74SJaiprakash Singh uint32_t reserved_6_7 : 2;
3367*4b8b8d74SJaiprakash Singh uint32_t hf_offset_size : 6;
3368*4b8b8d74SJaiprakash Singh uint32_t reserved_14_31 : 18;
3369*4b8b8d74SJaiprakash Singh } s;
3370*4b8b8d74SJaiprakash Singh /* struct ody_spix_rf_minictrl_regs_hf_offset_reg_s cn; */
3371*4b8b8d74SJaiprakash Singh };
3372*4b8b8d74SJaiprakash Singh typedef union ody_spix_rf_minictrl_regs_hf_offset_reg ody_spix_rf_minictrl_regs_hf_offset_reg_t;
3373*4b8b8d74SJaiprakash Singh
3374*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_HF_OFFSET_REG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_RF_MINICTRL_REGS_HF_OFFSET_REG(uint64_t a)3375*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_HF_OFFSET_REG(uint64_t a)
3376*4b8b8d74SJaiprakash Singh {
3377*4b8b8d74SJaiprakash Singh if (a <= 1)
3378*4b8b8d74SJaiprakash Singh return 0x804000001020ll + 0x1000000000ll * ((a) & 0x1);
3379*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_RF_MINICTRL_REGS_HF_OFFSET_REG", 1, a, 0, 0, 0, 0, 0);
3380*4b8b8d74SJaiprakash Singh }
3381*4b8b8d74SJaiprakash Singh
3382*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_RF_MINICTRL_REGS_HF_OFFSET_REG(a) ody_spix_rf_minictrl_regs_hf_offset_reg_t
3383*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_RF_MINICTRL_REGS_HF_OFFSET_REG(a) CSR_TYPE_NCB32b
3384*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_RF_MINICTRL_REGS_HF_OFFSET_REG(a) "SPIX_RF_MINICTRL_REGS_HF_OFFSET_REG"
3385*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_RF_MINICTRL_REGS_HF_OFFSET_REG(a) 0x0 /* PF_BAR0 */
3386*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_RF_MINICTRL_REGS_HF_OFFSET_REG(a) (a)
3387*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_RF_MINICTRL_REGS_HF_OFFSET_REG(a) (a), -1, -1, -1
3388*4b8b8d74SJaiprakash Singh
3389*4b8b8d74SJaiprakash Singh /**
3390*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_rf_minictrl_regs_jedec_rst_timing_reg
3391*4b8b8d74SJaiprakash Singh *
3392*4b8b8d74SJaiprakash Singh * SPI Rf Minictrl Regs Jedec Rst Timing Register
3393*4b8b8d74SJaiprakash Singh * This register is used to introduce relative device selection delays applicable for JEDEC reset
3394*4b8b8d74SJaiprakash Singh * instruction.
3395*4b8b8d74SJaiprakash Singh */
3396*4b8b8d74SJaiprakash Singh union ody_spix_rf_minictrl_regs_jedec_rst_timing_reg {
3397*4b8b8d74SJaiprakash Singh uint32_t u;
3398*4b8b8d74SJaiprakash Singh struct ody_spix_rf_minictrl_regs_jedec_rst_timing_reg_s {
3399*4b8b8d74SJaiprakash Singh uint32_t tcsh_delay : 8;
3400*4b8b8d74SJaiprakash Singh uint32_t tcsl_delay : 8;
3401*4b8b8d74SJaiprakash Singh uint32_t reserved_16_31 : 16;
3402*4b8b8d74SJaiprakash Singh } s;
3403*4b8b8d74SJaiprakash Singh /* struct ody_spix_rf_minictrl_regs_jedec_rst_timing_reg_s cn; */
3404*4b8b8d74SJaiprakash Singh };
3405*4b8b8d74SJaiprakash Singh typedef union ody_spix_rf_minictrl_regs_jedec_rst_timing_reg ody_spix_rf_minictrl_regs_jedec_rst_timing_reg_t;
3406*4b8b8d74SJaiprakash Singh
3407*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_JEDEC_RST_TIMING_REG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_RF_MINICTRL_REGS_JEDEC_RST_TIMING_REG(uint64_t a)3408*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_JEDEC_RST_TIMING_REG(uint64_t a)
3409*4b8b8d74SJaiprakash Singh {
3410*4b8b8d74SJaiprakash Singh if (a <= 1)
3411*4b8b8d74SJaiprakash Singh return 0x80400000100cll + 0x1000000000ll * ((a) & 0x1);
3412*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_RF_MINICTRL_REGS_JEDEC_RST_TIMING_REG", 1, a, 0, 0, 0, 0, 0);
3413*4b8b8d74SJaiprakash Singh }
3414*4b8b8d74SJaiprakash Singh
3415*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_RF_MINICTRL_REGS_JEDEC_RST_TIMING_REG(a) ody_spix_rf_minictrl_regs_jedec_rst_timing_reg_t
3416*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_RF_MINICTRL_REGS_JEDEC_RST_TIMING_REG(a) CSR_TYPE_NCB32b
3417*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_RF_MINICTRL_REGS_JEDEC_RST_TIMING_REG(a) "SPIX_RF_MINICTRL_REGS_JEDEC_RST_TIMING_REG"
3418*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_RF_MINICTRL_REGS_JEDEC_RST_TIMING_REG(a) 0x0 /* PF_BAR0 */
3419*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_RF_MINICTRL_REGS_JEDEC_RST_TIMING_REG(a) (a)
3420*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_RF_MINICTRL_REGS_JEDEC_RST_TIMING_REG(a) (a), -1, -1, -1
3421*4b8b8d74SJaiprakash Singh
3422*4b8b8d74SJaiprakash Singh /**
3423*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_rf_minictrl_regs_reset_pin_settings
3424*4b8b8d74SJaiprakash Singh *
3425*4b8b8d74SJaiprakash Singh * SPI Rf Minictrl Regs Reset Pin Settings Register
3426*4b8b8d74SJaiprakash Singh * Software-controlled hardware RESET.
3427*4b8b8d74SJaiprakash Singh */
3428*4b8b8d74SJaiprakash Singh union ody_spix_rf_minictrl_regs_reset_pin_settings {
3429*4b8b8d74SJaiprakash Singh uint32_t u;
3430*4b8b8d74SJaiprakash Singh struct ody_spix_rf_minictrl_regs_reset_pin_settings_s {
3431*4b8b8d74SJaiprakash Singh uint32_t sw_ctrled_hw_rst : 1;
3432*4b8b8d74SJaiprakash Singh uint32_t rst_dq3_enable : 1;
3433*4b8b8d74SJaiprakash Singh uint32_t reserved_2_3 : 2;
3434*4b8b8d74SJaiprakash Singh uint32_t sw_ctrled_hw_rst_option : 1;
3435*4b8b8d74SJaiprakash Singh uint32_t reserved_5_7 : 3;
3436*4b8b8d74SJaiprakash Singh uint32_t sw_ctrled_hw_rst_bank0 : 1;
3437*4b8b8d74SJaiprakash Singh uint32_t sw_ctrled_hw_rst_bank1 : 1;
3438*4b8b8d74SJaiprakash Singh uint32_t sw_ctrled_hw_rst_bank2 : 1;
3439*4b8b8d74SJaiprakash Singh uint32_t sw_ctrled_hw_rst_bank3 : 1;
3440*4b8b8d74SJaiprakash Singh uint32_t sw_ctrled_hw_rst_bank4 : 1;
3441*4b8b8d74SJaiprakash Singh uint32_t sw_ctrled_hw_rst_bank5 : 1;
3442*4b8b8d74SJaiprakash Singh uint32_t sw_ctrled_hw_rst_bank6 : 1;
3443*4b8b8d74SJaiprakash Singh uint32_t sw_ctrled_hw_rst_bank7 : 1;
3444*4b8b8d74SJaiprakash Singh uint32_t reserved_16_31 : 16;
3445*4b8b8d74SJaiprakash Singh } s;
3446*4b8b8d74SJaiprakash Singh /* struct ody_spix_rf_minictrl_regs_reset_pin_settings_s cn; */
3447*4b8b8d74SJaiprakash Singh };
3448*4b8b8d74SJaiprakash Singh typedef union ody_spix_rf_minictrl_regs_reset_pin_settings ody_spix_rf_minictrl_regs_reset_pin_settings_t;
3449*4b8b8d74SJaiprakash Singh
3450*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_RESET_PIN_SETTINGS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_RF_MINICTRL_REGS_RESET_PIN_SETTINGS(uint64_t a)3451*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_RESET_PIN_SETTINGS(uint64_t a)
3452*4b8b8d74SJaiprakash Singh {
3453*4b8b8d74SJaiprakash Singh if (a <= 1)
3454*4b8b8d74SJaiprakash Singh return 0x804000001004ll + 0x1000000000ll * ((a) & 0x1);
3455*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_RF_MINICTRL_REGS_RESET_PIN_SETTINGS", 1, a, 0, 0, 0, 0, 0);
3456*4b8b8d74SJaiprakash Singh }
3457*4b8b8d74SJaiprakash Singh
3458*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_RF_MINICTRL_REGS_RESET_PIN_SETTINGS(a) ody_spix_rf_minictrl_regs_reset_pin_settings_t
3459*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_RF_MINICTRL_REGS_RESET_PIN_SETTINGS(a) CSR_TYPE_NCB32b
3460*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_RF_MINICTRL_REGS_RESET_PIN_SETTINGS(a) "SPIX_RF_MINICTRL_REGS_RESET_PIN_SETTINGS"
3461*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_RF_MINICTRL_REGS_RESET_PIN_SETTINGS(a) 0x0 /* PF_BAR0 */
3462*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_RF_MINICTRL_REGS_RESET_PIN_SETTINGS(a) (a)
3463*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_RF_MINICTRL_REGS_RESET_PIN_SETTINGS(a) (a), -1, -1, -1
3464*4b8b8d74SJaiprakash Singh
3465*4b8b8d74SJaiprakash Singh /**
3466*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_rf_minictrl_regs_rst_recovery_reg
3467*4b8b8d74SJaiprakash Singh *
3468*4b8b8d74SJaiprakash Singh * SPI Rf Minictrl Regs Rst Recovery Register
3469*4b8b8d74SJaiprakash Singh * This register is used to introduce relative reset recovery delay with respect to
3470*4b8b8d74SJaiprakash Singh * generated xSPI Flash
3471*4b8b8d74SJaiprakash Singh * Interface.
3472*4b8b8d74SJaiprakash Singh */
3473*4b8b8d74SJaiprakash Singh union ody_spix_rf_minictrl_regs_rst_recovery_reg {
3474*4b8b8d74SJaiprakash Singh uint32_t u;
3475*4b8b8d74SJaiprakash Singh struct ody_spix_rf_minictrl_regs_rst_recovery_reg_s {
3476*4b8b8d74SJaiprakash Singh uint32_t rst_recovery : 32;
3477*4b8b8d74SJaiprakash Singh } s;
3478*4b8b8d74SJaiprakash Singh /* struct ody_spix_rf_minictrl_regs_rst_recovery_reg_s cn; */
3479*4b8b8d74SJaiprakash Singh };
3480*4b8b8d74SJaiprakash Singh typedef union ody_spix_rf_minictrl_regs_rst_recovery_reg ody_spix_rf_minictrl_regs_rst_recovery_reg_t;
3481*4b8b8d74SJaiprakash Singh
3482*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_RST_RECOVERY_REG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_RF_MINICTRL_REGS_RST_RECOVERY_REG(uint64_t a)3483*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_RST_RECOVERY_REG(uint64_t a)
3484*4b8b8d74SJaiprakash Singh {
3485*4b8b8d74SJaiprakash Singh if (a <= 1)
3486*4b8b8d74SJaiprakash Singh return 0x804000001014ll + 0x1000000000ll * ((a) & 0x1);
3487*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_RF_MINICTRL_REGS_RST_RECOVERY_REG", 1, a, 0, 0, 0, 0, 0);
3488*4b8b8d74SJaiprakash Singh }
3489*4b8b8d74SJaiprakash Singh
3490*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_RF_MINICTRL_REGS_RST_RECOVERY_REG(a) ody_spix_rf_minictrl_regs_rst_recovery_reg_t
3491*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_RF_MINICTRL_REGS_RST_RECOVERY_REG(a) CSR_TYPE_NCB32b
3492*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_RF_MINICTRL_REGS_RST_RECOVERY_REG(a) "SPIX_RF_MINICTRL_REGS_RST_RECOVERY_REG"
3493*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_RF_MINICTRL_REGS_RST_RECOVERY_REG(a) 0x0 /* PF_BAR0 */
3494*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_RF_MINICTRL_REGS_RST_RECOVERY_REG(a) (a)
3495*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_RF_MINICTRL_REGS_RST_RECOVERY_REG(a) (a), -1, -1, -1
3496*4b8b8d74SJaiprakash Singh
3497*4b8b8d74SJaiprakash Singh /**
3498*4b8b8d74SJaiprakash Singh * Register (NCB32b) spi#_rf_minictrl_regs_wp_settings
3499*4b8b8d74SJaiprakash Singh *
3500*4b8b8d74SJaiprakash Singh * SPI Rf Minictrl Regs Wp Settings Register
3501*4b8b8d74SJaiprakash Singh * Write Protect.
3502*4b8b8d74SJaiprakash Singh */
3503*4b8b8d74SJaiprakash Singh union ody_spix_rf_minictrl_regs_wp_settings {
3504*4b8b8d74SJaiprakash Singh uint32_t u;
3505*4b8b8d74SJaiprakash Singh struct ody_spix_rf_minictrl_regs_wp_settings_s {
3506*4b8b8d74SJaiprakash Singh uint32_t wp : 1;
3507*4b8b8d74SJaiprakash Singh uint32_t wp_enable : 1;
3508*4b8b8d74SJaiprakash Singh uint32_t reserved_2_31 : 30;
3509*4b8b8d74SJaiprakash Singh } s;
3510*4b8b8d74SJaiprakash Singh /* struct ody_spix_rf_minictrl_regs_wp_settings_s cn; */
3511*4b8b8d74SJaiprakash Singh };
3512*4b8b8d74SJaiprakash Singh typedef union ody_spix_rf_minictrl_regs_wp_settings ody_spix_rf_minictrl_regs_wp_settings_t;
3513*4b8b8d74SJaiprakash Singh
3514*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_WP_SETTINGS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_RF_MINICTRL_REGS_WP_SETTINGS(uint64_t a)3515*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_RF_MINICTRL_REGS_WP_SETTINGS(uint64_t a)
3516*4b8b8d74SJaiprakash Singh {
3517*4b8b8d74SJaiprakash Singh if (a <= 1)
3518*4b8b8d74SJaiprakash Singh return 0x804000001000ll + 0x1000000000ll * ((a) & 0x1);
3519*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_RF_MINICTRL_REGS_WP_SETTINGS", 1, a, 0, 0, 0, 0, 0);
3520*4b8b8d74SJaiprakash Singh }
3521*4b8b8d74SJaiprakash Singh
3522*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_RF_MINICTRL_REGS_WP_SETTINGS(a) ody_spix_rf_minictrl_regs_wp_settings_t
3523*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_RF_MINICTRL_REGS_WP_SETTINGS(a) CSR_TYPE_NCB32b
3524*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_RF_MINICTRL_REGS_WP_SETTINGS(a) "SPIX_RF_MINICTRL_REGS_WP_SETTINGS"
3525*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_RF_MINICTRL_REGS_WP_SETTINGS(a) 0x0 /* PF_BAR0 */
3526*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_RF_MINICTRL_REGS_WP_SETTINGS(a) (a)
3527*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_RF_MINICTRL_REGS_WP_SETTINGS(a) (a), -1, -1, -1
3528*4b8b8d74SJaiprakash Singh
3529*4b8b8d74SJaiprakash Singh /**
3530*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_shim_cfg
3531*4b8b8d74SJaiprakash Singh *
3532*4b8b8d74SJaiprakash Singh * SPI Shim Configuration Register
3533*4b8b8d74SJaiprakash Singh * This register allows configuration of various shim (xSPI) features. The fields XS_NCB_OOB_*
3534*4b8b8d74SJaiprakash Singh * are captured when there are no outstanding OOB errors indicated in INTSTAT and a new OOB error
3535*4b8b8d74SJaiprakash Singh * arrives. The fields XS_BAD_DMA_* are captured when there are no outstanding DMA errors
3536*4b8b8d74SJaiprakash Singh * indicated in INTSTAT and a new DMA error arrives.
3537*4b8b8d74SJaiprakash Singh */
3538*4b8b8d74SJaiprakash Singh union ody_spix_shim_cfg {
3539*4b8b8d74SJaiprakash Singh uint64_t u;
3540*4b8b8d74SJaiprakash Singh struct ody_spix_shim_cfg_s {
3541*4b8b8d74SJaiprakash Singh uint64_t reserved_0_9 : 10;
3542*4b8b8d74SJaiprakash Singh uint64_t dma_write_cmd : 1;
3543*4b8b8d74SJaiprakash Singh uint64_t reserved_11 : 1;
3544*4b8b8d74SJaiprakash Singh uint64_t dma_read_cmd : 2;
3545*4b8b8d74SJaiprakash Singh uint64_t reserved_14_39 : 26;
3546*4b8b8d74SJaiprakash Singh uint64_t xm_bad_dma_type : 4;
3547*4b8b8d74SJaiprakash Singh uint64_t reserved_44_46 : 3;
3548*4b8b8d74SJaiprakash Singh uint64_t xm_bad_dma_wrn : 1;
3549*4b8b8d74SJaiprakash Singh uint64_t xs_ncb_oob_osrc : 12;
3550*4b8b8d74SJaiprakash Singh uint64_t reserved_60_62 : 3;
3551*4b8b8d74SJaiprakash Singh uint64_t xs_ncb_oob_wrn : 1;
3552*4b8b8d74SJaiprakash Singh } s;
3553*4b8b8d74SJaiprakash Singh /* struct ody_spix_shim_cfg_s cn; */
3554*4b8b8d74SJaiprakash Singh };
3555*4b8b8d74SJaiprakash Singh typedef union ody_spix_shim_cfg ody_spix_shim_cfg_t;
3556*4b8b8d74SJaiprakash Singh
3557*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_SHIM_CFG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_SHIM_CFG(uint64_t a)3558*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_SHIM_CFG(uint64_t a)
3559*4b8b8d74SJaiprakash Singh {
3560*4b8b8d74SJaiprakash Singh if (a <= 1)
3561*4b8b8d74SJaiprakash Singh return 0x804000001050ll + 0x1000000000ll * ((a) & 0x1);
3562*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_SHIM_CFG", 1, a, 0, 0, 0, 0, 0);
3563*4b8b8d74SJaiprakash Singh }
3564*4b8b8d74SJaiprakash Singh
3565*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_SHIM_CFG(a) ody_spix_shim_cfg_t
3566*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_SHIM_CFG(a) CSR_TYPE_NCB
3567*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_SHIM_CFG(a) "SPIX_SHIM_CFG"
3568*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_SHIM_CFG(a) 0x0 /* PF_BAR0 */
3569*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_SHIM_CFG(a) (a)
3570*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_SHIM_CFG(a) (a), -1, -1, -1
3571*4b8b8d74SJaiprakash Singh
3572*4b8b8d74SJaiprakash Singh /**
3573*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_spare_reg#
3574*4b8b8d74SJaiprakash Singh *
3575*4b8b8d74SJaiprakash Singh * SPI Transfer Function Read Data Register
3576*4b8b8d74SJaiprakash Singh * This register has the read data from SPI device
3577*4b8b8d74SJaiprakash Singh */
3578*4b8b8d74SJaiprakash Singh union ody_spix_spare_regx {
3579*4b8b8d74SJaiprakash Singh uint64_t u;
3580*4b8b8d74SJaiprakash Singh struct ody_spix_spare_regx_s {
3581*4b8b8d74SJaiprakash Singh uint64_t spare : 64;
3582*4b8b8d74SJaiprakash Singh } s;
3583*4b8b8d74SJaiprakash Singh /* struct ody_spix_spare_regx_s cn; */
3584*4b8b8d74SJaiprakash Singh };
3585*4b8b8d74SJaiprakash Singh typedef union ody_spix_spare_regx ody_spix_spare_regx_t;
3586*4b8b8d74SJaiprakash Singh
3587*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_SPARE_REGX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SPIX_SPARE_REGX(uint64_t a,uint64_t b)3588*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_SPARE_REGX(uint64_t a, uint64_t b)
3589*4b8b8d74SJaiprakash Singh {
3590*4b8b8d74SJaiprakash Singh if ((a <= 1) && (b <= 1))
3591*4b8b8d74SJaiprakash Singh return 0x804000008220ll + 0x1000000000ll * ((a) & 0x1) + 8ll * ((b) & 0x1);
3592*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_SPARE_REGX", 2, a, b, 0, 0, 0, 0);
3593*4b8b8d74SJaiprakash Singh }
3594*4b8b8d74SJaiprakash Singh
3595*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_SPARE_REGX(a, b) ody_spix_spare_regx_t
3596*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_SPARE_REGX(a, b) CSR_TYPE_NCB
3597*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_SPARE_REGX(a, b) "SPIX_SPARE_REGX"
3598*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_SPARE_REGX(a, b) 0x0 /* PF_BAR0 */
3599*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_SPARE_REGX(a, b) (a)
3600*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_SPARE_REGX(a, b) (a), (b), -1, -1
3601*4b8b8d74SJaiprakash Singh
3602*4b8b8d74SJaiprakash Singh /**
3603*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_xfer_const
3604*4b8b8d74SJaiprakash Singh *
3605*4b8b8d74SJaiprakash Singh * SPI Constants Register
3606*4b8b8d74SJaiprakash Singh */
3607*4b8b8d74SJaiprakash Singh union ody_spix_xfer_const {
3608*4b8b8d74SJaiprakash Singh uint64_t u;
3609*4b8b8d74SJaiprakash Singh struct ody_spix_xfer_const_s {
3610*4b8b8d74SJaiprakash Singh uint64_t has_xfer_support : 1;
3611*4b8b8d74SJaiprakash Singh uint64_t read_buf_depth : 5;
3612*4b8b8d74SJaiprakash Singh uint64_t reserved_6_63 : 58;
3613*4b8b8d74SJaiprakash Singh } s;
3614*4b8b8d74SJaiprakash Singh /* struct ody_spix_xfer_const_s cn; */
3615*4b8b8d74SJaiprakash Singh };
3616*4b8b8d74SJaiprakash Singh typedef union ody_spix_xfer_const ody_spix_xfer_const_t;
3617*4b8b8d74SJaiprakash Singh
3618*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_XFER_CONST(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_XFER_CONST(uint64_t a)3619*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_XFER_CONST(uint64_t a)
3620*4b8b8d74SJaiprakash Singh {
3621*4b8b8d74SJaiprakash Singh if (a <= 1)
3622*4b8b8d74SJaiprakash Singh return 0x804000008230ll + 0x1000000000ll * ((a) & 0x1);
3623*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_XFER_CONST", 1, a, 0, 0, 0, 0, 0);
3624*4b8b8d74SJaiprakash Singh }
3625*4b8b8d74SJaiprakash Singh
3626*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_XFER_CONST(a) ody_spix_xfer_const_t
3627*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_XFER_CONST(a) CSR_TYPE_NCB
3628*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_XFER_CONST(a) "SPIX_XFER_CONST"
3629*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_XFER_CONST(a) 0x0 /* PF_BAR0 */
3630*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_XFER_CONST(a) (a)
3631*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_XFER_CONST(a) (a), -1, -1, -1
3632*4b8b8d74SJaiprakash Singh
3633*4b8b8d74SJaiprakash Singh /**
3634*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_xfer_func_cmd
3635*4b8b8d74SJaiprakash Singh *
3636*4b8b8d74SJaiprakash Singh * SPI XFER Function Command Register
3637*4b8b8d74SJaiprakash Singh * This register is used to issue the command for TX_RX_MODE, where the Xfer State Machine
3638*4b8b8d74SJaiprakash Singh * is used to drive MOSI.
3639*4b8b8d74SJaiprakash Singh */
3640*4b8b8d74SJaiprakash Singh union ody_spix_xfer_func_cmd {
3641*4b8b8d74SJaiprakash Singh uint64_t u;
3642*4b8b8d74SJaiprakash Singh struct ody_spix_xfer_func_cmd_s {
3643*4b8b8d74SJaiprakash Singh uint64_t dir : 1;
3644*4b8b8d74SJaiprakash Singh uint64_t reserved_1 : 1;
3645*4b8b8d74SJaiprakash Singh uint64_t size : 6;
3646*4b8b8d74SJaiprakash Singh uint64_t addr : 24;
3647*4b8b8d74SJaiprakash Singh uint64_t wdata : 32;
3648*4b8b8d74SJaiprakash Singh } s;
3649*4b8b8d74SJaiprakash Singh /* struct ody_spix_xfer_func_cmd_s cn; */
3650*4b8b8d74SJaiprakash Singh };
3651*4b8b8d74SJaiprakash Singh typedef union ody_spix_xfer_func_cmd ody_spix_xfer_func_cmd_t;
3652*4b8b8d74SJaiprakash Singh
3653*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_XFER_FUNC_CMD(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_XFER_FUNC_CMD(uint64_t a)3654*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_XFER_FUNC_CMD(uint64_t a)
3655*4b8b8d74SJaiprakash Singh {
3656*4b8b8d74SJaiprakash Singh if (a <= 1)
3657*4b8b8d74SJaiprakash Singh return 0x804000008200ll + 0x1000000000ll * ((a) & 0x1);
3658*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_XFER_FUNC_CMD", 1, a, 0, 0, 0, 0, 0);
3659*4b8b8d74SJaiprakash Singh }
3660*4b8b8d74SJaiprakash Singh
3661*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_XFER_FUNC_CMD(a) ody_spix_xfer_func_cmd_t
3662*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_XFER_FUNC_CMD(a) CSR_TYPE_NCB
3663*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_XFER_FUNC_CMD(a) "SPIX_XFER_FUNC_CMD"
3664*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_XFER_FUNC_CMD(a) 0x0 /* PF_BAR0 */
3665*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_XFER_FUNC_CMD(a) (a)
3666*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_XFER_FUNC_CMD(a) (a), -1, -1, -1
3667*4b8b8d74SJaiprakash Singh
3668*4b8b8d74SJaiprakash Singh /**
3669*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_xfer_func_ctrl
3670*4b8b8d74SJaiprakash Singh *
3671*4b8b8d74SJaiprakash Singh * SPI XFER Function Control Register
3672*4b8b8d74SJaiprakash Singh * This register is used to control the Xfer State Machine for both the modes.
3673*4b8b8d74SJaiprakash Singh */
3674*4b8b8d74SJaiprakash Singh union ody_spix_xfer_func_ctrl {
3675*4b8b8d74SJaiprakash Singh uint64_t u;
3676*4b8b8d74SJaiprakash Singh struct ody_spix_xfer_func_ctrl_s {
3677*4b8b8d74SJaiprakash Singh uint64_t xfer_func_start : 1;
3678*4b8b8d74SJaiprakash Singh uint64_t clk_drive_pol : 1;
3679*4b8b8d74SJaiprakash Singh uint64_t clk_capture_pol : 1;
3680*4b8b8d74SJaiprakash Singh uint64_t xfer_func_enable : 1;
3681*4b8b8d74SJaiprakash Singh uint64_t receive_enable : 1;
3682*4b8b8d74SJaiprakash Singh uint64_t tpm_device : 1;
3683*4b8b8d74SJaiprakash Singh uint64_t cs_n_hold : 4;
3684*4b8b8d74SJaiprakash Singh uint64_t flush_read_buf : 1;
3685*4b8b8d74SJaiprakash Singh uint64_t soft_reset : 1;
3686*4b8b8d74SJaiprakash Singh uint64_t read_buf_watermark : 6;
3687*4b8b8d74SJaiprakash Singh uint64_t reserved_18_63 : 46;
3688*4b8b8d74SJaiprakash Singh } s;
3689*4b8b8d74SJaiprakash Singh /* struct ody_spix_xfer_func_ctrl_s cn; */
3690*4b8b8d74SJaiprakash Singh };
3691*4b8b8d74SJaiprakash Singh typedef union ody_spix_xfer_func_ctrl ody_spix_xfer_func_ctrl_t;
3692*4b8b8d74SJaiprakash Singh
3693*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_XFER_FUNC_CTRL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_XFER_FUNC_CTRL(uint64_t a)3694*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_XFER_FUNC_CTRL(uint64_t a)
3695*4b8b8d74SJaiprakash Singh {
3696*4b8b8d74SJaiprakash Singh if (a <= 1)
3697*4b8b8d74SJaiprakash Singh return 0x804000008210ll + 0x1000000000ll * ((a) & 0x1);
3698*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_XFER_FUNC_CTRL", 1, a, 0, 0, 0, 0, 0);
3699*4b8b8d74SJaiprakash Singh }
3700*4b8b8d74SJaiprakash Singh
3701*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_XFER_FUNC_CTRL(a) ody_spix_xfer_func_ctrl_t
3702*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_XFER_FUNC_CTRL(a) CSR_TYPE_NCB
3703*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_XFER_FUNC_CTRL(a) "SPIX_XFER_FUNC_CTRL"
3704*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_XFER_FUNC_CTRL(a) 0x0 /* PF_BAR0 */
3705*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_XFER_FUNC_CTRL(a) (a)
3706*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_XFER_FUNC_CTRL(a) (a), -1, -1, -1
3707*4b8b8d74SJaiprakash Singh
3708*4b8b8d74SJaiprakash Singh /**
3709*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_xfer_func_ctrl_read_data#
3710*4b8b8d74SJaiprakash Singh *
3711*4b8b8d74SJaiprakash Singh * SPI Transfer Function Read Data Register
3712*4b8b8d74SJaiprakash Singh * This register has the read data from SPI device
3713*4b8b8d74SJaiprakash Singh */
3714*4b8b8d74SJaiprakash Singh union ody_spix_xfer_func_ctrl_read_datax {
3715*4b8b8d74SJaiprakash Singh uint64_t u;
3716*4b8b8d74SJaiprakash Singh struct ody_spix_xfer_func_ctrl_read_datax_s {
3717*4b8b8d74SJaiprakash Singh uint64_t rdata : 64;
3718*4b8b8d74SJaiprakash Singh } s;
3719*4b8b8d74SJaiprakash Singh /* struct ody_spix_xfer_func_ctrl_read_datax_s cn; */
3720*4b8b8d74SJaiprakash Singh };
3721*4b8b8d74SJaiprakash Singh typedef union ody_spix_xfer_func_ctrl_read_datax ody_spix_xfer_func_ctrl_read_datax_t;
3722*4b8b8d74SJaiprakash Singh
3723*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_XFER_FUNC_CTRL_READ_DATAX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SPIX_XFER_FUNC_CTRL_READ_DATAX(uint64_t a,uint64_t b)3724*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_XFER_FUNC_CTRL_READ_DATAX(uint64_t a, uint64_t b)
3725*4b8b8d74SJaiprakash Singh {
3726*4b8b8d74SJaiprakash Singh if ((a <= 1) && (b <= 31))
3727*4b8b8d74SJaiprakash Singh return 0x804000008000ll + 0x1000000000ll * ((a) & 0x1) + 8ll * ((b) & 0x1f);
3728*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_XFER_FUNC_CTRL_READ_DATAX", 2, a, b, 0, 0, 0, 0);
3729*4b8b8d74SJaiprakash Singh }
3730*4b8b8d74SJaiprakash Singh
3731*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_XFER_FUNC_CTRL_READ_DATAX(a, b) ody_spix_xfer_func_ctrl_read_datax_t
3732*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_XFER_FUNC_CTRL_READ_DATAX(a, b) CSR_TYPE_NCB
3733*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_XFER_FUNC_CTRL_READ_DATAX(a, b) "SPIX_XFER_FUNC_CTRL_READ_DATAX"
3734*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_XFER_FUNC_CTRL_READ_DATAX(a, b) 0x0 /* PF_BAR0 */
3735*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_XFER_FUNC_CTRL_READ_DATAX(a, b) (a)
3736*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_XFER_FUNC_CTRL_READ_DATAX(a, b) (a), (b), -1, -1
3737*4b8b8d74SJaiprakash Singh
3738*4b8b8d74SJaiprakash Singh /**
3739*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_xfer_func_sts
3740*4b8b8d74SJaiprakash Singh *
3741*4b8b8d74SJaiprakash Singh * SPI XFER Function Control Read and write status Register
3742*4b8b8d74SJaiprakash Singh * This register holds the status of the Xfer State Machine. This register should be
3743*4b8b8d74SJaiprakash Singh * polled by software
3744*4b8b8d74SJaiprakash Singh * to know read write operation is complete etc.
3745*4b8b8d74SJaiprakash Singh */
3746*4b8b8d74SJaiprakash Singh union ody_spix_xfer_func_sts {
3747*4b8b8d74SJaiprakash Singh uint64_t u;
3748*4b8b8d74SJaiprakash Singh struct ody_spix_xfer_func_sts_s {
3749*4b8b8d74SJaiprakash Singh uint64_t read_done : 1;
3750*4b8b8d74SJaiprakash Singh uint64_t write_done : 1;
3751*4b8b8d74SJaiprakash Singh uint64_t receive_buf_full : 1;
3752*4b8b8d74SJaiprakash Singh uint64_t receive_buf_empty : 1;
3753*4b8b8d74SJaiprakash Singh uint64_t xfer_ctrl_busy : 1;
3754*4b8b8d74SJaiprakash Singh uint64_t xfer_cur_state : 3;
3755*4b8b8d74SJaiprakash Singh uint64_t ready_received : 1;
3756*4b8b8d74SJaiprakash Singh uint64_t water_mark_reached : 1;
3757*4b8b8d74SJaiprakash Singh uint64_t write_buf_full : 1;
3758*4b8b8d74SJaiprakash Singh uint64_t write_buf_empty : 1;
3759*4b8b8d74SJaiprakash Singh uint64_t num_entries_write_buf : 5;
3760*4b8b8d74SJaiprakash Singh uint64_t num_entries_read_buf : 6;
3761*4b8b8d74SJaiprakash Singh uint64_t reserved_23_63 : 41;
3762*4b8b8d74SJaiprakash Singh } s;
3763*4b8b8d74SJaiprakash Singh /* struct ody_spix_xfer_func_sts_s cn; */
3764*4b8b8d74SJaiprakash Singh };
3765*4b8b8d74SJaiprakash Singh typedef union ody_spix_xfer_func_sts ody_spix_xfer_func_sts_t;
3766*4b8b8d74SJaiprakash Singh
3767*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_XFER_FUNC_STS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_XFER_FUNC_STS(uint64_t a)3768*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_XFER_FUNC_STS(uint64_t a)
3769*4b8b8d74SJaiprakash Singh {
3770*4b8b8d74SJaiprakash Singh if (a <= 1)
3771*4b8b8d74SJaiprakash Singh return 0x804000008218ll + 0x1000000000ll * ((a) & 0x1);
3772*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_XFER_FUNC_STS", 1, a, 0, 0, 0, 0, 0);
3773*4b8b8d74SJaiprakash Singh }
3774*4b8b8d74SJaiprakash Singh
3775*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_XFER_FUNC_STS(a) ody_spix_xfer_func_sts_t
3776*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_XFER_FUNC_STS(a) CSR_TYPE_NCB
3777*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_XFER_FUNC_STS(a) "SPIX_XFER_FUNC_STS"
3778*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_XFER_FUNC_STS(a) 0x0 /* PF_BAR0 */
3779*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_XFER_FUNC_STS(a) (a)
3780*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_XFER_FUNC_STS(a) (a), -1, -1, -1
3781*4b8b8d74SJaiprakash Singh
3782*4b8b8d74SJaiprakash Singh /**
3783*4b8b8d74SJaiprakash Singh * Register (NCB) spi#_xfer_func_wdata
3784*4b8b8d74SJaiprakash Singh *
3785*4b8b8d74SJaiprakash Singh * SPI XFER Function Write Data Register
3786*4b8b8d74SJaiprakash Singh * This register is used in TX_RX_MODE of Xfer State Machine when the SIZE is more than
3787*4b8b8d74SJaiprakash Singh * 4 bytes and upto 64 bytes.
3788*4b8b8d74SJaiprakash Singh */
3789*4b8b8d74SJaiprakash Singh union ody_spix_xfer_func_wdata {
3790*4b8b8d74SJaiprakash Singh uint64_t u;
3791*4b8b8d74SJaiprakash Singh struct ody_spix_xfer_func_wdata_s {
3792*4b8b8d74SJaiprakash Singh uint64_t wdata : 64;
3793*4b8b8d74SJaiprakash Singh } s;
3794*4b8b8d74SJaiprakash Singh /* struct ody_spix_xfer_func_wdata_s cn; */
3795*4b8b8d74SJaiprakash Singh };
3796*4b8b8d74SJaiprakash Singh typedef union ody_spix_xfer_func_wdata ody_spix_xfer_func_wdata_t;
3797*4b8b8d74SJaiprakash Singh
3798*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_XFER_FUNC_WDATA(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SPIX_XFER_FUNC_WDATA(uint64_t a)3799*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SPIX_XFER_FUNC_WDATA(uint64_t a)
3800*4b8b8d74SJaiprakash Singh {
3801*4b8b8d74SJaiprakash Singh if (a <= 1)
3802*4b8b8d74SJaiprakash Singh return 0x804000008208ll + 0x1000000000ll * ((a) & 0x1);
3803*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SPIX_XFER_FUNC_WDATA", 1, a, 0, 0, 0, 0, 0);
3804*4b8b8d74SJaiprakash Singh }
3805*4b8b8d74SJaiprakash Singh
3806*4b8b8d74SJaiprakash Singh #define typedef_ODY_SPIX_XFER_FUNC_WDATA(a) ody_spix_xfer_func_wdata_t
3807*4b8b8d74SJaiprakash Singh #define bustype_ODY_SPIX_XFER_FUNC_WDATA(a) CSR_TYPE_NCB
3808*4b8b8d74SJaiprakash Singh #define basename_ODY_SPIX_XFER_FUNC_WDATA(a) "SPIX_XFER_FUNC_WDATA"
3809*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SPIX_XFER_FUNC_WDATA(a) 0x0 /* PF_BAR0 */
3810*4b8b8d74SJaiprakash Singh #define busnum_ODY_SPIX_XFER_FUNC_WDATA(a) (a)
3811*4b8b8d74SJaiprakash Singh #define arguments_ODY_SPIX_XFER_FUNC_WDATA(a) (a), -1, -1, -1
3812*4b8b8d74SJaiprakash Singh
3813*4b8b8d74SJaiprakash Singh #endif /* __ODY_CSRS_SPI_H__ */
3814