#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/err.h>
#include <linux/io.h>
#include <linux/math64.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pwm.h>
#define IPROC_PWM_CTRL_OFFSET …
#define IPROC_PWM_CTRL_TYPE_SHIFT(ch) …
#define IPROC_PWM_CTRL_POLARITY_SHIFT(ch) …
#define IPROC_PWM_CTRL_EN_SHIFT(ch) …
#define IPROC_PWM_PERIOD_OFFSET(ch) …
#define IPROC_PWM_PERIOD_MIN …
#define IPROC_PWM_PERIOD_MAX …
#define IPROC_PWM_DUTY_CYCLE_OFFSET(ch) …
#define IPROC_PWM_DUTY_CYCLE_MIN …
#define IPROC_PWM_DUTY_CYCLE_MAX …
#define IPROC_PWM_PRESCALE_OFFSET …
#define IPROC_PWM_PRESCALE_BITS …
#define IPROC_PWM_PRESCALE_SHIFT(ch) …
#define IPROC_PWM_PRESCALE_MASK(ch) …
#define IPROC_PWM_PRESCALE_MIN …
#define IPROC_PWM_PRESCALE_MAX …
struct iproc_pwmc { … };
static inline struct iproc_pwmc *to_iproc_pwmc(struct pwm_chip *chip)
{ … }
static void iproc_pwmc_enable(struct iproc_pwmc *ip, unsigned int channel)
{ … }
static void iproc_pwmc_disable(struct iproc_pwmc *ip, unsigned int channel)
{ … }
static int iproc_pwmc_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
struct pwm_state *state)
{ … }
static int iproc_pwmc_apply(struct pwm_chip *chip, struct pwm_device *pwm,
const struct pwm_state *state)
{ … }
static const struct pwm_ops iproc_pwm_ops = …;
static int iproc_pwmc_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id bcm_iproc_pwmc_dt[] = …;
MODULE_DEVICE_TABLE(of, bcm_iproc_pwmc_dt);
static struct platform_driver iproc_pwmc_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;