uboot/include/linux/io.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2
   3#ifndef _LINUX_IO_H
   4#define _LINUX_IO_H
   5
   6#include <linux/compiler.h>
   7#include <linux/types.h>
   8#include <asm/io.h>
   9
  10#ifndef CONFIG_HAVE_ARCH_IOMAP
  11static inline u8 ioread8(const volatile void __iomem *addr)
  12{
  13        return readb(addr);
  14}
  15
  16static inline u16 ioread16(const volatile void __iomem *addr)
  17{
  18        return readw(addr);
  19}
  20
  21static inline u32 ioread32(const volatile void __iomem *addr)
  22{
  23        return readl(addr);
  24}
  25#endif /* !CONFIG_HAVE_ARCH_IOMAP */
  26
  27#ifdef CONFIG_64BIT
  28static inline u64 ioread64(const volatile void __iomem *addr)
  29{
  30        return readq(addr);
  31}
  32#endif /* CONFIG_64BIT */
  33
  34#ifndef CONFIG_HAVE_ARCH_IOMAP
  35static inline void iowrite8(u8 value, volatile void __iomem *addr)
  36{
  37        writeb(value, addr);
  38}
  39
  40static inline void iowrite16(u16 value, volatile void __iomem *addr)
  41{
  42        writew(value, addr);
  43}
  44
  45static inline void iowrite32(u32 value, volatile void __iomem *addr)
  46{
  47        writel(value, addr);
  48}
  49#endif /* !CONFIG_HAVE_ARCH_IOMAP */
  50
  51#ifdef CONFIG_64BIT
  52static inline void iowrite64(u64 value, volatile void __iomem *addr)
  53{
  54        writeq(value, addr);
  55}
  56#endif /* CONFIG_64BIT */
  57
  58#ifndef CONFIG_HAVE_ARCH_IOREMAP
  59static inline void __iomem *ioremap(resource_size_t offset,
  60                                    resource_size_t size)
  61{
  62        return (void __iomem *)(unsigned long)offset;
  63}
  64
  65static inline void iounmap(void __iomem *addr)
  66{
  67}
  68#endif
  69
  70#define devm_ioremap(dev, offset, size)         ioremap(offset, size)
  71
  72#endif /* _LINUX_IO_H */
  73