Lines Matching +full:read +full:- +full:size
4 * SPDX-License-Identifier: Apache-2.0
23 #define STM32_BKP_REG_OFFSET (TAMP_BASE + offsetof(TAMP_TypeDef, BKP0R) - RTC_BASE)
29 #define STM32_BKP_REG(i) (((volatile uint32_t *)config->base_addr)[(i)])
36 /* BBRAM size in bytes. */
37 int size; member
40 static int bbram_stm32_read(const struct device *dev, size_t offset, size_t size, uint8_t *data) in bbram_stm32_read() argument
42 const struct bbram_stm32_config *config = dev->config; in bbram_stm32_read()
45 if (size < 1 || offset + size > config->size) { in bbram_stm32_read()
46 return -EFAULT; in bbram_stm32_read()
49 for (size_t read = 0; read < size; read += to_copy) { in bbram_stm32_read() local
50 reg = STM32_BKP_REG(STM32_BKP_REG_INDEX(offset + read)); in bbram_stm32_read()
51 begin = STM32_BKP_REG_BYTE_INDEX(offset + read); in bbram_stm32_read()
52 to_copy = MIN(STM32_BKP_REG_BYTES - begin, size - read); in bbram_stm32_read()
53 bytecpy(data + read, (uint8_t *)® + begin, to_copy); in bbram_stm32_read()
59 static int bbram_stm32_write(const struct device *dev, size_t offset, size_t size, in bbram_stm32_write() argument
62 const struct bbram_stm32_config *config = dev->config; in bbram_stm32_write()
65 if (size < 1 || offset + size > config->size) { in bbram_stm32_write()
66 return -EFAULT; in bbram_stm32_write()
73 for (size_t written = 0; written < size; written += to_copy) { in bbram_stm32_write()
76 to_copy = MIN(STM32_BKP_REG_BYTES - begin, size - written); in bbram_stm32_write()
88 static int bbram_stm32_get_size(const struct device *dev, size_t *size) in bbram_stm32_get_size() argument
90 const struct bbram_stm32_config *config = dev->config; in bbram_stm32_get_size()
92 *size = config->size; in bbram_stm32_get_size()
98 .read = bbram_stm32_read,
105 const struct bbram_stm32_config *config = dev->config; in bbram_stm32_init()
107 if (!device_is_ready(config->parent)) { in bbram_stm32_init()
108 LOG_ERR("Device %s is not ready", config->parent->name); in bbram_stm32_init()
109 return -ENODEV; in bbram_stm32_init()
119 .size = DT_INST_PROP(inst, st_backup_regs) * STM32_BKP_REG_BYTES, \