/* * Driver for Atmel AT32 and AT91 SPI Controllers * * Copyright (C) 2006 Atmel Corporation * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */#include<linux/kernel.h>#include<linux/clk.h>#include<linux/module.h>#include<linux/platform_device.h>#include<linux/delay.h>#include<linux/dma-mapping.h>#include<linux/dmaengine.h>#include<linux/err.h>#include<linux/interrupt.h>#include<linux/spi/spi.h>#include<linux/slab.h>#include<linux/platform_data/atmel.h>#include<linux/platform_data/dma-atmel.h>#include<linux/of.h>#include<linux/io.h>#include<linux/gpio.h>#include<linux/pinctrl/consumer.h>#include<linux/pm_runtime.h>/* SPI register offsets */#define SPI_CR 0x0000#define SPI_MR 0x0004#define SPI_RDR 0x0008#define SPI_TDR 0x000c#define SPI_SR 0x0010#define SPI_IER 0x0014#define SPI_IDR 0x0018#define SPI_IMR 0x001c#define SPI_CSR0 0x0030#define SPI_CSR1 0x0034#define SPI_CSR2 0x0038#define SPI_CSR3 0x003c#define SPI_VERSION 0x00fc#define SPI_RPR 0x0100#define SPI_RCR 0x0104#define SPI_TPR 0x0108#define SPI_TCR 0x010c#define SPI_RNPR 0x0110#define SPI_RNCR 0x0114#define SPI_TNPR 0x0118#define SPI_TNCR 0x011c#define SPI_PTCR 0x0120#define SPI_PTSR 0x0124