/*
 * Copyright 2021 Google LLC.
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef DRIVERS_SYSCON_SYSCON_COMMON_H_
#define DRIVERS_SYSCON_SYSCON_COMMON_H_

#include <sys/util.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Align and check register address
 *
 * @param reg Pointer to the register address in question.
 * @param reg_size The size of the syscon register region.
 * @param reg_width The width of a single register (in bytes).
 * @return 0 if the register read is valid.
 * @return -EINVAL is the read is invalid.
 */
static inline int syscon_sanitize_reg(uint16_t *reg, size_t reg_size, uint8_t reg_width)
{
	/* Avoid unaligned readings */
	*reg = ROUND_DOWN(*reg, reg_width);

	/* Check for out-of-bounds readings */
	if (*reg >= reg_size) {
		return -EINVAL;
	}

	return 0;
}

#ifdef __cplusplus
}
#endif

#endif /* DRIVERS_SYSCON_SYSCON_COMMON_H_ */
