u-boot/arch/mips/mach-octeon/include/mach/cvmx-scratch.h
Heinrich Schuchardt 185f812c41 doc: replace @return by Return:
Sphinx expects Return: and not @return to indicate a return value.

find . -name '*.c' -exec \
sed -i 's/^\(\s\)\*\(\s*\)@return\(\s\)/\1*\2Return:\3/' {} \;

find . -name '*.h' -exec \
sed -i 's/^\(\s\)\*\(\s*\)@return\(\s\)/\1*\2Return:\3/' {} \;

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-01-19 18:11:34 +01:00

113 lines
2.8 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2020 Marvell International Ltd.
*
* This file provides support for the processor local scratch memory.
* Scratch memory is byte addressable - all addresses are byte addresses.
*/
#ifndef __CVMX_SCRATCH_H__
#define __CVMX_SCRATCH_H__
/* Note: This define must be a long, not a long long in order to compile
without warnings for both 32bit and 64bit. */
#define CVMX_SCRATCH_BASE (-32768l) /* 0xffffffffffff8000 */
/* Scratch line for LMTST/LMTDMA on Octeon3 models */
#ifdef CVMX_CAVIUM_OCTEON3
#define CVMX_PKO_LMTLINE 2ull
#endif
/**
* Reads an 8 bit value from the processor local scratchpad memory.
*
* @param address byte address to read from
*
* Return: value read
*/
static inline u8 cvmx_scratch_read8(u64 address)
{
return *CASTPTR(volatile u8, CVMX_SCRATCH_BASE + address);
}
/**
* Reads a 16 bit value from the processor local scratchpad memory.
*
* @param address byte address to read from
*
* Return: value read
*/
static inline u16 cvmx_scratch_read16(u64 address)
{
return *CASTPTR(volatile u16, CVMX_SCRATCH_BASE + address);
}
/**
* Reads a 32 bit value from the processor local scratchpad memory.
*
* @param address byte address to read from
*
* Return: value read
*/
static inline u32 cvmx_scratch_read32(u64 address)
{
return *CASTPTR(volatile u32, CVMX_SCRATCH_BASE + address);
}
/**
* Reads a 64 bit value from the processor local scratchpad memory.
*
* @param address byte address to read from
*
* Return: value read
*/
static inline u64 cvmx_scratch_read64(u64 address)
{
return *CASTPTR(volatile u64, CVMX_SCRATCH_BASE + address);
}
/**
* Writes an 8 bit value to the processor local scratchpad memory.
*
* @param address byte address to write to
* @param value value to write
*/
static inline void cvmx_scratch_write8(u64 address, u64 value)
{
*CASTPTR(volatile u8, CVMX_SCRATCH_BASE + address) = (u8)value;
}
/**
* Writes a 32 bit value to the processor local scratchpad memory.
*
* @param address byte address to write to
* @param value value to write
*/
static inline void cvmx_scratch_write16(u64 address, u64 value)
{
*CASTPTR(volatile u16, CVMX_SCRATCH_BASE + address) = (u16)value;
}
/**
* Writes a 16 bit value to the processor local scratchpad memory.
*
* @param address byte address to write to
* @param value value to write
*/
static inline void cvmx_scratch_write32(u64 address, u64 value)
{
*CASTPTR(volatile u32, CVMX_SCRATCH_BASE + address) = (u32)value;
}
/**
* Writes a 64 bit value to the processor local scratchpad memory.
*
* @param address byte address to write to
* @param value value to write
*/
static inline void cvmx_scratch_write64(u64 address, u64 value)
{
*CASTPTR(volatile u64, CVMX_SCRATCH_BASE + address) = value;
}
#endif /* __CVMX_SCRATCH_H__ */