mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-30 21:02:32 +01:00 
			
		
		
		
	Fixed incorrect Dataflash functionality in the USBKEY board if the driver is modified for a single Dataflash chip (thanks to Jonathan Oakley).
This commit is contained in:
		
							parent
							
								
									7fd2349e1a
								
							
						
					
					
						commit
						f3049d958e
					
				| @ -66,13 +66,13 @@ | ||||
| 			#define DATAFLASH_TOTALCHIPS                 1 // TODO: Replace with the number of Dataflashes on the board, max 2
 | ||||
| 
 | ||||
| 			/** Mask for no dataflash chip selected. */ | ||||
| 			#define DATAFLASH_NO_CHIP                    DATAFLASH_CHIPCS_MASK | ||||
| 			#define DATAFLASH_NO_CHIP                    0 | ||||
| 
 | ||||
| 			/** Mask for the first dataflash chip selected. */ | ||||
| 			#define DATAFLASH_CHIP1                      // TODO: Replace with mask to hold /CS of first Dataflash low, and all others high
 | ||||
| 			#define DATAFLASH_CHIP1                      // TODO: Replace with mask with the pin attached to the first Dataflash /CS set
 | ||||
| 
 | ||||
| 			/** Mask for the second dataflash chip selected. */ | ||||
| 			#define DATAFLASH_CHIP2                      // TODO: Replace with mask to hold /CS of second Dataflash low, and all others high
 | ||||
| 			#define DATAFLASH_CHIP2                      // TODO: Replace with mask with the pin attached to the second Dataflash /CS set
 | ||||
| 
 | ||||
| 			/** Internal main memory page size for the board's dataflash ICs. */ | ||||
| 			#define DATAFLASH_PAGE_SIZE                  // TODO: Replace with the page size for the Dataflash ICs
 | ||||
| @ -134,7 +134,7 @@ | ||||
| 
 | ||||
| 			/** Selects the given dataflash chip.
 | ||||
| 			 * | ||||
| 			 *  \param[in]  ChipMask  Mask of the Dataflash IC to select, in the form of DATAFLASH_CHIPn mask (where n is | ||||
| 			 *  \param[in]  ChipMask  Mask of the Dataflash IC to select, in the form of a \c DATAFLASH_CHIPn mask (where n is | ||||
| 			 *              the chip number). | ||||
| 			 */ | ||||
| 			static inline void Dataflash_SelectChip(const uint8_t ChipMask) ATTR_ALWAYS_INLINE; | ||||
|  | ||||
| @ -66,13 +66,13 @@ | ||||
| 			#define DATAFLASH_TOTALCHIPS                 1 // TODO: Replace with the number of Dataflashes on the board, max 2
 | ||||
| 
 | ||||
| 			/** Mask for no dataflash chip selected. */ | ||||
| 			#define DATAFLASH_NO_CHIP                    DATAFLASH_CHIPCS_MASK | ||||
| 			#define DATAFLASH_NO_CHIP                    0 | ||||
| 
 | ||||
| 			/** Mask for the first dataflash chip selected. */ | ||||
| 			#define DATAFLASH_CHIP1                      // TODO: Replace with mask to hold /CS of first Dataflash low, and all others high
 | ||||
| 			#define DATAFLASH_CHIP1                      // TODO: Replace with mask with the pin attached to the first Dataflash /CS set
 | ||||
| 
 | ||||
| 			/** Mask for the second dataflash chip selected. */ | ||||
| 			#define DATAFLASH_CHIP2                      // TODO: Replace with mask to hold /CS of second Dataflash low, and all others high
 | ||||
| 			#define DATAFLASH_CHIP2                      // TODO: Replace with mask with the pin attached to the second Dataflash /CS set
 | ||||
| 
 | ||||
| 			/** Internal main memory page size for the board's dataflash ICs. */ | ||||
| 			#define DATAFLASH_PAGE_SIZE                  // TODO: Replace with the page size for the Dataflash ICs
 | ||||
| @ -130,7 +130,7 @@ | ||||
| 			static inline uint8_t Dataflash_GetSelectedChip(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT; | ||||
| 			static inline uint8_t Dataflash_GetSelectedChip(void) | ||||
| 			{ | ||||
| 				return (DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); | ||||
| 				return (~DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); | ||||
| 			} | ||||
| 
 | ||||
| 			/** Selects the given dataflash chip.
 | ||||
| @ -141,7 +141,7 @@ | ||||
| 			static inline void Dataflash_SelectChip(const uint8_t ChipMask) ATTR_ALWAYS_INLINE; | ||||
| 			static inline void Dataflash_SelectChip(const uint8_t ChipMask) | ||||
| 			{ | ||||
| 				DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT & ~DATAFLASH_CHIPCS_MASK) | ChipMask); | ||||
| 				DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT | DATAFLASH_CHIPCS_MASK) & ~ChipMask); | ||||
| 			} | ||||
| 
 | ||||
| 			/** Deselects the current dataflash chip, so that no dataflash is selected. */ | ||||
|  | ||||
| @ -31,6 +31,7 @@ | ||||
|   *   - Fixed logic hole breaking USB operations on a USB controller with only one supported USB mode and no USB_DEVICE_ONLY or USB_HOST_ONLY | ||||
|   *     configuration token set | ||||
|   *   - Fixed possible rounding in the VERSION_BCD() macros for some 0.01 step increments (thanks to Oliver Zander) | ||||
|   *   - Fixed incorrect Dataflash functionality in the USBKEY board if the driver is modified for a single Dataflash chip (thanks to Jonathan Oakley) | ||||
|   *  - Library Applications: | ||||
|   *   - Fixed broken RESET_TOGGLES_LIBUSB_COMPAT compile time option in the AVRISP-MKII project | ||||
|   *   - Fixed incompatibility in the CDC class bootloader on some systems (thanks to Sylvain Munaut) | ||||
|  | ||||
| @ -66,7 +66,7 @@ | ||||
| 	/* Private Interface - For use in library only: */ | ||||
| 	#if !defined(__DOXYGEN__) | ||||
| 		/* Macros: */ | ||||
| 			#define DATAFLASH_CHIPCS_MASK                (1 << 6) | ||||
| 			#define DATAFLASH_CHIPCS_MASK                DATAFLASH_CHIP1 | ||||
| 			#define DATAFLASH_CHIPCS_DDR                 DDRE | ||||
| 			#define DATAFLASH_CHIPCS_PORT                PORTE | ||||
| 	#endif | ||||
| @ -77,10 +77,10 @@ | ||||
| 			#define DATAFLASH_TOTALCHIPS                 1 | ||||
| 
 | ||||
| 			/** Mask for no dataflash chip selected. */ | ||||
| 			#define DATAFLASH_NO_CHIP                    DATAFLASH_CHIPCS_MASK | ||||
| 			#define DATAFLASH_NO_CHIP                    0 | ||||
| 
 | ||||
| 			/** Mask for the first dataflash chip selected. */ | ||||
| 			#define DATAFLASH_CHIP1                      0 | ||||
| 			#define DATAFLASH_CHIP1                      (1 << 6) | ||||
| 
 | ||||
| 			/** Internal main memory page size for the board's dataflash IC. */ | ||||
| 			#define DATAFLASH_PAGE_SIZE                  512 | ||||
| @ -138,7 +138,7 @@ | ||||
| 			static inline uint8_t Dataflash_GetSelectedChip(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT; | ||||
| 			static inline uint8_t Dataflash_GetSelectedChip(void) | ||||
| 			{ | ||||
| 				return (DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); | ||||
| 				return (~DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); | ||||
| 			} | ||||
| 
 | ||||
| 			/** Selects the given dataflash chip.
 | ||||
| @ -149,7 +149,7 @@ | ||||
| 			static inline void Dataflash_SelectChip(const uint8_t ChipMask) ATTR_ALWAYS_INLINE; | ||||
| 			static inline void Dataflash_SelectChip(const uint8_t ChipMask) | ||||
| 			{ | ||||
| 				DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT & ~DATAFLASH_CHIPCS_MASK) | ChipMask); | ||||
| 				DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT | DATAFLASH_CHIPCS_MASK) & ~ChipMask); | ||||
| 			} | ||||
| 
 | ||||
| 			/** Deselects the current dataflash chip, so that no dataflash is selected. */ | ||||
|  | ||||
| @ -66,7 +66,7 @@ | ||||
| 	/* Private Interface - For use in library only: */ | ||||
| 	#if !defined(__DOXYGEN__) | ||||
| 		/* Macros: */ | ||||
| 			#define DATAFLASH_CHIPCS_MASK                (1 << 4) | ||||
| 			#define DATAFLASH_CHIPCS_MASK                DATAFLASH_CHIP1 | ||||
| 			#define DATAFLASH_CHIPCS_DDR                 DDRB | ||||
| 			#define DATAFLASH_CHIPCS_PORT                PORTB | ||||
| 	#endif | ||||
| @ -77,10 +77,10 @@ | ||||
| 			#define DATAFLASH_TOTALCHIPS                 1 | ||||
| 
 | ||||
| 			/** Mask for no dataflash chip selected. */ | ||||
| 			#define DATAFLASH_NO_CHIP                    DATAFLASH_CHIPCS_MASK | ||||
| 			#define DATAFLASH_NO_CHIP                    0 | ||||
| 
 | ||||
| 			/** Mask for the first dataflash chip selected. */ | ||||
| 			#define DATAFLASH_CHIP1                      0 | ||||
| 			#define DATAFLASH_CHIP1                      (1 << 4) | ||||
| 
 | ||||
| 			/** Internal main memory page size for the board's dataflash IC. */ | ||||
| 			#define DATAFLASH_PAGE_SIZE                  512 | ||||
| @ -138,7 +138,7 @@ | ||||
| 			static inline uint8_t Dataflash_GetSelectedChip(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT; | ||||
| 			static inline uint8_t Dataflash_GetSelectedChip(void) | ||||
| 			{ | ||||
| 				return (DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); | ||||
| 				return (~DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); | ||||
| 			} | ||||
| 
 | ||||
| 			/** Selects the given dataflash chip.
 | ||||
| @ -149,7 +149,7 @@ | ||||
| 			static inline void Dataflash_SelectChip(const uint8_t ChipMask) ATTR_ALWAYS_INLINE; | ||||
| 			static inline void Dataflash_SelectChip(const uint8_t ChipMask) | ||||
| 			{ | ||||
| 				DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT & ~DATAFLASH_CHIPCS_MASK) | ChipMask); | ||||
| 				DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT | DATAFLASH_CHIPCS_MASK) & ~ChipMask); | ||||
| 			} | ||||
| 
 | ||||
| 			/** Deselects the current dataflash chip, so that no dataflash is selected. */ | ||||
|  | ||||
| @ -66,7 +66,7 @@ | ||||
| 	/* Private Interface - For use in library only: */ | ||||
| 	#if !defined(__DOXYGEN__) | ||||
| 		/* Macros: */ | ||||
| 			#define DATAFLASH_CHIPCS_MASK                (1 << 2) | ||||
| 			#define DATAFLASH_CHIPCS_MASK                DATAFLASH_CHIP1 | ||||
| 			#define DATAFLASH_CHIPCS_DDR                 DDRC | ||||
| 			#define DATAFLASH_CHIPCS_PORT                PORTC | ||||
| 	#endif | ||||
| @ -77,10 +77,10 @@ | ||||
| 			#define DATAFLASH_TOTALCHIPS                 1 | ||||
| 
 | ||||
| 			/** Mask for no dataflash chip selected. */ | ||||
| 			#define DATAFLASH_NO_CHIP                    DATAFLASH_CHIPCS_MASK | ||||
| 			#define DATAFLASH_NO_CHIP                    0 | ||||
| 
 | ||||
| 			/** Mask for the first dataflash chip selected. */ | ||||
| 			#define DATAFLASH_CHIP1                      0 | ||||
| 			#define DATAFLASH_CHIP1                      (1 << 2) | ||||
| 
 | ||||
| 			/** Internal main memory page size for the board's dataflash IC. */ | ||||
| 			#define DATAFLASH_PAGE_SIZE                  1024 | ||||
| @ -138,7 +138,7 @@ | ||||
| 			static inline uint8_t Dataflash_GetSelectedChip(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT; | ||||
| 			static inline uint8_t Dataflash_GetSelectedChip(void) | ||||
| 			{ | ||||
| 				return (DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); | ||||
| 				return (~DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); | ||||
| 			} | ||||
| 
 | ||||
| 			/** Selects the given dataflash chip.
 | ||||
| @ -149,7 +149,7 @@ | ||||
| 			static inline void Dataflash_SelectChip(const uint8_t ChipMask) ATTR_ALWAYS_INLINE; | ||||
| 			static inline void Dataflash_SelectChip(const uint8_t ChipMask) | ||||
| 			{ | ||||
| 				DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT & ~DATAFLASH_CHIPCS_MASK) | ChipMask); | ||||
| 				DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT | DATAFLASH_CHIPCS_MASK) & ~ChipMask); | ||||
| 			} | ||||
| 
 | ||||
| 			/** Deselects the current dataflash chip, so that no dataflash is selected. */ | ||||
|  | ||||
| @ -67,7 +67,7 @@ | ||||
| 	/* Private Interface - For use in library only: */ | ||||
| 	#if !defined(__DOXYGEN__) | ||||
| 		/* Macros: */ | ||||
| 			#define DATAFLASH_CHIPCS_MASK                ((1 << 1) | (1 << 0)) | ||||
| 			#define DATAFLASH_CHIPCS_MASK                (DATAFLASH_CHIP1 | DATAFLASH_CHIP2) | ||||
| 			#define DATAFLASH_CHIPCS_DDR                 DDRE | ||||
| 			#define DATAFLASH_CHIPCS_PORT                PORTE | ||||
| 	#endif | ||||
| @ -78,13 +78,13 @@ | ||||
| 			#define DATAFLASH_TOTALCHIPS                 2 | ||||
| 
 | ||||
| 			/** Mask for no dataflash chip selected. */ | ||||
| 			#define DATAFLASH_NO_CHIP                    DATAFLASH_CHIPCS_MASK | ||||
| 			#define DATAFLASH_NO_CHIP                    0 | ||||
| 
 | ||||
| 			/** Mask for the first dataflash chip selected. */ | ||||
| 			#define DATAFLASH_CHIP1                      (1 << 1) | ||||
| 			#define DATAFLASH_CHIP1                      (1 << 0) | ||||
| 
 | ||||
| 			/** Mask for the second dataflash chip selected. */ | ||||
| 			#define DATAFLASH_CHIP2                      (1 << 0) | ||||
| 			#define DATAFLASH_CHIP2                      (1 << 1) | ||||
| 
 | ||||
| 			/** Internal main memory page size for the board's dataflash ICs. */ | ||||
| 			#define DATAFLASH_PAGE_SIZE                  1024 | ||||
| @ -142,7 +142,7 @@ | ||||
| 			static inline uint8_t Dataflash_GetSelectedChip(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT; | ||||
| 			static inline uint8_t Dataflash_GetSelectedChip(void) | ||||
| 			{ | ||||
| 				return (DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); | ||||
| 				return (~DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); | ||||
| 			} | ||||
| 
 | ||||
| 			/** Selects the given dataflash chip.
 | ||||
| @ -153,7 +153,7 @@ | ||||
| 			static inline void Dataflash_SelectChip(const uint8_t ChipMask) ATTR_ALWAYS_INLINE; | ||||
| 			static inline void Dataflash_SelectChip(const uint8_t ChipMask) | ||||
| 			{ | ||||
| 				DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT & ~DATAFLASH_CHIPCS_MASK) | ChipMask); | ||||
| 				DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT | DATAFLASH_CHIPCS_MASK) & ~ChipMask); | ||||
| 			} | ||||
| 
 | ||||
| 			/** Deselects the current dataflash chip, so that no dataflash is selected. */ | ||||
|  | ||||
| @ -83,7 +83,7 @@ | ||||
| 	/* Private Interface - For use in library only: */ | ||||
| 	#if !defined(__DOXYGEN__) | ||||
| 		/* Macros: */ | ||||
| 			#define DATAFLASH_CHIPCS_MASK                (1 << 5) | ||||
| 			#define DATAFLASH_CHIPCS_MASK                DATAFLASH_CHIP1 | ||||
| 			#define DATAFLASH_CHIPCS_DDR                 DDRB | ||||
| 			#define DATAFLASH_CHIPCS_PORT                PORTB | ||||
| 	#endif | ||||
| @ -94,10 +94,10 @@ | ||||
| 			#define DATAFLASH_TOTALCHIPS                 1 | ||||
| 
 | ||||
| 			/** Mask for no dataflash chip selected. */ | ||||
| 			#define DATAFLASH_NO_CHIP                    DATAFLASH_CHIPCS_MASK | ||||
| 			#define DATAFLASH_NO_CHIP                    0 | ||||
| 
 | ||||
| 			/** Mask for the first dataflash chip selected. */ | ||||
| 			#define DATAFLASH_CHIP1                      0 | ||||
| 			#define DATAFLASH_CHIP1                      (1 << 5) | ||||
| 
 | ||||
| 			#if ((BOARD != BOARD_XPLAIN_REV1) || defined(__DOXYGEN__)) | ||||
| 				/** Internal main memory page size for the board's dataflash ICs. */ | ||||
| @ -161,7 +161,7 @@ | ||||
| 			static inline uint8_t Dataflash_GetSelectedChip(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT; | ||||
| 			static inline uint8_t Dataflash_GetSelectedChip(void) | ||||
| 			{ | ||||
| 				return (DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); | ||||
| 				return (~DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); | ||||
| 			} | ||||
| 
 | ||||
| 			/** Selects the given dataflash chip.
 | ||||
| @ -172,7 +172,7 @@ | ||||
| 			static inline void Dataflash_SelectChip(const uint8_t ChipMask) ATTR_ALWAYS_INLINE; | ||||
| 			static inline void Dataflash_SelectChip(const uint8_t ChipMask) | ||||
| 			{ | ||||
| 				DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT & ~DATAFLASH_CHIPCS_MASK) | ChipMask); | ||||
| 				DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT | DATAFLASH_CHIPCS_MASK) & ~ChipMask); | ||||
| 			} | ||||
| 
 | ||||
| 			/** Deselects the current dataflash chip, so that no dataflash is selected. */ | ||||
|  | ||||
| @ -66,7 +66,7 @@ | ||||
| 	/* Private Interface - For use in library only: */ | ||||
| 	#if !defined(__DOXYGEN__) | ||||
| 		/* Macros: */ | ||||
| 			#define DATAFLASH_CHIPCS_MASK                (1 << 4) | ||||
| 			#define DATAFLASH_CHIPCS_MASK                DATAFLASH_CHIP1 | ||||
| 			#define DATAFLASH_CHIPCS_PORT                PORTF | ||||
| 	#endif | ||||
| 
 | ||||
|  | ||||
| @ -66,7 +66,7 @@ | ||||
| 	/* Private Interface - For use in library only: */ | ||||
| 	#if !defined(__DOXYGEN__) | ||||
| 		/* Macros: */ | ||||
| 			#define DATAFLASH_CHIPCS_MASK                (1 << 2) | ||||
| 			#define DATAFLASH_CHIPCS_MASK                DATAFLASH_CHIP1 | ||||
| 			#define DATAFLASH_CHIPCS_PORT                PORTD | ||||
| 	#endif | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dean Camera
						Dean Camera