spi-at91-usart.c
Includes Linux kernel module headerAssigns a negative errno constant
SHA-2560bde7f3b222fcb508096ea8f5da33aaf628c808191f825bb79d0909f38b931fb
MaleculeO(Er)H(Os)
Evidence
1// SPDX-License-Identifier: GPL-2.0
2//
3// Driver for AT91 USART Controllers as SPI
4//
5// Copyright (C) 2018 Microchip Technology Inc.
6//
7// Author: Radu Pirea <[email protected]>
8
9#include <linux/clk.h>
10#include <linux/delay.h>
11#include <linux/dmaengine.h>
12#include <linux/dma-direction.h>
13#include <linux/interrupt.h>
14#include <linux/kernel.h>
15#include <linux/module.h>
16#include <linux/gpio/consumer.h>
17#include <linux/pinctrl/consumer.h>
18#include <linux/platform_device.h>
19#include <linux/pm_runtime.h>
20
21#include <linux/spi/spi.h>
22
23#define US_CR 0x00
⋯4 lines
156:3… dev_err(&ctlr->dev,
157 "failed to configure rx dma channel\n");
158 err = -EINVAL;
159 goto at91_usart_spi_error;
160 }
161
162 slave_config.direction = DMA_MEM_TO_DEV;
163 if (dmaengine_slave_config(ctlr->dma_tx, &slave_con …
248:20… dma:
249 /* Enable RX interrupt if something fails and fallback to PIO */
250 at91_usart_spi_writel(aus, IER, US_IR_RXRDY);
251 at91_usart_spi_stop_dma(ctlr);
252
253 return -ENOMEM;
254}
255
256static unsigned long at91_usart_spi_dma_timeout(struct at91_usart_spi *aus)
257{
258 return wait_for_completion_timeout(&aus->xfe …