WiringPi: Bring back all of the stuffs I removed to do with peripherals
Imported from the official WiringPi repository, version 2.60.
Signed-off-by: Deokgyu Yang <secugyu@gmail.com>
Change-Id: I82dc00ab9f038f9bc4c6a9c4ca3affe5a5d33ae1
diff --git a/gpio/readall.c b/gpio/readall.c
index 1279f01..462a22f 100644
--- a/gpio/readall.c
+++ b/gpio/readall.c
@@ -43,6 +43,28 @@
#endif
/*----------------------------------------------------------------------------*/
+/*
+ * doReadallExternal:
+ * A relatively crude way to read the pins on an external device.
+ * We don't know the input/output mode of pins, but we can tell
+ * if it's an analog pin or a digital one...
+ */
+/*----------------------------------------------------------------------------*/
+static void doReadallExternal (void)
+{
+ int pin ;
+
+ printf ("+------+---------+--------+\n") ;
+ printf ("| Pin | Digital | Analog |\n") ;
+ printf ("+------+---------+--------+\n") ;
+
+ for (pin = wiringPiNodes->pinBase ; pin <= wiringPiNodes->pinMax ; ++pin)
+ printf ("| %4d | %4d | %4d |\n", pin, digitalRead (pin), analogRead (pin)) ;
+
+ printf ("+------+---------+--------+\n") ;
+}
+
+/*----------------------------------------------------------------------------*/
static const char *alts [] =
{
"IN", "OUT", "ALT1", "ALT2", "ALT3", "ALT4", "ALT5", "ALT6", "ALT7"
@@ -694,6 +716,12 @@
int model, rev, mem, maker, overVolted, isAll;
char *headerName, *physNames;
+ // External readall
+ if (wiringPiNodes != NULL) {
+ doReadallExternal();
+ return;
+ }
+
if (argc <= 2) {
isAll = FALSE;
} else if (argc == 3 && (strcasecmp(argv[2], "-a") == 0 || strcasecmp(argv[2], "--all") == 0)) {