ASoC: omap-hdmi-audio: Add platform device for OMAP HDMI audio support

The platform device should only be registered from OMAPDSS HDMI
driver. The platform driver registers and unregisters all ASoC
components needed for OMAP HDMI audio.

The hdmi audio driver implements cpu-dai component using the callbacks
provided by OMAPDSS and registers the component under DSS HDMI
device. Omap-pcm is registered for platform component also under DSS
HDMI device. Dummy codec is used as as codec component. The hdmi audio
driver implements also the card and registers it under its own
platform device.

Signed-off-by: Jyri Sarha <[email protected]>
Acked-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Mark Brown <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
This commit is contained in:
Jyri Sarha 2014-08-15 15:44:44 +03:00 • committed by Tomi Valkeinen
commit 50211be802
4 changed files with 467 additions and 0 deletions

View file

@ -0,0 +1,43 @@
/*
* hdmi-audio.c -- OMAP4+ DSS HDMI audio support library
*
* Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com
*
* Author: Jyri Sarha <jsarha@ti.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
*/
#include <video/omapdss.h>
#ifndef __OMAP_HDMI_AUDIO_H__
#define __OMAP_HDMI_AUDIO_H__
struct omap_hdmi_audio_ops {
int (*audio_startup)(struct device *dev,
void (*abort_cb)(struct device *dev));
int (*audio_shutdown)(struct device *dev);
int (*audio_start)(struct device *dev);
void (*audio_stop)(struct device *dev);
int (*audio_config)(struct device *dev,
struct omap_dss_audio *dss_audio);
};
/* HDMI audio initalization data */
struct omap_hdmi_audio_pdata {
struct device *dev;
enum omapdss_version dss_version;
phys_addr_t audio_dma_addr;
const struct omap_hdmi_audio_ops *ops;
};
#endif /* __OMAP_HDMI_AUDIO_H__ */