Index: uspace/drv/bus/isa/isa.c
===================================================================
--- uspace/drv/bus/isa/isa.c	(revision 7d771d5939e50a0d530f53d57ae9a07dd944f471)
+++ uspace/drv/bus/isa/isa.c	(revision ff979572de88fcf1f52ccc88c43b0520591327dd)
@@ -65,4 +65,5 @@
 #include <ddf/log.h>
 #include <ops/hw_res.h>
+#include <ops/pio_window.h>
 
 #include <device/hw_res.h>
@@ -104,10 +105,10 @@
 }
 
-static hw_resource_list_t *isa_get_fun_resources(ddf_fun_t *fnode)
-{
-	isa_fun_t *isa = isa_fun(fnode);
-	assert(isa);
-
-	return &isa->hw_resources;
+static hw_resource_list_t *isa_fun_get_resources(ddf_fun_t *fnode)
+{
+	isa_fun_t *fun = isa_fun(fnode);
+	assert(fun);
+
+	return &fun->hw_resources;
 }
 
@@ -116,6 +117,6 @@
 	/* This is an old ugly way, copied from pci driver */
 	assert(fnode);
-	isa_fun_t *isa = isa_fun(fnode);
-	assert(isa);
+	isa_fun_t *fun = isa_fun(fnode);
+	assert(fun);
 
 	sysarg_t apic;
@@ -133,5 +134,5 @@
 		return false;
 
-	const hw_resource_list_t *res = &isa->hw_resources;
+	const hw_resource_list_t *res = &fun->hw_resources;
 	assert(res);
 	for (size_t i = 0; i < res->count; ++i) {
@@ -159,7 +160,7 @@
 {
 	assert(fnode);
-	isa_fun_t *isa = isa_fun(fnode);
-	assert(isa);
-	const hw_resource_list_t *res = &isa->hw_resources;
+	isa_fun_t *fun = isa_fun(fnode);
+	assert(fun);
+	const hw_resource_list_t *res = &fun->hw_resources;
 	assert(res);
 
@@ -182,7 +183,7 @@
 	assert(size);
 	assert(fnode);
-	isa_fun_t *isa = isa_fun(fnode);
-	assert(isa);
-	const hw_resource_list_t *res = &isa->hw_resources;
+	isa_fun_t *fun = isa_fun(fnode);
+	assert(fun);
+	const hw_resource_list_t *res = &fun->hw_resources;
 	assert(res);
 
@@ -201,5 +202,5 @@
 
 static hw_res_ops_t isa_fun_hw_res_ops = {
-	.get_resource_list = isa_get_fun_resources,
+	.get_resource_list = isa_fun_get_resources,
 	.enable_interrupt = isa_fun_enable_interrupt,
 	.dma_channel_setup = isa_fun_setup_dma,
@@ -207,6 +208,20 @@
 };
 
+static pio_window_t *isa_fun_get_pio_window(ddf_fun_t *fnode)
+{
+	ddf_dev_t *dev = ddf_fun_get_dev(fnode);
+	isa_bus_t *isa = isa_bus(dev);
+	assert(isa);
+
+	return &isa->pio_win;
+}
+
+static pio_window_ops_t isa_fun_pio_window_ops = {
+	.get_pio_window = isa_fun_get_pio_window
+};
+
 static ddf_dev_ops_t isa_fun_ops= {
 	.interfaces[HW_RES_DEV_IFACE] = &isa_fun_hw_res_ops,
+	.interfaces[PIO_WINDOW_DEV_IFACE] = &isa_fun_pio_window_ops,
 };
 
