|
7 | 7 | * Copyright (C) 2014-2017 Glider bvba
|
8 | 8 | */
|
9 | 9 |
|
10 |
| -#include <linux/bitfield.h> |
11 | 10 | #include <linux/bitmap.h>
|
12 | 11 | #include <linux/clk.h>
|
13 | 12 | #include <linux/completion.h>
|
@@ -64,129 +63,6 @@ struct sh_msiof_spi_priv {
|
64 | 63 |
|
65 | 64 | #define MAX_SS 3 /* Maximum number of native chip selects */
|
66 | 65 |
|
67 |
| -#define SITMDR1 0x00 /* Transmit Mode Register 1 */ |
68 |
| -#define SITMDR2 0x04 /* Transmit Mode Register 2 */ |
69 |
| -#define SITMDR3 0x08 /* Transmit Mode Register 3 */ |
70 |
| -#define SIRMDR1 0x10 /* Receive Mode Register 1 */ |
71 |
| -#define SIRMDR2 0x14 /* Receive Mode Register 2 */ |
72 |
| -#define SIRMDR3 0x18 /* Receive Mode Register 3 */ |
73 |
| -#define SITSCR 0x20 /* Transmit Clock Select Register */ |
74 |
| -#define SIRSCR 0x22 /* Receive Clock Select Register (SH, A1, APE6) */ |
75 |
| -#define SICTR 0x28 /* Control Register */ |
76 |
| -#define SIFCTR 0x30 /* FIFO Control Register */ |
77 |
| -#define SISTR 0x40 /* Status Register */ |
78 |
| -#define SIIER 0x44 /* Interrupt Enable Register */ |
79 |
| -#define SITDR1 0x48 /* Transmit Control Data Register 1 (SH, A1) */ |
80 |
| -#define SITDR2 0x4c /* Transmit Control Data Register 2 (SH, A1) */ |
81 |
| -#define SITFDR 0x50 /* Transmit FIFO Data Register */ |
82 |
| -#define SIRDR1 0x58 /* Receive Control Data Register 1 (SH, A1) */ |
83 |
| -#define SIRDR2 0x5c /* Receive Control Data Register 2 (SH, A1) */ |
84 |
| -#define SIRFDR 0x60 /* Receive FIFO Data Register */ |
85 |
| - |
86 |
| -/* SITMDR1 and SIRMDR1 */ |
87 |
| -#define SIMDR1_TRMD BIT(31) /* Transfer Mode (1 = Master mode) */ |
88 |
| -#define SIMDR1_SYNCMD GENMASK(29, 28) /* SYNC Mode */ |
89 |
| -#define SIMDR1_SYNCMD_PULSE 0U /* Frame start sync pulse */ |
90 |
| -#define SIMDR1_SYNCMD_SPI 2U /* Level mode/SPI */ |
91 |
| -#define SIMDR1_SYNCMD_LR 3U /* L/R mode */ |
92 |
| -#define SIMDR1_SYNCAC BIT(25) /* Sync Polarity (1 = Active-low) */ |
93 |
| -#define SIMDR1_BITLSB BIT(24) /* MSB/LSB First (1 = LSB first) */ |
94 |
| -#define SIMDR1_DTDL GENMASK(22, 20) /* Data Pin Bit Delay for MSIOF_SYNC */ |
95 |
| -#define SIMDR1_SYNCDL GENMASK(18, 16) /* Frame Sync Signal Timing Delay */ |
96 |
| -#define SIMDR1_FLD GENMASK(3, 2) /* Frame Sync Signal Interval (0-3) */ |
97 |
| -#define SIMDR1_XXSTP BIT(0) /* Transmission/Reception Stop on FIFO */ |
98 |
| -/* SITMDR1 */ |
99 |
| -#define SITMDR1_PCON BIT(30) /* Transfer Signal Connection */ |
100 |
| -#define SITMDR1_SYNCCH GENMASK(27, 26) /* Sync Signal Channel Select */ |
101 |
| - /* 0=MSIOF_SYNC, 1=MSIOF_SS1, 2=MSIOF_SS2 */ |
102 |
| - |
103 |
| -/* SITMDR2 and SIRMDR2 */ |
104 |
| -#define SIMDR2_GRP GENMASK(31, 30) /* Group Count */ |
105 |
| -#define SIMDR2_BITLEN1 GENMASK(28, 24) /* Data Size (8-32 bits) */ |
106 |
| -#define SIMDR2_WDLEN1 GENMASK(23, 16) /* Word Count (1-64/256 (SH, A1))) */ |
107 |
| -#define SIMDR2_GRPMASK GENMASK(3, 0) /* Group Output Mask 1-4 (SH, A1) */ |
108 |
| - |
109 |
| -/* SITMDR3 and SIRMDR3 */ |
110 |
| -#define SIMDR3_BITLEN2 GENMASK(28, 24) /* Data Size (8-32 bits) */ |
111 |
| -#define SIMDR3_WDLEN2 GENMASK(23, 16) /* Word Count (1-64/256 (SH, A1))) */ |
112 |
| - |
113 |
| -/* SITSCR and SIRSCR */ |
114 |
| -#define SISCR_BRPS GENMASK(12, 8) /* Prescaler Setting (1-32) */ |
115 |
| -#define SISCR_BRDV GENMASK(2, 0) /* Baud Rate Generator's Division Ratio */ |
116 |
| - |
117 |
| -/* SICTR */ |
118 |
| -#define SICTR_TSCKIZ GENMASK(31, 30) /* Transmit Clock I/O Polarity Select */ |
119 |
| -#define SICTR_TSCKIZ_SCK BIT(31) /* Disable SCK when TX disabled */ |
120 |
| -#define SICTR_TSCKIZ_POL BIT(30) /* Transmit Clock Polarity */ |
121 |
| -#define SICTR_RSCKIZ GENMASK(29, 28) /* Receive Clock Polarity Select */ |
122 |
| -#define SICTR_RSCKIZ_SCK BIT(29) /* Must match CTR_TSCKIZ_SCK */ |
123 |
| -#define SICTR_RSCKIZ_POL BIT(28) /* Receive Clock Polarity */ |
124 |
| -#define SICTR_TEDG BIT(27) /* Transmit Timing (1 = falling edge) */ |
125 |
| -#define SICTR_REDG BIT(26) /* Receive Timing (1 = falling edge) */ |
126 |
| -#define SICTR_TXDIZ GENMASK(23, 22) /* Pin Output When TX is Disabled */ |
127 |
| -#define SICTR_TXDIZ_LOW 0U /* 0 */ |
128 |
| -#define SICTR_TXDIZ_HIGH 1U /* 1 */ |
129 |
| -#define SICTR_TXDIZ_HIZ 2U /* High-impedance */ |
130 |
| -#define SICTR_TSCKE BIT(15) /* Transmit Serial Clock Output Enable */ |
131 |
| -#define SICTR_TFSE BIT(14) /* Transmit Frame Sync Signal Output Enable */ |
132 |
| -#define SICTR_TXE BIT(9) /* Transmit Enable */ |
133 |
| -#define SICTR_RXE BIT(8) /* Receive Enable */ |
134 |
| -#define SICTR_TXRST BIT(1) /* Transmit Reset */ |
135 |
| -#define SICTR_RXRST BIT(0) /* Receive Reset */ |
136 |
| - |
137 |
| -/* SIFCTR */ |
138 |
| -#define SIFCTR_TFWM GENMASK(31, 29) /* Transmit FIFO Watermark */ |
139 |
| -#define SIFCTR_TFWM_64 0U /* Transfer Request when 64 empty stages */ |
140 |
| -#define SIFCTR_TFWM_32 1U /* Transfer Request when 32 empty stages */ |
141 |
| -#define SIFCTR_TFWM_24 2U /* Transfer Request when 24 empty stages */ |
142 |
| -#define SIFCTR_TFWM_16 3U /* Transfer Request when 16 empty stages */ |
143 |
| -#define SIFCTR_TFWM_12 4U /* Transfer Request when 12 empty stages */ |
144 |
| -#define SIFCTR_TFWM_8 5U /* Transfer Request when 8 empty stages */ |
145 |
| -#define SIFCTR_TFWM_4 6U /* Transfer Request when 4 empty stages */ |
146 |
| -#define SIFCTR_TFWM_1 7U /* Transfer Request when 1 empty stage */ |
147 |
| -#define SIFCTR_TFUA GENMASK(28, 20) /* Transmit FIFO Usable Area */ |
148 |
| -#define SIFCTR_RFWM GENMASK(15, 13) /* Receive FIFO Watermark */ |
149 |
| -#define SIFCTR_RFWM_1 0U /* Transfer Request when 1 valid stages */ |
150 |
| -#define SIFCTR_RFWM_4 1U /* Transfer Request when 4 valid stages */ |
151 |
| -#define SIFCTR_RFWM_8 2U /* Transfer Request when 8 valid stages */ |
152 |
| -#define SIFCTR_RFWM_16 3U /* Transfer Request when 16 valid stages */ |
153 |
| -#define SIFCTR_RFWM_32 4U /* Transfer Request when 32 valid stages */ |
154 |
| -#define SIFCTR_RFWM_64 5U /* Transfer Request when 64 valid stages */ |
155 |
| -#define SIFCTR_RFWM_128 6U /* Transfer Request when 128 valid stages */ |
156 |
| -#define SIFCTR_RFWM_256 7U /* Transfer Request when 256 valid stages */ |
157 |
| -#define SIFCTR_RFUA GENMASK(12, 4) /* Receive FIFO Usable Area (0x40 = full) */ |
158 |
| - |
159 |
| -/* SISTR */ |
160 |
| -#define SISTR_TFEMP BIT(29) /* Transmit FIFO Empty */ |
161 |
| -#define SISTR_TDREQ BIT(28) /* Transmit Data Transfer Request */ |
162 |
| -#define SISTR_TEOF BIT(23) /* Frame Transmission End */ |
163 |
| -#define SISTR_TFSERR BIT(21) /* Transmit Frame Synchronization Error */ |
164 |
| -#define SISTR_TFOVF BIT(20) /* Transmit FIFO Overflow */ |
165 |
| -#define SISTR_TFUDF BIT(19) /* Transmit FIFO Underflow */ |
166 |
| -#define SISTR_RFFUL BIT(13) /* Receive FIFO Full */ |
167 |
| -#define SISTR_RDREQ BIT(12) /* Receive Data Transfer Request */ |
168 |
| -#define SISTR_REOF BIT(7) /* Frame Reception End */ |
169 |
| -#define SISTR_RFSERR BIT(5) /* Receive Frame Synchronization Error */ |
170 |
| -#define SISTR_RFUDF BIT(4) /* Receive FIFO Underflow */ |
171 |
| -#define SISTR_RFOVF BIT(3) /* Receive FIFO Overflow */ |
172 |
| - |
173 |
| -/* SIIER */ |
174 |
| -#define SIIER_TDMAE BIT(31) /* Transmit Data DMA Transfer Req. Enable */ |
175 |
| -#define SIIER_TFEMPE BIT(29) /* Transmit FIFO Empty Enable */ |
176 |
| -#define SIIER_TDREQE BIT(28) /* Transmit Data Transfer Request Enable */ |
177 |
| -#define SIIER_TEOFE BIT(23) /* Frame Transmission End Enable */ |
178 |
| -#define SIIER_TFSERRE BIT(21) /* Transmit Frame Sync Error Enable */ |
179 |
| -#define SIIER_TFOVFE BIT(20) /* Transmit FIFO Overflow Enable */ |
180 |
| -#define SIIER_TFUDFE BIT(19) /* Transmit FIFO Underflow Enable */ |
181 |
| -#define SIIER_RDMAE BIT(15) /* Receive Data DMA Transfer Req. Enable */ |
182 |
| -#define SIIER_RFFULE BIT(13) /* Receive FIFO Full Enable */ |
183 |
| -#define SIIER_RDREQE BIT(12) /* Receive Data Transfer Request Enable */ |
184 |
| -#define SIIER_REOFE BIT(7) /* Frame Reception End Enable */ |
185 |
| -#define SIIER_RFSERRE BIT(5) /* Receive Frame Sync Error Enable */ |
186 |
| -#define SIIER_RFUDFE BIT(4) /* Receive FIFO Underflow Enable */ |
187 |
| -#define SIIER_RFOVFE BIT(3) /* Receive FIFO Overflow Enable */ |
188 |
| - |
189 |
| - |
190 | 66 | static u32 sh_msiof_read(struct sh_msiof_spi_priv *p, int reg_offs)
|
191 | 67 | {
|
192 | 68 | switch (reg_offs) {
|
|
0 commit comments