asoc: add machine driver for sa8155 based automotive platform
Add machine driver for SA8155 based automotive platform, which is based on mobile machine driver with addition of extended support for TDM interfaces which is used for data transfer between SA8155 SoC and the automotive COODEC H/W. Changes include TDM backend and refactored automotive frontend DAI links as well as kcontrol functions to configure TDM slot and offset configuration. Add 815x machine driver init wrapper to allow registration of multiple machine driver in single module init call. CRs-fixed: 2268293 Change-Id: I30eb22a7c5d6b2d963a5ea621b5a00e8dbc27fed Signed-off-by: Derek Chen <chenche@codeaurora.org>
This commit is contained in:
parent
6891816204
commit
39955471cd
5 changed files with 7206 additions and 1 deletions
|
@ -101,7 +101,9 @@ endif
|
|||
|
||||
# for SM8150 sound card driver
|
||||
ifdef CONFIG_SND_SOC_SM8150
|
||||
MACHINE_OBJS += sa8155.o
|
||||
MACHINE_OBJS += sm8150.o
|
||||
MACHINE_OBJS += machine_815x_init.o
|
||||
endif
|
||||
|
||||
# for SM6150 sound card driver
|
||||
|
|
36
asoc/machine_815x_init.c
Normal file
36
asoc/machine_815x_init.c
Normal file
|
@ -0,0 +1,36 @@
|
|||
/*
|
||||
Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2 and
|
||||
only 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 <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include "machine_815x_init.h"
|
||||
|
||||
static int __init audio_machine_815x_init(void)
|
||||
{
|
||||
sm8150_init();
|
||||
sa8155_init();
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void audio_machine_815x_exit(void)
|
||||
{
|
||||
sm8150_exit();
|
||||
sa8155_exit();
|
||||
}
|
||||
|
||||
module_init(audio_machine_815x_init);
|
||||
module_exit(audio_machine_815x_exit);
|
||||
|
||||
MODULE_DESCRIPTION("Audio Machine 815X Driver");
|
||||
MODULE_LICENSE("GPL v2");
|
23
asoc/machine_815x_init.h
Normal file
23
asoc/machine_815x_init.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2 and
|
||||
only 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __MACHINE_815X_INIT_H__
|
||||
#define __MACHINE_815X_INIT_H__
|
||||
int sm8150_init(void);
|
||||
int sa8155_init(void);
|
||||
|
||||
void sm8150_exit(void);
|
||||
void sa8155_exit(void);
|
||||
#endif
|
||||
|
7133
asoc/sa8155.c
Normal file
7133
asoc/sa8155.c
Normal file
File diff suppressed because it is too large
Load diff
|
@ -7557,7 +7557,18 @@ static struct platform_driver sm8150_asoc_machine_driver = {
|
|||
.probe = msm_asoc_machine_probe,
|
||||
.remove = msm_asoc_machine_remove,
|
||||
};
|
||||
module_platform_driver(sm8150_asoc_machine_driver);
|
||||
|
||||
int __init sm8150_init(void)
|
||||
{
|
||||
pr_debug("%s\n", __func__);
|
||||
return platform_driver_register(&sm8150_asoc_machine_driver);
|
||||
}
|
||||
|
||||
void sm8150_exit(void)
|
||||
{
|
||||
pr_debug("%s\n", __func__);
|
||||
platform_driver_unregister(&sm8150_asoc_machine_driver);
|
||||
}
|
||||
|
||||
MODULE_DESCRIPTION("ALSA SoC msm");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
|
Loading…
Add table
Reference in a new issue