Path: blob/master/sound/soc/amd/acp/acp-sdw-mach-common.c
26481 views
// SPDX-License-Identifier: GPL-2.0-only1// Copyright(c) 2024 Advanced Micro Devices, Inc.23/*4* acp-sdw-mach-common - Common machine driver helper functions for5* legacy(No DSP) stack and SOF stack.6*/78#include <linux/device.h>9#include <linux/module.h>10#include "soc_amd_sdw_common.h"1112int get_acp63_cpu_pin_id(u32 sdw_link_id, int be_id, int *cpu_pin_id, struct device *dev)13{14switch (sdw_link_id) {15case AMD_SDW0:16switch (be_id) {17case SOC_SDW_JACK_OUT_DAI_ID:18*cpu_pin_id = ACP63_SW0_AUDIO0_TX;19break;20case SOC_SDW_JACK_IN_DAI_ID:21*cpu_pin_id = ACP63_SW0_AUDIO0_RX;22break;23case SOC_SDW_AMP_OUT_DAI_ID:24*cpu_pin_id = ACP63_SW0_AUDIO1_TX;25break;26case SOC_SDW_AMP_IN_DAI_ID:27*cpu_pin_id = ACP63_SW0_AUDIO1_RX;28break;29case SOC_SDW_DMIC_DAI_ID:30*cpu_pin_id = ACP63_SW0_AUDIO2_RX;31break;32default:33dev_err(dev, "Invalid be id:%d\n", be_id);34return -EINVAL;35}36break;37case AMD_SDW1:38switch (be_id) {39case SOC_SDW_JACK_OUT_DAI_ID:40case SOC_SDW_AMP_OUT_DAI_ID:41*cpu_pin_id = ACP63_SW1_AUDIO0_TX;42break;43case SOC_SDW_JACK_IN_DAI_ID:44case SOC_SDW_AMP_IN_DAI_ID:45case SOC_SDW_DMIC_DAI_ID:46*cpu_pin_id = ACP63_SW1_AUDIO0_RX;47break;48default:49dev_err(dev, "invalid be_id:%d\n", be_id);50return -EINVAL;51}52break;53default:54dev_err(dev, "Invalid link id:%d\n", sdw_link_id);55return -EINVAL;56}57return 0;58}59EXPORT_SYMBOL_NS_GPL(get_acp63_cpu_pin_id, "SND_SOC_AMD_SDW_MACH");6061int get_acp70_cpu_pin_id(u32 sdw_link_id, int be_id, int *cpu_pin_id, struct device *dev)62{63switch (sdw_link_id) {64case AMD_SDW0:65case AMD_SDW1:66switch (be_id) {67case SOC_SDW_JACK_OUT_DAI_ID:68*cpu_pin_id = ACP70_SW_AUDIO0_TX;69break;70case SOC_SDW_JACK_IN_DAI_ID:71*cpu_pin_id = ACP70_SW_AUDIO0_RX;72break;73case SOC_SDW_AMP_OUT_DAI_ID:74*cpu_pin_id = ACP70_SW_AUDIO1_TX;75break;76case SOC_SDW_AMP_IN_DAI_ID:77*cpu_pin_id = ACP70_SW_AUDIO1_RX;78break;79case SOC_SDW_DMIC_DAI_ID:80*cpu_pin_id = ACP70_SW_AUDIO2_RX;81break;82default:83dev_err(dev, "Invalid be id:%d\n", be_id);84return -EINVAL;85}86break;87default:88return -EINVAL;89}90dev_dbg(dev, "sdw_link_id:%d, be_id:%d, cpu_pin_id:%d\n", sdw_link_id, be_id, *cpu_pin_id);91return 0;92}93EXPORT_SYMBOL_NS_GPL(get_acp70_cpu_pin_id, "SND_SOC_AMD_SDW_MACH");9495MODULE_DESCRIPTION("AMD SoundWire Common Machine driver");96MODULE_AUTHOR("Vijendar Mukunda <[email protected]>");97MODULE_LICENSE("GPL");9899100