summaryrefslogtreecommitdiffstats
path: root/sound/soc/intel/skylake/skl-topology.h
diff options
context:
space:
mode:
authorHardik T Shah <hardik.t.shah@intel.com>2015-10-27 09:22:55 +0900
committerMark Brown <broonie@kernel.org>2015-11-16 10:08:09 +0000
commit4cd9899f0d16b475e31b20771de6f580b977daa4 (patch)
treebe33e2fb18601c304d3ae2e9c5588662a2e5f583 /sound/soc/intel/skylake/skl-topology.h
parent9a03cb49c138146476261e5f9e3189a2631e70c1 (diff)
downloadlinux-4cd9899f0d16b475e31b20771de6f580b977daa4.tar.bz2
ASoC: Intel: Skylake: Add multiple pin formats
The module pin formats are considered homogeneous, but some modules can have different pcm formats on different pins, like reference signal for a module. This patch add support for configuration of each pin of module and allows us to specify if pins and homogeneous or heterogeneous Signed-off-by: Hardik T Shah <hardik.t.shah@intel.com> Signed-off-by: Omair M Abdullah <omair.m.abdullah@intel.com> Signed-off-by: Jeeja KP <jeeja.kp@intel.com> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel/skylake/skl-topology.h')
-rw-r--r--sound/soc/intel/skylake/skl-topology.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/sound/soc/intel/skylake/skl-topology.h b/sound/soc/intel/skylake/skl-topology.h
index 1b35cb6c397a..3b63450c6d5e 100644
--- a/sound/soc/intel/skylake/skl-topology.h
+++ b/sound/soc/intel/skylake/skl-topology.h
@@ -36,6 +36,9 @@
/* Maximum number of coefficients up down mixer module */
#define UP_DOWN_MIXER_MAX_COEFF 6
+#define MODULE_MAX_IN_PINS 8
+#define MODULE_MAX_OUT_PINS 8
+
enum skl_channel_index {
SKL_CHANNEL_LEFT = 0,
SKL_CHANNEL_RIGHT = 1,
@@ -178,6 +181,9 @@ struct skl_module_fmt {
u32 bit_depth;
u32 valid_bit_depth;
u32 ch_cfg;
+ u32 interleaving_style;
+ u32 sample_type;
+ u32 ch_map;
};
struct skl_module_cfg;
@@ -247,8 +253,10 @@ enum skl_module_state {
struct skl_module_cfg {
struct skl_module_inst_id id;
- struct skl_module_fmt in_fmt;
- struct skl_module_fmt out_fmt;
+ bool homogenous_inputs;
+ bool homogenous_outputs;
+ struct skl_module_fmt in_fmt[MODULE_MAX_IN_PINS];
+ struct skl_module_fmt out_fmt[MODULE_MAX_OUT_PINS];
u8 max_in_queue;
u8 max_out_queue;
u8 in_queue_mask;