#include <linux/clk.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/property.h>
#include <linux/pwm.h>
#include <linux/time.h>
#define PWM_CTRL_TIMER_EN …
#define PWM_CTRL_OUTPUT_EN …
#define PWM_ENABLE …
#define PWM_CONTINUOUS …
#define PWM_DUTY_POSITIVE …
#define PWM_DUTY_NEGATIVE …
#define PWM_INACTIVE_NEGATIVE …
#define PWM_INACTIVE_POSITIVE …
#define PWM_POLARITY_MASK …
#define PWM_OUTPUT_LEFT …
#define PWM_LOCK_EN …
#define PWM_LP_DISABLE …
struct rockchip_pwm_chip { … };
struct rockchip_pwm_regs { … };
struct rockchip_pwm_data { … };
static inline struct rockchip_pwm_chip *to_rockchip_pwm_chip(struct pwm_chip *chip)
{ … }
static int rockchip_pwm_get_state(struct pwm_chip *chip,
struct pwm_device *pwm,
struct pwm_state *state)
{ … }
static void rockchip_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
const struct pwm_state *state)
{ … }
static int rockchip_pwm_enable(struct pwm_chip *chip,
struct pwm_device *pwm,
bool enable)
{ … }
static int rockchip_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
const struct pwm_state *state)
{ … }
static const struct pwm_ops rockchip_pwm_ops = …;
static const struct rockchip_pwm_data pwm_data_v1 = …;
static const struct rockchip_pwm_data pwm_data_v2 = …;
static const struct rockchip_pwm_data pwm_data_vop = …;
static const struct rockchip_pwm_data pwm_data_v3 = …;
static const struct of_device_id rockchip_pwm_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, rockchip_pwm_dt_ids);
static int rockchip_pwm_probe(struct platform_device *pdev)
{ … }
static void rockchip_pwm_remove(struct platform_device *pdev)
{ … }
static struct platform_driver rockchip_pwm_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;