mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.7 KiB
83 lines
1.7 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
/* |
|
* Copyright (c) 2020, Linaro Limited |
|
*/ |
|
|
|
#ifndef QCOM_GPI_DMA_H |
|
#define QCOM_GPI_DMA_H |
|
|
|
/** |
|
* enum spi_transfer_cmd - spi transfer commands |
|
*/ |
|
enum spi_transfer_cmd { |
|
SPI_TX = 1, |
|
SPI_RX, |
|
SPI_DUPLEX, |
|
}; |
|
|
|
/** |
|
* struct gpi_spi_config - spi config for peripheral |
|
* |
|
* @loopback_en: spi loopback enable when set |
|
* @clock_pol_high: clock polarity |
|
* @data_pol_high: data polarity |
|
* @pack_en: process tx/rx buffers as packed |
|
* @word_len: spi word length |
|
* @clk_div: source clock divider |
|
* @clk_src: serial clock |
|
* @cmd: spi cmd |
|
* @fragmentation: keep CS assserted at end of sequence |
|
* @cs: chip select toggle |
|
* @set_config: set peripheral config |
|
* @rx_len: receive length for buffer |
|
*/ |
|
struct gpi_spi_config { |
|
u8 set_config; |
|
u8 loopback_en; |
|
u8 clock_pol_high; |
|
u8 data_pol_high; |
|
u8 pack_en; |
|
u8 word_len; |
|
u8 fragmentation; |
|
u8 cs; |
|
u32 clk_div; |
|
u32 clk_src; |
|
enum spi_transfer_cmd cmd; |
|
u32 rx_len; |
|
}; |
|
|
|
enum i2c_op { |
|
I2C_WRITE = 1, |
|
I2C_READ, |
|
}; |
|
|
|
/** |
|
* struct gpi_i2c_config - i2c config for peripheral |
|
* |
|
* @pack_enable: process tx/rx buffers as packed |
|
* @cycle_count: clock cycles to be sent |
|
* @high_count: high period of clock |
|
* @low_count: low period of clock |
|
* @clk_div: source clock divider |
|
* @addr: i2c bus address |
|
* @stretch: stretch the clock at eot |
|
* @set_config: set peripheral config |
|
* @rx_len: receive length for buffer |
|
* @op: i2c cmd |
|
* @muli-msg: is part of multi i2c r-w msgs |
|
*/ |
|
struct gpi_i2c_config { |
|
u8 set_config; |
|
u8 pack_enable; |
|
u8 cycle_count; |
|
u8 high_count; |
|
u8 low_count; |
|
u8 addr; |
|
u8 stretch; |
|
u16 clk_div; |
|
u32 rx_len; |
|
enum i2c_op op; |
|
bool multi_msg; |
|
}; |
|
|
|
#endif /* QCOM_GPI_DMA_H */
|
|
|