| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef __LINUX_GOLDFISH_H |
| #define __LINUX_GOLDFISH_H |
| |
| #include <linux/kernel.h> |
| #include <linux/types.h> |
| #include <linux/io.h> |
| |
| /* Helpers for Goldfish virtual platform */ |
| |
| #ifndef gf_ioread32 |
| #define gf_ioread32 ioread32 |
| #endif |
| #ifndef gf_iowrite32 |
| #define gf_iowrite32 iowrite32 |
| #endif |
| |
| static inline void gf_write_ptr(const void *ptr, void __iomem *portl, |
| void __iomem *porth) |
| { |
| const unsigned long addr = (unsigned long)ptr; |
| |
| gf_iowrite32(lower_32_bits(addr), portl); |
| #ifdef CONFIG_64BIT |
| gf_iowrite32(upper_32_bits(addr), porth); |
| #endif |
| } |
| |
| static inline void gf_write_dma_addr(const dma_addr_t addr, |
| void __iomem *portl, |
| void __iomem *porth) |
| { |
| gf_iowrite32(lower_32_bits(addr), portl); |
| #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT |
| gf_iowrite32(upper_32_bits(addr), porth); |
| #endif |
| } |
| |
| |
| #endif /* __LINUX_GOLDFISH_H */ |