u-boot/arch/powerpc/include/asm/mpc8xxx_spi.h
Christophe Leroy 83945efacf spi: mpc8xxx: Add support for SPI on mpc832x
On mpc832x, SPI can be either handled by CPU or QE.
In order to work in CPU mode, bit 17 of SPMODE has to
be set to 1, that bit is called OP.

Also, data is located at a different place than the one expected
by the driver today. In 8 bits mode with REV set, data to be
transmitted is located in the most significant byte while
received data is located in second byte. So perform the
necessary shifts.

In order to differentiate with other CPUs, a new compatible is
added for mpc832x: fsl,mpc832x-spi

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2023-04-06 14:50:03 +02:00

32 lines
742 B
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Freescale non-CPM SPI Controller
*
* Copyright 2008 Qstreams Networks, Inc.
*/
#ifndef _ASM_MPC8XXX_SPI_H_
#define _ASM_MPC8XXX_SPI_H_
#include <asm/types.h>
#if defined(CONFIG_ARCH_MPC8308) || \
defined(CONFIG_ARCH_MPC8313) || \
defined(CONFIG_ARCH_MPC832X) || \
defined(CONFIG_ARCH_MPC834X) || \
defined(CONFIG_ARCH_MPC837X)
typedef struct spi8xxx {
u8 res0[0x20]; /* 0x0-0x01f reserved */
u32 mode; /* mode register */
u32 event; /* event register */
u32 mask; /* mask register */
u32 com; /* command register */
u32 tx; /* transmit register */
u32 rx; /* receive register */
u8 res1[0xFC8]; /* fill up to 0x1000 */
} spi8xxx_t;
#endif
#endif /* _ASM_MPC8XXX_SPI_H_ */