@@ -172,7 +172,7 @@ static void transfer(int fd, uint8_t const *tx, uint8_t const *rx, size_t len)
172
172
173
173
static void print_usage (const char * prog )
174
174
{
175
- printf ("Usage: %s [-2348CDHILNORSbdilopsv ]\n" , prog );
175
+ printf ("Usage: %s [-2348CDFHILMNORSZbdilopsv ]\n" , prog );
176
176
puts ("general device settings:\n"
177
177
" -D --device device to use (default /dev/spidev1.1)\n"
178
178
" -s --speed max speed (Hz)\n"
@@ -181,11 +181,13 @@ static void print_usage(const char *prog)
181
181
"spi mode:\n"
182
182
" -H --cpha clock phase\n"
183
183
" -O --cpol clock polarity\n"
184
+ " -F --rx-cpha-flip flip CPHA on Rx only xfer\n"
184
185
"number of wires for transmission:\n"
185
186
" -2 --dual dual transfer\n"
186
187
" -4 --quad quad transfer\n"
187
188
" -8 --octal octal transfer\n"
188
189
" -3 --3wire SI/SO signals shared\n"
190
+ " -Z --3wire-hiz high impedance turnaround\n"
189
191
"data:\n"
190
192
" -i --input input data from a file (e.g. \"test.bin\")\n"
191
193
" -o --output output data to a file (e.g. \"results.bin\")\n"
@@ -198,6 +200,7 @@ static void print_usage(const char *prog)
198
200
" -C --cs-high chip select active high\n"
199
201
" -N --no-cs no chip select\n"
200
202
" -R --ready slave pulls low to pause\n"
203
+ " -M --mosi-idle-low leave mosi line low when idle\n"
201
204
"misc:\n"
202
205
" -v --verbose Verbose (show tx buffer)\n" );
203
206
exit (1 );
@@ -213,10 +216,12 @@ static void parse_opts(int argc, char *argv[])
213
216
{ "loop" , 0 , 0 , 'l' },
214
217
{ "cpha" , 0 , 0 , 'H' },
215
218
{ "cpol" , 0 , 0 , 'O' },
219
+ { "rx-cpha-flip" , 0 , 0 , 'F' },
216
220
{ "dual" , 0 , 0 , '2' },
217
221
{ "quad" , 0 , 0 , '4' },
218
222
{ "octal" , 0 , 0 , '8' },
219
223
{ "3wire" , 0 , 0 , '3' },
224
+ { "3wire-hiz" , 0 , 0 , 'Z' },
220
225
{ "input" , 1 , 0 , 'i' },
221
226
{ "output" , 1 , 0 , 'o' },
222
227
{ "size" , 1 , 0 , 'S' },
@@ -226,12 +231,13 @@ static void parse_opts(int argc, char *argv[])
226
231
{ "cs-high" , 0 , 0 , 'C' },
227
232
{ "no-cs" , 0 , 0 , 'N' },
228
233
{ "ready" , 0 , 0 , 'R' },
234
+ { "mosi-idle-low" , 0 , 0 , 'M' },
229
235
{ "verbose" , 0 , 0 , 'v' },
230
236
{ NULL , 0 , 0 , 0 },
231
237
};
232
238
int c ;
233
239
234
- c = getopt_long (argc , argv , "D:s:d:b:i:o:lHOLC3NR248p :vS:I:" ,
240
+ c = getopt_long (argc , argv , "D:s:d:b:i:o:lHOLC3ZFMNR248p :vS:I:" ,
235
241
lopts , NULL );
236
242
237
243
if (c == -1 )
@@ -274,6 +280,15 @@ static void parse_opts(int argc, char *argv[])
274
280
case '3' :
275
281
mode |= SPI_3WIRE ;
276
282
break ;
283
+ case 'Z' :
284
+ mode |= SPI_3WIRE_HIZ ;
285
+ break ;
286
+ case 'F' :
287
+ mode |= SPI_RX_CPHA_FLIP ;
288
+ break ;
289
+ case 'M' :
290
+ mode |= SPI_MOSI_IDLE_LOW ;
291
+ break ;
277
292
case 'N' :
278
293
mode |= SPI_NO_CS ;
279
294
break ;
0 commit comments