1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-26 06:53:52 +01:00
RIOT/cpu/native/include/periph_conf.h
Gilles DOFFE dab11d7a9c cpu/native: introduce periph_i2c_mock
This allows I2C emulation on native architecture in the same way than
periph_gpio_mock.

All I2C functions from this driver are set as weak to be easily
overridden in each application.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
2025-10-30 23:51:07 +01:00

132 lines
2.7 KiB
C

/*
* SPDX-FileCopyrightText: 2014 Ludwig Knüpfer <ludwig.knuepfer@fu-berlin.de>
* SPDX-License-Identifier: LGPL-2.1-only
*/
#pragma once
/**
* @addtogroup cpu_native
* @{
*/
/**
* @file
* @brief Native CPU peripheral configuration
* @author Ludwig Knüpfer <ludwig.knuepfer@fu-berlin.de>
*/
#include "macros/units.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief System core clock in Hz
*
* 1GHz is an arbitrary value used for compatibility with other platforms.
*/
#if !defined(CLOCK_CORECLOCK) || defined(DOXYGEN)
# define CLOCK_CORECLOCK GHZ(1)
#endif
/**
* @brief Hardware timer clock skew avoidance
*/
#define NATIVE_TIMER_MIN_RES 200
/**
* @brief Random Number Generator configuration
*/
#define RANDOM_NUMOF (1U)
/* MARK: - Timer peripheral configuration */
/**
* @name Timer peripheral configuration
* @{
*/
#define TIMER_NUMOF (1U)
#define TIMER_CHANNEL_NUMOF (1U) /**< Number of timer channels */
/** @} */
/**
* @brief UART configuration
*/
#if !defined(UART_NUMOF) || defined(DOXYGEN)
# define UART_NUMOF (1U)
#endif
/**
* @brief PWM configuration
*/
#if !defined(PWM_NUMOF) || defined(DOXYGEN)
# define PWM_NUMOF (8U)
#endif
/**
* @brief QDEC configuration
*/
#if !defined(QDEC_NUMOF) || defined(DOXYGEN)
# define QDEC_NUMOF (8U)
#endif
/* MARK: - I2C configuration (mock implementation) */
/**
* @name I2C configuration (mock implementation)
* @{
*/
#if !defined(I2C_NUMOF) || defined(DOXYGEN)
/**
* @brief Amount of I2C devices
*
* Can be overridden during compile time with `CFLAGS+=-DI2C_NUMOF=n`.
*/
# define I2C_NUMOF 1
#endif
/** @} */
/**
* @name SPI configuration (Linux host only)
* @{
*/
#if !defined(SPI_NUMOF) || defined(DOXYGEN)
/**
* @brief Amount of SPI devices
*
* Allows up to SPI_NUMOF SPI devices with each having up to SPI_MAXCS hardware
* cable select lines. Assignment to hardware devices can be configured at
* runtime using the `--spi` startup parameter.
*
* Can be overridden during compile time with a `-DSPI_NUMOF=n` flag.
*/
# define SPI_NUMOF (1U)
#endif
#if !defined(SPI_MAXCS) || defined(DOXYGEN)
/**
* @brief Maximum amount of chip select lines per bus
*
* Allows up to SPI_MAXCS hardware cable select lines per SPI device. The n-th
* hardware select line can be used with the SPI_HWCS macro.
*/
# define SPI_MAXCS (4U)
#endif
/**
* @brief Hardware chip select access macro.
*
* The amount of available hardware chip select lines depends on the SPI_MAXCS
* parameter. If the line is actually available at runtime depends of whether a
* `--spi` startup parameter with the corresponding SPI device and HWCS-line
* parameter has been given.
*/
#define SPI_HWCS(x) (UINT_MAX - SPI_MAXCS + x)
/** @} */
#ifdef __cplusplus
}
#endif
/** @} */