/* * Copyright (c) 2024 ENE Technology Inc. * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ENE_KB1200_PWM_H #define ENE_KB1200_PWM_H /** * Structure type to access Pulse Width Modulation (PWM). */ struct pwm_regs { volatile uint16_t PWMCFG; /*Configuration Register */ volatile uint16_t Reserved0; /*Reserved */ volatile uint16_t PWMHIGH; /*High Length Register */ volatile uint16_t Reserved1; /*Reserved */ volatile uint16_t PWMCYC; /*Cycle Length Register */ volatile uint16_t Reserved2; /*Reserved */ volatile uint32_t PWMCHC; /*Current High/Cycle Length Register */ }; #define PWM_SOURCE_CLK_32M 0x0000 #define PWM_SOURCE_CLK_1M 0x4000 #define PWM_SOURCE_CLK_32_768K 0x8000 #define PWM_PRESCALER_BIT_S 8 #define PWM_RULE0 0x0000 #define PWM_RULE1 0x0080 #define PWM_PUSHPULL 0x0000 #define PWM_OPENDRAIN 0x0002 #define PWM_ENABLE 0x0001 #define PWM_INPUT_FREQ_HI 32000000u #define PWM_MAX_PRESCALER (1UL << (6)) #define PWM_MAX_CYCLES (1UL << (14)) #endif /* ENE_KB1200_PWM_H */