cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

io.h (1644B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * io.h - DesignWare USB3 DRD IO Header
      4 *
      5 * Copyright (C) 2010-2011 Texas Instruments Incorporated - https://www.ti.com
      6 *
      7 * Authors: Felipe Balbi <balbi@ti.com>,
      8 *	    Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      9 */
     10
     11#ifndef __DRIVERS_USB_DWC3_IO_H
     12#define __DRIVERS_USB_DWC3_IO_H
     13
     14#include <linux/io.h>
     15#include "trace.h"
     16#include "debug.h"
     17#include "core.h"
     18
     19static inline u32 dwc3_readl(void __iomem *base, u32 offset)
     20{
     21	u32 value;
     22
     23	/*
     24	 * We requested the mem region starting from the Globals address
     25	 * space, see dwc3_probe in core.c.
     26	 * However, the offsets are given starting from xHCI address space.
     27	 */
     28	value = readl(base + offset - DWC3_GLOBALS_REGS_START);
     29
     30	/*
     31	 * When tracing we want to make it easy to find the correct address on
     32	 * documentation, so we revert it back to the proper addresses, the
     33	 * same way they are described on SNPS documentation
     34	 */
     35	trace_dwc3_readl(base - DWC3_GLOBALS_REGS_START, offset, value);
     36
     37	return value;
     38}
     39
     40static inline void dwc3_writel(void __iomem *base, u32 offset, u32 value)
     41{
     42	/*
     43	 * We requested the mem region starting from the Globals address
     44	 * space, see dwc3_probe in core.c.
     45	 * However, the offsets are given starting from xHCI address space.
     46	 */
     47	writel(value, base + offset - DWC3_GLOBALS_REGS_START);
     48
     49	/*
     50	 * When tracing we want to make it easy to find the correct address on
     51	 * documentation, so we revert it back to the proper addresses, the
     52	 * same way they are described on SNPS documentation
     53	 */
     54	trace_dwc3_writel(base - DWC3_GLOBALS_REGS_START, offset, value);
     55}
     56
     57#endif /* __DRIVERS_USB_DWC3_IO_H */