#include <linux/bitfield.h>
#include <linux/bitops.h>
#include <linux/clk.h>
#include <linux/err.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/pinctrl/consumer.h>
#include <linux/platform_device.h>
#include <linux/pwm.h>
#include <linux/slab.h>
#define PWM_IMX_TPM_PARAM …
#define PWM_IMX_TPM_GLOBAL …
#define PWM_IMX_TPM_SC …
#define PWM_IMX_TPM_CNT …
#define PWM_IMX_TPM_MOD …
#define PWM_IMX_TPM_CnSC(n) …
#define PWM_IMX_TPM_CnV(n) …
#define PWM_IMX_TPM_PARAM_CHAN …
#define PWM_IMX_TPM_SC_PS …
#define PWM_IMX_TPM_SC_CMOD …
#define PWM_IMX_TPM_SC_CMOD_INC_EVERY_CLK …
#define PWM_IMX_TPM_SC_CPWMS …
#define PWM_IMX_TPM_CnSC_CHF …
#define PWM_IMX_TPM_CnSC_MSB …
#define PWM_IMX_TPM_CnSC_MSA …
#define PWM_IMX_TPM_CnSC_ELS …
#define PWM_IMX_TPM_CnSC_ELS_INVERSED …
#define PWM_IMX_TPM_CnSC_ELS_NORMAL …
#define PWM_IMX_TPM_MOD_WIDTH …
#define PWM_IMX_TPM_MOD_MOD …
struct imx_tpm_pwm_chip { … };
struct imx_tpm_pwm_param { … };
static inline struct imx_tpm_pwm_chip *
to_imx_tpm_pwm_chip(struct pwm_chip *chip)
{ … }
static int pwm_imx_tpm_round_state(struct pwm_chip *chip,
struct imx_tpm_pwm_param *p,
struct pwm_state *real_state,
const struct pwm_state *state)
{ … }
static int pwm_imx_tpm_get_state(struct pwm_chip *chip,
struct pwm_device *pwm,
struct pwm_state *state)
{ … }
static int pwm_imx_tpm_apply_hw(struct pwm_chip *chip,
struct imx_tpm_pwm_param *p,
struct pwm_state *state,
struct pwm_device *pwm)
{ … }
static int pwm_imx_tpm_apply(struct pwm_chip *chip,
struct pwm_device *pwm,
const struct pwm_state *state)
{ … }
static int pwm_imx_tpm_request(struct pwm_chip *chip, struct pwm_device *pwm)
{ … }
static void pwm_imx_tpm_free(struct pwm_chip *chip, struct pwm_device *pwm)
{ … }
static const struct pwm_ops imx_tpm_pwm_ops = …;
static int pwm_imx_tpm_probe(struct platform_device *pdev)
{ … }
static int pwm_imx_tpm_suspend(struct device *dev)
{ … }
static int pwm_imx_tpm_resume(struct device *dev)
{ … }
static DEFINE_SIMPLE_DEV_PM_OPS(imx_tpm_pwm_pm,
pwm_imx_tpm_suspend, pwm_imx_tpm_resume);
static const struct of_device_id imx_tpm_pwm_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, imx_tpm_pwm_dt_ids);
static struct platform_driver imx_tpm_pwm_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;