linux/drivers/pwm/pwm-apple.c

// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
 * Driver for the Apple SoC PWM controller
 *
 * Copyright The Asahi Linux Contributors
 *
 * Limitations:
 * - The writes to cycle registers are shadowed until a write to
 *   the control register.
 * - If both OFF_CYCLES and ON_CYCLES are set to 0, the output
 *   is a constant off signal.
 * - When APPLE_PWM_CTRL is set to 0, the output is constant low
 */

#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pwm.h>
#include <linux/io.h>
#include <linux/clk.h>
#include <linux/math64.h>

#define APPLE_PWM_CTRL
#define APPLE_PWM_ON_CYCLES
#define APPLE_PWM_OFF_CYCLES

#define APPLE_PWM_CTRL_ENABLE
#define APPLE_PWM_CTRL_MODE
#define APPLE_PWM_CTRL_UPDATE
#define APPLE_PWM_CTRL_TRIGGER
#define APPLE_PWM_CTRL_INVERT
#define APPLE_PWM_CTRL_OUTPUT_ENABLE

struct apple_pwm {};

static inline struct apple_pwm *to_apple_pwm(struct pwm_chip *chip)
{}

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

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

static const struct pwm_ops apple_pwm_ops =;

static int apple_pwm_probe(struct platform_device *pdev)
{}

static const struct of_device_id apple_pwm_of_match[] =;
MODULE_DEVICE_TABLE(of, apple_pwm_of_match);

static struct platform_driver apple_pwm_driver =;
module_platform_driver();

MODULE_DESCRIPTION();
MODULE_LICENSE();