summaryrefslogtreecommitdiff
path: root/components/drivers/include
diff options
context:
space:
mode:
authorwdfk-prog <[email protected]>2025-09-25 10:31:19 +0800
committerR b b666 <[email protected]>2025-09-25 11:41:58 +0800
commit7e5cd483600a5ad66d3d9d3dc761281469bec69e (patch)
tree0564e8c09981589bc0153485158d3b44b80cdfca /components/drivers/include
parentda99c507c49cac27ba5a5a8315b0b0c8ac00ca2a (diff)
feat[SPI]: Add SPI device detach function
Diffstat (limited to 'components/drivers/include')
-rw-r--r--components/drivers/include/drivers/dev_spi.h30
1 files changed, 29 insertions, 1 deletions
diff --git a/components/drivers/include/drivers/dev_spi.h b/components/drivers/include/drivers/dev_spi.h
index 2cee92748e..195ba4b6ee 100644
--- a/components/drivers/include/drivers/dev_spi.h
+++ b/components/drivers/include/drivers/dev_spi.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2024 RT-Thread Development Team
+ * Copyright (c) 2006-2025 RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -349,6 +349,19 @@ rt_err_t rt_spi_bus_attach_device(struct rt_spi_device *device,
const char *bus_name,
void *user_data);
+/**
+ * @brief Detach a device from the SPI bus.
+ *
+ * This function serves as the high-level API to detach a SPI device from its bus.
+ * It unregisters the device from the device framework and ensures all associated
+ * resources, such as the chip select pin, are properly released by calling
+ * the underlying implementation.
+ *
+ * @param device The SPI device to be detached.
+ *
+ * @return rt_err_t The result of the operation. RT_EOK on success, otherwise an error code.
+ */
+rt_err_t rt_spi_bus_detach_device(struct rt_spi_device *device);
/**
* @brief attach a device on SPI bus with CS pin
@@ -368,6 +381,21 @@ rt_err_t rt_spi_bus_attach_device_cspin(struct rt_spi_device *device,
void *user_data);
/**
+ * @brief Detach a device from the SPI bus and release its CS pin.
+ *
+ * This function provides the low-level implementation for detaching a device
+ * from the SPI bus. It specifically handles the operations for the chip select (CS)
+ * pin, resetting it to input mode to release it. This function is typically
+ * called by the higher-level rt_spi_bus_detach_device() and should not be
+ * called directly by the user application.
+ *
+ * @param device The SPI device to be detached.
+ *
+ * @return rt_err_t The result of the operation. RT_EOK on success, otherwise an error code.
+ */
+rt_err_t rt_spi_bus_detach_device_cspin(struct rt_spi_device *device);
+
+/**
* @brief Reconfigure the SPI bus for the specified device.
*
* @param device: Pointer to the SPI device attached to the SPI bus.