@@ -73,7 +73,6 @@ static rt_err_t spi_configure(struct rt_spi_device *device, struct rt_spi_config
73
73
RT_ASSERT (device -> bus -> parent .user_data != RT_NULL );
74
74
RT_ASSERT (cfg != RT_NULL );
75
75
76
- rt_err_t ret = RT_EOK ;
77
76
struct _device_spi * spi = (struct _device_spi * )device -> bus -> parent .user_data ;
78
77
struct dw_spi * dws = & spi -> dws ;
79
78
@@ -139,9 +138,6 @@ static rt_err_t spi_configure(struct rt_spi_device *device, struct rt_spi_config
139
138
140
139
static rt_err_t dw_spi_transfer_one (struct dw_spi * dws , const void * tx_buf , void * rx_buf , uint32_t len , enum transfer_type tran_type )
141
140
{
142
- uint8_t imask = 0 ;
143
- uint16_t txlevel = 0 ;
144
-
145
141
dws -> tx = NULL ;
146
142
dws -> tx_end = NULL ;
147
143
dws -> rx = NULL ;
@@ -198,7 +194,7 @@ static rt_ssize_t spi_xfer(struct rt_spi_device *device, struct rt_spi_message *
198
194
199
195
struct _device_spi * spi = (struct _device_spi * )device -> bus -> parent .user_data ;
200
196
struct dw_spi * dws = & spi -> dws ;
201
- int32_t ret = 0 ;
197
+ int32_t ret = RT_EOK ;
202
198
203
199
if (message -> send_buf && message -> recv_buf )
204
200
{
@@ -214,6 +210,14 @@ static rt_ssize_t spi_xfer(struct rt_spi_device *device, struct rt_spi_message *
214
210
{
215
211
ret = dw_spi_transfer_one (dws , RT_NULL , message -> recv_buf , message -> length , POLL_TRAN );
216
212
213
+ } else {
214
+ return 0 ;
215
+ }
216
+
217
+ if (ret != RT_EOK )
218
+ {
219
+ LOG_E ("spi transfer error : %d" , ret );
220
+ return 0 ;
217
221
}
218
222
219
223
return message -> length ;
@@ -329,13 +333,12 @@ static void rt_hw_spi_pinmux_config()
329
333
int rt_hw_spi_init (void )
330
334
{
331
335
rt_err_t ret = RT_EOK ;
332
- struct dw_spi * dws ;
333
336
334
337
rt_hw_spi_pinmux_config ();
335
338
336
339
for (rt_size_t i = 0 ; i < sizeof (_spi_obj ) / sizeof (struct _device_spi ); i ++ )
337
340
{
338
- _spi_obj [i ].dws .regs = (rt_ubase_t )DRV_IOREMAP ((void * )_spi_obj [i ].dws .regs , 0x1000 );
341
+ _spi_obj [i ].dws .regs = (void * )DRV_IOREMAP ((void * )_spi_obj [i ].dws .regs , 0x1000 );
339
342
340
343
_spi_obj [i ].spi_bus .parent .user_data = (void * )& _spi_obj [i ];
341
344
ret = rt_spi_bus_register (& _spi_obj [i ].spi_bus , _spi_obj [i ].device_name , & _spi_ops );
0 commit comments