linux/drivers/pwm/pwm-ep93xx.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * PWM framework driver for Cirrus Logic EP93xx
 *
 * Copyright (c) 2009        Matthieu Crapet <[email protected]>
 * Copyright (c) 2009, 2013  H Hartley Sweeten <[email protected]>
 *
 * EP9301/02 have only one channel:
 *   platform device ep93xx-pwm.1 - PWMOUT1 (EGPIO14)
 *
 * EP9307 has only one channel:
 *   platform device ep93xx-pwm.0 - PWMOUT
 *
 * EP9312/15 have two channels:
 *   platform device ep93xx-pwm.0 - PWMOUT
 *   platform device ep93xx-pwm.1 - PWMOUT1 (EGPIO14)
 */

#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/clk.h>
#include <linux/err.h>
#include <linux/io.h>
#include <linux/pwm.h>

#include <asm/div64.h>

#include <linux/soc/cirrus/ep93xx.h>	/* for ep93xx_pwm_{acquire,release}_gpio() */

#define EP93XX_PWMx_TERM_COUNT
#define EP93XX_PWMx_DUTY_CYCLE
#define EP93XX_PWMx_ENABLE
#define EP93XX_PWMx_INVERT

struct ep93xx_pwm {};

static inline struct ep93xx_pwm *to_ep93xx_pwm(struct pwm_chip *chip)
{}

static int ep93xx_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm)
{}

static void ep93xx_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
{}

static int ep93xx_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
			    const struct pwm_state *state)
{}

static const struct pwm_ops ep93xx_pwm_ops =;

static int ep93xx_pwm_probe(struct platform_device *pdev)
{}

static struct platform_driver ep93xx_pwm_driver =;
module_platform_driver();

MODULE_DESCRIPTION();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_ALIAS();
MODULE_LICENSE();