1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#ifndef TYW_SFMA0_H
#define TYW_SFMA0_H
#include "r_typedefs.h"
/*------------------------------------------------------------------------------------------------------*/
/* Constant definition */
/*------------------------------------------------------------------------------------------------------*/
/* return value */
#define U1G_SFMA0_RET_OK ((uint8_t)0) /* OK */
#define U1G_SFMA0_RET_NG_PARAM ((uint8_t)1) /* Parameter Invalid */
#define U1G_SFMA0_RET_NG_FAIL ((uint8_t)2) /* Fail */
/* value number */
#define U1G_SFMA0_NUM_OP_DATA ((uint8_t)4) /* Number of Option Data */
#define U1G_SFMA0_NUM_DATA ((uint8_t)2) /* Number of Transfer Data */
/* value for "Address Enable" */
#define U1G_SFMA0_EN_ADDR_DISABLE ((uint8_t)0x00) /* Output disabled */
#define U1G_SFMA0_EN_ADDR_8BIT ((uint8_t)0x04) /* ADR[23:16] */
#define U1G_SFMA0_EN_ADDR_16BIT ((uint8_t)0x06) /* ADR[23:8] */
#define U1G_SFMA0_EN_ADDR_24BIT ((uint8_t)0x07) /* ADR[23:0] */
#define U1G_SFMA0_EN_ADDR_32BIT ((uint8_t)0x0F) /* ADR[31:0] */
/* value for "Option Data Enable" */
#define U1G_SFMA0_EN_OP_DATA_DISABLE ((uint8_t)0x00) /* Output disabled */
#define U1G_SFMA0_EN_OP_DATA_OPD3 ((uint8_t)0x08) /* OPD3 */
#define U1G_SFMA0_EN_OP_DATA_OPD3_OPD2 ((uint8_t)0x0C) /* OPD3, OPD2 */
#define U1G_SFMA0_EN_OP_DATA_OPD3_OPD1 ((uint8_t)0x0E) /* OPD3, OPD2, OPD1 */
#define U1G_SFMA0_EN_OP_DATA_OPD3_OPD0 ((uint8_t)0x0F) /* OPD3, OPD2, OPD1, OPD0 */
/* value for "Transfer Data Enable" */
#define U1G_SFMA0_EN_DATA_DISABLE ((uint8_t)0x00) /* Not transferred */
#define U1G_SFMA0_EN_DATA_16BIT ((uint8_t)0x08) /* 16 bits transferred */
#define U1G_SFMA0_EN_DATA_32BIT ((uint8_t)0x0C) /* 32 bits transferred */
#define U1G_SFMA0_EN_DATA_64BIT ((uint8_t)0x0F) /* 64 bits transferred */
/* value for "Transfer Data Enable" */
#define U1G_SFMA0_NUM_DUMMY_CYCLE_1 ((uint8_t)0x00) /* 1 cycle */
#define U1G_SFMA0_NUM_DUMMY_CYCLE_2 ((uint8_t)0x01) /* 2 cycles */
#define U1G_SFMA0_NUM_DUMMY_CYCLE_3 ((uint8_t)0x02) /* 3 cycles */
#define U1G_SFMA0_NUM_DUMMY_CYCLE_4 ((uint8_t)0x03) /* 4 cycles */
#define U1G_SFMA0_NUM_DUMMY_CYCLE_5 ((uint8_t)0x04) /* 5 cycles */
#define U1G_SFMA0_NUM_DUMMY_CYCLE_6 ((uint8_t)0x05) /* 6 cycles */
#define U1G_SFMA0_NUM_DUMMY_CYCLE_7 ((uint8_t)0x06) /* 7 cycles */
#define U1G_SFMA0_NUM_DUMMY_CYCLE_8 ((uint8_t)0x07) /* 8 cycles */
/* value for "Command Bit Size", "Optional Command Bit Size", "Address Bit Size", */
/* "Option Data Bit Size" , "Transfer Data Bit Size", "Dummy Cycle Bit Size" */
#define U1G_SFMA0_SIZE_1BIT ((uint8_t)0x00) /* 1 bit */
#define U1G_SFMA0_SIZE_2BIT ((uint8_t)0x01) /* 2 bits */
#define U1G_SFMA0_SIZE_4BIT ((uint8_t)0x02) /* 4 bits */
/*------------------------------------------------------------------------------------------------------*/
/* Type definition */
/*------------------------------------------------------------------------------------------------------*/
/* data transfer */
/* */
/* <MEMO> */
/* - Setting value for members: */
/* - b4_en_addr : U1G_SFMA0_EN_ADDR_xxx */
/* - b4_en_op_data : U1G_SFMA0_EN_OP_DATA_xxx */
/* - b4_en_data : U1G_SFMA0_EN_DATA_xxx */
/* - b1_en_cmd : ON(enable), OFF(disable) */
/* - b1_en_op_cmd : ON(enable), OFF(disable) */
/* - b1_en_dmy_cycle : ON(enable), OFF(disable) */
/* - b1_en_write : ON(enable), OFF(disable) */
/* - b1_en_read : ON(enable), OFF(disable) */
/* - b1_ddr_addr : ON(DDR), OFF(SDR) */
/* - b1_ddr_op_data : ON(DDR), OFF(SDR) */
/* - b1_ddr_data : ON(DDR), OFF(SDR) */
/* - b1_keep_ssl : ON(SPBSSL is maintained at the end of transfer) */
/* : OFF(SPBSSL is negated at the end of transfer) */
/* - b3_num_dmy_cycle : U1G_SFMA0_NUM_DUMMY_CYCLE_xxx */
/* - b2_size_cmd : U1G_SFMA0_SIZE_xxx */
/* - b2_size_op_cmd : U1G_SFMA0_SIZE_xxx */
/* - b2_size_addr : U1G_SFMA0_SIZE_xxx */
/* - b2_size_op_data : U1G_SFMA0_SIZE_xxx */
/* - b2_size_data : U1G_SFMA0_SIZE_xxx */
/* - b2_size_dmy_cycle : U1G_SFMA0_SIZE_xxx */
/* - u1_cmd : any data */
/* - u1_opcmd : any data */
/* - u4_addr : any data */
/* - au1_op_data : any data */
/* - au4_wdata : any data */
/* - au4_rdata : do not set this member. */
typedef struct
{
uint32_t b4_en_addr : 4; /* Address Enable */
uint32_t b4_en_op_data : 4; /* Option Data Enable */
uint32_t b4_en_data : 4; /* Transfer Data Enable */
uint32_t b1_en_cmd : 1; /* Command Enable */
uint32_t b1_en_op_cmd : 1; /* Optional Command Enable */
uint32_t b1_en_dmy_cycle : 1; /* Dummy Cycle Enable */
uint32_t b1_en_write : 1; /* Data Write Enable */
uint32_t b1_en_read : 1; /* Data Read Enable */
uint32_t b1_ddr_addr : 1; /* Address DDR Enable */
uint32_t b1_ddr_op_data : 1; /* Option Data DDR Enable */
uint32_t b1_ddr_data : 1; /* Transfer Data DDR Enable */
uint32_t b1_keep_ssl : 1; /* SPBSSL Signal Level Keep */
uint32_t b3_num_dmy_cycle : 3; /* Number of Dummy Cycles */
uint32_t b2_size_cmd : 2; /* Command Bit Size */
uint32_t b2_size_op_cmd : 2; /* Optional Command Bit Size */
uint32_t b2_size_addr : 2; /* Address Bit Size */
uint32_t b2_size_op_data : 2; /* Option Data Bit Size */
/* --alignment-- */
uint8_t b2_size_data : 2; /* Transfer Data Bit Size */
uint8_t b2_size_dmy_cycle : 2; /* Dummy Cycle Bit Size */
uint8_t : 4; /* reserved */
uint8_t u1_cmd; /* Command */
uint8_t u1_opcmd; /* Option Command */
uint8_t u1_reserved; /* reserved */
/* --alignment-- */
uint32_t u4_addr; /* Address */
/* --alignment-- */
uint8_t au1_op_data[U1G_SFMA0_NUM_OP_DATA]; /* Option Data */
/* --alignment-- */
uint32_t au4_wdata[U1G_SFMA0_NUM_DATA]; /* Write Data */
/* --alignment-- */
uint32_t au4_rdata[U1G_SFMA0_NUM_DATA]; /* Read Data */
} st_SFMA0_Transfer;
/*------------------------------------------------------------------------------------------------------*/
/* Prototype declaration */
/*------------------------------------------------------------------------------------------------------*/
extern void TYW_SFMA0_Init(void); /* Initialize SFMA0 */
extern uint8_t TYW_SFMA0_Transfer(st_SFMA0_Transfer *pstt_transfer); /* Data Transfer */
#endif /* SFMA0_H */