spi: add support for ARM PL022 SPI controller

This adds support for the ARM PL022 SPI controller for the standard
variant (0x00041022) which has a 16bit wide and 8 locations deep TX/RX
FIFO.

A few parts were borrowed from the Linux kernel driver.

Cc: Armando Visconti <armando.visconti@st.com>
Cc: Vipin Kumar <vipin.kumar@st.com>
Signed-off-by: Quentin Schulz <quentin.schulz@bootlin.com>
This commit is contained in:
Quentin Schulz
2018-08-31 16:28:29 +02:00
committed by Tom Rini
parent 8451942f7c
commit 8a4791fa08
4 changed files with 375 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* (C) Copyright 2018
* Quentin Schulz, Bootlin, quentin.schulz@bootlin.com
*
* Structure for use with U_BOOT_DEVICE for pl022 SPI devices or to use
* in ofdata_to_platdata.
*/
#ifndef __PL022_SPI_H__
#define __PL022_SPI_H__
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
#include <clk.h>
#endif
#include <fdtdec.h>
struct pl022_spi_pdata {
fdt_addr_t addr;
fdt_size_t size;
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
struct clk clk;
#else
unsigned int freq;
#endif
};
#endif