1 /* SPDX-License-Identifier: GPL-2.0-only 2 * Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved 3 */ 4 5 /* 6 * soc_amd_sdw_common.h - prototypes for common helpers 7 */ 8 9 #ifndef SOC_AMD_SDW_COMMON_H 10 #define SOC_AMD_SDW_COMMON_H 11 12 #include <linux/bits.h> 13 #include <linux/types.h> 14 #include <sound/soc.h> 15 #include <sound/soc_sdw_utils.h> 16 17 #define ACP63_SDW_MAX_CPU_DAIS 8 18 #define ACP63_SDW_MAX_LINKS 2 19 20 #define AMD_SDW_MAX_GROUPS 9 21 #define ACP63_PCI_REV 0x63 22 #define ACP70_PCI_REV 0x70 23 #define ACP71_PCI_REV 0x71 24 #define ACP72_PCI_REV 0x72 25 26 #define SOC_JACK_JDSRC(quirk) ((quirk) & GENMASK(3, 0)) 27 #define ASOC_SDW_FOUR_SPK BIT(4) 28 #define ASOC_SDW_ACP_DMIC BIT(5) 29 #define ASOC_SDW_CODEC_SPKR BIT(15) 30 31 #define AMD_SDW0 0 32 #define AMD_SDW1 1 33 #define ACP63_SW0_AUDIO0_TX 0 34 #define ACP63_SW0_AUDIO1_TX 1 35 #define ACP63_SW0_AUDIO2_TX 2 36 37 #define ACP63_SW0_AUDIO0_RX 3 38 #define ACP63_SW0_AUDIO1_RX 4 39 #define ACP63_SW0_AUDIO2_RX 5 40 41 #define ACP63_SW1_AUDIO0_TX 0 42 #define ACP63_SW1_AUDIO0_RX 1 43 44 #define ACP_DMIC_BE_ID 4 45 46 #define ACP70_SW_AUDIO0_TX 0 47 #define ACP70_SW_AUDIO1_TX 1 48 #define ACP70_SW_AUDIO2_TX 2 49 50 #define ACP70_SW_AUDIO0_RX 3 51 #define ACP70_SW_AUDIO1_RX 4 52 #define ACP70_SW_AUDIO2_RX 5 53 54 struct amd_mc_ctx { 55 unsigned int acp_rev; 56 unsigned int max_sdw_links; 57 }; 58 59 int get_acp63_cpu_pin_id(u32 sdw_link_id, int be_id, int *cpu_pin_id, struct device *dev); 60 int get_acp70_cpu_pin_id(u32 sdw_link_id, int be_id, int *cpu_pin_id, struct device *dev); 61 62 #endif 63