| 
				
			 | 
			
			 | 
			@@ -239,17 +239,20 @@ void HardwareSerial::setRX(uint8_t pin) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				if (pin != hardware->rx_pins[rx_pin_index_].pin) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					for (uint8_t rx_pin_new_index = 0; rx_pin_new_index < cnt_rx_pins; rx_pin_new_index++) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (pin == hardware->rx_pins[rx_pin_index_].pin) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (pin == hardware->rx_pins[rx_pin_new_index].pin) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							// new pin - so lets maybe reset the old pin to INPUT? and then set new pin parameters | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							// only change IO pins if done after begin has been called.  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							if ((hardware->ccm_register & hardware->ccm_value)) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							*(portConfigRegister(hardware->rx_pins[rx_pin_index_].pin)) = 5; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							// now set new pin info. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								*(portControlRegister(hardware->rx_pins[rx_pin_new_index].pin)) =  IOMUXC_PAD_DSE(7) | IOMUXC_PAD_PKE | IOMUXC_PAD_PUE | IOMUXC_PAD_PUS(3) | IOMUXC_PAD_HYS;; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								*(portConfigRegister(hardware->rx_pins[rx_pin_new_index].pin)) = hardware->rx_pins[rx_pin_new_index].mux_val; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								if (hardware->rx_pins[rx_pin_new_index].select_input_register) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								 	*(hardware->rx_pins[rx_pin_new_index].select_input_register) =  hardware->rx_pins[rx_pin_new_index].select_val;		 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							}		 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							rx_pin_index_ = rx_pin_new_index; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							*(portControlRegister(hardware->rx_pins[rx_pin_index_].pin)) =  IOMUXC_PAD_DSE(7) | IOMUXC_PAD_PKE | IOMUXC_PAD_PUE | IOMUXC_PAD_PUS(3) | IOMUXC_PAD_HYS;; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							*(portConfigRegister(hardware->rx_pins[rx_pin_index_].pin)) = hardware->rx_pins[rx_pin_index_].mux_val; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							if (hardware->rx_pins[rx_pin_index_].select_input_register) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							 	*(hardware->rx_pins[rx_pin_index_].select_input_register) =  hardware->rx_pins[rx_pin_index_].select_val;		 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							}	 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							break; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					} | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -262,7 +265,7 @@ void HardwareSerial::setTX(uint8_t pin, bool opendrain) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				if (pin != hardware->tx_pins[tx_pin_index_].pin) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					for (tx_pin_new_index = 0; tx_pin_new_index < cnt_tx_pins; tx_pin_new_index++) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (pin == hardware->tx_pins[tx_pin_index_].pin) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (pin == hardware->tx_pins[tx_pin_new_index].pin) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							break; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					} | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -271,12 +274,13 @@ void HardwareSerial::setTX(uint8_t pin, bool opendrain) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				// turn on or off opendrain mode. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				// new pin - so lets maybe reset the old pin to INPUT? and then set new pin parameters | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				if ((hardware->ccm_register & hardware->ccm_value)) {  // only do if we are already active.  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				if (tx_pin_new_index != tx_pin_index_) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					*(portConfigRegister(hardware->tx_pins[tx_pin_index_].pin)) = 5; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					*(portConfigRegister(hardware->tx_pins[tx_pin_new_index].pin)) = hardware->tx_pins[tx_pin_new_index].mux_val; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				// now set new pin info. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				tx_pin_index_ = tx_pin_new_index; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				if (opendrain)  |