mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-02 19:03:20 +09:00
![David Wu](/assets/img/avatar_default.png)
This PWM driver can be used to support pwm functions for on all Rockchip Socs. The previous chips than RK3288 did not support polarity, and register layout was different from the RK3288 PWM. The RK3288 keep the current functions. RK3328 and the chips after it, which can support hardware lock, configure duty, period and polarity at next same period, to prevent the intermediate temporary state. Signed-off-by: David Wu <david.wu@rock-chips.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
48 lines
1.2 KiB
C
48 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* (C) Copyright 2016 Google, Inc
|
|
* (C) Copyright 2008-2014 Rockchip Electronics
|
|
*/
|
|
|
|
#ifndef _ASM_ARCH_PWM_H
|
|
#define _ASM_ARCH_PWM_H
|
|
|
|
struct rockchip_pwm_regs {
|
|
unsigned long duty;
|
|
unsigned long period;
|
|
unsigned long cntr;
|
|
unsigned long ctrl;
|
|
};
|
|
|
|
#define PWM_CTRL_TIMER_EN (1 << 0)
|
|
#define PWM_CTRL_OUTPUT_EN (1 << 3)
|
|
|
|
#define RK_PWM_DISABLE (0 << 0)
|
|
#define RK_PWM_ENABLE (1 << 0)
|
|
|
|
#define PWM_ONE_SHOT (0 << 1)
|
|
#define PWM_CONTINUOUS (1 << 1)
|
|
#define RK_PWM_CAPTURE (1 << 2)
|
|
|
|
#define PWM_DUTY_POSTIVE (1 << 3)
|
|
#define PWM_DUTY_NEGATIVE (0 << 3)
|
|
#define PWM_DUTY_MASK (1 << 3)
|
|
|
|
#define PWM_INACTIVE_POSTIVE (1 << 4)
|
|
#define PWM_INACTIVE_NEGATIVE (0 << 4)
|
|
#define PWM_INACTIVE_MASK (1 << 4)
|
|
|
|
#define PWM_OUTPUT_LEFT (0 << 5)
|
|
#define PWM_OUTPUT_CENTER (1 << 5)
|
|
|
|
#define PWM_LOCK (1 << 6)
|
|
#define PWM_UNLOCK (0 << 6)
|
|
|
|
#define PWM_LP_ENABLE (1 << 8)
|
|
#define PWM_LP_DISABLE (0 << 8)
|
|
|
|
#define PWM_SEL_SCALE_CLK (1 << 9)
|
|
#define PWM_SEL_SRC_CLK (0 << 9)
|
|
|
|
#endif
|