diff --git a/drivers/sensor/ccs811/ccs811.c b/drivers/sensor/ccs811/ccs811.c
index 29a1af5..1b71e8b 100644
--- a/drivers/sensor/ccs811/ccs811.c
+++ b/drivers/sensor/ccs811/ccs811.c
@@ -46,12 +46,11 @@
  */
 static int fetch_status(const struct device *dev)
 {
-	struct ccs811_data *drv_data = dev->data;
+	const struct ccs811_config *config = dev->config;
 	uint8_t status;
 	int rv;
 
-	if (i2c_reg_read_byte(drv_data->i2c, DT_INST_REG_ADDR(0),
-			      CCS811_REG_STATUS, &status) < 0) {
+	if (i2c_reg_read_byte_dt(&config->i2c, CCS811_REG_STATUS, &status) < 0) {
 		LOG_ERR("Failed to read Status register");
 		return -EIO;
 	}
@@ -60,8 +59,7 @@
 	if (status & CCS811_STATUS_ERROR) {
 		uint8_t error_id;
 
-		if (i2c_reg_read_byte(drv_data->i2c, DT_INST_REG_ADDR(0),
-				      CCS811_REG_ERROR_ID, &error_id) < 0) {
+		if (i2c_reg_read_byte_dt(&config->i2c, CCS811_REG_ERROR_ID, &error_id) < 0) {
 			LOG_ERR("Failed to read ERROR_ID register");
 			return -EIO;
 		}
@@ -88,6 +86,7 @@
 			   struct ccs811_configver_type *ptr)
 {
 	struct ccs811_data *drv_data = dev->data;
+	const struct ccs811_config *config = dev->config;
 	uint8_t cmd;
 	int rc;
 
@@ -97,24 +96,21 @@
 
 	set_wake(dev, true);
 	cmd = CCS811_REG_HW_VERSION;
-	rc = i2c_write_read(drv_data->i2c, DT_INST_REG_ADDR(0),
-			    &cmd, sizeof(cmd),
-			    &ptr->hw_version, sizeof(ptr->hw_version));
+	rc = i2c_write_read_dt(&config->i2c, &cmd, sizeof(cmd), &ptr->hw_version,
+			       sizeof(ptr->hw_version));
 	if (rc == 0) {
 		cmd = CCS811_REG_FW_BOOT_VERSION;
-		rc = i2c_write_read(drv_data->i2c, DT_INST_REG_ADDR(0),
-				    &cmd, sizeof(cmd),
-				    (uint8_t *)&ptr->fw_boot_version,
-				    sizeof(ptr->fw_boot_version));
+		rc = i2c_write_read_dt(&config->i2c, &cmd, sizeof(cmd),
+				       (uint8_t *)&ptr->fw_boot_version,
+				       sizeof(ptr->fw_boot_version));
 		ptr->fw_boot_version = sys_be16_to_cpu(ptr->fw_boot_version);
 	}
 
 	if (rc == 0) {
 		cmd = CCS811_REG_FW_APP_VERSION;
-		rc = i2c_write_read(drv_data->i2c, DT_INST_REG_ADDR(0),
-				    &cmd, sizeof(cmd),
-				    (uint8_t *)&ptr->fw_app_version,
-				    sizeof(ptr->fw_app_version));
+		rc = i2c_write_read_dt(&config->i2c, &cmd, sizeof(cmd),
+				       (uint8_t *)&ptr->fw_app_version,
+				       sizeof(ptr->fw_app_version));
 		ptr->fw_app_version = sys_be16_to_cpu(ptr->fw_app_version);
 	}
 	if (rc == 0) {
@@ -132,15 +128,14 @@
 int ccs811_baseline_fetch(const struct device *dev)
 {
 	const uint8_t cmd = CCS811_REG_BASELINE;
-	struct ccs811_data *drv_data = dev->data;
+	const struct ccs811_config *config = dev->config;
 	int rc;
 	uint16_t baseline;
 
 	set_wake(dev, true);
 
-	rc = i2c_write_read(drv_data->i2c, DT_INST_REG_ADDR(0),
-			    &cmd, sizeof(cmd),
-			    (uint8_t *)&baseline, sizeof(baseline));
+	rc = i2c_write_read_dt(&config->i2c, &cmd, sizeof(cmd), (uint8_t *)&baseline,
+			       sizeof(baseline));
 	set_wake(dev, false);
 	if (rc <= 0) {
 		rc = baseline;
@@ -152,14 +147,14 @@
 int ccs811_baseline_update(const struct device *dev,
 			   uint16_t baseline)
 {
-	struct ccs811_data *drv_data = dev->data;
+	const struct ccs811_config *config = dev->config;
 	uint8_t buf[1 + sizeof(baseline)];
 	int rc;
 
 	buf[0] = CCS811_REG_BASELINE;
 	memcpy(buf + 1, &baseline, sizeof(baseline));
 	set_wake(dev, true);
-	rc = i2c_write(drv_data->i2c, buf, sizeof(buf), DT_INST_REG_ADDR(0));
+	rc = i2c_write_dt(&config->i2c, buf, sizeof(buf));
 	set_wake(dev, false);
 	return rc;
 }
@@ -168,7 +163,7 @@
 			  const struct sensor_value *temperature,
 			  const struct sensor_value *humidity)
 {
-	struct ccs811_data *drv_data = dev->data;
+	const struct ccs811_config *config = dev->config;
 	int rc;
 	uint8_t buf[5] = { CCS811_REG_ENV_DATA };
 
@@ -227,7 +222,7 @@
 	}
 
 	set_wake(dev, true);
-	rc = i2c_write(drv_data->i2c, buf, sizeof(buf), DT_INST_REG_ADDR(0));
+	rc = i2c_write_dt(&config->i2c, buf, sizeof(buf));
 	set_wake(dev, false);
 	return rc;
 }
@@ -236,6 +231,7 @@
 			       enum sensor_channel chan)
 {
 	struct ccs811_data *drv_data = dev->data;
+	const struct ccs811_config *config = dev->config;
 	struct ccs811_result_type *rp = &drv_data->result;
 	const uint8_t cmd = CCS811_REG_ALG_RESULT_DATA;
 	int rc;
@@ -243,9 +239,7 @@
 	unsigned int status;
 
 	set_wake(dev, true);
-	rc = i2c_write_read(drv_data->i2c, DT_INST_REG_ADDR(0),
-			    &cmd, sizeof(cmd),
-			    (uint8_t *)buf, sizeof(buf));
+	rc = i2c_write_read_dt(&config->i2c, &cmd, sizeof(cmd), (uint8_t *)buf, sizeof(buf));
 	set_wake(dev, false);
 	if (rc < 0) {
 		return -EIO;
@@ -328,7 +322,7 @@
 
 static int switch_to_app_mode(const struct device *dev)
 {
-	struct ccs811_data *drv_data = dev->data;
+	const struct ccs811_config *config = dev->config;
 	uint8_t buf;
 	int status;
 
@@ -353,7 +347,7 @@
 
 	buf = CCS811_REG_APP_START;
 	/* Set the device to application mode */
-	if (i2c_write(drv_data->i2c, &buf, 1, DT_INST_REG_ADDR(0)) < 0) {
+	if (i2c_write_dt(&config->i2c, &buf, 1) < 0) {
 		LOG_ERR("Failed to set Application mode");
 		return -EIO;
 	}
@@ -382,6 +376,7 @@
 			    uint8_t clear)
 {
 	struct ccs811_data *drv_data = dev->data;
+	const struct ccs811_config *config = dev->config;
 	int rc = 0;
 	uint8_t mode = set | (drv_data->mode & ~clear);
 
@@ -395,9 +390,7 @@
 
 	if (mode != drv_data->mode) {
 		set_wake(dev, true);
-		rc = i2c_reg_write_byte(drv_data->i2c, DT_INST_REG_ADDR(0),
-					CCS811_REG_MEAS_MODE,
-					mode);
+		rc = i2c_reg_write_byte_dt(&config->i2c, CCS811_REG_MEAS_MODE, mode);
 		LOG_DBG("CCS811 meas mode change %02x to %02x got %d",
 			drv_data->mode, mode, rc);
 		if (rc < 0) {
@@ -417,6 +410,7 @@
 int ccs811_set_thresholds(const struct device *dev)
 {
 	struct ccs811_data *drv_data = dev->data;
+	const struct ccs811_config *config = dev->config;
 	const uint8_t buf[5] = {
 		CCS811_REG_THRESHOLDS,
 		drv_data->co2_l2m >> 8,
@@ -427,7 +421,7 @@
 	int rc;
 
 	set_wake(dev, true);
-	rc = i2c_write(drv_data->i2c, buf, sizeof(buf), DT_INST_REG_ADDR(0));
+	rc = i2c_write_dt(&config->i2c, buf, sizeof(buf));
 	set_wake(dev, false);
 	return rc;
 }
@@ -437,18 +431,16 @@
 static int ccs811_init(const struct device *dev)
 {
 	struct ccs811_data *drv_data = dev->data;
+	const struct ccs811_config *config = dev->config;
 	int ret = 0;
 	int status;
 	uint16_t fw_ver;
 	uint8_t cmd;
 	uint8_t hw_id;
 
-	*drv_data = (struct ccs811_data){ 0 };
-	drv_data->i2c = device_get_binding(DT_INST_BUS_LABEL(0));
-	if (drv_data->i2c == NULL) {
-		LOG_ERR("Failed to get pointer to %s device!",
-			DT_INST_BUS_LABEL(0));
-		return -EINVAL;
+	if (!device_is_ready(config->i2c.bus)) {
+		LOG_ERR("I2C bus device not ready");
+		return -ENODEV;
 	}
 
 #if DT_INST_NODE_HAS_PROP(0, wake_gpios)
@@ -510,8 +502,7 @@
 			0xFF, 0x11, 0xE5, 0x72, 0x8A,
 		};
 
-		if (i2c_write(drv_data->i2c, reset_seq, sizeof(reset_seq),
-			      DT_INST_REG_ADDR(0)) < 0) {
+		if (i2c_write_dt(&config->i2c, reset_seq, sizeof(reset_seq)) < 0) {
 			LOG_ERR("Failed to issue SW reset");
 			ret = -EIO;
 			goto out;
@@ -527,8 +518,7 @@
 	}
 
 	/* Check Hardware ID */
-	if (i2c_reg_read_byte(drv_data->i2c, DT_INST_REG_ADDR(0),
-			      CCS811_REG_HW_ID, &hw_id) < 0) {
+	if (i2c_reg_read_byte_dt(&config->i2c, CCS811_REG_HW_ID, &hw_id) < 0) {
 		LOG_ERR("Failed to read Hardware ID register");
 		ret = -EIO;
 		goto out;
@@ -542,9 +532,7 @@
 
 	/* Check application firmware version (first byte) */
 	cmd = CCS811_REG_FW_APP_VERSION;
-	if (i2c_write_read(drv_data->i2c, DT_INST_REG_ADDR(0),
-			   &cmd, sizeof(cmd),
-			   &fw_ver, sizeof(fw_ver)) < 0) {
+	if (i2c_write_read_dt(&config->i2c, &cmd, sizeof(cmd), &fw_ver, sizeof(fw_ver)) < 0) {
 		LOG_ERR("Failed to read App Firmware Version register");
 		ret = -EIO;
 		goto out;
@@ -564,9 +552,7 @@
 #elif defined(CONFIG_CCS811_DRIVE_MODE_4)
 	meas_mode = CCS811_MODE_IAQ_250MSEC;
 #endif
-	if (i2c_reg_write_byte(drv_data->i2c, DT_INST_REG_ADDR(0),
-			       CCS811_REG_MEAS_MODE,
-			       meas_mode) < 0) {
+	if (i2c_reg_write_byte_dt(&config->i2c, CCS811_REG_MEAS_MODE, meas_mode) < 0) {
 		LOG_ERR("Failed to set Measurement mode");
 		ret = -EIO;
 		goto out;
@@ -597,9 +583,13 @@
 	return ret;
 }
 
-static struct ccs811_data ccs811_driver;
+static struct ccs811_data ccs811_data_inst;
+
+static const struct ccs811_config ccs811_config_inst = {
+	.i2c = I2C_DT_SPEC_INST_GET(0),
+};
 
 DEVICE_DT_INST_DEFINE(0, ccs811_init, NULL,
-		 &ccs811_driver, NULL,
-		 POST_KERNEL, CONFIG_SENSOR_INIT_PRIORITY,
-		 &ccs811_driver_api);
+		      &ccs811_data_inst, &ccs811_config_inst,
+		      POST_KERNEL, CONFIG_SENSOR_INIT_PRIORITY,
+		      &ccs811_driver_api);
diff --git a/drivers/sensor/ccs811/ccs811.h b/drivers/sensor/ccs811/ccs811.h
index f595f61..c5471c1 100644
--- a/drivers/sensor/ccs811/ccs811.h
+++ b/drivers/sensor/ccs811/ccs811.h
@@ -9,6 +9,7 @@
 #define ZEPHYR_DRIVERS_SENSOR_CCS811_CCS811_H_
 
 #include <zephyr/device.h>
+#include <zephyr/drivers/i2c.h>
 #include <zephyr/drivers/gpio.h>
 #include <zephyr/sys/util.h>
 #include <zephyr/drivers/sensor/ccs811.h>
@@ -48,7 +49,6 @@
 #define CCS811_CO2_MAX_PPM              32767
 
 struct ccs811_data {
-	const struct device *i2c;
 #if DT_INST_NODE_HAS_PROP(0, irq_gpios)
 	const struct device *irq_gpio;
 #ifdef CONFIG_CCS811_TRIGGER
@@ -83,6 +83,10 @@
 	uint8_t app_fw_ver;
 };
 
+struct ccs811_config {
+	struct i2c_dt_spec i2c;
+};
+
 #ifdef CONFIG_CCS811_TRIGGER
 
 int ccs811_mutate_meas_mode(const struct device *dev,
