Add open-drain GPIO support. (#15282)
* Add open-drain GPIO support. * `qmk format-c` * Wording. * Remove port GPIO implementations as the only board that uses it has its own internal defs anyway. Will wait for first-class handling of ports in core before reimplementing.
This commit is contained in:
		
							parent
							
								
									f491e6b138
								
							
						
					
					
						commit
						6e40dfa022
					
				
					 4 changed files with 30 additions and 47 deletions
				
			
		| 
						 | 
				
			
			@ -22,10 +22,12 @@ typedef ioline_t pin_t;
 | 
			
		|||
 | 
			
		||||
/* Operation of GPIO by pin. */
 | 
			
		||||
 | 
			
		||||
#define setPinInput(pin) palSetLineMode(pin, PAL_MODE_INPUT)
 | 
			
		||||
#define setPinInputHigh(pin) palSetLineMode(pin, PAL_MODE_INPUT_PULLUP)
 | 
			
		||||
#define setPinInputLow(pin) palSetLineMode(pin, PAL_MODE_INPUT_PULLDOWN)
 | 
			
		||||
#define setPinOutput(pin) palSetLineMode(pin, PAL_MODE_OUTPUT_PUSHPULL)
 | 
			
		||||
#define setPinInput(pin) palSetLineMode((pin), PAL_MODE_INPUT)
 | 
			
		||||
#define setPinInputHigh(pin) palSetLineMode((pin), PAL_MODE_INPUT_PULLUP)
 | 
			
		||||
#define setPinInputLow(pin) palSetLineMode((pin), PAL_MODE_INPUT_PULLDOWN)
 | 
			
		||||
#define setPinOutputPushPull(pin) palSetLineMode((pin), PAL_MODE_OUTPUT_PUSHPULL)
 | 
			
		||||
#define setPinOutputOpenDrain(pin) palSetLineMode((pin), PAL_MODE_OUTPUT_OPENDRAIN)
 | 
			
		||||
#define setPinOutput(pin) setPinOutputPushPull(pin)
 | 
			
		||||
 | 
			
		||||
#define writePinHigh(pin) palSetLine(pin)
 | 
			
		||||
#define writePinLow(pin) palClearLine(pin)
 | 
			
		||||
| 
						 | 
				
			
			@ -34,17 +36,3 @@ typedef ioline_t pin_t;
 | 
			
		|||
#define readPin(pin) palReadLine(pin)
 | 
			
		||||
 | 
			
		||||
#define togglePin(pin) palToggleLine(pin)
 | 
			
		||||
 | 
			
		||||
/* Operation of GPIO by port. */
 | 
			
		||||
 | 
			
		||||
typedef uint16_t port_data_t;
 | 
			
		||||
 | 
			
		||||
#define readPort(pin) palReadPort(PAL_PORT(pin))
 | 
			
		||||
 | 
			
		||||
#define setPortBitInput(pin, bit) palSetPadMode(PAL_PORT(pin), bit, PAL_MODE_INPUT)
 | 
			
		||||
#define setPortBitInputHigh(pin, bit) palSetPadMode(PAL_PORT(pin), bit, PAL_MODE_INPUT_PULLUP)
 | 
			
		||||
#define setPortBitInputLow(pin, bit) palSetPadMode(PAL_PORT(pin), bit, PAL_MODE_INPUT_PULLDOWN)
 | 
			
		||||
#define setPortBitOutput(pin, bit) palSetPadMode(PAL_PORT(pin), bit, PAL_MODE_OUTPUT_PUSHPULL)
 | 
			
		||||
 | 
			
		||||
#define writePortBitLow(pin, bit) palClearLine(PAL_LINE(PAL_PORT(pin), bit))
 | 
			
		||||
#define writePortBitHigh(pin, bit) palSetLine(PAL_LINE(PAL_PORT(pin), bit))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue