linux/drivers/spi/spi-fsi.c

// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright (C) IBM Corporation 2020

#include <linux/bitfield.h>
#include <linux/bits.h>
#include <linux/fsi.h>
#include <linux/jiffies.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/spi/spi.h>

#define FSI_ENGID_SPI
#define FSI_MBOX_ROOT_CTRL_8
#define FSI_MBOX_ROOT_CTRL_8_SPI_MUX

#define FSI2SPI_DATA0
#define FSI2SPI_DATA1
#define FSI2SPI_CMD
#define FSI2SPI_CMD_WRITE
#define FSI2SPI_RESET
#define FSI2SPI_STATUS
#define FSI2SPI_STATUS_ANY_ERROR
#define FSI2SPI_IRQ

#define SPI_FSI_BASE
#define SPI_FSI_TIMEOUT_MS
#define SPI_FSI_MAX_RX_SIZE
#define SPI_FSI_MAX_TX_SIZE

#define SPI_FSI_ERROR
#define SPI_FSI_COUNTER_CFG
#define SPI_FSI_CFG1
#define SPI_FSI_CLOCK_CFG
#define SPI_FSI_CLOCK_CFG_MM_ENABLE
#define SPI_FSI_CLOCK_CFG_ECC_DISABLE
#define SPI_FSI_CLOCK_CFG_RESET1
#define SPI_FSI_CLOCK_CFG_RESET2
#define SPI_FSI_CLOCK_CFG_MODE
#define SPI_FSI_CLOCK_CFG_SCK_RECV_DEL
#define SPI_FSI_CLOCK_CFG_SCK_NO_DEL
#define SPI_FSI_CLOCK_CFG_SCK_DIV
#define SPI_FSI_MMAP
#define SPI_FSI_DATA_TX
#define SPI_FSI_DATA_RX
#define SPI_FSI_SEQUENCE
#define SPI_FSI_SEQUENCE_STOP
#define SPI_FSI_SEQUENCE_SEL_SLAVE(x)
#define SPI_FSI_SEQUENCE_SHIFT_OUT(x)
#define SPI_FSI_SEQUENCE_SHIFT_IN(x)
#define SPI_FSI_SEQUENCE_COPY_DATA_TX
#define SPI_FSI_SEQUENCE_BRANCH(x)
#define SPI_FSI_STATUS
#define SPI_FSI_STATUS_ERROR
#define SPI_FSI_STATUS_SEQ_STATE
#define SPI_FSI_STATUS_SEQ_STATE_IDLE
#define SPI_FSI_STATUS_TDR_UNDERRUN
#define SPI_FSI_STATUS_TDR_OVERRUN
#define SPI_FSI_STATUS_TDR_FULL
#define SPI_FSI_STATUS_RDR_UNDERRUN
#define SPI_FSI_STATUS_RDR_OVERRUN
#define SPI_FSI_STATUS_RDR_FULL
#define SPI_FSI_STATUS_ANY_ERROR
#define SPI_FSI_PORT_CTRL

struct fsi2spi {};

struct fsi_spi {};

struct fsi_spi_sequence {};

static int fsi_spi_check_mux(struct fsi_device *fsi, struct device *dev)
{}

static int fsi_spi_check_status(struct fsi_spi *ctx)
{}

static int fsi_spi_read_reg(struct fsi_spi *ctx, u32 offset, u64 *value)
{}

static int fsi_spi_write_reg(struct fsi_spi *ctx, u32 offset, u64 value)
{}

static int fsi_spi_data_in(u64 in, u8 *rx, int len)
{}

static int fsi_spi_data_out(u64 *out, const u8 *tx, int len)
{}

static int fsi_spi_reset(struct fsi_spi *ctx)
{}

static int fsi_spi_status(struct fsi_spi *ctx, u64 *status, const char *dir)
{}

static void fsi_spi_sequence_add(struct fsi_spi_sequence *seq, u8 val)
{}

static void fsi_spi_sequence_init(struct fsi_spi_sequence *seq)
{}

static int fsi_spi_transfer_data(struct fsi_spi *ctx,
				 struct spi_transfer *transfer)
{}

static int fsi_spi_transfer_init(struct fsi_spi *ctx)
{}

static int fsi_spi_transfer_one_message(struct spi_controller *ctlr,
					struct spi_message *mesg)
{}

static size_t fsi_spi_max_transfer_size(struct spi_device *spi)
{}

static int fsi_spi_probe(struct device *dev)
{}

static const struct fsi_device_id fsi_spi_ids[] =;
MODULE_DEVICE_TABLE(fsi, fsi_spi_ids);

static struct fsi_driver fsi_spi_driver =;
module_fsi_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();