• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // SPDX-License-Identifier: BSD-3-Clause
2 //
3 // Copyright(c) 2021 Intel Corporation. All rights reserved.
4 //
5 // Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
6 //         Keyon Jie <yang.jie@linux.intel.com>
7 //         Rander Wang <rander.wang@linux.intel.com>
8 //         Jaska Uimonen <jaska.uimonen@linux.intel.com>
9 
10 #ifndef __SSP_PROCESS_H
11 #define __SSP_PROCESS_H
12 
13 #include <stdint.h>
14 
15 /* initialize and set default values before parsing */
16 int ssp_init_params(struct intel_nhlt_params *nhlt);
17 
18 /* set parameters when parsing topology2 conf */
19 int ssp_set_params(struct intel_nhlt_params *nhlt, const char *dir, int dai_index, int io_clk,
20 		   int bclk_delay, int sample_bits, int mclk_id, int clks_control,
21 		   int frame_pulse_width, const char *tdm_padding_per_slot, const char *quirks,
22 		   int version);
23 int ssp_hw_set_params(struct intel_nhlt_params *nhlt, const char *format, const char *mclk,
24 		      const char *bclk, const char *bclk_invert, const char *fsync,
25 		      const char *fsync_invert, int mclk_freq, int bclk_freq, int fsync_freq,
26 		      int tdm_slots, int tdm_slot_width, int tx_slots, int rx_slots);
27 
28 /* set aux params when parsing topology2 conf */
29 int ssp_mn_set_params(struct intel_nhlt_params *nhlt, int m_div, int n_div);
30 int ssp_clk_set_params(struct intel_nhlt_params *nhlt, int clock_warm_up, int mclk, int warm_up_ovr,
31 		       int clock_stop_delay, int keep_running, int clock_stop_ovr);
32 int ssp_tr_start_set_params(struct intel_nhlt_params *nhlt, int sampling_frequency,
33 			    int bit_depth, int channel_map, int hannel_config,
34 			    int interleaving_style, int number_of_channels,
35 			    int valid_bit_depth, int sample_type);
36 int ssp_tr_stop_set_params(struct intel_nhlt_params *nhlt, int sampling_frequency,
37 			   int bit_depth, int channel_map, int hannel_config,
38 			   int interleaving_style, int number_of_channels,
39 			   int valid_bit_depth, int sample_type);
40 int ssp_run_set_params(struct intel_nhlt_params *nhlt, int always_run);
41 int ssp_sync_set_params(struct intel_nhlt_params *nhlt, int sync_denominator);
42 int ssp_node_set_params(struct intel_nhlt_params *nhlt, int node_id, int sampling_rate);
43 int ssp_ext_set_params(struct intel_nhlt_params *nhlt, int mclk_policy_override,
44 		       int mclk_always_running, int mclk_starts_on_gtw_init, int mclk_starts_on_run,
45 		       int mclk_starts_on_pause, int mclk_stops_on_pause, int mclk_stops_on_reset,
46 		       int bclk_policy_override, int bclk_always_running,
47 		       int bclk_starts_on_gtw_init, int bclk_starts_on_run,
48 		       int bclk_starts_on_pause, int bclk_stops_on_pause, int bclk_stops_on_reset,
49 		       int sync_policy_override, int sync_always_running,
50 		       int sync_starts_on_gtw_init, int sync_starts_on_run,
51 		       int sync_starts_on_pause, int sync_stops_on_pause, int sync_stops_on_reset);
52 int ssp_link_set_params(struct intel_nhlt_params *nhlt, int clock_source);
53 
54 /* calculate the blob after parsing the values*/
55 int ssp_calculate(struct intel_nhlt_params *nhlt);
56 /* get spec parameters when building the nhlt endpoint */
57 int ssp_get_params(struct intel_nhlt_params *nhlt, int dai_index, uint32_t *virtualbus_id,
58 		   uint32_t *formats_count, uint32_t *device_type, uint32_t *direction);
59 int ssp_get_hw_params(struct intel_nhlt_params *nhlt, int dai_index, int hw_index,
60 		      uint32_t *sample_rate, uint16_t *channel_count, uint32_t *bits_per_sample);
61 int ssp_get_dir(struct intel_nhlt_params *nhlt, int dai_index, uint8_t *dir);
62 /* get vendor specific blob when building the nhlt endpoint */
63 int ssp_get_vendor_blob_count(struct intel_nhlt_params *nhlt);
64 int ssp_get_vendor_blob_size(struct intel_nhlt_params *nhlt, int dai_index, int hw_config_index,
65 			     size_t *size);
66 int ssp_get_vendor_blob(struct intel_nhlt_params *nhlt, uint8_t *vendor_blob, int dai_index,
67 			int hw_config_index);
68 
69 #endif
70