diff --git a/src/arch/x86/acpi_device.c b/src/arch/x86/acpi_device.c
index 1dc471c..b4016ef 100644
--- a/src/arch/x86/acpi_device.c
+++ b/src/arch/x86/acpi_device.c
@@ -941,7 +941,7 @@
  *    }
  * }
  */
-void acpi_device_write_pci_dev(struct device *dev)
+void acpi_device_write_pci_dev(const struct device *dev)
 {
 	const char *scope = acpi_device_scope(dev);
 	const char *name = acpi_device_name(dev);
diff --git a/src/arch/x86/include/arch/acpi.h b/src/arch/x86/include/arch/acpi.h
index 9fb6f6f..86b3932 100644
--- a/src/arch/x86/include/arch/acpi.h
+++ b/src/arch/x86/include/arch/acpi.h
@@ -930,7 +930,7 @@
 			      acpi_rsdp_t *rsdp);
 
 /* cpu/intel/speedstep/acpi.c */
-void generate_cpu_entries(struct device *device);
+void generate_cpu_entries(const struct device *device);
 
 void acpi_create_mcfg(acpi_mcfg_t *mcfg);
 
diff --git a/src/arch/x86/include/arch/acpi_device.h b/src/arch/x86/include/arch/acpi_device.h
index 80dab0b..ed64cd8 100644
--- a/src/arch/x86/include/arch/acpi_device.h
+++ b/src/arch/x86/include/arch/acpi_device.h
@@ -508,6 +508,6 @@
  * scope in DSDT. So, if there are any references to this PCI device scope required from static
  * asl files, do not use this function and instead add the device to DSDT as well.
  */
-void acpi_device_write_pci_dev(struct device *dev);
+void acpi_device_write_pci_dev(const struct device *dev);
 
 #endif
diff --git a/src/cpu/intel/haswell/acpi.c b/src/cpu/intel/haswell/acpi.c
index f8f139c..b3cc1e0 100644
--- a/src/cpu/intel/haswell/acpi.c
+++ b/src/cpu/intel/haswell/acpi.c
@@ -289,7 +289,7 @@
 	acpigen_pop_len();
 }
 
-void generate_cpu_entries(struct device *device)
+void generate_cpu_entries(const struct device *device)
 {
 	int coreID, cpuID, pcontrol_blk = get_pmbase(), plen = 6;
 	int totalcores = dev_count_cpu();
diff --git a/src/cpu/intel/model_2065x/acpi.c b/src/cpu/intel/model_2065x/acpi.c
index 4f49dba..a45f021 100644
--- a/src/cpu/intel/model_2065x/acpi.c
+++ b/src/cpu/intel/model_2065x/acpi.c
@@ -281,7 +281,7 @@
 	acpigen_pop_len();
 }
 
-void generate_cpu_entries(struct device *device)
+void generate_cpu_entries(const struct device *device)
 {
 	int coreID, cpuID, pcontrol_blk = PMB0_BASE, plen = 6;
 	int totalcores = dev_count_cpu();
diff --git a/src/cpu/intel/model_206ax/acpi.c b/src/cpu/intel/model_206ax/acpi.c
index eba8537..d668f45 100644
--- a/src/cpu/intel/model_206ax/acpi.c
+++ b/src/cpu/intel/model_206ax/acpi.c
@@ -284,7 +284,7 @@
 	acpigen_pop_len();
 }
 
-void generate_cpu_entries(struct device *device)
+void generate_cpu_entries(const struct device *device)
 {
 	int coreID, cpuID, pcontrol_blk = PMB0_BASE, plen = 6;
 	int totalcores = dev_count_cpu();
diff --git a/src/cpu/intel/speedstep/acpi.c b/src/cpu/intel/speedstep/acpi.c
index 5e8330c..1d33640 100644
--- a/src/cpu/intel/speedstep/acpi.c
+++ b/src/cpu/intel/speedstep/acpi.c
@@ -81,7 +81,7 @@
 /**
  * @brief Generate ACPI entries for Speedstep for each cpu
  */
-void generate_cpu_entries(struct device *device)
+void generate_cpu_entries(const struct device *device)
 {
 	int coreID, cpuID, pcontrol_blk = PMB0_BASE, plen = 6;
 	int totalcores = determine_total_number_of_cores();
diff --git a/src/device/pci_rom.c b/src/device/pci_rom.c
index cfd16e8..4fec290 100644
--- a/src/device/pci_rom.c
+++ b/src/device/pci_rom.c
@@ -261,7 +261,7 @@
 	return current;
 }
 
-void pci_rom_ssdt(struct device *device)
+void pci_rom_ssdt(const struct device *device)
 {
 	static size_t ngfx;
 
diff --git a/src/drivers/crb/tis.c b/src/drivers/crb/tis.c
index bd54bb6..0e97a07 100644
--- a/src/drivers/crb/tis.c
+++ b/src/drivers/crb/tis.c
@@ -93,7 +93,7 @@
 	return 0;
 }
 
-static void crb_tpm_fill_ssdt(struct device *dev)
+static void crb_tpm_fill_ssdt(const struct device *dev)
 {
 	const char *path = acpi_device_path(dev);
 	if (!path) {
diff --git a/src/drivers/generic/adau7002/adau7002.c b/src/drivers/generic/adau7002/adau7002.c
index aa47ae6..bf2f03d 100644
--- a/src/drivers/generic/adau7002/adau7002.c
+++ b/src/drivers/generic/adau7002/adau7002.c
@@ -14,7 +14,7 @@
 #define ADAU7002_ACPI_NAME	"ADAU"
 #define ADAU7002_ACPI_HID	"ADAU7002"
 
-static void adau7002_fill_ssdt(struct device *dev)
+static void adau7002_fill_ssdt(const struct device *dev)
 {
 	struct drivers_generic_adau7002_config *config;
 	struct acpi_dp *dp;
diff --git a/src/drivers/generic/generic/generic.c b/src/drivers/generic/generic/generic.c
index cee41a5..eed824d 100644
--- a/src/drivers/generic/generic/generic.c
+++ b/src/drivers/generic/generic/generic.c
@@ -10,7 +10,7 @@
 #include <string.h>
 #include "chip.h"
 
-static void generic_dev_fill_ssdt_generator(struct device *dev)
+static void generic_dev_fill_ssdt_generator(const struct device *dev)
 {
 	struct acpi_dp *dsd;
 	struct drivers_generic_generic_config *config = dev->chip_info;
diff --git a/src/drivers/generic/gpio_keys/gpio_keys.c b/src/drivers/generic/gpio_keys/gpio_keys.c
index b8e72bf..1017f7a 100644
--- a/src/drivers/generic/gpio_keys/gpio_keys.c
+++ b/src/drivers/generic/gpio_keys/gpio_keys.c
@@ -46,7 +46,7 @@
 	return dsd;
 }
 
-static void gpio_keys_fill_ssdt_generator(struct device *dev)
+static void gpio_keys_fill_ssdt_generator(const struct device *dev)
 {
 	struct drivers_generic_gpio_keys_config *config = dev->chip_info;
 	const char *scope = acpi_device_scope(dev);
diff --git a/src/drivers/generic/gpio_regulator/gpio_regulator.c b/src/drivers/generic/gpio_regulator/gpio_regulator.c
index 0f39910..0ec1626 100644
--- a/src/drivers/generic/gpio_regulator/gpio_regulator.c
+++ b/src/drivers/generic/gpio_regulator/gpio_regulator.c
@@ -9,7 +9,7 @@
 
 #include "chip.h"
 
-static void gpio_regulator_fill_ssdt_generator(struct device *dev)
+static void gpio_regulator_fill_ssdt_generator(const struct device *dev)
 {
 	struct drivers_generic_gpio_regulator_config *config = dev->chip_info;
 	const char *scope = acpi_device_scope(dev);
diff --git a/src/drivers/generic/max98357a/max98357a.c b/src/drivers/generic/max98357a/max98357a.c
index 599acb5..b9c270b 100644
--- a/src/drivers/generic/max98357a/max98357a.c
+++ b/src/drivers/generic/max98357a/max98357a.c
@@ -14,7 +14,7 @@
 
 #define MAX98357A_ACPI_NAME	"MAXM"
 
-static void max98357a_fill_ssdt(struct device *dev)
+static void max98357a_fill_ssdt(const struct device *dev)
 {
 	struct drivers_generic_max98357a_config *config = dev->chip_info;
 	const char *path;
diff --git a/src/drivers/gfx/generic/generic.c b/src/drivers/gfx/generic/generic.c
index aa8d756..4670b4d 100644
--- a/src/drivers/gfx/generic/generic.c
+++ b/src/drivers/gfx/generic/generic.c
@@ -101,7 +101,7 @@
 		privacy);
 }
 
-static void gfx_fill_ssdt_generator(struct device *dev)
+static void gfx_fill_ssdt_generator(const struct device *dev)
 {
 	size_t i;
 	struct drivers_gfx_generic_config *config = dev->chip_info;
diff --git a/src/drivers/i2c/da7219/da7219.c b/src/drivers/i2c/da7219/da7219.c
index 4cfeb9f..931c437 100644
--- a/src/drivers/i2c/da7219/da7219.c
+++ b/src/drivers/i2c/da7219/da7219.c
@@ -17,7 +17,7 @@
 #define DA7219_ACPI_NAME	"DLG7"
 #define DA7219_ACPI_HID		"DLGS7219"
 
-static void da7219_fill_ssdt(struct device *dev)
+static void da7219_fill_ssdt(const struct device *dev)
 {
 	struct drivers_i2c_da7219_config *config = dev->chip_info;
 	const char *scope = acpi_device_scope(dev);
diff --git a/src/drivers/i2c/designware/dw_i2c.c b/src/drivers/i2c/designware/dw_i2c.c
index 309dfee..74e24c7 100644
--- a/src/drivers/i2c/designware/dw_i2c.c
+++ b/src/drivers/i2c/designware/dw_i2c.c
@@ -805,7 +805,7 @@
  * Generate I2C timing information into the SSDT for the OS driver to consume,
  * optionally applying override values provided by the caller.
  */
-void dw_i2c_acpi_fill_ssdt(struct device *dev)
+void dw_i2c_acpi_fill_ssdt(const struct device *dev)
 {
 	const struct dw_i2c_bus_config *bcfg;
 	uintptr_t dw_i2c_addr;
diff --git a/src/drivers/i2c/designware/dw_i2c.h b/src/drivers/i2c/designware/dw_i2c.h
index e309bc12a..75df475 100644
--- a/src/drivers/i2c/designware/dw_i2c.h
+++ b/src/drivers/i2c/designware/dw_i2c.h
@@ -141,7 +141,7 @@
  * Common device_operations implementation to fill ACPI SSDT table for i2c
  * host controller.
  */
-void dw_i2c_acpi_fill_ssdt(struct device *dev);
+void dw_i2c_acpi_fill_ssdt(const struct device *dev);
 
 /*
  * Common device_operations implementation for i2c host controller ops.
diff --git a/src/drivers/i2c/generic/chip.h b/src/drivers/i2c/generic/chip.h
index b167b71..e1f4472 100644
--- a/src/drivers/i2c/generic/chip.h
+++ b/src/drivers/i2c/generic/chip.h
@@ -76,7 +76,7 @@
  * callback: Callback to fill in device-specific information
  * config: Pointer to drivers_i2c_generic_config structure
  */
-void i2c_generic_fill_ssdt(struct device *dev,
+void i2c_generic_fill_ssdt(const struct device *dev,
 			void (*callback)(const struct device *dev),
 			struct drivers_i2c_generic_config *config);
 
diff --git a/src/drivers/i2c/generic/generic.c b/src/drivers/i2c/generic/generic.c
index 38fcfdc..7e709d6 100644
--- a/src/drivers/i2c/generic/generic.c
+++ b/src/drivers/i2c/generic/generic.c
@@ -43,7 +43,7 @@
 	return ret;
 }
 
-void i2c_generic_fill_ssdt(struct device *dev,
+void i2c_generic_fill_ssdt(const struct device *dev,
 			void (*callback)(const struct device *dev),
 			struct drivers_i2c_generic_config *config)
 {
@@ -159,7 +159,7 @@
 	       config->desc ? : dev->chip_ops->name, dev_path(dev));
 }
 
-static void i2c_generic_fill_ssdt_generator(struct device *dev)
+static void i2c_generic_fill_ssdt_generator(const struct device *dev)
 {
 	i2c_generic_fill_ssdt(dev, NULL, dev->chip_info);
 }
diff --git a/src/drivers/i2c/hid/hid.c b/src/drivers/i2c/hid/hid.c
index 0cb28bb..4fac858 100644
--- a/src/drivers/i2c/hid/hid.c
+++ b/src/drivers/i2c/hid/hid.c
@@ -20,7 +20,7 @@
 	acpigen_write_dsm_i2c_hid(&dsm_config);
 }
 
-static void i2c_hid_fill_ssdt_generator(struct device *dev)
+static void i2c_hid_fill_ssdt_generator(const struct device *dev)
 {
 	struct drivers_i2c_hid_config *config = dev->chip_info;
 	config->generic.cid = I2C_HID_CID;
diff --git a/src/drivers/i2c/max98373/max98373.c b/src/drivers/i2c/max98373/max98373.c
index a7df56b..0675638 100644
--- a/src/drivers/i2c/max98373/max98373.c
+++ b/src/drivers/i2c/max98373/max98373.c
@@ -14,7 +14,7 @@
 #define MAX98373_ACPI_NAME	"MAXI"
 #define MAX98373_ACPI_HID	"MX98373"
 
-static void max98373_fill_ssdt(struct device *dev)
+static void max98373_fill_ssdt(const struct device *dev)
 {
 	struct drivers_i2c_max98373_config *config = dev->chip_info;
 	const char *scope = acpi_device_scope(dev);
diff --git a/src/drivers/i2c/max98927/max98927.c b/src/drivers/i2c/max98927/max98927.c
index 0cb80ae..ddd9d15 100644
--- a/src/drivers/i2c/max98927/max98927.c
+++ b/src/drivers/i2c/max98927/max98927.c
@@ -14,7 +14,7 @@
 #define MAX98927_ACPI_NAME	"MAXI"
 #define MAX98927_ACPI_HID	"MX98927"
 
-static void max98927_fill_ssdt(struct device *dev)
+static void max98927_fill_ssdt(const struct device *dev)
 {
 	struct drivers_i2c_max98927_config *config = dev->chip_info;
 	const char *scope = acpi_device_scope(dev);
diff --git a/src/drivers/i2c/nau8825/nau8825.c b/src/drivers/i2c/nau8825/nau8825.c
index c3e95e7..fd9cfc9 100644
--- a/src/drivers/i2c/nau8825/nau8825.c
+++ b/src/drivers/i2c/nau8825/nau8825.c
@@ -19,7 +19,7 @@
 #define NAU8825_DP_INT(key,val) \
 	acpi_dp_add_integer(dp, "nuvoton," key, (val))
 
-static void nau8825_fill_ssdt(struct device *dev)
+static void nau8825_fill_ssdt(const struct device *dev)
 {
 	struct drivers_i2c_nau8825_config *config = dev->chip_info;
 	const char *scope = acpi_device_scope(dev);
diff --git a/src/drivers/i2c/rt1011/rt1011.c b/src/drivers/i2c/rt1011/rt1011.c
index 68681ef..ec018cc 100644
--- a/src/drivers/i2c/rt1011/rt1011.c
+++ b/src/drivers/i2c/rt1011/rt1011.c
@@ -16,7 +16,7 @@
 
 #define RT1011_DP_INT(key, val) acpi_dp_add_integer(dp, "realtek," key, (val))
 
-static void rt1011_fill_ssdt(struct device *dev)
+static void rt1011_fill_ssdt(const struct device *dev)
 {
 	struct drivers_i2c_rt1011_config *config = dev->chip_info;
 	const char *scope = acpi_device_scope(dev);
diff --git a/src/drivers/i2c/rt5663/rt5663.c b/src/drivers/i2c/rt5663/rt5663.c
index 70c14ef..67d8dea 100644
--- a/src/drivers/i2c/rt5663/rt5663.c
+++ b/src/drivers/i2c/rt5663/rt5663.c
@@ -17,7 +17,7 @@
 #define RT5663_DP_INT(key, val) \
 	acpi_dp_add_integer(dp, "realtek," key, (val))
 
-static void rt5663_fill_ssdt(struct device *dev)
+static void rt5663_fill_ssdt(const struct device *dev)
 {
 	struct drivers_i2c_rt5663_config *config = dev->chip_info;
 	const char *scope = acpi_device_scope(dev);
diff --git a/src/drivers/i2c/sx9310/sx9310.c b/src/drivers/i2c/sx9310/sx9310.c
index a4fac10..44cb883 100644
--- a/src/drivers/i2c/sx9310/sx9310.c
+++ b/src/drivers/i2c/sx9310/sx9310.c
@@ -18,7 +18,7 @@
 					I2C_SX9310_ACPI_ID "," #NAME, \
 					config->NAME)
 
-static void i2c_sx9310_fill_ssdt(struct device *dev)
+static void i2c_sx9310_fill_ssdt(const struct device *dev)
 {
 	struct drivers_i2c_sx9310_config *config = dev->chip_info;
 	const char *scope = acpi_device_scope(dev);
diff --git a/src/drivers/i2c/tpm/chip.c b/src/drivers/i2c/tpm/chip.c
index b81b0d1..fbf9ffa 100644
--- a/src/drivers/i2c/tpm/chip.c
+++ b/src/drivers/i2c/tpm/chip.c
@@ -11,7 +11,7 @@
 #include "tpm.h"
 #include "chip.h"
 
-static void i2c_tpm_fill_ssdt(struct device *dev)
+static void i2c_tpm_fill_ssdt(const struct device *dev)
 {
 	struct drivers_i2c_tpm_config *config = dev->chip_info;
 	const char *scope = acpi_device_scope(dev);
diff --git a/src/drivers/intel/ish/ish.c b/src/drivers/intel/ish/ish.c
index 3daf491..5840286 100644
--- a/src/drivers/intel/ish/ish.c
+++ b/src/drivers/intel/ish/ish.c
@@ -8,7 +8,7 @@
 #include <device/pci_ids.h>
 #include "chip.h"
 
-static void ish_fill_ssdt_generator(struct device *dev)
+static void ish_fill_ssdt_generator(const struct device *dev)
 {
 	struct drivers_intel_ish_config *config = dev->chip_info;
 	struct device *root = dev->bus->dev;
diff --git a/src/drivers/intel/mipi_camera/camera.c b/src/drivers/intel/mipi_camera/camera.c
index aabf2ba..b8e1076 100644
--- a/src/drivers/intel/mipi_camera/camera.c
+++ b/src/drivers/intel/mipi_camera/camera.c
@@ -10,7 +10,7 @@
 #include <device/path.h>
 #include "chip.h"
 
-static void camera_fill_ssdt(struct device *dev)
+static void camera_fill_ssdt(const struct device *dev)
 {
 	struct drivers_intel_mipi_camera_config *config = dev->chip_info;
 	const char *scope = acpi_device_scope(dev);
diff --git a/src/drivers/intel/wifi/wifi.c b/src/drivers/intel/wifi/wifi.c
index c3e551a..ffbab4d 100644
--- a/src/drivers/intel/wifi/wifi.c
+++ b/src/drivers/intel/wifi/wifi.c
@@ -59,7 +59,7 @@
 #endif
 
 #if CONFIG(HAVE_ACPI_TABLES)
-static void intel_wifi_fill_ssdt(struct device *dev)
+static void intel_wifi_fill_ssdt(const struct device *dev)
 {
 	struct drivers_intel_wifi_config *config = dev->chip_info;
 	struct generic_wifi_config generic_config;
diff --git a/src/drivers/ipmi/ipmi_kcs_ops.c b/src/drivers/ipmi/ipmi_kcs_ops.c
index 349abbc..145313a 100644
--- a/src/drivers/ipmi/ipmi_kcs_ops.c
+++ b/src/drivers/ipmi/ipmi_kcs_ops.c
@@ -221,7 +221,7 @@
 	return current;
 }
 
-static void ipmi_ssdt(struct device *dev)
+static void ipmi_ssdt(const struct device *dev)
 {
 	const char *scope = acpi_device_scope(dev);
 	struct drivers_ipmi_config *conf = NULL;
diff --git a/src/drivers/net/r8168.c b/src/drivers/net/r8168.c
index c547f17..b904586 100644
--- a/src/drivers/net/r8168.c
+++ b/src/drivers/net/r8168.c
@@ -306,7 +306,7 @@
 
 #if CONFIG(HAVE_ACPI_TABLES)
 #define R8168_ACPI_HID "R8168"
-static void r8168_net_fill_ssdt(struct device *dev)
+static void r8168_net_fill_ssdt(const struct device *dev)
 {
 	struct drivers_net_config *config = dev->chip_info;
 	const char *path = acpi_device_path(dev->bus->dev);
diff --git a/src/drivers/pc80/tpm/tis.c b/src/drivers/pc80/tpm/tis.c
index 1081410..3d4c6b6 100644
--- a/src/drivers/pc80/tpm/tis.c
+++ b/src/drivers/pc80/tpm/tis.c
@@ -872,7 +872,7 @@
 	tpm_mci_func1_cb,
 };
 
-static void lpc_tpm_fill_ssdt(struct device *dev)
+static void lpc_tpm_fill_ssdt(const struct device *dev)
 {
 	const char *path = acpi_device_path(dev->bus->dev);
 	u32 arg;
diff --git a/src/drivers/spi/acpi/acpi.c b/src/drivers/spi/acpi/acpi.c
index 76bddbd..0eeaffb 100644
--- a/src/drivers/spi/acpi/acpi.c
+++ b/src/drivers/spi/acpi/acpi.c
@@ -59,7 +59,7 @@
 	return ret;
 }
 
-static void spi_acpi_fill_ssdt_generator(struct device *dev)
+static void spi_acpi_fill_ssdt_generator(const struct device *dev)
 {
 	struct drivers_spi_acpi_config *config = dev->chip_info;
 	const char *scope = acpi_device_scope(dev);
diff --git a/src/drivers/usb/acpi/usb_acpi.c b/src/drivers/usb/acpi/usb_acpi.c
index a6a004f..916d373 100644
--- a/src/drivers/usb/acpi/usb_acpi.c
+++ b/src/drivers/usb/acpi/usb_acpi.c
@@ -21,7 +21,7 @@
 	return true;
 }
 
-static void usb_acpi_fill_ssdt_generator(struct device *dev)
+static void usb_acpi_fill_ssdt_generator(const struct device *dev)
 {
 	struct drivers_usb_acpi_config *config = dev->chip_info;
 	const char *path = acpi_device_path(dev);
diff --git a/src/drivers/wifi/generic.c b/src/drivers/wifi/generic.c
index fe2e39d..b864094 100644
--- a/src/drivers/wifi/generic.c
+++ b/src/drivers/wifi/generic.c
@@ -171,7 +171,7 @@
 	acpigen_pop_len();
 }
 
-void generic_wifi_fill_ssdt(struct device *dev,
+void generic_wifi_fill_ssdt(const struct device *dev,
 			    const struct generic_wifi_config *config)
 {
 	const char *path;
diff --git a/src/drivers/wifi/generic_wifi.h b/src/drivers/wifi/generic_wifi.h
index 1c90bc6..b863ef4 100644
--- a/src/drivers/wifi/generic_wifi.h
+++ b/src/drivers/wifi/generic_wifi.h
@@ -22,7 +22,7 @@
  * This function implements common device operation to help fill ACPI SSDT
  * table for WiFi controller.
  */
-void generic_wifi_fill_ssdt(struct device *dev,
+void generic_wifi_fill_ssdt(const struct device *dev,
 			    const struct generic_wifi_config *config);
 
 /**
diff --git a/src/ec/google/chromeec/ec.h b/src/ec/google/chromeec/ec.h
index 5f84722..6014143 100644
--- a/src/ec/google/chromeec/ec.h
+++ b/src/ec/google/chromeec/ec.h
@@ -344,7 +344,7 @@
  *
  * @param dev			EC device
  */
-void google_chromeec_fill_ssdt_generator(struct device *dev);
+void google_chromeec_fill_ssdt_generator(const struct device *dev);
 
 /**
  * Returns the ACPI name for the EC device.
diff --git a/src/ec/google/chromeec/ec_acpi.c b/src/ec/google/chromeec/ec_acpi.c
index 79e3f4b..2331c7a 100644
--- a/src/ec/google/chromeec/ec_acpi.c
+++ b/src/ec/google/chromeec/ec_acpi.c
@@ -187,7 +187,7 @@
 	}
 }
 
-static void fill_ssdt_typec_device(struct device *dev)
+static void fill_ssdt_typec_device(const struct device *dev)
 {
 	struct usb_pd_port_caps port_caps;
 	char con_name[] = "CONx";
@@ -249,7 +249,7 @@
 	[TK_PREV_TRACK] = PS2_KEY_PREV_TRACK,
 };
 
-static void fill_ssdt_ps2_keyboard(struct device *dev)
+static void fill_ssdt_ps2_keyboard(const struct device *dev)
 {
 	uint8_t i;
 	struct ec_response_keybd_config keybd = {};
@@ -273,7 +273,7 @@
 				 !!(keybd.capabilities & KEYBD_CAP_SCRNLOCK_KEY));
 }
 
-void google_chromeec_fill_ssdt_generator(struct device *dev)
+void google_chromeec_fill_ssdt_generator(const struct device *dev)
 {
 	if (!dev->enabled)
 		return;
diff --git a/src/ec/google/wilco/chip.c b/src/ec/google/wilco/chip.c
index 7de4e02..0d0f987 100644
--- a/src/ec/google/wilco/chip.c
+++ b/src/ec/google/wilco/chip.c
@@ -179,7 +179,7 @@
 	wilco_ec_resource(dev, 2, CONFIG_EC_BASE_PACKET, 16);
 }
 
-static void wilco_ec_fill_ssdt_generator(struct device *dev)
+static void wilco_ec_fill_ssdt_generator(const struct device *dev)
 {
 	struct opregion opreg;
 	void *region_ptr;
diff --git a/src/ec/lenovo/h8/h8.h b/src/ec/lenovo/h8/h8.h
index 8999cc3..5b2ae1e 100644
--- a/src/ec/lenovo/h8/h8.h
+++ b/src/ec/lenovo/h8/h8.h
@@ -35,7 +35,7 @@
 bool h8_wwan_nv_enable(void);
 bool h8_has_wwan(const struct device *dev);
 
-void h8_ssdt_generator(struct device *dev);
+void h8_ssdt_generator(const struct device *dev);
 
 /* EC registers */
 #define H8_CONFIG0 0x00
diff --git a/src/ec/lenovo/h8/ssdt.c b/src/ec/lenovo/h8/ssdt.c
index 6b821a40..56e305a 100644
--- a/src/ec/lenovo/h8/ssdt.c
+++ b/src/ec/lenovo/h8/ssdt.c
@@ -8,7 +8,7 @@
 #include "h8.h"
 #include "chip.h"
 
-static char *h8_dsdt_scope(struct device *dev, const char *scope)
+static char *h8_dsdt_scope(const struct device *dev, const char *scope)
 {
 	static char buf[DEVICE_PATH_MAX] = {};
 	const char *path = acpi_device_path(dev);
@@ -22,7 +22,7 @@
 /*
  * Generates EC SSDT.
  */
-void h8_ssdt_generator(struct device *dev)
+void h8_ssdt_generator(const struct device *dev)
 {
 	struct ec_lenovo_h8_config *conf = dev->chip_info;
 
diff --git a/src/include/device/device.h b/src/include/device/device.h
index 40aa2d0..efa9e8b 100644
--- a/src/include/device/device.h
+++ b/src/include/device/device.h
@@ -50,7 +50,7 @@
 #if CONFIG(HAVE_ACPI_TABLES)
 	unsigned long (*write_acpi_tables)(const struct device *dev,
 		unsigned long start, struct acpi_rsdp *rsdp);
-	void (*acpi_fill_ssdt)(struct device *dev);
+	void (*acpi_fill_ssdt)(const struct device *dev);
 	void (*acpi_inject_dsdt)(struct device *dev);
 	const char *(*acpi_name)(const struct device *dev);
 	/* Returns the optional _HID (Hardware ID) */
diff --git a/src/include/device/pci_rom.h b/src/include/device/pci_rom.h
index d16daf8..6b6fee2 100644
--- a/src/include/device/pci_rom.h
+++ b/src/include/device/pci_rom.h
@@ -43,7 +43,7 @@
 						  unsigned long current,
 						  struct acpi_rsdp *rsdp);
 
-void pci_rom_ssdt(struct device *device);
+void pci_rom_ssdt(const struct device *device);
 
 void map_oprom_vendev_rev(u32 *vendev, u8 *rev);
 u32 map_oprom_vendev(u32 vendev);
diff --git a/src/mainboard/lenovo/x200/mainboard.c b/src/mainboard/lenovo/x200/mainboard.c
index f3ef0ec..86afcfd 100644
--- a/src/mainboard/lenovo/x200/mainboard.c
+++ b/src/mainboard/lenovo/x200/mainboard.c
@@ -6,7 +6,7 @@
 #include <drivers/lenovo/lenovo.h>
 #include "dock.h"
 
-static void fill_ssdt(struct device *device)
+static void fill_ssdt(const struct device *device)
 {
 	drivers_lenovo_serial_ports_ssdt_generate("\\_SB.PCI0.LPCB", 0);
 }
diff --git a/src/mainboard/lenovo/x201/mainboard.c b/src/mainboard/lenovo/x201/mainboard.c
index b29302d..785cde6 100644
--- a/src/mainboard/lenovo/x201/mainboard.c
+++ b/src/mainboard/lenovo/x201/mainboard.c
@@ -10,7 +10,7 @@
 #include <cpu/x86/lapic.h>
 #include <drivers/lenovo/lenovo.h>
 
-static void fill_ssdt(struct device *device)
+static void fill_ssdt(const struct device *device)
 {
 	drivers_lenovo_serial_ports_ssdt_generate("\\_SB.PCI0.LPCB", 0);
 }
diff --git a/src/mainboard/lenovo/x60/mainboard.c b/src/mainboard/lenovo/x60/mainboard.c
index 86a2040..14080f5 100644
--- a/src/mainboard/lenovo/x60/mainboard.c
+++ b/src/mainboard/lenovo/x60/mainboard.c
@@ -99,7 +99,7 @@
 	}
 }
 
-static void fill_ssdt(struct device *device)
+static void fill_ssdt(const struct device *device)
 {
 	drivers_lenovo_serial_ports_ssdt_generate("\\_SB.PCI0.LPCB", 1);
 }
diff --git a/src/northbridge/amd/agesa/family14/northbridge.c b/src/northbridge/amd/agesa/family14/northbridge.c
index 32d1ad8..9700ff7 100644
--- a/src/northbridge/amd/agesa/family14/northbridge.c
+++ b/src/northbridge/amd/agesa/family14/northbridge.c
@@ -658,7 +658,7 @@
 
 /* North Bridge Structures */
 
-static void northbridge_fill_ssdt_generator(struct device *device)
+static void northbridge_fill_ssdt_generator(const struct device *device)
 {
 	msr_t msr;
 	char pscope[] = "\\_SB.PCI0";
diff --git a/src/northbridge/amd/agesa/family15tn/northbridge.c b/src/northbridge/amd/agesa/family15tn/northbridge.c
index e400d10..e861b98 100644
--- a/src/northbridge/amd/agesa/family15tn/northbridge.c
+++ b/src/northbridge/amd/agesa/family15tn/northbridge.c
@@ -417,7 +417,7 @@
 	return (unsigned long)current;
 }
 
-static void northbridge_fill_ssdt_generator(struct device *device)
+static void northbridge_fill_ssdt_generator(const struct device *device)
 {
 	msr_t msr;
 	char pscope[] = "\\_SB.PCI0";
diff --git a/src/northbridge/amd/agesa/family16kb/northbridge.c b/src/northbridge/amd/agesa/family16kb/northbridge.c
index b63dec9..7852b5e 100644
--- a/src/northbridge/amd/agesa/family16kb/northbridge.c
+++ b/src/northbridge/amd/agesa/family16kb/northbridge.c
@@ -417,7 +417,7 @@
 	return (unsigned long)current;
 }
 
-static void northbridge_fill_ssdt_generator(struct device *device)
+static void northbridge_fill_ssdt_generator(const struct device *device)
 {
 	msr_t msr;
 	char pscope[] = "\\_SB.PCI0";
diff --git a/src/northbridge/amd/pi/00630F01/northbridge.c b/src/northbridge/amd/pi/00630F01/northbridge.c
index f07a60a..1ead42c 100644
--- a/src/northbridge/amd/pi/00630F01/northbridge.c
+++ b/src/northbridge/amd/pi/00630F01/northbridge.c
@@ -415,7 +415,7 @@
 	return (unsigned long)current;
 }
 
-static void northbridge_fill_ssdt_generator(struct device *device)
+static void northbridge_fill_ssdt_generator(const struct device *device)
 {
 	msr_t msr;
 	char pscope[] = "\\_SB.PCI0";
diff --git a/src/northbridge/amd/pi/00660F01/northbridge.c b/src/northbridge/amd/pi/00660F01/northbridge.c
index 2742f06..e3d753a 100644
--- a/src/northbridge/amd/pi/00660F01/northbridge.c
+++ b/src/northbridge/amd/pi/00660F01/northbridge.c
@@ -403,7 +403,7 @@
 	return (unsigned long)current;
 }
 
-static void northbridge_fill_ssdt_generator(struct device *device)
+static void northbridge_fill_ssdt_generator(const struct device *device)
 {
 	msr_t msr;
 	char pscope[] = "\\_SB.PCI0";
diff --git a/src/northbridge/amd/pi/00730F01/northbridge.c b/src/northbridge/amd/pi/00730F01/northbridge.c
index d5a6865..fa49fc9 100644
--- a/src/northbridge/amd/pi/00730F01/northbridge.c
+++ b/src/northbridge/amd/pi/00730F01/northbridge.c
@@ -727,7 +727,7 @@
 	return acpi_fill_ivrs11(current, ivrs_agesa);
 }
 
-static void northbridge_fill_ssdt_generator(struct device *device)
+static void northbridge_fill_ssdt_generator(const struct device *device)
 {
 	msr_t msr;
 	char pscope[] = "\\_SB.PCI0";
diff --git a/src/northbridge/intel/gm45/gma.c b/src/northbridge/intel/gm45/gma.c
index 9319114..8a38bdf 100644
--- a/src/northbridge/intel/gm45/gma.c
+++ b/src/northbridge/intel/gm45/gma.c
@@ -208,7 +208,7 @@
 	intel_gma_restore_opregion();
 }
 
-static void gma_generate_ssdt(struct device *device)
+static void gma_generate_ssdt(const struct device *device)
 {
 	const struct northbridge_intel_gm45_config *chip = device->chip_info;
 
diff --git a/src/northbridge/intel/haswell/gma.c b/src/northbridge/intel/haswell/gma.c
index 1014ce5..4d70d1a 100644
--- a/src/northbridge/intel/haswell/gma.c
+++ b/src/northbridge/intel/haswell/gma.c
@@ -513,7 +513,7 @@
 	intel_gma_restore_opregion();
 }
 
-static void gma_generate_ssdt(struct device *dev)
+static void gma_generate_ssdt(const struct device *dev)
 {
 	const struct northbridge_intel_haswell_config *chip = dev->chip_info;
 
diff --git a/src/northbridge/intel/i945/gma.c b/src/northbridge/intel/i945/gma.c
index 98b8e8a..3259ac4 100644
--- a/src/northbridge/intel/i945/gma.c
+++ b/src/northbridge/intel/i945/gma.c
@@ -744,7 +744,7 @@
 		pci_write_config8(dev, 0xf4, 0xff);
 }
 
-static void gma_generate_ssdt(struct device *device)
+static void gma_generate_ssdt(const struct device *device)
 {
 	const struct northbridge_intel_i945_config *chip = device->chip_info;
 
diff --git a/src/northbridge/intel/ironlake/gma.c b/src/northbridge/intel/ironlake/gma.c
index d0f6bde..2521105 100644
--- a/src/northbridge/intel/ironlake/gma.c
+++ b/src/northbridge/intel/ironlake/gma.c
@@ -203,7 +203,7 @@
 	res->size = (resource_t) 0x10000000;
 }
 
-static void gma_generate_ssdt(struct device *device)
+static void gma_generate_ssdt(const struct device *device)
 {
 	const struct northbridge_intel_ironlake_config *chip = device->chip_info;
 
diff --git a/src/northbridge/intel/sandybridge/gma.c b/src/northbridge/intel/sandybridge/gma.c
index ad94e06..bb099f0 100644
--- a/src/northbridge/intel/sandybridge/gma.c
+++ b/src/northbridge/intel/sandybridge/gma.c
@@ -640,7 +640,7 @@
 	intel_gma_restore_opregion();
 }
 
-static void gma_generate_ssdt(struct device *device)
+static void gma_generate_ssdt(const struct device *device)
 {
 	const struct northbridge_intel_sandybridge_config *chip = device->chip_info;
 
diff --git a/src/northbridge/intel/x4x/gma.c b/src/northbridge/intel/x4x/gma.c
index c1b7837..03d7264 100644
--- a/src/northbridge/intel/x4x/gma.c
+++ b/src/northbridge/intel/x4x/gma.c
@@ -80,7 +80,7 @@
 	pci_write_config16(dev_host, D0F0_GGC, ggc);
 }
 
-static void gma_generate_ssdt(struct device *device)
+static void gma_generate_ssdt(const struct device *device)
 {
 	const struct northbridge_intel_x4x_config *chip = device->chip_info;
 
diff --git a/src/soc/amd/picasso/acpi.c b/src/soc/amd/picasso/acpi.c
index c3dec35..85b40ac 100644
--- a/src/soc/amd/picasso/acpi.c
+++ b/src/soc/amd/picasso/acpi.c
@@ -220,7 +220,7 @@
 	header->checksum = acpi_checksum((void *)fadt, sizeof(acpi_fadt_t));
 }
 
-void generate_cpu_entries(struct device *device)
+void generate_cpu_entries(const struct device *device)
 {
 	int cores, cpu;
 
diff --git a/src/soc/amd/picasso/northbridge.c b/src/soc/amd/picasso/northbridge.c
index d6409c9..35d46bc 100644
--- a/src/soc/amd/picasso/northbridge.c
+++ b/src/soc/amd/picasso/northbridge.c
@@ -159,7 +159,7 @@
 	return current;
 }
 
-static void northbridge_fill_ssdt_generator(struct device *device)
+static void northbridge_fill_ssdt_generator(const struct device *device)
 {
 	msr_t msr;
 	char pscope[] = "\\_SB.PCI0";
diff --git a/src/soc/amd/stoneyridge/acpi.c b/src/soc/amd/stoneyridge/acpi.c
index 325b594..e486c9c 100644
--- a/src/soc/amd/stoneyridge/acpi.c
+++ b/src/soc/amd/stoneyridge/acpi.c
@@ -222,7 +222,7 @@
 	header->checksum = acpi_checksum((void *)fadt, sizeof(acpi_fadt_t));
 }
 
-void generate_cpu_entries(struct device *device)
+void generate_cpu_entries(const struct device *device)
 {
 	int cores, cpu;
 
diff --git a/src/soc/amd/stoneyridge/northbridge.c b/src/soc/amd/stoneyridge/northbridge.c
index 2911c89..db71509 100644
--- a/src/soc/amd/stoneyridge/northbridge.c
+++ b/src/soc/amd/stoneyridge/northbridge.c
@@ -195,7 +195,7 @@
 	return (unsigned long)current;
 }
 
-static void northbridge_fill_ssdt_generator(struct device *device)
+static void northbridge_fill_ssdt_generator(const struct device *device)
 {
 	msr_t msr;
 	char pscope[] = "\\_SB.PCI0";
diff --git a/src/soc/intel/baytrail/acpi.c b/src/soc/intel/baytrail/acpi.c
index 3074f1a..426c2de 100644
--- a/src/soc/intel/baytrail/acpi.c
+++ b/src/soc/intel/baytrail/acpi.c
@@ -402,7 +402,7 @@
 	acpigen_pop_len();
 }
 
-void generate_cpu_entries(struct device *device)
+void generate_cpu_entries(const struct device *device)
 {
 	int core;
 	int pcontrol_blk = get_pmbase(), plen = 6;
diff --git a/src/soc/intel/baytrail/gfx.c b/src/soc/intel/baytrail/gfx.c
index 7e65c96..fe842ac 100644
--- a/src/soc/intel/baytrail/gfx.c
+++ b/src/soc/intel/baytrail/gfx.c
@@ -386,7 +386,7 @@
 	intel_gma_restore_opregion();
 }
 
-static void gma_generate_ssdt(struct device *dev)
+static void gma_generate_ssdt(const struct device *dev)
 {
 	const struct soc_intel_baytrail_config *chip = dev->chip_info;
 
diff --git a/src/soc/intel/braswell/acpi.c b/src/soc/intel/braswell/acpi.c
index 7cabb3a..0b68e09 100644
--- a/src/soc/intel/braswell/acpi.c
+++ b/src/soc/intel/braswell/acpi.c
@@ -405,7 +405,7 @@
 	acpigen_pop_len();
 }
 
-void generate_cpu_entries(struct device *device)
+void generate_cpu_entries(const struct device *device)
 {
 	int core;
 	int pcontrol_blk = get_pmbase(), plen = 6;
diff --git a/src/soc/intel/braswell/gfx.c b/src/soc/intel/braswell/gfx.c
index d6671f6..163acb4 100644
--- a/src/soc/intel/braswell/gfx.c
+++ b/src/soc/intel/braswell/gfx.c
@@ -77,7 +77,7 @@
 		gnvs_ptr->aslb = aslb;
 }
 
-static void gma_generate_ssdt(struct device *dev)
+static void gma_generate_ssdt(const struct device *dev)
 {
 	const struct soc_intel_braswell_config *chip = dev->chip_info;
 
diff --git a/src/soc/intel/broadwell/acpi.c b/src/soc/intel/broadwell/acpi.c
index feec61f..503e179 100644
--- a/src/soc/intel/broadwell/acpi.c
+++ b/src/soc/intel/broadwell/acpi.c
@@ -496,7 +496,7 @@
 	acpigen_pop_len();
 }
 
-void generate_cpu_entries(struct device *device)
+void generate_cpu_entries(const struct device *device)
 {
 	int coreID, cpuID, pcontrol_blk = ACPI_BASE_ADDRESS, plen = 6;
 	int totalcores = dev_count_cpu();
diff --git a/src/soc/intel/broadwell/igd.c b/src/soc/intel/broadwell/igd.c
index 6ab9b199..b030d44 100644
--- a/src/soc/intel/broadwell/igd.c
+++ b/src/soc/intel/broadwell/igd.c
@@ -616,7 +616,7 @@
 	return current;
 }
 
-static void gma_generate_ssdt(struct device *dev)
+static void gma_generate_ssdt(const struct device *dev)
 {
 	const struct soc_intel_broadwell_config *chip = dev->chip_info;
 
diff --git a/src/soc/intel/common/block/acpi/acpi.c b/src/soc/intel/common/block/acpi/acpi.c
index f1c7b8a..995a51d 100644
--- a/src/soc/intel/common/block/acpi/acpi.c
+++ b/src/soc/intel/common/block/acpi/acpi.c
@@ -431,7 +431,7 @@
 {
 }
 
-void generate_cpu_entries(struct device *device)
+void generate_cpu_entries(const struct device *device)
 {
 	int core_id, cpu_id, pcontrol_blk = ACPI_BASE_ADDRESS;
 	int plen = 6;
diff --git a/src/soc/intel/common/block/graphics/graphics.c b/src/soc/intel/common/block/graphics/graphics.c
index a6d45c6..5392958 100644
--- a/src/soc/intel/common/block/graphics/graphics.c
+++ b/src/soc/intel/common/block/graphics/graphics.c
@@ -39,7 +39,7 @@
 	return NULL;
 }
 
-static void gma_generate_ssdt(struct device *device)
+static void gma_generate_ssdt(const struct device *device)
 {
 	const struct i915_gpu_controller_info *gfx = intel_igd_get_controller_info(device);
 
diff --git a/src/soc/intel/common/block/scs/sd.c b/src/soc/intel/common/block/scs/sd.c
index d31e33c..8e44738 100644
--- a/src/soc/intel/common/block/scs/sd.c
+++ b/src/soc/intel/common/block/scs/sd.c
@@ -7,7 +7,7 @@
 #include <intelblocks/sd.h>
 
 #if CONFIG(HAVE_ACPI_TABLES)
-static void sd_fill_ssdt(struct device *dev)
+static void sd_fill_ssdt(const struct device *dev)
 {
 	const char *path;
 	struct acpi_gpio default_gpio = { 0 };
diff --git a/src/soc/intel/skylake/acpi.c b/src/soc/intel/skylake/acpi.c
index 4879168..aac90c3 100644
--- a/src/soc/intel/skylake/acpi.c
+++ b/src/soc/intel/skylake/acpi.c
@@ -491,7 +491,7 @@
 	acpigen_pop_len();
 }
 
-void generate_cpu_entries(struct device *device)
+void generate_cpu_entries(const struct device *device)
 {
 	int core_id, cpu_id, pcontrol_blk = ACPI_BASE_ADDRESS, plen = 6;
 	int totalcores = dev_count_cpu();
diff --git a/src/soc/intel/xeon_sp/skx/acpi.c b/src/soc/intel/xeon_sp/skx/acpi.c
index 589ee85..8a806be 100644
--- a/src/soc/intel/xeon_sp/skx/acpi.c
+++ b/src/soc/intel/xeon_sp/skx/acpi.c
@@ -200,7 +200,7 @@
 {
 }
 
-void generate_cpu_entries(struct device *device)
+void generate_cpu_entries(const struct device *device)
 {
 	int core_id, cpu_id, pcontrol_blk = ACPI_BASE_ADDRESS;
 	int plen = 6;
diff --git a/src/southbridge/intel/bd82x6x/lpc.c b/src/southbridge/intel/bd82x6x/lpc.c
index 278e90a..215965e 100644
--- a/src/southbridge/intel/bd82x6x/lpc.c
+++ b/src/southbridge/intel/bd82x6x/lpc.c
@@ -823,7 +823,7 @@
 	return "LPCB";
 }
 
-static void southbridge_fill_ssdt(struct device *device)
+static void southbridge_fill_ssdt(const struct device *device)
 {
 	struct device *dev = pcidev_on_root(0x1f, 0);
 	config_t *chip = dev->chip_info;
diff --git a/src/southbridge/intel/bd82x6x/sata.c b/src/southbridge/intel/bd82x6x/sata.c
index 75a1b1a..e65fd6e 100644
--- a/src/southbridge/intel/bd82x6x/sata.c
+++ b/src/southbridge/intel/bd82x6x/sata.c
@@ -274,7 +274,7 @@
 	return "SATA";
 }
 
-static void sata_fill_ssdt(struct device *dev)
+static void sata_fill_ssdt(const struct device *dev)
 {
 	config_t *config = dev->chip_info;
 	generate_sata_ssdt_ports("\\_SB_.PCI0.SATA", config->sata_port_map);
diff --git a/src/southbridge/intel/common/acpi_pirq_gen.c b/src/southbridge/intel/common/acpi_pirq_gen.c
index d1e0c8b..20dafdf 100644
--- a/src/southbridge/intel/common/acpi_pirq_gen.c
+++ b/src/southbridge/intel/common/acpi_pirq_gen.c
@@ -71,7 +71,7 @@
 	}
 }
 
-void intel_acpi_gen_def_acpi_pirq(struct device *dev)
+void intel_acpi_gen_def_acpi_pirq(const struct device *dev)
 {
 	const char *lpcb_path = acpi_device_path(dev);
 	char pci_int_mapping[32][4];
diff --git a/src/southbridge/intel/common/acpi_pirq_gen.h b/src/southbridge/intel/common/acpi_pirq_gen.h
index dc2cae9..acb1bcb 100644
--- a/src/southbridge/intel/common/acpi_pirq_gen.h
+++ b/src/southbridge/intel/common/acpi_pirq_gen.h
@@ -24,7 +24,7 @@
 	PIRQ_H,
 };
 
-void intel_acpi_gen_def_acpi_pirq(struct device *dev);
+void intel_acpi_gen_def_acpi_pirq(const struct device *dev);
 enum pirq intel_common_map_pirq(const struct device *dev,
 				const enum pci_pin pci_pin);
 
diff --git a/src/southbridge/intel/i82371eb/acpi_tables.c b/src/southbridge/intel/i82371eb/acpi_tables.c
index 9da9c23..96fcefc 100644
--- a/src/southbridge/intel/i82371eb/acpi_tables.c
+++ b/src/southbridge/intel/i82371eb/acpi_tables.c
@@ -25,7 +25,7 @@
 	return count;
 }
 
-void generate_cpu_entries(struct device *device)
+void generate_cpu_entries(const struct device *device)
 {
 	int cpu, pcontrol_blk=DEFAULT_PMBASE+PCNTRL, plen=6;
 	int numcpus = determine_total_number_of_cores();
diff --git a/src/southbridge/intel/i82371eb/isa.c b/src/southbridge/intel/i82371eb/isa.c
index bb87611..bc492df 100644
--- a/src/southbridge/intel/i82371eb/isa.c
+++ b/src/southbridge/intel/i82371eb/isa.c
@@ -118,7 +118,7 @@
 }
 
 #if CONFIG(HAVE_ACPI_TABLES)
-static void southbridge_acpi_fill_ssdt_generator(struct device *device)
+static void southbridge_acpi_fill_ssdt_generator(const struct device *device)
 {
 	acpigen_write_mainboard_resources("\\_SB.PCI0.MBRS", "_CRS");
 	generate_cpu_entries(device);
diff --git a/src/southbridge/intel/i82801gx/lpc.c b/src/southbridge/intel/i82801gx/lpc.c
index c24460c..9b5f545 100644
--- a/src/southbridge/intel/i82801gx/lpc.c
+++ b/src/southbridge/intel/i82801gx/lpc.c
@@ -647,7 +647,7 @@
 	return "LPCB";
 }
 
-static void southbridge_fill_ssdt(struct device *device)
+static void southbridge_fill_ssdt(const struct device *device)
 {
 	intel_acpi_gen_def_acpi_pirq(device);
 }
diff --git a/src/southbridge/intel/i82801ix/lpc.c b/src/southbridge/intel/i82801ix/lpc.c
index 923056c..a177c6c 100644
--- a/src/southbridge/intel/i82801ix/lpc.c
+++ b/src/southbridge/intel/i82801ix/lpc.c
@@ -494,7 +494,7 @@
 	return "LPCB";
 }
 
-static void southbridge_fill_ssdt(struct device *device)
+static void southbridge_fill_ssdt(const struct device *device)
 {
 	struct device *dev = pcidev_on_root(0x1f, 0);
 	config_t *chip = dev->chip_info;
diff --git a/src/southbridge/intel/i82801jx/lpc.c b/src/southbridge/intel/i82801jx/lpc.c
index 91f9285..380dca4 100644
--- a/src/southbridge/intel/i82801jx/lpc.c
+++ b/src/southbridge/intel/i82801jx/lpc.c
@@ -652,7 +652,7 @@
 	return "LPCB";
 }
 
-static void southbridge_fill_ssdt(struct device *device)
+static void southbridge_fill_ssdt(const struct device *device)
 {
 	struct device *dev = pcidev_on_root(0x1f, 0);
 	config_t *chip = dev->chip_info;
diff --git a/src/southbridge/intel/ibexpeak/lpc.c b/src/southbridge/intel/ibexpeak/lpc.c
index 395919e..242d274 100644
--- a/src/southbridge/intel/ibexpeak/lpc.c
+++ b/src/southbridge/intel/ibexpeak/lpc.c
@@ -716,7 +716,7 @@
 	return "LPCB";
 }
 
-static void southbridge_fill_ssdt(struct device *device)
+static void southbridge_fill_ssdt(const struct device *device)
 {
 	struct device *dev = pcidev_on_root(0x1f, 0);
 	config_t *chip = dev->chip_info;
diff --git a/src/southbridge/intel/ibexpeak/sata.c b/src/southbridge/intel/ibexpeak/sata.c
index 3a7bdb6..11ac078 100644
--- a/src/southbridge/intel/ibexpeak/sata.c
+++ b/src/southbridge/intel/ibexpeak/sata.c
@@ -212,7 +212,7 @@
 	pci_write_config16(dev, 0x90, map);
 }
 
-static void sata_fill_ssdt(struct device *dev)
+static void sata_fill_ssdt(const struct device *dev)
 {
 	config_t *config = dev->chip_info;
 	generate_sata_ssdt_ports("\\_SB_.PCI0.SATA", config->sata_port_map);
diff --git a/src/southbridge/intel/lynxpoint/lpc.c b/src/southbridge/intel/lynxpoint/lpc.c
index 42469ba..d44009b 100644
--- a/src/southbridge/intel/lynxpoint/lpc.c
+++ b/src/southbridge/intel/lynxpoint/lpc.c
@@ -877,7 +877,7 @@
 	return "LPCB";
 }
 
-static void southbridge_fill_ssdt(struct device *dev)
+static void southbridge_fill_ssdt(const struct device *dev)
 {
 	intel_acpi_gen_def_acpi_pirq(dev);
 }
diff --git a/src/superio/common/generic.c b/src/superio/common/generic.c
index 88432ff..cffe0c3 100644
--- a/src/superio/common/generic.c
+++ b/src/superio/common/generic.c
@@ -31,7 +31,7 @@
 }
 
 #if CONFIG(HAVE_ACPI_TABLES)
-static void generic_ssdt(struct device *dev)
+static void generic_ssdt(const struct device *dev)
 {
 	const char *scope = acpi_device_scope(dev);
 	const char *name = acpi_device_name(dev);
diff --git a/src/superio/common/ssdt.c b/src/superio/common/ssdt.c
index f5ad765..9ff02fb 100644
--- a/src/superio/common/ssdt.c
+++ b/src/superio/common/ssdt.c
@@ -29,7 +29,7 @@
 static const u8 io_idx[] = {PNP_IDX_IO0, PNP_IDX_IO1, PNP_IDX_IO2, PNP_IDX_IO3};
 static const u8 irq_idx[] = {PNP_IDX_IRQ0, PNP_IDX_IRQ1};
 
-static const struct superio_dev *superio_guess_function(struct device *dev)
+static const struct superio_dev *superio_guess_function(const struct device *dev)
 {
 	for (size_t i = 0; i < ARRAY_SIZE(io_idx); i++) {
 		struct resource *res = probe_resource(dev, io_idx[i]);
@@ -62,7 +62,7 @@
 }
 
 /* Return true if there are resources to report */
-static bool has_resources(struct device *dev)
+static bool has_resources(const struct device *dev)
 {
 	for (size_t i = 0; i < ARRAY_SIZE(io_idx); i++) {
 		struct resource *res = probe_resource(dev, io_idx[i]);
@@ -80,7 +80,7 @@
 }
 
 /* Add IO and IRQ resources for _CRS or _PRS */
-static void ldn_gen_resources(struct device *dev)
+static void ldn_gen_resources(const struct device *dev)
 {
 	uint16_t irq = 0;
 	for (size_t i = 0; i < ARRAY_SIZE(io_idx); i++) {
@@ -109,7 +109,7 @@
 }
 
 /* Add resource base and size for additional SuperIO code */
-static void ldn_gen_resources_use(struct device *dev)
+static void ldn_gen_resources_use(const struct device *dev)
 {
 	char name[5];
 	for (size_t i = 0; i < ARRAY_SIZE(io_idx); i++) {
@@ -161,7 +161,7 @@
 	return "Generic device";
 }
 
-void superio_common_fill_ssdt_generator(struct device *dev)
+void superio_common_fill_ssdt_generator(const struct device *dev)
 {
 	if (!dev || !dev->bus || !dev->bus->dev) {
 		printk(BIOS_CRIT, "BUG: Invalid argument in %s!\n", __func__);
diff --git a/src/superio/common/ssdt.h b/src/superio/common/ssdt.h
index 1f99189..5b1efcf 100644
--- a/src/superio/common/ssdt.h
+++ b/src/superio/common/ssdt.h
@@ -7,6 +7,6 @@
 #include <device/device.h>
 
 const char *superio_common_ldn_acpi_name(const struct device *dev);
-void superio_common_fill_ssdt_generator(struct device *dev);
+void superio_common_fill_ssdt_generator(const struct device *dev);
 
 #endif /* __SUPERIO_COMMON_SSDT_H__ */
diff --git a/src/superio/nuvoton/npcd378/superio.c b/src/superio/nuvoton/npcd378/superio.c
index 94b42a0..8f5975b 100644
--- a/src/superio/nuvoton/npcd378/superio.c
+++ b/src/superio/nuvoton/npcd378/superio.c
@@ -115,7 +115,7 @@
 	}
 }
 
-static void npcd378_ssdt_aux(struct device *dev)
+static void npcd378_ssdt_aux(const struct device *dev)
 {
 	/* Scope */
 	acpigen_write_scope(acpi_device_path(dev));
@@ -131,7 +131,7 @@
 	acpigen_pop_len();		/* Pop Scope */
 }
 
-static void npcd378_ssdt_kbc(struct device *dev)
+static void npcd378_ssdt_kbc(const struct device *dev)
 {
 	/* Scope */
 	acpigen_write_scope(acpi_device_path(dev));
@@ -147,7 +147,7 @@
 	acpigen_pop_len();		/* Pop Scope */
 }
 
-static void npcd378_ssdt_pwr(struct device *dev)
+static void npcd378_ssdt_pwr(const struct device *dev)
 {
 	const char *name = acpi_device_path(dev);
 	const char *scope = acpi_device_scope(dev);
@@ -403,7 +403,7 @@
 	acpigen_pop_len();		/* Scope */
 }
 
-static void npcd378_fill_ssdt_generator(struct device *dev)
+static void npcd378_fill_ssdt_generator(const struct device *dev)
 {
 	superio_common_fill_ssdt_generator(dev);
 
