xref: /openbmc/linux/sound/soc/qcom/qdsp6/q6afe.h (revision 7fa2d70f)
17fa2d70fSSrinivas Kandagatla /* SPDX-License-Identifier: GPL-2.0 */
27fa2d70fSSrinivas Kandagatla 
37fa2d70fSSrinivas Kandagatla #ifndef __Q6AFE_H__
47fa2d70fSSrinivas Kandagatla #define __Q6AFE_H__
57fa2d70fSSrinivas Kandagatla 
67fa2d70fSSrinivas Kandagatla #include <dt-bindings/sound/qcom,q6afe.h>
77fa2d70fSSrinivas Kandagatla 
87fa2d70fSSrinivas Kandagatla #define AFE_PORT_MAX		48
97fa2d70fSSrinivas Kandagatla 
107fa2d70fSSrinivas Kandagatla #define MSM_AFE_PORT_TYPE_RX 0
117fa2d70fSSrinivas Kandagatla #define MSM_AFE_PORT_TYPE_TX 1
127fa2d70fSSrinivas Kandagatla #define AFE_MAX_PORTS AFE_PORT_MAX
137fa2d70fSSrinivas Kandagatla 
147fa2d70fSSrinivas Kandagatla struct q6afe_hdmi_cfg {
157fa2d70fSSrinivas Kandagatla 	u16                  datatype;
167fa2d70fSSrinivas Kandagatla 	u16                  channel_allocation;
177fa2d70fSSrinivas Kandagatla 	u32                  sample_rate;
187fa2d70fSSrinivas Kandagatla 	u16                  bit_width;
197fa2d70fSSrinivas Kandagatla };
207fa2d70fSSrinivas Kandagatla 
217fa2d70fSSrinivas Kandagatla struct q6afe_port_config {
227fa2d70fSSrinivas Kandagatla 	struct q6afe_hdmi_cfg hdmi;
237fa2d70fSSrinivas Kandagatla };
247fa2d70fSSrinivas Kandagatla 
257fa2d70fSSrinivas Kandagatla struct q6afe_port;
267fa2d70fSSrinivas Kandagatla 
277fa2d70fSSrinivas Kandagatla struct q6afe_port *q6afe_port_get_from_id(struct device *dev, int id);
287fa2d70fSSrinivas Kandagatla int q6afe_port_start(struct q6afe_port *port);
297fa2d70fSSrinivas Kandagatla int q6afe_port_stop(struct q6afe_port *port);
307fa2d70fSSrinivas Kandagatla void q6afe_port_put(struct q6afe_port *port);
317fa2d70fSSrinivas Kandagatla int q6afe_get_port_id(int index);
327fa2d70fSSrinivas Kandagatla void q6afe_hdmi_port_prepare(struct q6afe_port *port,
337fa2d70fSSrinivas Kandagatla 			    struct q6afe_hdmi_cfg *cfg);
347fa2d70fSSrinivas Kandagatla 
357fa2d70fSSrinivas Kandagatla #endif /* __Q6AFE_H__ */
36