|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | /* | 
|  | * io.h - DesignWare USB3 DRD IO Header | 
|  | * | 
|  | * Copyright (C) 2010-2011 Texas Instruments Incorporated - https://www.ti.com | 
|  | * | 
|  | * Authors: Felipe Balbi <balbi@ti.com>, | 
|  | *	    Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 
|  | */ | 
|  |  | 
|  | #ifndef __DRIVERS_USB_DWC3_IO_H | 
|  | #define __DRIVERS_USB_DWC3_IO_H | 
|  |  | 
|  | #include <linux/io.h> | 
|  | #include "trace.h" | 
|  | #include "debug.h" | 
|  | #include "core.h" | 
|  |  | 
|  | static inline u32 dwc3_readl(void __iomem *base, u32 offset) | 
|  | { | 
|  | u32 value; | 
|  |  | 
|  | /* | 
|  | * We requested the mem region starting from the Globals address | 
|  | * space, see dwc3_probe in core.c. | 
|  | * However, the offsets are given starting from xHCI address space. | 
|  | */ | 
|  | value = readl(base + offset - DWC3_GLOBALS_REGS_START); | 
|  |  | 
|  | /* | 
|  | * When tracing we want to make it easy to find the correct address on | 
|  | * documentation, so we revert it back to the proper addresses, the | 
|  | * same way they are described on SNPS documentation | 
|  | */ | 
|  | trace_dwc3_readl(base - DWC3_GLOBALS_REGS_START, offset, value); | 
|  |  | 
|  | return value; | 
|  | } | 
|  |  | 
|  | static inline void dwc3_writel(void __iomem *base, u32 offset, u32 value) | 
|  | { | 
|  | /* | 
|  | * We requested the mem region starting from the Globals address | 
|  | * space, see dwc3_probe in core.c. | 
|  | * However, the offsets are given starting from xHCI address space. | 
|  | */ | 
|  | writel(value, base + offset - DWC3_GLOBALS_REGS_START); | 
|  |  | 
|  | /* | 
|  | * When tracing we want to make it easy to find the correct address on | 
|  | * documentation, so we revert it back to the proper addresses, the | 
|  | * same way they are described on SNPS documentation | 
|  | */ | 
|  | trace_dwc3_writel(base - DWC3_GLOBALS_REGS_START, offset, value); | 
|  | } | 
|  |  | 
|  | #endif /* __DRIVERS_USB_DWC3_IO_H */ |