Allman-astyler 
							
						 
					 
					
						
						
							
						
						eea9999dc5 
					 
					
						
						
							
							Revert "Allman now ( #6080 )" ( #6090 )  
						
						... 
						
						
						
						This reverts commit 98125f8860 
						
						
					 
					
						2019-05-14 00:09:54 +02:00 
						 
				 
			
				
					
						
							
							
								Allman-astyler 
							
						 
					 
					
						
						
							
						
						98125f8860 
					 
					
						
						
							
							Allman now ( #6080 )  
						
						... 
						
						
						
						* switch restyle script for CI
* remove confirmation
* restyle with allman 
						
						
					 
					
						2019-05-13 16:41:34 +02:00 
						 
				 
			
				
					
						
							
							
								david gauchard 
							
						 
					 
					
						
						
							
						
						77451d6ec9 
					 
					
						
						
							
							Hardware SPI BREAKING: unswap mode 2 and 3 for portability ( #5948 )  
						
						... 
						
						
						
						* Hardware SPI BREAKING: unswap mode 2 and 3 for portability
use SPI.restoreEsp8266LegacyMode2And3() for former behaviour 
						
						
					 
					
						2019-04-06 01:13:09 +02:00 
						 
				 
			
				
					
						
							
							
								Earle F. Philhower, III 
							
						 
					 
					
						
						
							
						
						8c01516f8a 
					 
					
						
						
							
							Allow unaligned input/output to SPI::transferBytes ( #5709 )  
						
						... 
						
						
						
						* Allow unaligned input/output to SPI::transferBytes
Fixes  #4967 
Support any alignment of input and output pointers and transfer lengths
in SPI::transferBytes.  Use 32-bit transfers and FIFO as much as
possible.
* Refactor misaligned transfer, avoid RMW to FIFO
The SPI FIFO can't properly do RMW (i.e. bytewise updates) because when
you read the FIFO you are actually reading the SPI read data, not what
was written into the write FIFO.
Refactor the transferBytes to take account of this.  For aligned input
and outputs, perform as before (but handle non-x4 sizes properly).  For
misaligned inputs, if it's unidirectional then do bytewise until the
direction data pointer is aligned and then do 32b accesses.  Fod
bidirectional and misaligned inputs, copy the output data to an aligned
buffer, do the transfer, then copy the read back data from temp aligned
buffer to the real input buffer.
* Fix comments, clean condition checks, save stack
Add more comments and adjust naming to be more informative in
transferBytes_ and *aligned_.  Save 64bytes of stack in double
misaligned case.
* Optimize misaligned transfers, reduce code size
On any misaligned input or output, always use a temp buffer.  No need
for special casing and bytewise ::transfer().  This should be faster as
bytewise ::transfer involves a significant number of IO register
accesses and setup.  Thanks to @devyte for the suggestion. 
						
						
					 
					
						2019-02-03 12:17:06 -03:00 
						 
				 
			
				
					
						
							
							
								david gauchard 
							
						 
					 
					
						
						
							
						
						3cc12b1e08 
					 
					
						
						
							
							arduino API's SPI::transfer(void*, size) (optimized) ( #4925 )  
						
						... 
						
						
						
						* SPI::transfer(void*, size) (optimized)
* spi: transfer(): fix checking size
* spi: transferBytes_: 32bits miso transfer
* spi: transferBytes_: fix declaration
* spi: transferBytes: add comments, reduce diff 
						
						
					 
					
						2018-07-27 10:44:02 -04:00 
						 
				 
			
				
					
						
							
							
								david gauchard 
							
						 
					 
					
						
						
							
						
						559cb35025 
					 
					
						
						
							
							spi: use const for output buffers ( #4552 )  
						
						
						
						
					 
					
						2018-03-23 13:39:20 -03:00 
						 
				 
			
				
					
						
							
							
								Richard Allen 
							
						 
					 
					
						
						
							
						
						40c159fcf5 
					 
					
						
						
							
							Remove a number of extui instructions  
						
						... 
						
						
						
						Using a uint8_t for the loop counter resulted
in a number of 8-bit extract (extui) instructions.
Using a uint32_t prevents this. 
						
						
					 
					
						2017-06-06 23:23:09 -05:00 
						 
				 
			
				
					
						
							
							
								Richard Allen 
							
						 
					 
					
						
						
							
						
						00815f2db4 
					 
					
						
						
							
							Manually manage FIFO volatility  
						
						... 
						
						
						
						Replace volatile with properly placed __sync_synchronize
SPI1W0 is volatile, but when writing multiple words
to the FIFO (which is really just a piece of SRAM),
we don't need to worry about write ordering. We only
need worry about write ordering such that all FIFO
words are written completely before HSPI is told to
use FIFO by setting SPI1CMD |= SPIBUSY; 
						
						
					 
					
						2017-06-06 23:23:09 -05:00 
						 
				 
			
				
					
						
							
							
								Richard Allen 
							
						 
					 
					
						
						
							
						
						c07c8dc88e 
					 
					
						
						
							
							Small cleanup to SPI write16 and write32 for big-endian  
						
						... 
						
						
						
						Merge a common line. 
						
						
					 
					
						2017-06-06 23:23:09 -05:00 
						 
				 
			
				
					
						
							
							
								jpmendoza 
							
						 
					 
					
						
						
							
						
						af0f5ed956 
					 
					
						
						
							
							Issue  #1062 : Implement support for HSPI overlap mode.  
						
						
						
						
					 
					
						2017-05-08 03:04:11 -05:00 
						 
				 
			
				
					
						
							
							
								Clemens Kirchgatterer 
							
						 
					 
					
						
						
							
						
						18297458be 
					 
					
						
						
							
							allows global object instances be switch off with defines ( #2344 )  
						
						
						
						
					 
					
						2016-08-01 11:21:50 +08:00 
						 
				 
			
				
					
						
							
							
								WereCatf 
							
						 
					 
					
						
						
							
						
						8ffe1aa2e2 
					 
					
						
						
							
							Speed up writePattern() a bit more  
						
						
						
						
					 
					
						2016-04-18 01:26:03 +03:00 
						 
				 
			
				
					
						
							
							
								WereCatf 
							
						 
					 
					
						
						
							
						
						a64a694f6d 
					 
					
						
						
							
							Speed up SPI.writePattern()  
						
						
						
						
					 
					
						2016-04-16 20:02:06 +03:00 
						 
				 
			
				
					
						
							
							
								Marco 
							
						 
					 
					
						
						
							
						
						bda212552c 
					 
					
						
						
							
							Fix SPI.transfer16() using wrong endianness  
						
						
						
						
					 
					
						2016-04-04 22:10:36 -07:00 
						 
				 
			
				
					
						
							
							
								reiyawea 
							
						 
					 
					
						
						
							
						
						66b68d4ada 
					 
					
						
						
							
							add CPOL setting  
						
						
						
						
					 
					
						2016-03-16 17:28:24 +08:00 
						 
				 
			
				
					
						
							
							
								John Doe 
							
						 
					 
					
						
						
							
						
						6ab3c76e03 
					 
					
						
						
							
							register and clock changes  
						
						
						
						
					 
					
						2015-06-02 00:11:20 +03:00 
						 
				 
			
				
					
						
							
							
								Markus Sattler 
							
						 
					 
					
						
						
							
						
						2eea25873d 
					 
					
						
						
							
							fix SPI speed calculation @160Mhz Clock  
						
						
						
						
					 
					
						2015-05-15 13:42:30 +02:00 
						 
				 
			
				
					
						
							
							
								Markus Sattler 
							
						 
					 
					
						
						
							
						
						e0c1b47937 
					 
					
						
						
							
							add some notes to the SPI functions (aligned to 32Bit)  
						
						... 
						
						
						
						- Fatal exception (9) 
						
						
					 
					
						2015-05-13 19:03:21 +02:00 
						 
				 
			
				
					
						
							
							
								Markus Sattler 
							
						 
					 
					
						
						
							
						
						27f45a205a 
					 
					
						
						
							
							SD:  
						
						... 
						
						
						
						- optimize SPI usage 148% write speed (24kB/s -> 37kB/s) and 127% read speed (121kB/s -> 155kB/s) at 8MHz
 - add clock frequency as parameter for begin(csPin, frequency)
 - SD @80MHz write: 84kB/s read: 231kB/s
SPI add functions:
 - void write32(uint32_t data);
 - void write32(uint32_t data, bool msb);
 - void transferBytes(uint8_t * out, uint8_t * in, uint32_t size);
Adafruit_ILI9341:
 - code clean 
						
						
					 
					
						2015-05-10 17:34:16 +02:00 
						 
				 
			
				
					
						
							
							
								Markus Sattler 
							
						 
					 
					
						
						
							
						
						070f2b3a14 
					 
					
						
						
							
							many speed optimizations in Adafruit_ILI9341 lib (3x times faster)  
						
						... 
						
						
						
						add new SPI function:
  void write(uint8_t data);
  void write16(uint16_t data);
  void write16(uint16_t data, bool msb);
  void writeBytes(uint8_t * data, uint32_t size);
  void writePattern(uint8_t * data, uint8_t size, uint32_t repeat);
Adafruit_ILI9341:
| Benchmark                 | Old (ms) | New (ms) | Speedup     |
| ------------------------- | -------- | -------- | ----------- |
| Screen fill 				| 1248369  | 278707   |  +347,91%   |
| Text 						| 86102    | 53785    |  +60,09%    |
| Lines 					| 825400   | 536374   |  +53,89%    |
| Horiz/Vert Lines 			| 101875   | 24653    |  +313,24%   |
| Rectangles (outline) 		| 65720    | 17295    |  +279,99%   |
| Rectangles (filled) 		| 2592250  | 579157   |  +347,59%   |
| Circles (filled) 			| 411475   | 179454   |  +129,29%   |
| Circles (outline) 		| 360002   | 233584   |  +54,12%    |
| Triangles (outline)		| 261772   | 170118   |  +53,88%    |
| Triangles (filled) 		| 866951   | 246237   |  +252,08%   |
| Rounded rects (outline) 	| 154131   | 81570    |  +88,96%    |
| Rounded rects (filled) 	| 2828112  | 660983   |  +327,86%   |
|                           |          |          |             |
| Total                     | 9802159  | 3061917  |  +220,13%   | 
						
						
					 
					
						2015-05-09 16:19:32 +02:00 
						 
				 
			
				
					
						
							
							
								Markus Sattler 
							
						 
					 
					
						
						
							
						
						dcc899a1b5 
					 
					
						
						
							
							some speed optimizations  
						
						
						
						
					 
					
						2015-05-08 15:33:48 +02:00 
						 
				 
			
				
					
						
							
							
								Markus Sattler 
							
						 
					 
					
						
						
							
						
						7c33efc3d8 
					 
					
						
						
							
							fix SPI run on system clock  
						
						
						
						
					 
					
						2015-05-08 15:30:27 +02:00 
						 
				 
			
				
					
						
							
							
								Markus Sattler 
							
						 
					 
					
						
						
							
						
						d7a88c3ea3 
					 
					
						
						
							
							use a function to calculate best match clock register for SPI  
						
						... 
						
						
						
						TEST:
Frequency: 1000000  -> [0x009C1001] EQU: 0	 Pre: 39     N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 1000000
Frequency: 4000000  -> [0x00001001] EQU: 0	 Pre: 0	     N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 40000000
Frequency: 2000000  -> [0x00041001] EQU: 0	 Pre: 1	     N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 20000000
Frequency: 1600000  -> [0x00004002] EQU: 0	 Pre: 0	     N: 4	 H: 0	 L: 2	 - Back Calculated Frequency: 16000000
Frequency: 1610000  -> [0x00004002] EQU: 0	 Pre: 0	     N: 4	 H: 0	 L: 2	 - Back Calculated Frequency: 16000000
Frequency: 1000000  -> [0x000C1001] EQU: 0	 Pre: 3	     N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 10000000
Frequency: 8000000  -> [0x00101001] EQU: 0	 Pre: 4	     N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 8000000
Frequency: 5000000  -> [0x001C1001] EQU: 0	 Pre: 7	     N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 5000000
Frequency: 4000000  -> [0x00241001] EQU: 0	 Pre: 9	     N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 4000000
Frequency: 2000000  -> [0x004C1001] EQU: 0	 Pre: 19	 N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 2000000
Frequency: 1000000  -> [0x009C1001] EQU: 0	 Pre: 39	 N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 1000000
Frequency: 500000   -> [0x013C1001] EQU: 0	 Pre: 79	 N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 500000
Frequency: 250000   -> [0x027C1001] EQU: 0	 Pre: 159	 N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 250000
Frequency: 125000   -> [0x04FC1001] EQU: 0	 Pre: 319	 N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 125000
Frequency: 6666666  -> [0x00141001] EQU: 0	 Pre: 5	 	 N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 6666666
Frequency: 6000000  -> [0x00181001] EQU: 0	 Pre: 6	 	 N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 5714285
Frequency: 3000000  -> [0x00202001] EQU: 0	 Pre: 8	 	 N: 2	 H: 0	 L: 1	 - Back Calculated Frequency: 2962962
Frequency: 100	    -> [0x7FFFF020] EQU: 0	 Pre: 8191	 N: 63	 H: 0	 L: 32	 - Back Calculated Frequency: 152
Frequency: 125000   -> [0x04FC1001] EQU: 0	 Pre: 319	 N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 125000
Frequency: 16457    -> [0x25F81001] EQU: 0	 Pre: 2430	 N: 1	 H: 0	 L: 1	 - Back Calculated Frequency: 16454 
						
						
					 
					
						2015-05-08 00:48:08 +02:00 
						 
				 
			
				
					
						
							
							
								Markus Sattler 
							
						 
					 
					
						
						
							
						
						7f4a10062b 
					 
					
						
						
							
							update README  
						
						... 
						
						
						
						add some docu and todo 
						
						
					 
					
						2015-05-07 20:48:59 +02:00 
						 
				 
			
				
					
						
							
							
								Markus Sattler 
							
						 
					 
					
						
						
							
						
						ee5def9c8c 
					 
					
						
						
							
							add CPHA support for SPI  
						
						... 
						
						
						
						- tested with logic analyzer 
						
						
					 
					
						2015-05-07 19:48:55 +02:00 
						 
				 
			
				
					
						
							
							
								Markus Sattler 
							
						 
					 
					
						
						
							
						
						163858dc44 
					 
					
						
						
							
							fix use SPI.beginTransaction crash  
						
						
						
						
					 
					
						2015-05-07 19:25:25 +02:00 
						 
				 
			
				
					
						
							
							
								Markus Sattler 
							
						 
					 
					
						
						
							
						
						6599a9f52a 
					 
					
						
						
							
							add SPIClass::transfer16 (needed by some display libs)  
						
						
						
						
					 
					
						2015-05-04 18:11:46 +02:00 
						 
				 
			
				
					
						
							
							
								ficeto 
							
						 
					 
					
						
						
							
						
						fbec557ddb 
					 
					
						
						
							
							Importing my changes  
						
						
						
						
					 
					
						2015-04-30 20:48:50 +03:00 
						 
				 
			
				
					
						
							
							
								Ivan Grokhotkov 
							
						 
					 
					
						
						
							
						
						dfbc499627 
					 
					
						
						
							
							Fix slashes in SPI library  
						
						
						
						
					 
					
						2015-04-03 08:18:23 +03:00 
						 
				 
			
				
					
						
							
							
								Andrey Filimonov 
							
						 
					 
					
						
						
							
						
						4626a9df80 
					 
					
						
						
							
							Initial ESP8266 HW SPI implementation  
						
						... 
						
						
						
						ILI9341 lib as a client for SPI lib 
						
						
					 
					
						2015-04-01 07:10:31 +03:00 
						 
				 
			
				
					
						
							
							
								Ivan Grokhotkov 
							
						 
					 
					
						
						
							
						
						ee762f3150 
					 
					
						
						
							
							Add WIP SPI library  
						
						
						
						
					 
					
						2015-01-21 04:19:04 +03:00