/* * Copyright (c) 2024 ENE Technology Inc. * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ENE_KB1200_TACHO_H #define ENE_KB1200_TACHO_H /** * brief Structure type to access TACHO. */ struct tacho_regs { volatile uint16_t TACHOCFG; /*Configuration Register */ volatile uint16_t Reserved0; /*Reserved */ volatile uint8_t TACHOIE; /*Interrupt Enable Register */ volatile uint8_t Reserved1[3]; /*Reserved */ volatile uint8_t TACHOPF; /*Event Pending Flag Register */ volatile uint8_t Reserved2[3]; /*Reserved */ volatile uint16_t TACHOCV; /*TACHO0 Counter Value Register */ volatile uint16_t Reserved3; /*Reserved */ }; #define TACHO_CNT_MAX_VALUE 0x7FFF #define TACHO_TIMEOUT_EVENT 0x02 #define TACHO_UPDATE_EVENT 0x01 #define TACHO_MONITOR_CLK_64US 0 #define TACHO_MONITOR_CLK_16US 1 #define TACHO_MONITOR_CLK_8US 2 #define TACHO_MONITOR_CLK_2US 3 #define TACHO_FUNCTION_ENABLE 0x0001 #define TACHO_RING_EDGE_SAMPLE 0x0000 #define TACHO_EDGE_CHANGE_SAMPLE 0x0080 #define TACHO_FILTER_ENABLE 0x8000 #endif /* ENE_KB1200_TACHO_H */