Path: blob/master/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
26444 views
// SPDX-License-Identifier: GPL-2.01// Copyright (c) 2020, Linaro Limited23#include <sound/pcm.h>4#include <sound/soc.h>5#include <sound/pcm_params.h>6#include <dt-bindings/sound/qcom,q6afe.h>7#include "q6dsp-lpass-ports.h"89#define Q6AFE_TDM_PB_DAI(pre, num, did) { \10.playback = { \11.stream_name = pre" TDM"#num" Playback", \12.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\13SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\14SNDRV_PCM_RATE_176400, \15.formats = SNDRV_PCM_FMTBIT_S16_LE | \16SNDRV_PCM_FMTBIT_S24_LE | \17SNDRV_PCM_FMTBIT_S32_LE, \18.channels_min = 1, \19.channels_max = 8, \20.rate_min = 8000, \21.rate_max = 176400, \22}, \23.name = #did, \24.id = did, \25}2627#define Q6AFE_TDM_CAP_DAI(pre, num, did) { \28.capture = { \29.stream_name = pre" TDM"#num" Capture", \30.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\31SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\32SNDRV_PCM_RATE_176400, \33.formats = SNDRV_PCM_FMTBIT_S16_LE | \34SNDRV_PCM_FMTBIT_S24_LE | \35SNDRV_PCM_FMTBIT_S32_LE, \36.channels_min = 1, \37.channels_max = 8, \38.rate_min = 8000, \39.rate_max = 176400, \40}, \41.name = #did, \42.id = did, \43}4445#define Q6AFE_CDC_DMA_RX_DAI(did) { \46.playback = { \47.stream_name = #did" Playback", \48.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\49SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\50SNDRV_PCM_RATE_176400, \51.formats = SNDRV_PCM_FMTBIT_S16_LE | \52SNDRV_PCM_FMTBIT_S24_LE | \53SNDRV_PCM_FMTBIT_S32_LE, \54.channels_min = 1, \55.channels_max = 8, \56.rate_min = 8000, \57.rate_max = 176400, \58}, \59.name = #did, \60.id = did, \61}6263#define Q6AFE_CDC_DMA_TX_DAI(did) { \64.capture = { \65.stream_name = #did" Capture", \66.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\67SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\68SNDRV_PCM_RATE_176400, \69.formats = SNDRV_PCM_FMTBIT_S16_LE | \70SNDRV_PCM_FMTBIT_S24_LE | \71SNDRV_PCM_FMTBIT_S32_LE, \72.channels_min = 1, \73.channels_max = 8, \74.rate_min = 8000, \75.rate_max = 176400, \76}, \77.name = #did, \78.id = did, \79}8081#define Q6AFE_DP_RX_DAI(did) { \82.playback = { \83.stream_name = #did" Playback", \84.rates = SNDRV_PCM_RATE_48000 | \85SNDRV_PCM_RATE_96000 | \86SNDRV_PCM_RATE_192000, \87.formats = SNDRV_PCM_FMTBIT_S16_LE | \88SNDRV_PCM_FMTBIT_S24_LE, \89.channels_min = 2, \90.channels_max = 8, \91.rate_min = 48000, \92.rate_max = 192000, \93}, \94.name = #did, \95.id = did, \96}9798static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {99{100.playback = {101.stream_name = "USB Playback",102.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |103SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |104SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |105SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |106SNDRV_PCM_RATE_192000,107.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE |108SNDRV_PCM_FMTBIT_U16_LE | SNDRV_PCM_FMTBIT_U16_BE |109SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S24_BE |110SNDRV_PCM_FMTBIT_U24_LE | SNDRV_PCM_FMTBIT_U24_BE,111.channels_min = 1,112.channels_max = 2,113.rate_min = 8000,114.rate_max = 192000,115},116.id = USB_RX,117.name = "USB_RX",118},119{120.playback = {121.stream_name = "HDMI Playback",122.rates = SNDRV_PCM_RATE_48000 |123SNDRV_PCM_RATE_96000 |124SNDRV_PCM_RATE_192000,125.formats = SNDRV_PCM_FMTBIT_S16_LE |126SNDRV_PCM_FMTBIT_S24_LE,127.channels_min = 2,128.channels_max = 8,129.rate_max = 192000,130.rate_min = 48000,131},132.id = HDMI_RX,133.name = "HDMI",134}, {135.name = "SLIMBUS_0_RX",136.id = SLIMBUS_0_RX,137.playback = {138.stream_name = "Slimbus Playback",139.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |140SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 |141SNDRV_PCM_RATE_192000,142.formats = SNDRV_PCM_FMTBIT_S16_LE |143SNDRV_PCM_FMTBIT_S24_LE,144.channels_min = 1,145.channels_max = 8,146.rate_min = 8000,147.rate_max = 192000,148},149}, {150.name = "SLIMBUS_0_TX",151.id = SLIMBUS_0_TX,152.capture = {153.stream_name = "Slimbus Capture",154.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |155SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 |156SNDRV_PCM_RATE_192000,157.formats = SNDRV_PCM_FMTBIT_S16_LE |158SNDRV_PCM_FMTBIT_S24_LE,159.channels_min = 1,160.channels_max = 8,161.rate_min = 8000,162.rate_max = 192000,163},164}, {165.playback = {166.stream_name = "Slimbus1 Playback",167.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |168SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |169SNDRV_PCM_RATE_192000,170.formats = SNDRV_PCM_FMTBIT_S16_LE |171SNDRV_PCM_FMTBIT_S24_LE,172.channels_min = 1,173.channels_max = 2,174.rate_min = 8000,175.rate_max = 192000,176},177.name = "SLIMBUS_1_RX",178.id = SLIMBUS_1_RX,179}, {180.name = "SLIMBUS_1_TX",181.id = SLIMBUS_1_TX,182.capture = {183.stream_name = "Slimbus1 Capture",184.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |185SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 |186SNDRV_PCM_RATE_192000,187.formats = SNDRV_PCM_FMTBIT_S16_LE |188SNDRV_PCM_FMTBIT_S24_LE,189.channels_min = 1,190.channels_max = 8,191.rate_min = 8000,192.rate_max = 192000,193},194}, {195.playback = {196.stream_name = "Slimbus2 Playback",197.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |198SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 |199SNDRV_PCM_RATE_192000,200.formats = SNDRV_PCM_FMTBIT_S16_LE |201SNDRV_PCM_FMTBIT_S24_LE,202.channels_min = 1,203.channels_max = 8,204.rate_min = 8000,205.rate_max = 192000,206},207.name = "SLIMBUS_2_RX",208.id = SLIMBUS_2_RX,209210}, {211.name = "SLIMBUS_2_TX",212.id = SLIMBUS_2_TX,213.capture = {214.stream_name = "Slimbus2 Capture",215.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |216SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 |217SNDRV_PCM_RATE_192000,218.formats = SNDRV_PCM_FMTBIT_S16_LE |219SNDRV_PCM_FMTBIT_S24_LE,220.channels_min = 1,221.channels_max = 8,222.rate_min = 8000,223.rate_max = 192000,224},225}, {226.playback = {227.stream_name = "Slimbus3 Playback",228.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |229SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |230SNDRV_PCM_RATE_192000,231.formats = SNDRV_PCM_FMTBIT_S16_LE |232SNDRV_PCM_FMTBIT_S24_LE,233.channels_min = 1,234.channels_max = 2,235.rate_min = 8000,236.rate_max = 192000,237},238.name = "SLIMBUS_3_RX",239.id = SLIMBUS_3_RX,240241}, {242.name = "SLIMBUS_3_TX",243.id = SLIMBUS_3_TX,244.capture = {245.stream_name = "Slimbus3 Capture",246.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |247SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 |248SNDRV_PCM_RATE_192000,249.formats = SNDRV_PCM_FMTBIT_S16_LE |250SNDRV_PCM_FMTBIT_S24_LE,251.channels_min = 1,252.channels_max = 8,253.rate_min = 8000,254.rate_max = 192000,255},256}, {257.playback = {258.stream_name = "Slimbus4 Playback",259.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |260SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |261SNDRV_PCM_RATE_192000,262.formats = SNDRV_PCM_FMTBIT_S16_LE |263SNDRV_PCM_FMTBIT_S24_LE,264.channels_min = 1,265.channels_max = 2,266.rate_min = 8000,267.rate_max = 192000,268},269.name = "SLIMBUS_4_RX",270.id = SLIMBUS_4_RX,271272}, {273.name = "SLIMBUS_4_TX",274.id = SLIMBUS_4_TX,275.capture = {276.stream_name = "Slimbus4 Capture",277.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |278SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 |279SNDRV_PCM_RATE_192000,280.formats = SNDRV_PCM_FMTBIT_S16_LE |281SNDRV_PCM_FMTBIT_S24_LE,282.channels_min = 1,283.channels_max = 8,284.rate_min = 8000,285.rate_max = 192000,286},287}, {288.playback = {289.stream_name = "Slimbus5 Playback",290.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |291SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |292SNDRV_PCM_RATE_192000,293.formats = SNDRV_PCM_FMTBIT_S16_LE |294SNDRV_PCM_FMTBIT_S24_LE,295.channels_min = 1,296.channels_max = 2,297.rate_min = 8000,298.rate_max = 192000,299},300.name = "SLIMBUS_5_RX",301.id = SLIMBUS_5_RX,302303}, {304.name = "SLIMBUS_5_TX",305.id = SLIMBUS_5_TX,306.capture = {307.stream_name = "Slimbus5 Capture",308.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |309SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 |310SNDRV_PCM_RATE_192000,311.formats = SNDRV_PCM_FMTBIT_S16_LE |312SNDRV_PCM_FMTBIT_S24_LE,313.channels_min = 1,314.channels_max = 8,315.rate_min = 8000,316.rate_max = 192000,317},318}, {319.playback = {320.stream_name = "Slimbus6 Playback",321.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |322SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |323SNDRV_PCM_RATE_192000,324.formats = SNDRV_PCM_FMTBIT_S16_LE |325SNDRV_PCM_FMTBIT_S24_LE,326.channels_min = 1,327.channels_max = 2,328.rate_min = 8000,329.rate_max = 192000,330},331.name = "SLIMBUS_6_RX",332.id = SLIMBUS_6_RX,333334}, {335.name = "SLIMBUS_6_TX",336.id = SLIMBUS_6_TX,337.capture = {338.stream_name = "Slimbus6 Capture",339.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |340SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 |341SNDRV_PCM_RATE_192000,342.formats = SNDRV_PCM_FMTBIT_S16_LE |343SNDRV_PCM_FMTBIT_S24_LE,344.channels_min = 1,345.channels_max = 8,346.rate_min = 8000,347.rate_max = 192000,348},349}, {350.playback = {351.stream_name = "Primary MI2S Playback",352.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |353SNDRV_PCM_RATE_16000,354.formats = SNDRV_PCM_FMTBIT_S16_LE |355SNDRV_PCM_FMTBIT_S24_LE,356.channels_min = 1,357.channels_max = 8,358.rate_min = 8000,359.rate_max = 48000,360},361.id = PRIMARY_MI2S_RX,362.name = "PRI_MI2S_RX",363}, {364.capture = {365.stream_name = "Primary MI2S Capture",366.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |367SNDRV_PCM_RATE_16000,368.formats = SNDRV_PCM_FMTBIT_S16_LE |369SNDRV_PCM_FMTBIT_S24_LE,370.channels_min = 1,371.channels_max = 8,372.rate_min = 8000,373.rate_max = 48000,374},375.id = PRIMARY_MI2S_TX,376.name = "PRI_MI2S_TX",377}, {378.playback = {379.stream_name = "Secondary MI2S Playback",380.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |381SNDRV_PCM_RATE_16000,382.formats = SNDRV_PCM_FMTBIT_S16_LE,383.channels_min = 1,384.channels_max = 8,385.rate_min = 8000,386.rate_max = 48000,387},388.name = "SEC_MI2S_RX",389.id = SECONDARY_MI2S_RX,390}, {391.capture = {392.stream_name = "Secondary MI2S Capture",393.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |394SNDRV_PCM_RATE_16000,395.formats = SNDRV_PCM_FMTBIT_S16_LE |396SNDRV_PCM_FMTBIT_S24_LE,397.channels_min = 1,398.channels_max = 8,399.rate_min = 8000,400.rate_max = 48000,401},402.id = SECONDARY_MI2S_TX,403.name = "SEC_MI2S_TX",404}, {405.playback = {406.stream_name = "Tertiary MI2S Playback",407.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |408SNDRV_PCM_RATE_16000,409.formats = SNDRV_PCM_FMTBIT_S16_LE,410.channels_min = 1,411.channels_max = 8,412.rate_min = 8000,413.rate_max = 48000,414},415.name = "TERT_MI2S_RX",416.id = TERTIARY_MI2S_RX,417}, {418.capture = {419.stream_name = "Tertiary MI2S Capture",420.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |421SNDRV_PCM_RATE_16000,422.formats = SNDRV_PCM_FMTBIT_S16_LE |423SNDRV_PCM_FMTBIT_S24_LE,424.channels_min = 1,425.channels_max = 8,426.rate_min = 8000,427.rate_max = 48000,428},429.id = TERTIARY_MI2S_TX,430.name = "TERT_MI2S_TX",431}, {432.playback = {433.stream_name = "Quaternary MI2S Playback",434.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |435SNDRV_PCM_RATE_16000,436.formats = SNDRV_PCM_FMTBIT_S16_LE,437.channels_min = 1,438.channels_max = 8,439.rate_min = 8000,440.rate_max = 48000,441},442.name = "QUAT_MI2S_RX",443.id = QUATERNARY_MI2S_RX,444}, {445.capture = {446.stream_name = "Quaternary MI2S Capture",447.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |448SNDRV_PCM_RATE_16000,449.formats = SNDRV_PCM_FMTBIT_S16_LE |450SNDRV_PCM_FMTBIT_S24_LE,451.channels_min = 1,452.channels_max = 8,453.rate_min = 8000,454.rate_max = 48000,455},456.id = QUATERNARY_MI2S_TX,457.name = "QUAT_MI2S_TX",458}, {459.playback = {460.stream_name = "Quinary MI2S Playback",461.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |462SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 |463SNDRV_PCM_RATE_192000,464.formats = SNDRV_PCM_FMTBIT_S16_LE,465.channels_min = 1,466.channels_max = 8,467.rate_min = 8000,468.rate_max = 192000,469},470.id = QUINARY_MI2S_RX,471.name = "QUIN_MI2S_RX",472}, {473.capture = {474.stream_name = "Quinary MI2S Capture",475.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |476SNDRV_PCM_RATE_16000,477.formats = SNDRV_PCM_FMTBIT_S16_LE,478.channels_min = 1,479.channels_max = 8,480.rate_min = 8000,481.rate_max = 48000,482},483.id = QUINARY_MI2S_TX,484.name = "QUIN_MI2S_TX",485},486Q6AFE_TDM_PB_DAI("Primary", 0, PRIMARY_TDM_RX_0),487Q6AFE_TDM_PB_DAI("Primary", 1, PRIMARY_TDM_RX_1),488Q6AFE_TDM_PB_DAI("Primary", 2, PRIMARY_TDM_RX_2),489Q6AFE_TDM_PB_DAI("Primary", 3, PRIMARY_TDM_RX_3),490Q6AFE_TDM_PB_DAI("Primary", 4, PRIMARY_TDM_RX_4),491Q6AFE_TDM_PB_DAI("Primary", 5, PRIMARY_TDM_RX_5),492Q6AFE_TDM_PB_DAI("Primary", 6, PRIMARY_TDM_RX_6),493Q6AFE_TDM_PB_DAI("Primary", 7, PRIMARY_TDM_RX_7),494Q6AFE_TDM_CAP_DAI("Primary", 0, PRIMARY_TDM_TX_0),495Q6AFE_TDM_CAP_DAI("Primary", 1, PRIMARY_TDM_TX_1),496Q6AFE_TDM_CAP_DAI("Primary", 2, PRIMARY_TDM_TX_2),497Q6AFE_TDM_CAP_DAI("Primary", 3, PRIMARY_TDM_TX_3),498Q6AFE_TDM_CAP_DAI("Primary", 4, PRIMARY_TDM_TX_4),499Q6AFE_TDM_CAP_DAI("Primary", 5, PRIMARY_TDM_TX_5),500Q6AFE_TDM_CAP_DAI("Primary", 6, PRIMARY_TDM_TX_6),501Q6AFE_TDM_CAP_DAI("Primary", 7, PRIMARY_TDM_TX_7),502Q6AFE_TDM_PB_DAI("Secondary", 0, SECONDARY_TDM_RX_0),503Q6AFE_TDM_PB_DAI("Secondary", 1, SECONDARY_TDM_RX_1),504Q6AFE_TDM_PB_DAI("Secondary", 2, SECONDARY_TDM_RX_2),505Q6AFE_TDM_PB_DAI("Secondary", 3, SECONDARY_TDM_RX_3),506Q6AFE_TDM_PB_DAI("Secondary", 4, SECONDARY_TDM_RX_4),507Q6AFE_TDM_PB_DAI("Secondary", 5, SECONDARY_TDM_RX_5),508Q6AFE_TDM_PB_DAI("Secondary", 6, SECONDARY_TDM_RX_6),509Q6AFE_TDM_PB_DAI("Secondary", 7, SECONDARY_TDM_RX_7),510Q6AFE_TDM_CAP_DAI("Secondary", 0, SECONDARY_TDM_TX_0),511Q6AFE_TDM_CAP_DAI("Secondary", 1, SECONDARY_TDM_TX_1),512Q6AFE_TDM_CAP_DAI("Secondary", 2, SECONDARY_TDM_TX_2),513Q6AFE_TDM_CAP_DAI("Secondary", 3, SECONDARY_TDM_TX_3),514Q6AFE_TDM_CAP_DAI("Secondary", 4, SECONDARY_TDM_TX_4),515Q6AFE_TDM_CAP_DAI("Secondary", 5, SECONDARY_TDM_TX_5),516Q6AFE_TDM_CAP_DAI("Secondary", 6, SECONDARY_TDM_TX_6),517Q6AFE_TDM_CAP_DAI("Secondary", 7, SECONDARY_TDM_TX_7),518Q6AFE_TDM_PB_DAI("Tertiary", 0, TERTIARY_TDM_RX_0),519Q6AFE_TDM_PB_DAI("Tertiary", 1, TERTIARY_TDM_RX_1),520Q6AFE_TDM_PB_DAI("Tertiary", 2, TERTIARY_TDM_RX_2),521Q6AFE_TDM_PB_DAI("Tertiary", 3, TERTIARY_TDM_RX_3),522Q6AFE_TDM_PB_DAI("Tertiary", 4, TERTIARY_TDM_RX_4),523Q6AFE_TDM_PB_DAI("Tertiary", 5, TERTIARY_TDM_RX_5),524Q6AFE_TDM_PB_DAI("Tertiary", 6, TERTIARY_TDM_RX_6),525Q6AFE_TDM_PB_DAI("Tertiary", 7, TERTIARY_TDM_RX_7),526Q6AFE_TDM_CAP_DAI("Tertiary", 0, TERTIARY_TDM_TX_0),527Q6AFE_TDM_CAP_DAI("Tertiary", 1, TERTIARY_TDM_TX_1),528Q6AFE_TDM_CAP_DAI("Tertiary", 2, TERTIARY_TDM_TX_2),529Q6AFE_TDM_CAP_DAI("Tertiary", 3, TERTIARY_TDM_TX_3),530Q6AFE_TDM_CAP_DAI("Tertiary", 4, TERTIARY_TDM_TX_4),531Q6AFE_TDM_CAP_DAI("Tertiary", 5, TERTIARY_TDM_TX_5),532Q6AFE_TDM_CAP_DAI("Tertiary", 6, TERTIARY_TDM_TX_6),533Q6AFE_TDM_CAP_DAI("Tertiary", 7, TERTIARY_TDM_TX_7),534Q6AFE_TDM_PB_DAI("Quaternary", 0, QUATERNARY_TDM_RX_0),535Q6AFE_TDM_PB_DAI("Quaternary", 1, QUATERNARY_TDM_RX_1),536Q6AFE_TDM_PB_DAI("Quaternary", 2, QUATERNARY_TDM_RX_2),537Q6AFE_TDM_PB_DAI("Quaternary", 3, QUATERNARY_TDM_RX_3),538Q6AFE_TDM_PB_DAI("Quaternary", 4, QUATERNARY_TDM_RX_4),539Q6AFE_TDM_PB_DAI("Quaternary", 5, QUATERNARY_TDM_RX_5),540Q6AFE_TDM_PB_DAI("Quaternary", 6, QUATERNARY_TDM_RX_6),541Q6AFE_TDM_PB_DAI("Quaternary", 7, QUATERNARY_TDM_RX_7),542Q6AFE_TDM_CAP_DAI("Quaternary", 0, QUATERNARY_TDM_TX_0),543Q6AFE_TDM_CAP_DAI("Quaternary", 1, QUATERNARY_TDM_TX_1),544Q6AFE_TDM_CAP_DAI("Quaternary", 2, QUATERNARY_TDM_TX_2),545Q6AFE_TDM_CAP_DAI("Quaternary", 3, QUATERNARY_TDM_TX_3),546Q6AFE_TDM_CAP_DAI("Quaternary", 4, QUATERNARY_TDM_TX_4),547Q6AFE_TDM_CAP_DAI("Quaternary", 5, QUATERNARY_TDM_TX_5),548Q6AFE_TDM_CAP_DAI("Quaternary", 6, QUATERNARY_TDM_TX_6),549Q6AFE_TDM_CAP_DAI("Quaternary", 7, QUATERNARY_TDM_TX_7),550Q6AFE_TDM_PB_DAI("Quinary", 0, QUINARY_TDM_RX_0),551Q6AFE_TDM_PB_DAI("Quinary", 1, QUINARY_TDM_RX_1),552Q6AFE_TDM_PB_DAI("Quinary", 2, QUINARY_TDM_RX_2),553Q6AFE_TDM_PB_DAI("Quinary", 3, QUINARY_TDM_RX_3),554Q6AFE_TDM_PB_DAI("Quinary", 4, QUINARY_TDM_RX_4),555Q6AFE_TDM_PB_DAI("Quinary", 5, QUINARY_TDM_RX_5),556Q6AFE_TDM_PB_DAI("Quinary", 6, QUINARY_TDM_RX_6),557Q6AFE_TDM_PB_DAI("Quinary", 7, QUINARY_TDM_RX_7),558Q6AFE_TDM_CAP_DAI("Quinary", 0, QUINARY_TDM_TX_0),559Q6AFE_TDM_CAP_DAI("Quinary", 1, QUINARY_TDM_TX_1),560Q6AFE_TDM_CAP_DAI("Quinary", 2, QUINARY_TDM_TX_2),561Q6AFE_TDM_CAP_DAI("Quinary", 3, QUINARY_TDM_TX_3),562Q6AFE_TDM_CAP_DAI("Quinary", 4, QUINARY_TDM_TX_4),563Q6AFE_TDM_CAP_DAI("Quinary", 5, QUINARY_TDM_TX_5),564Q6AFE_TDM_CAP_DAI("Quinary", 6, QUINARY_TDM_TX_6),565Q6AFE_TDM_CAP_DAI("Quinary", 7, QUINARY_TDM_TX_7),566Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_0),567Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_1),568Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_2),569Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_3),570Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_4),571Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_5),572Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_6),573Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_7),574Q6AFE_CDC_DMA_RX_DAI(WSA_CODEC_DMA_RX_0),575Q6AFE_CDC_DMA_TX_DAI(WSA_CODEC_DMA_TX_0),576Q6AFE_CDC_DMA_RX_DAI(WSA_CODEC_DMA_RX_1),577Q6AFE_CDC_DMA_TX_DAI(WSA_CODEC_DMA_TX_1),578Q6AFE_CDC_DMA_TX_DAI(WSA_CODEC_DMA_TX_2),579Q6AFE_CDC_DMA_TX_DAI(VA_CODEC_DMA_TX_0),580Q6AFE_CDC_DMA_TX_DAI(VA_CODEC_DMA_TX_1),581Q6AFE_CDC_DMA_TX_DAI(VA_CODEC_DMA_TX_2),582Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_0),583Q6AFE_CDC_DMA_TX_DAI(TX_CODEC_DMA_TX_0),584Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_1),585Q6AFE_CDC_DMA_TX_DAI(TX_CODEC_DMA_TX_1),586Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_2),587Q6AFE_CDC_DMA_TX_DAI(TX_CODEC_DMA_TX_2),588Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_3),589Q6AFE_CDC_DMA_TX_DAI(TX_CODEC_DMA_TX_3),590Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_4),591Q6AFE_CDC_DMA_TX_DAI(TX_CODEC_DMA_TX_4),592Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_5),593Q6AFE_CDC_DMA_TX_DAI(TX_CODEC_DMA_TX_5),594Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_6),595Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_7),596};597598int q6dsp_audio_ports_of_xlate_dai_name(struct snd_soc_component *component,599const struct of_phandle_args *args,600const char **dai_name)601{602int id = args->args[0];603int ret = -EINVAL;604int i;605606for (i = 0; i < ARRAY_SIZE(q6dsp_audio_fe_dais); i++) {607if (q6dsp_audio_fe_dais[i].id == id) {608*dai_name = q6dsp_audio_fe_dais[i].name;609ret = 0;610break;611}612}613614return ret;615}616EXPORT_SYMBOL_GPL(q6dsp_audio_ports_of_xlate_dai_name);617618struct snd_soc_dai_driver *q6dsp_audio_ports_set_config(struct device *dev,619struct q6dsp_audio_port_dai_driver_config *cfg,620int *num_dais)621{622int i;623624for (i = 0; i < ARRAY_SIZE(q6dsp_audio_fe_dais); i++) {625switch (q6dsp_audio_fe_dais[i].id) {626case HDMI_RX:627case DISPLAY_PORT_RX:628q6dsp_audio_fe_dais[i].ops = cfg->q6hdmi_ops;629break;630case DISPLAY_PORT_RX_1 ... DISPLAY_PORT_RX_7:631q6dsp_audio_fe_dais[i].ops = cfg->q6hdmi_ops;632break;633case SLIMBUS_0_RX ... SLIMBUS_6_TX:634q6dsp_audio_fe_dais[i].ops = cfg->q6slim_ops;635break;636case QUINARY_MI2S_RX ... QUINARY_MI2S_TX:637case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX:638q6dsp_audio_fe_dais[i].ops = cfg->q6i2s_ops;639break;640case PRIMARY_TDM_RX_0 ... QUINARY_TDM_TX_7:641q6dsp_audio_fe_dais[i].ops = cfg->q6tdm_ops;642break;643case WSA_CODEC_DMA_RX_0 ... RX_CODEC_DMA_RX_7:644q6dsp_audio_fe_dais[i].ops = cfg->q6dma_ops;645break;646case USB_RX:647q6dsp_audio_fe_dais[i].ops = cfg->q6usb_ops;648break;649default:650break;651}652}653654*num_dais = ARRAY_SIZE(q6dsp_audio_fe_dais);655return q6dsp_audio_fe_dais;656}657EXPORT_SYMBOL_GPL(q6dsp_audio_ports_set_config);658659660