1.修复spi cs引脚配置不更新。

This commit is contained in:
MacRsh
2023-12-03 19:31:33 +08:00
parent 36ad8be702
commit 8e33f734ac
6 changed files with 16 additions and 10 deletions

View File

@@ -72,7 +72,7 @@ static ssize_t mr_can_bus_isr(struct mr_dev *dev, int event, void *args)
break;
}
}
return MR_ENOTSUP;
return MR_EOK;
}
default:

View File

@@ -59,7 +59,7 @@ static ssize_t mr_i2c_bus_isr(struct mr_dev *dev, int event, void *args)
ssize_t size = (ssize_t)mr_ringbuf_get_data_size(&i2c_dev->rd_fifo);
i2c_dev->dev.rd_call.call(i2c_dev->dev.rd_call.desc, &size);
}
return MR_ENOTSUP;
return MR_EOK;
}
default:

View File

@@ -197,6 +197,7 @@ static ssize_t mr_serial_isr(struct mr_dev *dev, int event, void *args)
return (ssize_t)mr_ringbuf_get_data_size(&serial->rd_fifo);
}
case MR_ISR_SERIAL_WR_INT:
{
/* Write data from FIFO */

View File

@@ -78,7 +78,7 @@ static ssize_t mr_spi_bus_isr(struct mr_dev *dev, int event, void *args)
ssize_t size = (ssize_t)mr_ringbuf_get_data_size(&spi_dev->rd_fifo);
spi_dev->dev.rd_call.call(spi_dev->dev.rd_call.desc, &size);
}
return MR_ENOTSUP;
return MR_EOK;
}
default:
@@ -499,9 +499,11 @@ static int mr_spi_dev_ioctl(struct mr_dev *dev, int off, int cmd, void *args)
/* Reconfigure CS */
if (config.host_slave != spi_dev->config.host_slave)
{
spi_dev->config = config;
spi_dev_cs_configure(spi_dev, MR_ENABLE);
}
#endif /* MR_USING_PIN */
/* If holding the bus, release it */
if (spi_dev == spi_bus->owner)
{

View File

@@ -64,7 +64,7 @@ int mr_dev_register(struct mr_dev *dev,
int sflags,
struct mr_dev_ops *ops,
struct mr_drv *drv);
void mr_dev_isr(struct mr_dev *dev, int event, void *args);
int mr_dev_isr(struct mr_dev *dev, int event, void *args);
int mr_dev_get_full_name(struct mr_dev *dev, char *buf, size_t bufsz);
/** @} */

View File

@@ -435,7 +435,7 @@ int mr_dev_register(struct mr_dev *dev,
* @param event The event to be handle.
* @param args The arguments of the event.
*/
void mr_dev_isr(struct mr_dev *dev, int event, void *args)
int mr_dev_isr(struct mr_dev *dev, int event, void *args)
{
mr_assert(dev != MR_NULL);
@@ -444,7 +444,7 @@ void mr_dev_isr(struct mr_dev *dev, int event, void *args)
ssize_t ret = dev->ops->isr(dev, event, args);
if (ret < 0)
{
return;
return (int)ret;
}
switch (event & MR_ISR_MASK)
@@ -455,11 +455,12 @@ void mr_dev_isr(struct mr_dev *dev, int event, void *args)
{
dev->rd_call.call(dev->rd_call.desc, &ret);
}
return;
return MR_EOK;
}
case MR_ISR_WR:
{
if (ret == 0)
if (ret == MR_EOK)
{
#ifdef MR_USING_RDWR_CTL
dev_lock_release(dev, MR_LFLAG_NONBLOCK);
@@ -468,16 +469,18 @@ void mr_dev_isr(struct mr_dev *dev, int event, void *args)
{
dev->wr_call.call(dev->wr_call.desc, &ret);
}
return MR_EOK;
}
return;
return MR_EBUSY;
}
default:
{
return;
return MR_ENOTSUP;
}
}
}
return MR_ENOTSUP;
}
/**