summaryrefslogtreecommitdiff
path: root/src/include/device/pnp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/device/pnp.h')
-rw-r--r--src/include/device/pnp.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/include/device/pnp.h b/src/include/device/pnp.h
index d459fd2fd0..800bcc0557 100644
--- a/src/include/device/pnp.h
+++ b/src/include/device/pnp.h
@@ -67,13 +67,34 @@ struct resource *pnp_get_resource(struct device *dev, unsigned int index);
void pnp_enable_devices(struct device *dev, struct device_operations *ops,
unsigned int functions, struct pnp_info *info);
+
struct pnp_mode_ops {
void (*enter_conf_mode)(struct device *dev);
void (*exit_conf_mode)(struct device *dev);
+#if CONFIG(HAVE_ACPI_TABLES)
+ /*
+ * Generates ASL code to enter/exit config mode.
+ *
+ * @param idx The ACPI name of the SuperIO index port register. eg. 'INDX'.
+ * @param data The ACPI name of the SuperIO data port register. eg. 'DATA'.
+ */
+ void (*ssdt_enter_conf_mode)(struct device *dev, const char *idx, const char *data);
+ void (*ssdt_exit_conf_mode)(struct device *dev, const char *idx, const char *data);
+#endif
};
void pnp_enter_conf_mode(struct device *dev);
void pnp_exit_conf_mode(struct device *dev);
-
+#if CONFIG(HAVE_ACPI_TABLES)
+/*
+ * Generates ASL code to enter/exit config mode if supported.
+ * The calling code has to place this within an ASL MethodOP.
+ *
+ * @param idx The ACPI name of the SuperIO index port register. eg. 'INDX'.
+ * @param data The ACPI name of the SuperIO data port register. eg. 'DATA'.
+ */
+void pnp_ssdt_enter_conf_mode(struct device *dev, const char *idx, const char *data);
+void pnp_ssdt_exit_conf_mode(struct device *dev, const char *idx, const char *data);
+#endif
/* PNP indexed I/O operations */
/*