aboutsummaryrefslogtreecommitdiff
path: root/imx8m_ddr/include/io.h
diff options
context:
space:
mode:
Diffstat (limited to 'imx8m_ddr/include/io.h')
-rw-r--r--imx8m_ddr/include/io.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/imx8m_ddr/include/io.h b/imx8m_ddr/include/io.h
new file mode 100644
index 00000000..486c4db7
--- /dev/null
+++ b/imx8m_ddr/include/io.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2019, ARM Limited and Contributors. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ */
+
+#ifndef __ASM_ARM_IO_H
+#define __ASM_ARM_IO_H
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <lib/mmio.h>
+#include <lib/utils_def.h>
+
+typedef unsigned char u8;
+typedef unsigned short u16;
+typedef unsigned int u32;
+
+typedef unsigned long ulong;
+
+# define __iomem
+
+#define writeb(v,c) mmio_write_8((uintptr_t)(c),(uint8_t)(v))
+#define writew(v,c) mmio_write_16((uintptr_t)(c),(uint16_t)(v))
+#define writel(v,c) mmio_write_32((uintptr_t)(c), (uint32_t)(v))
+#define writeq(v,c) mmio_write_64((uintptr_t)(c),(uint64_t)(v))
+
+#define readb(c) (u8)mmio_read_8((uintptr_t)(c))
+#define readw(c) (u16)mmio_read_16((uintptr_t)(c))
+#define readl(c) (u32)mmio_read_32((uintptr_t)(c))
+#define readq(c) (u64)mmio_read_64((uintptr_t)(c))
+
+#define clrbits_le32(addr, clear) \
+ writel(readl(addr) & ~(clear), (addr))
+
+#define setbits_le32(addr, set) \
+ writel(readl(addr) | (set), (addr))
+
+#define clrsetbits_le32(addr, clear, set) \
+ writel((readl(addr) & ~(clear)) | (set), (addr))
+
+#endif /* __ASM_ARM_IO_H */