diff options
Diffstat (limited to 'imx8m_ddr/include/io.h')
-rw-r--r-- | imx8m_ddr/include/io.h | 45 |
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 */ |