From e431bf7f91a2350f3cddbbd3baebbcc8e970aca7 Mon Sep 17 00:00:00 2001
From: Sandeep Mistry <s.mistry@arduino.cc>
Date: Thu, 21 Jan 2016 14:11:21 -0500
Subject: [PATCH] Enable input on pinMode OUTPUT to support reading back
 current value via digitalRead

---
 cores/arduino/wiring_digital.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/cores/arduino/wiring_digital.c b/cores/arduino/wiring_digital.c
index e123c7f8..38d5d23e 100644
--- a/cores/arduino/wiring_digital.c
+++ b/cores/arduino/wiring_digital.c
@@ -58,8 +58,10 @@ void pinMode( uint32_t ulPin, uint32_t ulMode )
     break ;
 
     case OUTPUT:
+      // enable input, to support reading back values
+      PORT->Group[g_APinDescription[ulPin].ulPort].PINCFG[g_APinDescription[ulPin].ulPin].bit.INEN = 1 ;
+
       // Set pin to output mode
-      PORT->Group[g_APinDescription[ulPin].ulPort].PINCFG[g_APinDescription[ulPin].ulPin].reg&=~(uint8_t)(PORT_PINCFG_INEN) ;
       PORT->Group[g_APinDescription[ulPin].ulPort].DIRSET.reg = (uint32_t)(1<<g_APinDescription[ulPin].ulPin) ;
     break ;
 
-- 
GitLab