Index: uspace/lib/c/generic/ddi.c
===================================================================
--- uspace/lib/c/generic/ddi.c	(revision 85be731b3ee5f4d8ffd8dad6b7647896f3e0251e)
+++ uspace/lib/c/generic/ddi.c	(revision 8b3cb67954cec0afdfcbd49175f4320f5f12d5d6)
@@ -224,4 +224,5 @@
  * @param res        Resources specifying the I/O range wrt. to the PIO window.
  * @param[out] virt  Virtual address for application's PIO operations.
+ * @param[out] phys  If non-NULL, physical address of the resource
  * @param[out] size  If non-NULL, size of the enabled resource.
  *
@@ -231,5 +232,5 @@
  */
 errno_t pio_enable_resource(pio_window_t *win, hw_resource_t *res, void **virt,
-    size_t *size)
+    uintptr_t *phys, size_t *size)
 {
 	uintptr_t addr;
@@ -259,4 +260,6 @@
 	}
 
+	if (phys)
+		*phys = addr;
 	if (size)
 		*size = sz;
Index: uspace/lib/c/include/ddi.h
===================================================================
--- uspace/lib/c/include/ddi.h	(revision 85be731b3ee5f4d8ffd8dad6b7647896f3e0251e)
+++ uspace/lib/c/include/ddi.h	(revision 8b3cb67954cec0afdfcbd49175f4320f5f12d5d6)
@@ -66,5 +66,5 @@
 extern errno_t pio_enable_range(addr_range_t *, void **);
 extern errno_t pio_enable_resource(pio_window_t *, hw_resource_t *, void **,
-    size_t *);
+    uintptr_t *, size_t *);
 extern errno_t pio_enable(void *, size_t, void **);
 extern errno_t pio_disable(void *, size_t);
