]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_FreedomStudio/freedom-metal/src/drivers/sifive_fe310-g000_prci.c
Update RISCC-V-RV32-SiFive_HiFive1_FreedomStudio project to latest tools and metal...
[freertos] / FreeRTOS / Demo / RISC-V_RV32_SiFive_HiFive1_FreedomStudio / freedom-metal / src / drivers / sifive_fe310-g000_prci.c
1 /* Copyright 2018 SiFive, Inc */
2 /* SPDX-License-Identifier: Apache-2.0 */
3
4 #include <metal/machine/platform.h>
5
6 #ifdef METAL_SIFIVE_FE310_G000_PRCI
7
8 #include <metal/drivers/sifive_fe310-g000_prci.h>
9 #include <metal/machine.h>
10
11 long __metal_driver_sifive_fe310_g000_prci_get_reg(const struct __metal_driver_sifive_fe310_g000_prci *prci, long offset) {
12     unsigned long base = __metal_driver_sifive_fe310_g000_prci_base();
13     return __METAL_ACCESS_ONCE((__metal_io_u32 *)(base + offset));
14 }
15
16 long __metal_driver_sifive_fe310_g000_prci_set_reg(const struct __metal_driver_sifive_fe310_g000_prci *prci, long offset, long value) {
17     unsigned long base = __metal_driver_sifive_fe310_g000_prci_base();
18     return __METAL_ACCESS_ONCE((__metal_io_u32 *)(base + offset)) = value;
19 }
20
21 __METAL_DEFINE_VTABLE(__metal_driver_vtable_sifive_fe310_g000_prci) = {
22     .get_reg = __metal_driver_sifive_fe310_g000_prci_get_reg,
23     .set_reg = __metal_driver_sifive_fe310_g000_prci_set_reg,
24 };
25
26 #endif /* METAL_SIFIVE_FE310_G000_PRCI */
27
28 typedef int no_empty_translation_units;