#include <linux/platform_device.h>
#include <linux/list.h>
#include <linux/clk.h>
#include <linux/err.h>
#include <linux/io.h>
#include <linux/mutex.h>
#include <linux/atmel-ssc.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/of.h>
#include "../../sound/soc/atmel/atmel_ssc_dai.h"
static DEFINE_MUTEX(user_lock);
static LIST_HEAD(ssc_list);
struct ssc_device *ssc_request(unsigned int ssc_num)
{ … }
EXPORT_SYMBOL(…);
void ssc_free(struct ssc_device *ssc)
{ … }
EXPORT_SYMBOL(…);
static struct atmel_ssc_platform_data at91rm9200_config = …;
static struct atmel_ssc_platform_data at91sam9rl_config = …;
static struct atmel_ssc_platform_data at91sam9g45_config = …;
static const struct platform_device_id atmel_ssc_devtypes[] = …;
#ifdef CONFIG_OF
static const struct of_device_id atmel_ssc_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, atmel_ssc_dt_ids);
#endif
static inline const struct atmel_ssc_platform_data *
atmel_ssc_get_driver_data(struct platform_device *pdev)
{ … }
#ifdef CONFIG_SND_ATMEL_SOC_SSC
static int ssc_sound_dai_probe(struct ssc_device *ssc)
{ … }
static void ssc_sound_dai_remove(struct ssc_device *ssc)
{ … }
#else
static inline int ssc_sound_dai_probe(struct ssc_device *ssc)
{
if (of_property_read_bool(ssc->pdev->dev.of_node, "#sound-dai-cells"))
return -ENOTSUPP;
return 0;
}
static inline void ssc_sound_dai_remove(struct ssc_device *ssc)
{
}
#endif
static int ssc_probe(struct platform_device *pdev)
{ … }
static void ssc_remove(struct platform_device *pdev)
{ … }
static struct platform_driver ssc_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;