blob: aa88dc89dac35acf5815e603050a6a449f396956 [file] [log] [blame] [edit]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef __AML_SPI_H_
#define __AML_SPI_H_
struct spicc_controller_data {
unsigned ccxfer_en:1;
unsigned timing_en:1;
unsigned ss_leading_gap:4;
unsigned ss_trailing_gap:4;
unsigned tx_tuning:4;
unsigned rx_tuning:4;
unsigned dummy_ctl:1;
void (*dirspi_start)(struct spi_device *spi);
void (*dirspi_stop)(struct spi_device *spi);
int (*dirspi_async)(struct spi_device *spi,
u8 *tx_buf,
u8 *rx_buf,
int len,
void (*complete)(void *context),
void *context);
int (*dirspi_sync)(struct spi_device *spi,
u8 *tx_buf,
u8 *rx_buf,
int len);
};
struct spicc_transfer {
struct spi_transfer xfer;
unsigned dc_level:1;
#define DC_LEVEL_LOW 0
#define DC_LEVEL_HIGH 1
unsigned read_turn_around:2;
unsigned dc_mode:2;
#define DC_MODE_NONE 0
#define DC_MODE_PIN 1
#define DC_MODE_9BIT 2
void *tx_ccsg;
void *rx_ccsg;
int tx_ccsg_len;
int rx_ccsg_len;
};
#endif