Page MenuHomeFreeBSD

D52172.id161089.diff
No OneTemporary

D52172.id161089.diff

diff --git a/sys/dev/gpio/gpio_if.m b/sys/dev/gpio/gpio_if.m
--- a/sys/dev/gpio/gpio_if.m
+++ b/sys/dev/gpio/gpio_if.m
@@ -62,6 +62,22 @@
return (0);
}
+
+ static int
+ gpio_default_get_pin_list(device_t dev, uint32_t *pin_list)
+ {
+ uint32_t maxpin;
+ int err;
+
+ err = GPIO_PIN_MAX(dev, &maxpin);
+ if (err != 0)
+ return (ENXIO);
+
+ for (int i = 0; i <= maxpin; i++)
+ pin_list[i] = i;
+
+ return (0);
+ }
};
HEADER {
@@ -185,3 +201,13 @@
uint32_t num_pins;
uint32_t *pin_flags;
} DEFAULT gpio_default_nosupport;
+
+#
+# Get the controller's pin numbers. pin_list is expected to be an array with at
+# least GPIO_PIN_MAX() elements. Populates pin_list from 0 to GPIO_PIN_MAX() by
+# default.
+#
+METHOD int get_pin_list {
+ device_t dev;
+ uint32_t *pin_list;
+} DEFAULT gpio_default_get_pin_list;

File Metadata

Mime Type
text/plain
Expires
Mon, Feb 9, 3:03 PM (2 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28485969
Default Alt Text
D52172.id161089.diff (831 B)

Event Timeline