blob: fcd1f7a06c893ced2dd3f517bac408e71aad5287 [file] [log] [blame]
Madhukar Pappireddyf9bc7ce2023-01-06 15:19:22 -06001/*
2 * Copyright 2023 The Hafnium Authors.
3 *
4 * Use of this source code is governed by a BSD-style
5 * license that can be found in the LICENSE file or at
6 * https://opensource.org/licenses/BSD-3-Clause.
7 */
8
9#pragma once
10
11#include <stdint.h>
12
13#include "hf/io.h"
14
15static inline uint32_t mmio_read32(void *addr)
16{
17 return io_read32(IO32_C((uintpaddr_t)addr));
18}
19
20static inline uint32_t mmio_read32_offset(void *addr, uint32_t offset)
21{
22 return io_read32(io32_c((uintpaddr_t)addr, offset));
23}
24
25static inline void mmio_write32(void *addr, uint32_t data)
26{
27 io_write32(IO32_C((uintpaddr_t)addr), data);
28}
29
30static inline void mmio_write32_offset(void *addr, uint32_t offset,
31 uint32_t data)
32{
33 io_write32(io32_c((uintpaddr_t)addr, offset), data);
34}
35
36static inline void mmio_write64(void *addr, uint64_t data)
37{
38 io_write64(IO64_C((uintpaddr_t)addr), data);
39}
40
41static inline void mmio_write64_offset(void *addr, uint32_t offset,
42 uint64_t data)
43{
44 io_write64(io64_c((uintpaddr_t)addr, offset), data);
45}