#include <linux/module.h>
#include <linux/types.h>
#include <linux/slab.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/platform_device.h>
#include <linux/of.h>
#include <linux/of_platform.h>
#include <linux/mfd/twl.h>
#include <linux/mfd/core.h>
#include <linux/mfd/twl4030-audio.h>
#define TWL4030_AUDIO_CELLS …
static struct platform_device *twl4030_audio_dev;
struct twl4030_audio_resource { … };
struct twl4030_audio { … };
static int twl4030_audio_set_resource(enum twl4030_audio_res id, int enable)
{ … }
static inline int twl4030_audio_get_resource(enum twl4030_audio_res id)
{ … }
int twl4030_audio_enable_resource(enum twl4030_audio_res id)
{ … }
EXPORT_SYMBOL_GPL(…);
int twl4030_audio_disable_resource(enum twl4030_audio_res id)
{ … }
EXPORT_SYMBOL_GPL(…);
unsigned int twl4030_audio_get_mclk(void)
{ … }
EXPORT_SYMBOL_GPL(…);
static bool twl4030_audio_has_codec(struct twl4030_audio_data *pdata,
struct device_node *parent)
{ … }
static bool twl4030_audio_has_vibra(struct twl4030_audio_data *pdata,
struct device_node *node)
{ … }
static int twl4030_audio_probe(struct platform_device *pdev)
{ … }
static void twl4030_audio_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id twl4030_audio_of_match[] = …;
MODULE_DEVICE_TABLE(of, twl4030_audio_of_match);
static struct platform_driver twl4030_audio_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS(…) …;