#include <linux/clk.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/reset-controller.h>
#include <linux/spinlock.h>
#include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h>
struct meson_audio_arb_data { … };
struct meson_audio_arb_match_data { … };
#define ARB_GENERAL_BIT …
static const unsigned int axg_audio_arb_reset_bits[] = …;
static const struct meson_audio_arb_match_data axg_audio_arb_match = …;
static const unsigned int sm1_audio_arb_reset_bits[] = …;
static const struct meson_audio_arb_match_data sm1_audio_arb_match = …;
static int meson_audio_arb_update(struct reset_controller_dev *rcdev,
unsigned long id, bool assert)
{ … }
static int meson_audio_arb_status(struct reset_controller_dev *rcdev,
unsigned long id)
{ … }
static int meson_audio_arb_assert(struct reset_controller_dev *rcdev,
unsigned long id)
{ … }
static int meson_audio_arb_deassert(struct reset_controller_dev *rcdev,
unsigned long id)
{ … }
static const struct reset_control_ops meson_audio_arb_rstc_ops = …;
static const struct of_device_id meson_audio_arb_of_match[] = …;
MODULE_DEVICE_TABLE(of, meson_audio_arb_of_match);
static void meson_audio_arb_remove(struct platform_device *pdev)
{ … }
static int meson_audio_arb_probe(struct platform_device *pdev)
{ … }
static struct platform_driver meson_audio_arb_pdrv = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;