feat:[drivers][spi] rt_spi_bus_configure 添加 -RT_EBUSY 返回值,并增加说明注释
This commit is contained in:
parent
9bcb904a0b
commit
99503d3ff6
|
@ -184,7 +184,19 @@ rt_err_t rt_spi_bus_attach_device_cspin(struct rt_spi_device *device,
|
||||||
rt_base_t cs_pin,
|
rt_base_t cs_pin,
|
||||||
void *user_data);
|
void *user_data);
|
||||||
|
|
||||||
/* re-configure SPI bus */
|
/**
|
||||||
|
* @brief Reconfigure the SPI bus for the specified device.
|
||||||
|
* @param device: Pointer to the SPI device attached to the SPI bus.
|
||||||
|
* @retval RT_EOK if the SPI device was successfully released and the bus was configured.
|
||||||
|
* RT_EBUSY if the SPI bus is currently in use; the new configuration will take effect once the device releases the bus.
|
||||||
|
* Other return values indicate failure to configure the SPI bus due to various reasons.
|
||||||
|
* @note If the configuration of the SPI device has been updated and requires bus re-initialization,
|
||||||
|
* call this function directly. This function will reconfigure the SPI bus for the specified device.
|
||||||
|
* If this is the first time to initialize the SPI device, please call rt_spi_configure or rt_qspi_configure.
|
||||||
|
* This function is used to reconfigure the SPI bus when the SPI device is already in use.
|
||||||
|
* For further details, refer to:
|
||||||
|
* https://github.com/RT-Thread/rt-thread/pull/8528
|
||||||
|
*/
|
||||||
rt_err_t rt_spi_bus_configure(struct rt_spi_device *device);
|
rt_err_t rt_spi_bus_configure(struct rt_spi_device *device);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -223,7 +235,14 @@ rt_err_t rt_spi_take(struct rt_spi_device *device);
|
||||||
*/
|
*/
|
||||||
rt_err_t rt_spi_release(struct rt_spi_device *device);
|
rt_err_t rt_spi_release(struct rt_spi_device *device);
|
||||||
|
|
||||||
/* set configuration on SPI device */
|
/**
|
||||||
|
* @brief This function can set configuration on SPI device.
|
||||||
|
* @param device: the SPI device attached to SPI bus
|
||||||
|
* @param cfg: the configuration pointer.
|
||||||
|
* @retval RT_EOK on release SPI device successfully.
|
||||||
|
* RT_EBUSY is not an error condition and the configuration will take effect once the device has the bus
|
||||||
|
* others on taken SPI bus failed.
|
||||||
|
*/
|
||||||
rt_err_t rt_spi_configure(struct rt_spi_device *device,
|
rt_err_t rt_spi_configure(struct rt_spi_device *device,
|
||||||
struct rt_spi_configuration *cfg);
|
struct rt_spi_configuration *cfg);
|
||||||
|
|
||||||
|
|
|
@ -106,6 +106,13 @@ rt_err_t rt_spi_bus_configure(struct rt_spi_device *device)
|
||||||
LOG_E("SPI device %s configuration failed", device->parent.parent.name);
|
LOG_E("SPI device %s configuration failed", device->parent.parent.name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* RT_EBUSY is not an error condition and
|
||||||
|
* the configuration will take effect once the device has the bus
|
||||||
|
*/
|
||||||
|
return -RT_EBUSY;
|
||||||
|
}
|
||||||
|
|
||||||
/* release lock */
|
/* release lock */
|
||||||
rt_mutex_release(&(device->bus->lock));
|
rt_mutex_release(&(device->bus->lock));
|
||||||
|
|
Loading…
Reference in New Issue