xref: /arm-trusted-firmware/drivers/brcm/spi/iproc_spi.c (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2017 - 2020, Broadcom
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #include <spi.h>
8*91f16700Schasinglulu 
9*91f16700Schasinglulu #include "iproc_qspi.h"
10*91f16700Schasinglulu 
11*91f16700Schasinglulu int spi_init(void)
12*91f16700Schasinglulu {
13*91f16700Schasinglulu 	return iproc_qspi_setup(IPROC_QSPI_BUS, IPROC_QSPI_CS,
14*91f16700Schasinglulu 				IPROC_QSPI_CLK_SPEED, IPROC_QSPI_MODE0);
15*91f16700Schasinglulu }
16*91f16700Schasinglulu 
17*91f16700Schasinglulu int spi_claim_bus(void)
18*91f16700Schasinglulu {
19*91f16700Schasinglulu 	return iproc_qspi_claim_bus();
20*91f16700Schasinglulu }
21*91f16700Schasinglulu 
22*91f16700Schasinglulu void spi_release_bus(void)
23*91f16700Schasinglulu {
24*91f16700Schasinglulu 	iproc_qspi_release_bus();
25*91f16700Schasinglulu }
26*91f16700Schasinglulu 
27*91f16700Schasinglulu int spi_xfer(uint32_t bitlen, const void *dout,
28*91f16700Schasinglulu 	     void *din, uint32_t flags)
29*91f16700Schasinglulu {
30*91f16700Schasinglulu 	return iproc_qspi_xfer(bitlen, dout, din, flags);
31*91f16700Schasinglulu }
32