Gordons Projects

--> Projects Top-Level GIT

Pushing to 2.39 as I have have not done the last one rightly...
[wiringPi] / gpio / readall.c
index 2d90cd1..aec6de6 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * readall.c:
  *     The readall functions - getting a bit big, so split them out.
- *     Copyright (c) 2012-2015 Gordon Henderson
+ *     Copyright (c) 2012-2017 Gordon Henderson
  ***********************************************************************
  * This file is part of wiringPi:
  *     https://projects.drogon.net/raspberry-pi/wiringpi/
@@ -118,7 +118,7 @@ static char *physNames [64] =
   NULL,
 
   "   3.3v", "5v     ",
-  "  SDA.1", "5V     ",
+  "  SDA.1", "5v     ",
   "  SCL.1", "0v     ",
   "GPIO. 7", "TxD    ",
   "     0v", "RxD    ",
@@ -215,7 +215,14 @@ static void readallPhys (int physPin)
 }
 
 
-void cmReadall (void)
+/*
+ * allReadall:
+ *     Read all the pins regardless of the model. Primarily of use for
+ *     the compute module, but handy for other fiddling...
+ *********************************************************************************
+ */
+
+static void allReadall (void)
 {
   int pin ;
 
@@ -223,19 +230,20 @@ void cmReadall (void)
   printf ("| Pin | Mode | Value |      | Pin | Mode | Value |\n") ;
   printf ("+-----+------+-------+      +-----+------+-------+\n") ;
 
-  for (pin = 0 ; pin < 28 ; ++pin)
+  for (pin = 0 ; pin < 27 ; ++pin)
   {
     printf ("| %3d ", pin) ;
     printf ("| %-4s ", alts [getAlt (pin)]) ;
     printf ("| %s  ", digitalRead (pin) == HIGH ? "High" : "Low ") ;
     printf ("|      ") ;
-    printf ("| %3d ", pin + 28) ;
-    printf ("| %-4s ", alts [getAlt (pin + 28)]) ;
-    printf ("| %s  ", digitalRead (pin + 28) == HIGH ? "High" : "Low ") ;
+    printf ("| %3d ", pin + 27) ;
+    printf ("| %-4s ", alts [getAlt (pin + 27)]) ;
+    printf ("| %s  ", digitalRead (pin + 27) == HIGH ? "High" : "Low ") ;
     printf ("|\n") ;
   }
 
   printf ("+-----+------+-------+      +-----+------+-------+\n") ;
+
 }
 
 
@@ -291,12 +299,16 @@ static void plus2header (int model)
     printf (" +-----+-----+---------+------+---+--B Plus--+---+------+---------+-----+-----+\n") ;
   else if (model == PI_MODEL_ZERO)
     printf (" +-----+-----+---------+------+---+-Pi Zero--+---+------+---------+-----+-----+\n") ;
-  else
+  else if (model == PI_MODEL_2)
     printf (" +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+\n") ;
+  else if (model == PI_MODEL_3)
+    printf (" +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+\n") ;
+  else
+    printf (" +-----+-----+---------+------+---+---Pi ?---+---+------+---------+-----+-----+\n") ;
 }
 
 
-void piPlusReadall (int model)
+static void piPlusReadall (int model)
 {
   int pin ;
 
@@ -313,6 +325,13 @@ void piPlusReadall (int model)
 }
 
 
+/*
+ * doReadall:
+ *     Generic read all pins called from main program. Works out the Pi type
+ *     and calls the appropriate function.
+ *********************************************************************************
+ */
+
 void doReadall (void)
 {
   int model, rev, mem, maker, overVolted ;
@@ -327,10 +346,21 @@ void doReadall (void)
 
   /**/ if ((model == PI_MODEL_A) || (model == PI_MODEL_B))
     abReadall (model, rev) ;
-  else if ((model == PI_MODEL_BP) || (model == PI_MODEL_AP) || (model == PI_MODEL_2) || (model == PI_MODEL_ZERO))
+  else if ((model == PI_MODEL_BP) || (model == PI_MODEL_AP) || (model == PI_MODEL_2) || (model == PI_MODEL_3) || (model == PI_MODEL_ZERO))
     piPlusReadall (model) ;
-  else if (model == PI_MODEL_CM)
-    cmReadall () ;
+  else if ((model == PI_MODEL_CM) || (model == PI_MODEL_CM3))
+    allReadall () ;
   else
     printf ("Oops - unable to determine board type... model: %d\n", model) ;
 }
+
+/*
+ * doAllReadall:
+ *     Force reading of all pins regardless of Pi model
+ *********************************************************************************
+ */
+
+void doAllReadall (void)
+{
+  allReadall () ;
+}