| /* 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 asserted 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 */ |