mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00:00 
			
		
		
		
	Remove <common.h> from all "test/" files and when needed add missing include files directly. Signed-off-by: Tom Rini <trini@konsulko.com>
		
			
				
	
	
		
			123 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0+ */
 | 
						|
/*
 | 
						|
 * (C) Copyright 2017, 2018
 | 
						|
 * Mario Six, Guntermann & Drunck GmbH, mario.six@gdsys.cc
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _AXI_H_
 | 
						|
#define _AXI_H_
 | 
						|
 | 
						|
#include <linux/types.h>
 | 
						|
 | 
						|
struct udevice;
 | 
						|
 | 
						|
/**
 | 
						|
 * enum axi_size_t - Determine size of AXI transfer
 | 
						|
 * @AXI_SIZE_8:  AXI sransfer is 8-bit wide
 | 
						|
 * @AXI_SIZE_16: AXI sransfer is 16-bit wide
 | 
						|
 * @AXI_SIZE_32: AXI sransfer is 32-bit wide
 | 
						|
 */
 | 
						|
enum axi_size_t {
 | 
						|
	AXI_SIZE_8,
 | 
						|
	AXI_SIZE_16,
 | 
						|
	AXI_SIZE_32,
 | 
						|
};
 | 
						|
 | 
						|
struct axi_ops {
 | 
						|
	/**
 | 
						|
	 * read() - Read a single value from a specified address on a AXI bus
 | 
						|
	 * @dev:	AXI bus to read from.
 | 
						|
	 * @address:	The address to read from.
 | 
						|
	 * @data:	Pointer to a variable that takes the data value read
 | 
						|
	 *		from the address on the AXI bus.
 | 
						|
	 * @size:	The size of the data to be read.
 | 
						|
	 *
 | 
						|
	 * Return: 0 if OK, -ve on error.
 | 
						|
	 */
 | 
						|
	int (*read)(struct udevice *dev, ulong address, void *data,
 | 
						|
		    enum axi_size_t size);
 | 
						|
 | 
						|
	/**
 | 
						|
	 * write() - Write a single value to a specified address on a AXI bus
 | 
						|
	 * @dev:	AXI bus to write to.
 | 
						|
	 * @address:	The address to write to.
 | 
						|
	 * @data:	Pointer to the data value to be written to the address
 | 
						|
	 *		on the AXI bus.
 | 
						|
	 * @size:	The size of the data to write.
 | 
						|
	 *
 | 
						|
	 * Return 0 if OK, -ve on error.
 | 
						|
	 */
 | 
						|
	int (*write)(struct udevice *dev, ulong address, void *data,
 | 
						|
		     enum axi_size_t size);
 | 
						|
};
 | 
						|
 | 
						|
#define axi_get_ops(dev)	((struct axi_ops *)(dev)->driver->ops)
 | 
						|
 | 
						|
/**
 | 
						|
 * axi_read() - Read a single value from a specified address on a AXI bus
 | 
						|
 * @dev:	AXI bus to read from.
 | 
						|
 * @address:	The address to read from.
 | 
						|
 * @data:	Pointer to a variable that takes the data value read from the
 | 
						|
 *              address on the AXI bus.
 | 
						|
 * @size:	The size of the data to write.
 | 
						|
 *
 | 
						|
 * Return: 0 if OK, -ve on error.
 | 
						|
 */
 | 
						|
int axi_read(struct udevice *dev, ulong address, void *data,
 | 
						|
	     enum axi_size_t size);
 | 
						|
 | 
						|
/**
 | 
						|
 * axi_write() - Write a single value to a specified address on a AXI bus
 | 
						|
 * @dev:	AXI bus to write to.
 | 
						|
 * @address:	The address to write to.
 | 
						|
 * @data:	Pointer to the data value to be written to the address on the
 | 
						|
 *		AXI bus.
 | 
						|
 * @size:	The size of the data to write.
 | 
						|
 *
 | 
						|
 * Return: 0 if OK, -ve on error.
 | 
						|
 */
 | 
						|
int axi_write(struct udevice *dev, ulong address, void *data,
 | 
						|
	      enum axi_size_t size);
 | 
						|
 | 
						|
struct axi_emul_ops {
 | 
						|
	/**
 | 
						|
	 * read() - Read a single value from a specified address on a AXI bus
 | 
						|
	 * @dev:	AXI bus to read from.
 | 
						|
	 * @address:	The address to read from.
 | 
						|
	 * @data:	Pointer to a variable that takes the data value read
 | 
						|
	 *		from the address on the AXI bus.
 | 
						|
	 * @size:	The size of the data to be read.
 | 
						|
	 *
 | 
						|
	 * Return: 0 if OK, -ve on error.
 | 
						|
	 */
 | 
						|
	int (*read)(struct udevice *dev, ulong address, void *data,
 | 
						|
		    enum axi_size_t size);
 | 
						|
 | 
						|
	/**
 | 
						|
	 * write() - Write a single value to a specified address on a AXI bus
 | 
						|
	 * @dev:	AXI bus to write to.
 | 
						|
	 * @address:	The address to write to.
 | 
						|
	 * @data:	Pointer to the data value to be written to the address
 | 
						|
	 *		on the AXI bus.
 | 
						|
	 * @size:	The size of the data to write.
 | 
						|
	 *
 | 
						|
	 * Return: 0 if OK, -ve on error.
 | 
						|
	 */
 | 
						|
	int (*write)(struct udevice *dev, ulong address, void *data,
 | 
						|
		     enum axi_size_t size);
 | 
						|
 | 
						|
	/**
 | 
						|
	 * get_store() - Get address of internal storage of a emulated AXI
 | 
						|
	 *		 device
 | 
						|
	 * @dev:	Emulated AXI device to get the pointer of the internal
 | 
						|
	 *		storage for.
 | 
						|
	 * @storep:	Pointer to the internal storage of the emulated AXI
 | 
						|
	 *		device.
 | 
						|
	 *
 | 
						|
	 * Return: 0 if OK, -ve on error.
 | 
						|
	 */
 | 
						|
	int (*get_store)(struct udevice *dev, u8 **storep);
 | 
						|
};
 | 
						|
 | 
						|
#endif
 |