Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

41 lines
1.6 KiB

/*
* 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_ */