blob: 23a0b70e37a8eb257964cd9777b3893e57aeb888 [file] [log] [blame]
/*
* 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 */