| /* |
| * Copyright (c) 2024 Google Inc |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #ifndef INCLUDE_ZEPHYR_DRIVERS_BBRAM_NPCX_H_ |
| #define INCLUDE_ZEPHYR_DRIVERS_BBRAM_NPCX_H_ |
| |
| #include <stdint.h> |
| |
| #include <zephyr/devicetree.h> |
| |
| /** Device config */ |
| struct bbram_npcx_config { |
| /** BBRAM base address */ |
| uintptr_t base_addr; |
| /** BBRAM size (Unit:bytes) */ |
| int size; |
| /** Status register base address */ |
| uintptr_t status_reg_addr; |
| }; |
| |
| #ifdef CONFIG_BBRAM_NPCX_EMUL |
| #define BBRAM_NPCX_DECL_CONFIG(inst) \ |
| static uint8_t bbram_npcx_emul_buffer_##inst[DT_INST_REG_SIZE_BY_NAME(inst, memory)]; \ |
| static uint8_t bbram_npcx_emul_status_##inst; \ |
| static const struct bbram_npcx_config bbram_cfg_##inst = { \ |
| .base_addr = (uintptr_t)bbram_npcx_emul_buffer_##inst, \ |
| .size = DT_INST_REG_SIZE_BY_NAME(inst, memory), \ |
| .status_reg_addr = (uintptr_t)&bbram_npcx_emul_status_##inst, \ |
| } |
| #else |
| #define BBRAM_NPCX_DECL_CONFIG(inst) \ |
| static const struct bbram_npcx_config bbram_cfg_##inst = { \ |
| .base_addr = DT_INST_REG_ADDR_BY_NAME(inst, memory), \ |
| .size = DT_INST_REG_SIZE_BY_NAME(inst, memory), \ |
| .status_reg_addr = DT_INST_REG_ADDR_BY_NAME(inst, status), \ |
| } |
| #endif |
| |
| #endif /* INCLUDE_ZEPHYR_DRIVERS_BBRAM_NPCX_H_ */ |